All of lore.kernel.org
 help / color / mirror / Atom feed
From: HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com>
To: Vivek Goyal <vgoyal@redhat.com>
Cc: Baoquan He <bhe@redhat.com>,
	Kexec Mailing List <kexec@lists.infradead.org>,
	linux kernel mailing list <linux-kernel@vger.kernel.org>,
	Atsushi Kumagai <kumagai-atsushi@mxc.nes.nec.co.jp>,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	Dave Young <dyoung@redhat.com>, WANG Chao <chaowang@redhat.com>
Subject: Re: /proc/vmcore mmap() failure issue
Date: Fri, 15 Nov 2013 18:41:52 +0900	[thread overview]
Message-ID: <5285EC60.1060906@jp.fujitsu.com> (raw)
In-Reply-To: <20131114151359.GA3913@redhat.com>

(2013/11/15 0:13), Vivek Goyal wrote:
> On Thu, Nov 14, 2013 at 07:31:37PM +0900, HATAYAMA Daisuke wrote:
>
> [..]
>> BTW, I previously found a part of makedumpfile that truncates the first and
>> last pages if they are not aligned in page size. Discussing with Kumagai-san,
>> the truncation is performed on some ia64 system and he found a valid data in
>> the truncated area, and the latest makedumpfile no longer does such
>> truncation.
>
> I went through the mail thread link you posted below. Looks like
> bootloader had put command line in that area and that would be truncated
> if we exclude partial pages from vmcore.
>
> I don't know about IA64, but on x86, I see that we are trimming partial
> pages before they are added to memblock. So any memory allocations after
> this should not happen in partial page area. Bootloader still might
> place some things in those partial pages I guess.
>
> So do we care about that little bootloader data if it happens to be
> there. Dump mechanism works only after kdump service has been loaded.
> That means first kernel is up and running. That means any relevant
> data passed to us from bootloader has already been copied in kernel
> memory and kernel did not crash. So to me, we don't have a strong
> need to look at exactly how bootloader passed data looked originally.
> We can just look at kernel copy of associated data structures (bootparams,
> command line etc).
>
> I think being able to mmap() vmcore is much more important. BTW, is
> it possible to change makedumpfile so that it uses mmap() for reading
> page aligned areas and falls back to read() interface for reading
> partial pages? (Though it is beginning to sound already complicatated
> to me).
>
> Given the fact that hpa does not like fixing it in kernel. We are left
> with option of fixing it in following places.
>
> - Drop partial pages in kexec-tools
> - Drop partial pages in makeudmpfile.
> - Read partial pages using read() interface in makedumpfile
> - Modify /proc/vmcore to copy partial pages in second kernel's memory.
>
> It is not clear to me that partial pages are really useful.  So I want
> to avoid modifying /proc/vmcore to deal with partial pages and increase
> complexity.
>
> So fixing makedumpfile (either option2 or option 3) seems least risky
> to me. In fact I would say let us keep it simple and truncate partial
> pages in makedumpfile to keep it simple. And look at option 3 once we
> have a strong use case for partial pages.
>
> What do you think?
>

As you say, it's not clear that partial pages are really useful, but on
the other hand, it seems to me not clear that they are really useless.
I think we should get them as long as we have access to them.

It seems best to me the option 3). Switching between read and mmap would
be not so complex and also it's by far flexible in makedumpfile than in
kernel.

Also, I think it better for /proc/vmcore to disable mmap on partial
pages in order to avoid the issue here.

-- 
Thanks.
HATAYAMA, Daisuke


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

WARNING: multiple messages have this Message-ID (diff)
From: HATAYAMA Daisuke <d.hatayama@jp.fujitsu.com>
To: Vivek Goyal <vgoyal@redhat.com>
Cc: Baoquan He <bhe@redhat.com>,
	Kexec Mailing List <kexec@lists.infradead.org>,
	linux kernel mailing list <linux-kernel@vger.kernel.org>,
	Atsushi Kumagai <kumagai-atsushi@mxc.nes.nec.co.jp>,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	Dave Young <dyoung@redhat.com>, WANG Chao <chaowang@redhat.com>
Subject: Re: /proc/vmcore mmap() failure issue
Date: Fri, 15 Nov 2013 18:41:52 +0900	[thread overview]
Message-ID: <5285EC60.1060906@jp.fujitsu.com> (raw)
In-Reply-To: <20131114151359.GA3913@redhat.com>

(2013/11/15 0:13), Vivek Goyal wrote:
> On Thu, Nov 14, 2013 at 07:31:37PM +0900, HATAYAMA Daisuke wrote:
>
> [..]
>> BTW, I previously found a part of makedumpfile that truncates the first and
>> last pages if they are not aligned in page size. Discussing with Kumagai-san,
>> the truncation is performed on some ia64 system and he found a valid data in
>> the truncated area, and the latest makedumpfile no longer does such
>> truncation.
>
> I went through the mail thread link you posted below. Looks like
> bootloader had put command line in that area and that would be truncated
> if we exclude partial pages from vmcore.
>
> I don't know about IA64, but on x86, I see that we are trimming partial
> pages before they are added to memblock. So any memory allocations after
> this should not happen in partial page area. Bootloader still might
> place some things in those partial pages I guess.
>
> So do we care about that little bootloader data if it happens to be
> there. Dump mechanism works only after kdump service has been loaded.
> That means first kernel is up and running. That means any relevant
> data passed to us from bootloader has already been copied in kernel
> memory and kernel did not crash. So to me, we don't have a strong
> need to look at exactly how bootloader passed data looked originally.
> We can just look at kernel copy of associated data structures (bootparams,
> command line etc).
>
> I think being able to mmap() vmcore is much more important. BTW, is
> it possible to change makedumpfile so that it uses mmap() for reading
> page aligned areas and falls back to read() interface for reading
> partial pages? (Though it is beginning to sound already complicatated
> to me).
>
> Given the fact that hpa does not like fixing it in kernel. We are left
> with option of fixing it in following places.
>
> - Drop partial pages in kexec-tools
> - Drop partial pages in makeudmpfile.
> - Read partial pages using read() interface in makedumpfile
> - Modify /proc/vmcore to copy partial pages in second kernel's memory.
>
> It is not clear to me that partial pages are really useful.  So I want
> to avoid modifying /proc/vmcore to deal with partial pages and increase
> complexity.
>
> So fixing makedumpfile (either option2 or option 3) seems least risky
> to me. In fact I would say let us keep it simple and truncate partial
> pages in makedumpfile to keep it simple. And look at option 3 once we
> have a strong use case for partial pages.
>
> What do you think?
>

As you say, it's not clear that partial pages are really useful, but on
the other hand, it seems to me not clear that they are really useless.
I think we should get them as long as we have access to them.

It seems best to me the option 3). Switching between read and mmap would
be not so complex and also it's by far flexible in makedumpfile than in
kernel.

Also, I think it better for /proc/vmcore to disable mmap on partial
pages in order to avoid the issue here.

-- 
Thanks.
HATAYAMA, Daisuke


  reply	other threads:[~2013-11-15  9:43 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-13 20:41 /proc/vmcore mmap() failure issue Vivek Goyal
2013-11-13 20:41 ` Vivek Goyal
2013-11-13 21:04 ` Vivek Goyal
2013-11-13 21:04   ` Vivek Goyal
2013-11-13 21:14   ` H. Peter Anvin
2013-11-13 21:14     ` H. Peter Anvin
2013-11-13 22:41     ` Vivek Goyal
2013-11-13 22:41       ` Vivek Goyal
2013-11-13 22:44       ` H. Peter Anvin
2013-11-13 22:44         ` H. Peter Anvin
2013-11-13 23:00         ` Vivek Goyal
2013-11-13 23:00           ` Vivek Goyal
2013-11-13 23:08           ` H. Peter Anvin
2013-11-13 23:08             ` H. Peter Anvin
2013-11-14 10:31 ` HATAYAMA Daisuke
2013-11-14 10:31   ` HATAYAMA Daisuke
2013-11-14 15:13   ` Vivek Goyal
2013-11-14 15:13     ` Vivek Goyal
2013-11-15  9:41     ` HATAYAMA Daisuke [this message]
2013-11-15  9:41       ` HATAYAMA Daisuke
2013-11-15 14:26       ` Vivek Goyal
2013-11-15 14:26         ` Vivek Goyal
2013-11-18  0:51         ` Atsushi Kumagai
2013-11-18  0:51           ` Atsushi Kumagai
2013-11-18 13:55           ` Vivek Goyal
2013-11-18 13:55             ` Vivek Goyal
2013-11-20  5:29             ` Atsushi Kumagai
2013-11-20  5:29               ` Atsushi Kumagai
2013-11-20 14:59               ` Vivek Goyal
2013-11-20 14:59                 ` Vivek Goyal
2013-11-21  5:00                 ` Atsushi Kumagai
2013-11-21  5:00                   ` Atsushi Kumagai
2013-11-21  8:31                   ` HATAYAMA Daisuke
2013-11-21  8:31                     ` HATAYAMA Daisuke
2013-11-21 16:52                     ` Vivek Goyal
2013-11-21 16:52                       ` Vivek Goyal
2013-11-25  8:10                       ` Atsushi Kumagai
2013-11-25  8:10                         ` Atsushi Kumagai
2013-11-25  9:01                         ` HATAYAMA Daisuke
2013-11-25  9:01                           ` HATAYAMA Daisuke
2013-11-25 14:41                           ` Vivek Goyal
2013-11-25 14:41                             ` Vivek Goyal
2013-11-26  1:51                             ` Atsushi Kumagai
2013-11-26  1:51                               ` Atsushi Kumagai
2013-11-26  5:16                             ` HATAYAMA Daisuke
2013-11-26  5:16                               ` HATAYAMA Daisuke
2013-11-19  9:55           ` HATAYAMA Daisuke
2013-11-19  9:55             ` HATAYAMA Daisuke
2013-11-20  5:27             ` Atsushi Kumagai
2013-11-20  5:27               ` Atsushi Kumagai
2013-11-20  6:43               ` HATAYAMA Daisuke
2013-11-20  6:43                 ` HATAYAMA Daisuke
2013-11-26  1:52                 ` Atsushi Kumagai
2013-11-26  1:52                   ` Atsushi Kumagai
2013-11-21  7:14               ` chaowang
2013-11-21  7:14                 ` chaowang
2013-11-25  8:09                 ` Atsushi Kumagai
2013-11-25  8:09                   ` Atsushi Kumagai
2013-11-26  3:29                   ` chaowang
2013-11-26  3:29                     ` chaowang

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=5285EC60.1060906@jp.fujitsu.com \
    --to=d.hatayama@jp.fujitsu.com \
    --cc=bhe@redhat.com \
    --cc=chaowang@redhat.com \
    --cc=dyoung@redhat.com \
    --cc=ebiederm@xmission.com \
    --cc=kexec@lists.infradead.org \
    --cc=kumagai-atsushi@mxc.nes.nec.co.jp \
    --cc=linux-kernel@vger.kernel.org \
    --cc=vgoyal@redhat.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.