diff options
author | Nishanth Aravamudan <nacc@us.ibm.com> | 2008-07-24 00:27:39 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-24 13:47:17 -0400 |
commit | ff7ea79cf7c3a481851bd4b2185fdeb6ce4afa29 (patch) | |
tree | ea0438b98c268584c28c8f5f8c331cb12c2c44b9 | |
parent | 5e9426abe209cf134adbbd62c5e73ef534eb73e9 (diff) |
mm: create /sys/kernel/mm
Add a kobject to create /sys/kernel/mm when sysfs is mounted. The kobject
will exist regardless. This will allow for the hugepage related sysfs
directories to exist under the mm "subsystem" directory. Add an ABI file
appropriately.
[kosaki.motohiro@jp.fujitsu.com: fix build]
Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: Mel Gorman <mel@csn.ul.ie>
Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | Documentation/ABI/testing/sysfs-kernel-mm | 6 | ||||
-rw-r--r-- | include/linux/kobject.h | 2 | ||||
-rw-r--r-- | mm/mm_init.c | 16 |
3 files changed, 24 insertions, 0 deletions
diff --git a/Documentation/ABI/testing/sysfs-kernel-mm b/Documentation/ABI/testing/sysfs-kernel-mm new file mode 100644 index 000000000000..190d523ac159 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-kernel-mm | |||
@@ -0,0 +1,6 @@ | |||
1 | What: /sys/kernel/mm | ||
2 | Date: July 2008 | ||
3 | Contact: Nishanth Aravamudan <nacc@us.ibm.com>, VM maintainers | ||
4 | Description: | ||
5 | /sys/kernel/mm/ should contain any and all VM | ||
6 | related information in /sys/kernel/. | ||
diff --git a/include/linux/kobject.h b/include/linux/kobject.h index 60f0d418ae32..5437ac0276e2 100644 --- a/include/linux/kobject.h +++ b/include/linux/kobject.h | |||
@@ -186,6 +186,8 @@ extern struct kobject *kset_find_obj(struct kset *, const char *); | |||
186 | 186 | ||
187 | /* The global /sys/kernel/ kobject for people to chain off of */ | 187 | /* The global /sys/kernel/ kobject for people to chain off of */ |
188 | extern struct kobject *kernel_kobj; | 188 | extern struct kobject *kernel_kobj; |
189 | /* The global /sys/kernel/mm/ kobject for people to chain off of */ | ||
190 | extern struct kobject *mm_kobj; | ||
189 | /* The global /sys/hypervisor/ kobject for people to chain off of */ | 191 | /* The global /sys/hypervisor/ kobject for people to chain off of */ |
190 | extern struct kobject *hypervisor_kobj; | 192 | extern struct kobject *hypervisor_kobj; |
191 | /* The global /sys/power/ kobject for people to chain off of */ | 193 | /* The global /sys/power/ kobject for people to chain off of */ |
diff --git a/mm/mm_init.c b/mm/mm_init.c index eaf0d3b47099..c6af41ea9994 100644 --- a/mm/mm_init.c +++ b/mm/mm_init.c | |||
@@ -7,6 +7,8 @@ | |||
7 | */ | 7 | */ |
8 | #include <linux/kernel.h> | 8 | #include <linux/kernel.h> |
9 | #include <linux/init.h> | 9 | #include <linux/init.h> |
10 | #include <linux/kobject.h> | ||
11 | #include <linux/module.h> | ||
10 | #include "internal.h" | 12 | #include "internal.h" |
11 | 13 | ||
12 | #ifdef CONFIG_DEBUG_MEMORY_INIT | 14 | #ifdef CONFIG_DEBUG_MEMORY_INIT |
@@ -134,3 +136,17 @@ static __init int set_mminit_loglevel(char *str) | |||
134 | } | 136 | } |
135 | early_param("mminit_loglevel", set_mminit_loglevel); | 137 | early_param("mminit_loglevel", set_mminit_loglevel); |
136 | #endif /* CONFIG_DEBUG_MEMORY_INIT */ | 138 | #endif /* CONFIG_DEBUG_MEMORY_INIT */ |
139 | |||
140 | struct kobject *mm_kobj; | ||
141 | EXPORT_SYMBOL_GPL(mm_kobj); | ||
142 | |||
143 | static int __init mm_sysfs_init(void) | ||
144 | { | ||
145 | mm_kobj = kobject_create_and_add("mm", kernel_kobj); | ||
146 | if (!mm_kobj) | ||
147 | return -ENOMEM; | ||
148 | |||
149 | return 0; | ||
150 | } | ||
151 | |||
152 | __initcall(mm_sysfs_init); | ||