All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vivek Goyal <vgoyal@redhat.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com>,
	ebiederm@xmission.com, cpw@sgi.com,
	kumagai-atsushi@mxc.nes.nec.co.jp, lisa.mitchell@hp.com,
	heiko.carstens@de.ibm.com, kexec@lists.infradead.org,
	linux-kernel@vger.kernel.org, zhangyanfei@cn.fujitsu.com
Subject: Re: [PATCH v3 18/21] vmcore: check if vmcore objects satify mmap()'s page-size boundary requirement
Date: Wed, 20 Mar 2013 09:51:33 -0400	[thread overview]
Message-ID: <20130320135133.GD17274@redhat.com> (raw)
In-Reply-To: <20130319130229.fe83c985678146980ecc6102@linux-foundation.org>

On Tue, Mar 19, 2013 at 01:02:29PM -0700, Andrew Morton wrote:
> On Sat, 16 Mar 2013 13:02:29 +0900 HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com> wrote:
> 
> > If there's some vmcore object that doesn't satisfy page-size boundary
> > requirement, remap_pfn_range() fails to remap it to user-space.
> > 
> > Objects that posisbly don't satisfy the requirement are ELF note
> > segments only. The memory chunks corresponding to PT_LOAD entries are
> > guaranteed to satisfy page-size boundary requirement by the copy from
> > old memory to buffer in 2nd kernel done in later patch.
> > 
> > This patch doesn't copy each note segment into the 2nd kernel since
> > they amount to so large in total if there are multiple CPUs. For
> > example, current maximum number of CPUs in x86_64 is 5120, where note
> > segments exceed 1MB with NT_PRSTATUS only.
> 
> I don't really understand this.  Why does the number of or size of
> note segments affect their alignment?
> 
> > --- a/fs/proc/vmcore.c
> > +++ b/fs/proc/vmcore.c
> > @@ -38,6 +38,8 @@ static u64 vmcore_size;
> >  
> >  static struct proc_dir_entry *proc_vmcore = NULL;
> >  
> > +static bool support_mmap_vmcore;
> 
> This is quite regrettable.  It means that on some kernels/machines,
> mmap(vmcore) simply won't work.  This means that people might write
> code which works for them, but which will fail for others when deployed
> on a small number of machines.
> 
> Can we avoid this?  Why can't we just copy the notes even if there are
> a large number of them?

Actually initially he implemented copying notes to second kernel and I 
suggested to go other way (Tried too hard to save memory in second
kernel). I guess it was not a good idea and copying notes keeps it simple.

Thanks
Vivek

WARNING: multiple messages have this Message-ID (diff)
From: Vivek Goyal <vgoyal@redhat.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: kexec@lists.infradead.org, heiko.carstens@de.ibm.com,
	linux-kernel@vger.kernel.org, lisa.mitchell@hp.com,
	HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com>,
	kumagai-atsushi@mxc.nes.nec.co.jp, ebiederm@xmission.com,
	zhangyanfei@cn.fujitsu.com, cpw@sgi.com
Subject: Re: [PATCH v3 18/21] vmcore: check if vmcore objects satify mmap()'s page-size boundary requirement
Date: Wed, 20 Mar 2013 09:51:33 -0400	[thread overview]
Message-ID: <20130320135133.GD17274@redhat.com> (raw)
In-Reply-To: <20130319130229.fe83c985678146980ecc6102@linux-foundation.org>

On Tue, Mar 19, 2013 at 01:02:29PM -0700, Andrew Morton wrote:
> On Sat, 16 Mar 2013 13:02:29 +0900 HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com> wrote:
> 
> > If there's some vmcore object that doesn't satisfy page-size boundary
> > requirement, remap_pfn_range() fails to remap it to user-space.
> > 
> > Objects that posisbly don't satisfy the requirement are ELF note
> > segments only. The memory chunks corresponding to PT_LOAD entries are
> > guaranteed to satisfy page-size boundary requirement by the copy from
> > old memory to buffer in 2nd kernel done in later patch.
> > 
> > This patch doesn't copy each note segment into the 2nd kernel since
> > they amount to so large in total if there are multiple CPUs. For
> > example, current maximum number of CPUs in x86_64 is 5120, where note
> > segments exceed 1MB with NT_PRSTATUS only.
> 
> I don't really understand this.  Why does the number of or size of
> note segments affect their alignment?
> 
> > --- a/fs/proc/vmcore.c
> > +++ b/fs/proc/vmcore.c
> > @@ -38,6 +38,8 @@ static u64 vmcore_size;
> >  
> >  static struct proc_dir_entry *proc_vmcore = NULL;
> >  
> > +static bool support_mmap_vmcore;
> 
> This is quite regrettable.  It means that on some kernels/machines,
> mmap(vmcore) simply won't work.  This means that people might write
> code which works for them, but which will fail for others when deployed
> on a small number of machines.
> 
> Can we avoid this?  Why can't we just copy the notes even if there are
> a large number of them?

Actually initially he implemented copying notes to second kernel and I 
suggested to go other way (Tried too hard to save memory in second
kernel). I guess it was not a good idea and copying notes keeps it simple.

Thanks
Vivek

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

  parent reply	other threads:[~2013-03-20 13:51 UTC|newest]

Thread overview: 152+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-16  4:00 [PATCH v3 00/21] kdump, vmcore: support mmap() on /proc/vmcore HATAYAMA Daisuke
2013-03-16  4:00 ` HATAYAMA Daisuke
2013-03-16  4:00 ` [PATCH v3 01/21] vmcore: reference e_phoff member explicitly to get position of program header table HATAYAMA Daisuke
2013-03-16  4:00   ` HATAYAMA Daisuke
2013-03-19 21:44   ` Eric W. Biederman
2013-03-19 21:44     ` Eric W. Biederman
2013-03-21  2:50     ` HATAYAMA Daisuke
2013-03-21  2:50       ` HATAYAMA Daisuke
2013-03-21  6:11       ` Eric W. Biederman
2013-03-21  6:11         ` Eric W. Biederman
2013-03-21 14:12       ` Vivek Goyal
2013-03-21 14:12         ` Vivek Goyal
2013-03-22  0:25         ` HATAYAMA Daisuke
2013-03-22  0:25           ` HATAYAMA Daisuke
2013-03-16  4:00 ` [PATCH v3 02/21] vmcore: clean up by removing unnecessary variable HATAYAMA Daisuke
2013-03-16  4:00   ` HATAYAMA Daisuke
2013-03-16  4:01 ` [PATCH v3 03/21] vmcore: rearrange program headers without assuming consequtive PT_NOTE entries HATAYAMA Daisuke
2013-03-16  4:01   ` HATAYAMA Daisuke
2013-03-19 21:59   ` Eric W. Biederman
2013-03-19 21:59     ` Eric W. Biederman
2013-03-16  4:01 ` [PATCH v3 04/21] vmcore, sysfs: export ELF note segment size instead of vmcoreinfo data size HATAYAMA Daisuke
2013-03-16  4:01   ` HATAYAMA Daisuke
2013-03-16  4:01 ` [PATCH v3 05/21] vmcore: allocate buffer for ELF headers on page-size alignment HATAYAMA Daisuke
2013-03-16  4:01   ` HATAYAMA Daisuke
2013-03-16  4:01 ` [PATCH v3 06/21] vmcore: round up buffer size of ELF headers by PAGE_SIZE HATAYAMA Daisuke
2013-03-16  4:01   ` HATAYAMA Daisuke
2013-03-19 22:07   ` Eric W. Biederman
2013-03-19 22:07     ` Eric W. Biederman
2013-03-16  4:01 ` [PATCH v3 07/21] vmcore, procfs: introduce a flag to distinguish objects copied in 2nd kernel HATAYAMA Daisuke
2013-03-16  4:01   ` HATAYAMA Daisuke
2013-03-19 19:35   ` Andrew Morton
2013-03-19 19:35     ` Andrew Morton
2013-03-16  4:01 ` [PATCH v3 08/21] vmcore: copy non page-size aligned head and tail pages " HATAYAMA Daisuke
2013-03-16  4:01   ` HATAYAMA Daisuke
2013-03-19 19:37   ` Andrew Morton
2013-03-19 19:37     ` Andrew Morton
2013-03-19 20:59   ` Eric W. Biederman
2013-03-19 20:59     ` Eric W. Biederman
2013-03-19 21:22     ` Vivek Goyal
2013-03-19 21:22       ` Vivek Goyal
2013-03-19 23:35       ` Eric W. Biederman
2013-03-19 23:35         ` Eric W. Biederman
2013-03-16  4:01 ` [PATCH v3 09/21] vmcore: modify vmcore clean-up function to free buffer on " HATAYAMA Daisuke
2013-03-16  4:01   ` HATAYAMA Daisuke
2013-03-16  4:01 ` [PATCH v3 10/21] vmcore: clean up read_vmcore() HATAYAMA Daisuke
2013-03-16  4:01   ` HATAYAMA Daisuke
2013-03-16  4:01 ` [PATCH v3 11/21] vmcore: read buffers for vmcore objects copied from old memory HATAYAMA Daisuke
2013-03-16  4:01   ` HATAYAMA Daisuke
2013-03-16  4:01 ` [PATCH v3 12/21] vmcore: allocate per-cpu crash_notes objects on page-size boundary HATAYAMA Daisuke
2013-03-16  4:01   ` HATAYAMA Daisuke
2013-03-19 21:06   ` Eric W. Biederman
2013-03-19 21:06     ` Eric W. Biederman
2013-03-19 22:12   ` Eric W. Biederman
2013-03-19 22:12     ` Eric W. Biederman
2013-03-20 13:48     ` Vivek Goyal
2013-03-20 13:48       ` Vivek Goyal
2013-03-20 20:48       ` Eric W. Biederman
2013-03-20 20:48         ` Eric W. Biederman
2013-03-16  4:02 ` [PATCH v3 13/21] kexec: allocate vmcoreinfo note buffer " HATAYAMA Daisuke
2013-03-16  4:02   ` HATAYAMA Daisuke
2013-03-19 21:07   ` Eric W. Biederman
2013-03-19 21:07     ` Eric W. Biederman
2013-03-19 22:12   ` Eric W. Biederman
2013-03-19 22:12     ` Eric W. Biederman
2013-03-16  4:02 ` [PATCH v3 14/21] kexec, elf: introduce NT_VMCORE_DEBUGINFO note type HATAYAMA Daisuke
2013-03-16  4:02   ` HATAYAMA Daisuke
2013-03-16  4:02 ` [PATCH v3 15/21] elf: introduce NT_VMCORE_PAD type HATAYAMA Daisuke
2013-03-16  4:02   ` HATAYAMA Daisuke
2013-03-16  4:02 ` [PATCH v3 16/21] kexec: fill note buffers by NT_VMCORE_PAD notes in page-size boundary HATAYAMA Daisuke
2013-03-16  4:02   ` HATAYAMA Daisuke
2013-03-19 22:17   ` Eric W. Biederman
2013-03-19 22:17     ` Eric W. Biederman
2013-03-16  4:02 ` [PATCH v3 17/21] vmcore: check NT_VMCORE_PAD as a mark indicating the end of ELF note buffer HATAYAMA Daisuke
2013-03-16  4:02   ` HATAYAMA Daisuke
2013-03-19 21:11   ` Eric W. Biederman
2013-03-19 21:11     ` Eric W. Biederman
2013-03-21  2:59     ` HATAYAMA Daisuke
2013-03-21  2:59       ` HATAYAMA Daisuke
2013-03-21  3:54       ` Eric W. Biederman
2013-03-21  3:54         ` Eric W. Biederman
2013-03-21 14:36         ` Vivek Goyal
2013-03-21 14:36           ` Vivek Goyal
2013-03-22  0:30           ` HATAYAMA Daisuke
2013-03-22  0:30             ` HATAYAMA Daisuke
2013-03-22  0:41             ` Eric W. Biederman
2013-03-22  0:41               ` Eric W. Biederman
2013-03-19 22:20   ` Eric W. Biederman
2013-03-19 22:20     ` Eric W. Biederman
2013-03-16  4:02 ` [PATCH v3 18/21] vmcore: check if vmcore objects satify mmap()'s page-size boundary requirement HATAYAMA Daisuke
2013-03-16  4:02   ` HATAYAMA Daisuke
2013-03-19 20:02   ` Andrew Morton
2013-03-19 20:02     ` Andrew Morton
2013-03-19 21:22     ` Eric W. Biederman
2013-03-19 21:22       ` Eric W. Biederman
2013-03-20 13:51     ` Vivek Goyal [this message]
2013-03-20 13:51       ` Vivek Goyal
2013-03-19 22:38   ` Eric W. Biederman
2013-03-19 22:38     ` Eric W. Biederman
2013-03-20 13:57     ` Vivek Goyal
2013-03-20 13:57       ` Vivek Goyal
2013-03-20 20:55       ` Eric W. Biederman
2013-03-20 20:55         ` Eric W. Biederman
2013-03-21  3:25         ` HATAYAMA Daisuke
2013-03-21  3:25           ` HATAYAMA Daisuke
2013-03-21  4:18           ` Eric W. Biederman
2013-03-21  4:18             ` Eric W. Biederman
2013-03-21  6:14             ` HATAYAMA Daisuke
2013-03-21  6:14               ` HATAYAMA Daisuke
2013-03-21  6:29               ` Eric W. Biederman
2013-03-21  6:29                 ` Eric W. Biederman
2013-03-21  6:46                 ` HATAYAMA Daisuke
2013-03-21  6:46                   ` HATAYAMA Daisuke
2013-03-21  7:07                   ` Eric W. Biederman
2013-03-21  7:07                     ` Eric W. Biederman
2013-03-21 15:21                     ` Vivek Goyal
2013-03-21 15:21                       ` Vivek Goyal
2013-03-21 15:27                       ` Vivek Goyal
2013-03-21 15:27                         ` Vivek Goyal
2013-03-22  0:43                         ` HATAYAMA Daisuke
2013-03-22  0:43                           ` HATAYAMA Daisuke
2013-03-22  0:54                         ` Eric W. Biederman
2013-03-22  0:54                           ` Eric W. Biederman
2013-03-22  2:30                           ` HATAYAMA Daisuke
2013-03-22  2:30                             ` HATAYAMA Daisuke
2013-03-21 14:57                 ` Vivek Goyal
2013-03-21 14:57                   ` Vivek Goyal
2013-03-21  7:22               ` Eric W. Biederman
2013-03-21  7:22                 ` Eric W. Biederman
2013-03-21 14:49                 ` Vivek Goyal
2013-03-21 14:49                   ` Vivek Goyal
2013-03-22  7:11                   ` HATAYAMA Daisuke
2013-03-22  7:11                     ` HATAYAMA Daisuke
2013-03-21 13:50         ` Vivek Goyal
2013-03-21 13:50           ` Vivek Goyal
2013-03-16  4:02 ` [PATCH v3 19/21] vmcore: round-up offset of vmcore object in page-size boundary HATAYAMA Daisuke
2013-03-16  4:02   ` HATAYAMA Daisuke
2013-03-16  4:02 ` [PATCH v3 20/21] vmcore: count holes generated by round-up operation for vmcore size HATAYAMA Daisuke
2013-03-16  4:02   ` HATAYAMA Daisuke
2013-03-16  4:02 ` [PATCH v3 21/21] vmcore: introduce mmap_vmcore() HATAYAMA Daisuke
2013-03-16  4:02   ` HATAYAMA Daisuke
2013-03-19 19:30 ` [PATCH v3 00/21] kdump, vmcore: support mmap() on /proc/vmcore Andrew Morton
2013-03-19 19:30   ` Andrew Morton
2013-03-21  3:52   ` HATAYAMA Daisuke
2013-03-21  3:52     ` HATAYAMA Daisuke
2013-03-21  6:16     ` Eric W. Biederman
2013-03-21  6:16       ` Eric W. Biederman
2013-03-21  6:35       ` HATAYAMA Daisuke
2013-03-21  6:35         ` HATAYAMA Daisuke
2013-03-21  7:14         ` Eric W. Biederman
2013-03-21  7:14           ` Eric W. Biederman
2013-03-19 23:16 ` Eric W. Biederman
2013-03-19 23:16   ` Eric W. Biederman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130320135133.GD17274@redhat.com \
    --to=vgoyal@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=cpw@sgi.com \
    --cc=d.hatayama@jp.fujitsu.com \
    --cc=ebiederm@xmission.com \
    --cc=heiko.carstens@de.ibm.com \
    --cc=kexec@lists.infradead.org \
    --cc=kumagai-atsushi@mxc.nes.nec.co.jp \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lisa.mitchell@hp.com \
    --cc=zhangyanfei@cn.fujitsu.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.