aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKen'ichi Ohmichi <oomichi@mxs.nes.nec.co.jp>2007-10-17 02:27:28 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-17 11:42:54 -0400
commit6cfa062f01b601206b980e503f62dc593ed8fcaa (patch)
tree17cf10b2c569b464a4045679294e5b3c11a29a67
parentd768281e97a403815467102bc4b677f6c425a42b (diff)
add-vmcore: add nodemask_t's size and NR_FREE_PAGES's value to vmcoreinfo_data
[2/3] Add nodemask_t's size and NR_FREE_PAGES's value to vmcoreinfo_data. The dump filetering command 'makedumpfile'(v1.1.6 or before) had assumed the above values, and it was not good from the reliability viewpoint. So makedumpfile v1.2.0 came to need these values and I created the patch to let the kernel output them. makedumpfile site: https://sourceforge.net/projects/makedumpfile/ Signed-off-by: Ken'ichi Ohmichi <oomichi@mxs.nes.nec.co.jp> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--include/linux/kexec.h5
-rw-r--r--kernel/kexec.c2
2 files changed, 7 insertions, 0 deletions
diff --git a/include/linux/kexec.h b/include/linux/kexec.h
index 83337456b716..db15a94769b3 100644
--- a/include/linux/kexec.h
+++ b/include/linux/kexec.h
@@ -132,11 +132,16 @@ unsigned long paddr_vmcoreinfo_note(void);
132#define SIZE(name) \ 132#define SIZE(name) \
133 vmcoreinfo_append_str("SIZE(%s)=%lu\n", #name, \ 133 vmcoreinfo_append_str("SIZE(%s)=%lu\n", #name, \
134 (unsigned long)sizeof(struct name)) 134 (unsigned long)sizeof(struct name))
135#define TYPEDEF_SIZE(name) \
136 vmcoreinfo_append_str("SIZE(%s)=%lu\n", #name, \
137 (unsigned long)sizeof(name))
135#define OFFSET(name, field) \ 138#define OFFSET(name, field) \
136 vmcoreinfo_append_str("OFFSET(%s.%s)=%lu\n", #name, #field, \ 139 vmcoreinfo_append_str("OFFSET(%s.%s)=%lu\n", #name, #field, \
137 (unsigned long)&(((struct name *)0)->field)) 140 (unsigned long)&(((struct name *)0)->field))
138#define LENGTH(name, value) \ 141#define LENGTH(name, value) \
139 vmcoreinfo_append_str("LENGTH(%s)=%lu\n", #name, (unsigned long)value) 142 vmcoreinfo_append_str("LENGTH(%s)=%lu\n", #name, (unsigned long)value)
143#define NUMBER(name) \
144 vmcoreinfo_append_str("NUMBER(%s)=%ld\n", #name, (long)name)
140#define CONFIG(name) \ 145#define CONFIG(name) \
141 vmcoreinfo_append_str("CONFIG_%s=y\n", #name) 146 vmcoreinfo_append_str("CONFIG_%s=y\n", #name)
142 147
diff --git a/kernel/kexec.c b/kernel/kexec.c
index b979b010b6d8..578bde9bbc98 100644
--- a/kernel/kexec.c
+++ b/kernel/kexec.c
@@ -1218,6 +1218,7 @@ static int __init crash_save_vmcoreinfo_init(void)
1218 SIZE(zone); 1218 SIZE(zone);
1219 SIZE(free_area); 1219 SIZE(free_area);
1220 SIZE(list_head); 1220 SIZE(list_head);
1221 TYPEDEF_SIZE(nodemask_t);
1221 OFFSET(page, flags); 1222 OFFSET(page, flags);
1222 OFFSET(page, _count); 1223 OFFSET(page, _count);
1223 OFFSET(page, mapping); 1224 OFFSET(page, mapping);
@@ -1237,6 +1238,7 @@ static int __init crash_save_vmcoreinfo_init(void)
1237 OFFSET(list_head, next); 1238 OFFSET(list_head, next);
1238 OFFSET(list_head, prev); 1239 OFFSET(list_head, prev);
1239 LENGTH(zone.free_area, MAX_ORDER); 1240 LENGTH(zone.free_area, MAX_ORDER);
1241 NUMBER(NR_FREE_PAGES);
1240 1242
1241 arch_crash_save_vmcoreinfo(); 1243 arch_crash_save_vmcoreinfo();
1242 1244