public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] [-mm patch] Cleanup add-vmcoreinfo.patch
@ 2007-09-10  7:23 Ken'ichi Ohmichi
  2007-09-10  7:25 ` [PATCH 1/3] [-mm patch] Cleanup the coding style according to Andrew's comments Ken'ichi Ohmichi
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Ken'ichi Ohmichi @ 2007-09-10  7:23 UTC (permalink / raw)
  To: Andrew Morton; +Cc: kexec-ml, lkml, Ken'ichi Ohmichi


Hi Andrew,

On Fri, Aug 31, 2007 at 09:58:22PM -0700, Andrew Morton wrote:
> Changes since 2.6.23-rc3-mm1:
> [snip]
> +add-vmcoreinfo.patch
>

Thank you for merging add-vmcoreinfo.patch.
I created the patchset for your comments and some corrections.
The patchset is for linux-2.6.23-rc4-mm1.

[1/3] Cleanup the coding style according to Andrew's comments:
http://lists.infradead.org/pipermail/kexec/2007-August/000522.html
- vmcoreinfo_append_str() should have suitable __attribute__s so that
  the compiler can check its use.
- vmcoreinfo_max_size should have size_t.
- Use get_seconds() instead of xtime.tv_sec.
- Use init_uts_ns.name.release instead of UTS_RELEASE.

[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/

[3/3] Use the existing ia64_tpa() instead of asm code.


Thanks
Ken'ichi Ohmichi

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 1/3] [-mm patch] Cleanup the coding style according to Andrew's comments
  2007-09-10  7:23 [PATCH 0/3] [-mm patch] Cleanup add-vmcoreinfo.patch Ken'ichi Ohmichi
@ 2007-09-10  7:25 ` Ken'ichi Ohmichi
  2007-09-10  7:26 ` [PATCH 2/3] [-mm patch] Add nodemask_t's size and NR_FREE_PAGES's value to vmcoreinfo_data Ken'ichi Ohmichi
  2007-09-10  7:28 ` [PATCH 3/3] [-mm patch] Use the existing ia64_tpa() instead of asm code Ken'ichi Ohmichi
  2 siblings, 0 replies; 4+ messages in thread
From: Ken'ichi Ohmichi @ 2007-09-10  7:25 UTC (permalink / raw)
  To: Andrew Morton; +Cc: kexec-ml, lkml, Ken'ichi Ohmichi


[1/3] Cleanup the coding style according to Andrew's comments:
http://lists.infradead.org/pipermail/kexec/2007-August/000522.html
- vmcoreinfo_append_str() should have suitable __attribute__s so that
  the compiler can check its use.
- vmcoreinfo_max_size should have size_t.
- Use get_seconds() instead of xtime.tv_sec.
- Use init_uts_ns.name.release instead of UTS_RELEASE.


Thanks
Ken'ichi Ohmichi

---
Signed-off-by: Ken'ichi Ohmichi <oomichi@mxs.nes.nec.co.jp>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

---
diff -rpuN a/include/linux/kexec.h b/include/linux/kexec.h
--- a/include/linux/kexec.h	2007-09-10 19:37:59.000000000 +0900
+++ b/include/linux/kexec.h	2007-09-10 23:09:37.000000000 +0900
@@ -123,18 +123,20 @@ int kexec_should_crash(struct task_struc
 void crash_save_cpu(struct pt_regs *regs, int cpu);
 void crash_save_vmcoreinfo(void);
 void arch_crash_save_vmcoreinfo(void);
-void vmcoreinfo_append_str(const char *fmt, ...);
+void vmcoreinfo_append_str(const char *fmt, ...)
+	__attribute__ ((format (printf, 1, 2)));
 unsigned long paddr_vmcoreinfo_note(void);
 
 #define SYMBOL(name) \
 	vmcoreinfo_append_str("SYMBOL(%s)=%lx\n", #name, (unsigned long)&name)
 #define SIZE(name) \
-	vmcoreinfo_append_str("SIZE(%s)=%d\n", #name, sizeof(struct name))
+	vmcoreinfo_append_str("SIZE(%s)=%lu\n", #name, \
+			      (unsigned long)sizeof(struct name))
 #define OFFSET(name, field) \
-	vmcoreinfo_append_str("OFFSET(%s.%s)=%d\n", #name, #field, \
-			      &(((struct name *)0)->field))
+	vmcoreinfo_append_str("OFFSET(%s.%s)=%lu\n", #name, #field, \
+			      (unsigned long)&(((struct name *)0)->field))
 #define LENGTH(name, value) \
-	vmcoreinfo_append_str("LENGTH(%s)=%d\n", #name, value)
+	vmcoreinfo_append_str("LENGTH(%s)=%lu\n", #name, (unsigned long)value)
 #define CONFIG(name) \
 	vmcoreinfo_append_str("CONFIG_%s=y\n", #name)
 
@@ -177,8 +179,8 @@ extern struct resource crashk_res;
 typedef u32 note_buf_t[KEXEC_NOTE_BYTES/4];
 extern note_buf_t *crash_notes;
 extern u32 vmcoreinfo_note[VMCOREINFO_NOTE_SIZE/4];
-extern unsigned int vmcoreinfo_size;
-extern unsigned int vmcoreinfo_max_size;
+extern size_t vmcoreinfo_size;
+extern size_t vmcoreinfo_max_size;
 
 
 #else /* !CONFIG_KEXEC */
diff -rpuN a/kernel/kexec.c b/kernel/kexec.c
--- a/kernel/kexec.c	2007-09-10 19:38:00.000000000 +0900
+++ b/kernel/kexec.c	2007-09-10 23:09:58.000000000 +0900
@@ -38,8 +38,8 @@ note_buf_t* crash_notes;
 /* vmcoreinfo stuff */
 unsigned char vmcoreinfo_data[VMCOREINFO_BYTES];
 u32 vmcoreinfo_note[VMCOREINFO_NOTE_SIZE/4];
-unsigned int vmcoreinfo_size = 0;
-unsigned int vmcoreinfo_max_size = sizeof(vmcoreinfo_data);
+size_t vmcoreinfo_size;
+size_t vmcoreinfo_max_size = sizeof(vmcoreinfo_data);
 
 /* Location of the reserved area for the crash kernel */
 struct resource crashk_res = {
@@ -1153,7 +1153,7 @@ void crash_save_vmcoreinfo(void)
 	if (!vmcoreinfo_size)
 		return;
 
-	vmcoreinfo_append_str("CRASHTIME=%d", xtime.tv_sec);
+	vmcoreinfo_append_str("CRASHTIME=%ld", get_seconds());
 
 	buf = (u32 *)vmcoreinfo_note;
 
@@ -1195,8 +1195,8 @@ unsigned long __attribute__ ((weak)) pad
 
 static int __init crash_save_vmcoreinfo_init(void)
 {
-	vmcoreinfo_append_str("OSRELEASE=%s\n", UTS_RELEASE);
-	vmcoreinfo_append_str("PAGESIZE=%d\n", PAGE_SIZE);
+	vmcoreinfo_append_str("OSRELEASE=%s\n", init_uts_ns.name.release);
+	vmcoreinfo_append_str("PAGESIZE=%ld\n", PAGE_SIZE);
 
 	SYMBOL(init_uts_ns);
 	SYMBOL(node_online_map);
diff -rpuN a/kernel/ksysfs.c b/kernel/ksysfs.c
--- a/kernel/ksysfs.c	2007-09-10 19:38:00.000000000 +0900
+++ b/kernel/ksysfs.c	2007-09-10 23:09:07.000000000 +0900
@@ -65,7 +65,7 @@ static ssize_t vmcoreinfo_show(struct ks
 {
 	return sprintf(page, "%lx %x\n",
 		       paddr_vmcoreinfo_note(),
-		       vmcoreinfo_max_size);
+		       (unsigned int)vmcoreinfo_max_size);
 }
 KERNEL_ATTR_RO(vmcoreinfo);
 
_

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 2/3] [-mm patch] Add nodemask_t's size and NR_FREE_PAGES's value to vmcoreinfo_data
  2007-09-10  7:23 [PATCH 0/3] [-mm patch] Cleanup add-vmcoreinfo.patch Ken'ichi Ohmichi
  2007-09-10  7:25 ` [PATCH 1/3] [-mm patch] Cleanup the coding style according to Andrew's comments Ken'ichi Ohmichi
@ 2007-09-10  7:26 ` Ken'ichi Ohmichi
  2007-09-10  7:28 ` [PATCH 3/3] [-mm patch] Use the existing ia64_tpa() instead of asm code Ken'ichi Ohmichi
  2 siblings, 0 replies; 4+ messages in thread
From: Ken'ichi Ohmichi @ 2007-09-10  7:26 UTC (permalink / raw)
  To: Andrew Morton; +Cc: kexec-ml, lkml, Ken'ichi Ohmichi


[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/


Thanks
Ken'ichi Ohmichi

---
Signed-off-by: Ken'ichi Ohmichi <oomichi@mxs.nes.nec.co.jp>

---
diff -rpuN a/include/linux/kexec.h b/include/linux/kexec.h
--- a/include/linux/kexec.h	2007-09-10 23:28:42.000000000 +0900
+++ b/include/linux/kexec.h	2007-09-10 23:29:52.000000000 +0900
@@ -132,11 +132,16 @@ unsigned long paddr_vmcoreinfo_note(void
 #define SIZE(name) \
 	vmcoreinfo_append_str("SIZE(%s)=%lu\n", #name, \
 			      (unsigned long)sizeof(struct name))
+#define TYPEDEF_SIZE(name) \
+	vmcoreinfo_append_str("SIZE(%s)=%lu\n", #name, \
+			      (unsigned long)sizeof(name))
 #define OFFSET(name, field) \
 	vmcoreinfo_append_str("OFFSET(%s.%s)=%lu\n", #name, #field, \
 			      (unsigned long)&(((struct name *)0)->field))
 #define LENGTH(name, value) \
 	vmcoreinfo_append_str("LENGTH(%s)=%lu\n", #name, (unsigned long)value)
+#define NUMBER(name) \
+	vmcoreinfo_append_str("NUMBER(%s)=%ld\n", #name, (long)name)
 #define CONFIG(name) \
 	vmcoreinfo_append_str("CONFIG_%s=y\n", #name)
 
diff -rpuN a/kernel/kexec.c b/kernel/kexec.c
--- a/kernel/kexec.c	2007-09-10 23:28:42.000000000 +0900
+++ b/kernel/kexec.c	2007-09-10 23:29:02.000000000 +0900
@@ -1218,6 +1218,7 @@ static int __init crash_save_vmcoreinfo_
 	SIZE(zone);
 	SIZE(free_area);
 	SIZE(list_head);
+	TYPEDEF_SIZE(nodemask_t);
 	OFFSET(page, flags);
 	OFFSET(page, _count);
 	OFFSET(page, mapping);
@@ -1237,6 +1238,7 @@ static int __init crash_save_vmcoreinfo_
 	OFFSET(list_head, next);
 	OFFSET(list_head, prev);
 	LENGTH(zone.free_area, MAX_ORDER);
+	NUMBER(NR_FREE_PAGES);
 
 	arch_crash_save_vmcoreinfo();
 
_

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 3/3] [-mm patch] Use the existing ia64_tpa() instead of asm code
  2007-09-10  7:23 [PATCH 0/3] [-mm patch] Cleanup add-vmcoreinfo.patch Ken'ichi Ohmichi
  2007-09-10  7:25 ` [PATCH 1/3] [-mm patch] Cleanup the coding style according to Andrew's comments Ken'ichi Ohmichi
  2007-09-10  7:26 ` [PATCH 2/3] [-mm patch] Add nodemask_t's size and NR_FREE_PAGES's value to vmcoreinfo_data Ken'ichi Ohmichi
@ 2007-09-10  7:28 ` Ken'ichi Ohmichi
  2 siblings, 0 replies; 4+ messages in thread
From: Ken'ichi Ohmichi @ 2007-09-10  7:28 UTC (permalink / raw)
  To: Andrew Morton; +Cc: kexec-ml, lkml, Ken'ichi Ohmichi


[3/3] Use the existing ia64_tpa() instead of asm code.


Thanks
Ken'ichi Ohmichi

---
Signed-off-by: Ken'ichi Ohmichi <oomichi@mxs.nes.nec.co.jp>

---
diff -rpuN a/arch/ia64/kernel/machine_kexec.c b/arch/ia64/kernel/machine_kexec.c
--- a/arch/ia64/kernel/machine_kexec.c	2007-09-10 23:30:33.000000000 +0900
+++ b/arch/ia64/kernel/machine_kexec.c	2007-09-10 23:31:37.000000000 +0900
@@ -21,6 +21,7 @@
 #include <asm/setup.h>
 #include <asm/delay.h>
 #include <asm/meminit.h>
+#include <asm/processor.h>
 
 typedef NORET_TYPE void (*relocate_new_kernel_t)(
 					unsigned long indirection_page,
@@ -149,9 +150,6 @@ void arch_crash_save_vmcoreinfo(void)
 
 unsigned long paddr_vmcoreinfo_note(void)
 {
-	unsigned long vaddr, paddr;
-	vaddr = (unsigned long)(char *)&vmcoreinfo_note;
-	asm volatile ("tpa %0 = %1" : "=r"(paddr) : "r"(vaddr) : "memory");
-	return paddr;
+	return ia64_tpa((unsigned long)(char *)&vmcoreinfo_note);
 }
 
_

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2007-09-10  7:28 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-09-10  7:23 [PATCH 0/3] [-mm patch] Cleanup add-vmcoreinfo.patch Ken'ichi Ohmichi
2007-09-10  7:25 ` [PATCH 1/3] [-mm patch] Cleanup the coding style according to Andrew's comments Ken'ichi Ohmichi
2007-09-10  7:26 ` [PATCH 2/3] [-mm patch] Add nodemask_t's size and NR_FREE_PAGES's value to vmcoreinfo_data Ken'ichi Ohmichi
2007-09-10  7:28 ` [PATCH 3/3] [-mm patch] Use the existing ia64_tpa() instead of asm code Ken'ichi Ohmichi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox