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 <horms at verge.net.au> > > > > Cc: Greg KH <gregkh at linuxfoundation.org> > > Cc: "Eric W. Biederman" <ebiederm at xmission.com> > > Cc: Vivek Goyal <vgoyal at redhat.com> > > Signed-off-by: Zhang Yanfei <zhangyanfei at cn.fujitsu.com> > > --- > > 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; > > } > >