For percpu notes, we are exporting only address and not size. So
the userspace tool kexec-tools is putting an upper limit of 1024
and putting the value in p_memsz and p_filesz fields. So the patch
add the new sysfile crash_notes_size to export the exact percpu
note size and let the kexec-tools parse it intead of using 1024.
The idea came from Vivek Goyal. And a later patch will be sent to
kexec-tools to let it parse the size.
Cc: Greg KH <[email protected]>
Cc: "Eric W. Biederman" <[email protected]>
Cc: Vivek Goyal <[email protected]>
Signed-off-by: Zhang Yanfei <[email protected]>
---
drivers/base/cpu.c | 14 ++++++++++++++
1 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/drivers/base/cpu.c b/drivers/base/cpu.c
index fb10728..a55b590 100644
--- a/drivers/base/cpu.c
+++ b/drivers/base/cpu.c
@@ -132,6 +132,17 @@ static ssize_t show_crash_notes(struct device *dev, struct device_attribute *att
return rc;
}
static DEVICE_ATTR(crash_notes, 0400, show_crash_notes, NULL);
+
+static ssize_t show_crash_notes_size(struct device *dev,
+ struct device_attribute *attr,
+ char *buf)
+{
+ ssize_t rc;
+
+ rc = sprintf(buf, "%lu\n", sizeof(note_buf_t));
+ return rc;
+}
+static DEVICE_ATTR(crash_notes_size, 0400, show_crash_notes_size, NULL);
#endif
/*
@@ -259,6 +270,9 @@ int __cpuinit register_cpu(struct cpu *cpu, int num)
#ifdef CONFIG_KEXEC
if (!error)
error = device_create_file(&cpu->dev, &dev_attr_crash_notes);
+ if (!error)
+ error = device_create_file(&cpu->dev,
+ &dev_attr_crash_notes_size);
#endif
return error;
}
--
1.7.1
Add an Documentation/ABI entry for /sys/devices/system/cpu/cpu0/crash_notes
and /sys/devices/system/cpu/cpu0/crash_notes_size.
Cc: Greg KH <[email protected]>
Cc: "Eric W. Biederman" <[email protected]>
Cc: Vivek Goyal <[email protected]>
Signed-off-by: Zhang Yanfei <[email protected]>
---
Documentation/ABI/testing/sysfs-devices-system-cpu | 12 ++++++++++++
1 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/Documentation/ABI/testing/sysfs-devices-system-cpu b/Documentation/ABI/testing/sysfs-devices-system-cpu
index 9c978dc..2447698 100644
--- a/Documentation/ABI/testing/sysfs-devices-system-cpu
+++ b/Documentation/ABI/testing/sysfs-devices-system-cpu
@@ -173,3 +173,15 @@ Description: Processor frequency boosting control
Boosting allows the CPU and the firmware to run at a frequency
beyound it's nominal limit.
More details can be found in Documentation/cpu-freq/boost.txt
+
+
+What: /sys/devices/system/cpu/cpu#/crash_notes
+ /sys/devices/system/cpu/cpu#/crash_notes_size
+Date: April 2013
+Contact: [email protected]
+Description: address and size of the percpu note.
+
+ crash_notes: the physical address of the memory that holds the
+ note of cpu#.
+
+ crash_notes_size: size of the note of cpu#.
--
1.7.1
Hi, simon
I forgot to add your email in the CC, could you please help
reviewing this patch since I will send the kexec-tools patch
if this patch is accepted.
Thanks
Zhang
于 2013年03月28日 16:15, Zhang Yanfei 写道:
> For percpu notes, we are exporting only address and not size. So
> the userspace tool kexec-tools is putting an upper limit of 1024
> and putting the value in p_memsz and p_filesz fields. So the patch
> add the new sysfile crash_notes_size to export the exact percpu
> note size and let the kexec-tools parse it intead of using 1024.
>
> The idea came from Vivek Goyal. And a later patch will be sent to
> kexec-tools to let it parse the size.
>
> Cc: Greg KH <[email protected]>
> Cc: "Eric W. Biederman" <[email protected]>
> Cc: Vivek Goyal <[email protected]>
> Signed-off-by: Zhang Yanfei <[email protected]>
> ---
> drivers/base/cpu.c | 14 ++++++++++++++
> 1 files changed, 14 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/base/cpu.c b/drivers/base/cpu.c
> index fb10728..a55b590 100644
> --- a/drivers/base/cpu.c
> +++ b/drivers/base/cpu.c
> @@ -132,6 +132,17 @@ static ssize_t show_crash_notes(struct device *dev, struct device_attribute *att
> return rc;
> }
> static DEVICE_ATTR(crash_notes, 0400, show_crash_notes, NULL);
> +
> +static ssize_t show_crash_notes_size(struct device *dev,
> + struct device_attribute *attr,
> + char *buf)
> +{
> + ssize_t rc;
> +
> + rc = sprintf(buf, "%lu\n", sizeof(note_buf_t));
> + return rc;
> +}
> +static DEVICE_ATTR(crash_notes_size, 0400, show_crash_notes_size, NULL);
> #endif
>
> /*
> @@ -259,6 +270,9 @@ int __cpuinit register_cpu(struct cpu *cpu, int num)
> #ifdef CONFIG_KEXEC
> if (!error)
> error = device_create_file(&cpu->dev, &dev_attr_crash_notes);
> + if (!error)
> + error = device_create_file(&cpu->dev,
> + &dev_attr_crash_notes_size);
> #endif
> return error;
> }
On Fri, Mar 29, 2013 at 11:50:35AM +0800, Zhang Yanfei wrote:
> Hi, simon
>
> I forgot to add your email in the CC, could you please help
> reviewing this patch since I will send the kexec-tools patch
> if this patch is accepted.
>
> Thanks
> Zhang
>
> 于 2013年03月28日 16:15, Zhang Yanfei 写道:
> > For percpu notes, we are exporting only address and not size. So
> > the userspace tool kexec-tools is putting an upper limit of 1024
> > and putting the value in p_memsz and p_filesz fields. So the patch
> > add the new sysfile crash_notes_size to export the exact percpu
> > note size and let the kexec-tools parse it intead of using 1024.
> >
> > The idea came from Vivek Goyal. And a later patch will be sent to
> > kexec-tools to let it parse the size.
Acked-by: Simon Horman <[email protected]>
> >
> > Cc: Greg KH <[email protected]>
> > Cc: "Eric W. Biederman" <[email protected]>
> > Cc: Vivek Goyal <[email protected]>
> > Signed-off-by: Zhang Yanfei <[email protected]>
> > ---
> > drivers/base/cpu.c | 14 ++++++++++++++
> > 1 files changed, 14 insertions(+), 0 deletions(-)
> >
> > diff --git a/drivers/base/cpu.c b/drivers/base/cpu.c
> > index fb10728..a55b590 100644
> > --- a/drivers/base/cpu.c
> > +++ b/drivers/base/cpu.c
> > @@ -132,6 +132,17 @@ static ssize_t show_crash_notes(struct device *dev, struct device_attribute *att
> > return rc;
> > }
> > static DEVICE_ATTR(crash_notes, 0400, show_crash_notes, NULL);
> > +
> > +static ssize_t show_crash_notes_size(struct device *dev,
> > + struct device_attribute *attr,
> > + char *buf)
> > +{
> > + ssize_t rc;
> > +
> > + rc = sprintf(buf, "%lu\n", sizeof(note_buf_t));
> > + return rc;
> > +}
> > +static DEVICE_ATTR(crash_notes_size, 0400, show_crash_notes_size, NULL);
> > #endif
> >
> > /*
> > @@ -259,6 +270,9 @@ int __cpuinit register_cpu(struct cpu *cpu, int num)
> > #ifdef CONFIG_KEXEC
> > if (!error)
> > error = device_create_file(&cpu->dev, &dev_attr_crash_notes);
> > + if (!error)
> > + error = device_create_file(&cpu->dev,
> > + &dev_attr_crash_notes_size);
> > #endif
> > return error;
> > }
>
>
On Thu, Mar 28, 2013 at 04:16:45PM +0800, Zhang Yanfei wrote:
> Add an Documentation/ABI entry for /sys/devices/system/cpu/cpu0/crash_notes
> and /sys/devices/system/cpu/cpu0/crash_notes_size.
>
> Cc: Greg KH <[email protected]>
> Cc: "Eric W. Biederman" <[email protected]>
> Cc: Vivek Goyal <[email protected]>
> Signed-off-by: Zhang Yanfei <[email protected]>
Assuming that patch 1 of this series is accepted:
Acked-by: Simon Horman <[email protected]>
> ---
> Documentation/ABI/testing/sysfs-devices-system-cpu | 12 ++++++++++++
> 1 files changed, 12 insertions(+), 0 deletions(-)
>
> diff --git a/Documentation/ABI/testing/sysfs-devices-system-cpu b/Documentation/ABI/testing/sysfs-devices-system-cpu
> index 9c978dc..2447698 100644
> --- a/Documentation/ABI/testing/sysfs-devices-system-cpu
> +++ b/Documentation/ABI/testing/sysfs-devices-system-cpu
> @@ -173,3 +173,15 @@ Description: Processor frequency boosting control
> Boosting allows the CPU and the firmware to run at a frequency
> beyound it's nominal limit.
> More details can be found in Documentation/cpu-freq/boost.txt
> +
> +
> +What: /sys/devices/system/cpu/cpu#/crash_notes
> + /sys/devices/system/cpu/cpu#/crash_notes_size
> +Date: April 2013
> +Contact: [email protected]
> +Description: address and size of the percpu note.
> +
> + crash_notes: the physical address of the memory that holds the
> + note of cpu#.
> +
> + crash_notes_size: size of the note of cpu#.
> --
> 1.7.1
>
>
> _______________________________________________
> kexec mailing list
> [email protected]
> http://lists.infradead.org/mailman/listinfo/kexec
>