All of lore.kernel.org
 help / color / mirror / Atom feed
From: "\"Zhou, Wenjian/周文剑\"" <zhouwj-fnst@cn.fujitsu.com>
To: Atsushi Kumagai <kumagai-atsushi@mxc.nes.nec.co.jp>
Cc: "kexec@lists.infradead.org" <kexec@lists.infradead.org>
Subject: Re: [PATCH] makedumpfile: Add description of incomplete dump file
Date: Thu, 13 Nov 2014 17:29:55 +0800	[thread overview]
Message-ID: <54647A13.30700@cn.fujitsu.com> (raw)
In-Reply-To: <0910DD04CBD6DE4193FCF86B9C00BE9701D669B6@BPXM01GP.gisp.nec.co.jp>

On 11/13/2014 05:01 PM, Atsushi Kumagai wrote:
> Hello Zhou,
>
>> Add description of incomplete elf and kdump-compressed dump file
>> in IMPLEMENTATION.
>
> That's a good idea, thanks Zhou.
> I have some comments.
>
>> Signed-off-by: Qiao Nuohan<qiaonuohan@cn.fujitsu.com>
>> Signed-off-by: Zhou Wenjian<zhouwj-fnst@cn.fujitsu.com>
>> ---
>> IMPLEMENTATION |   76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>> 1 files changed, 76 insertions(+), 0 deletions(-)
>>
>> diff --git a/IMPLEMENTATION b/IMPLEMENTATION
>> index 2f4cfd6..8f8a945 100644
>> --- a/IMPLEMENTATION
>> +++ b/IMPLEMENTATION
>> @@ -112,3 +112,79 @@
>>          unsigned long long      page_flags;     /* page flags */
>>      } page_desc_t;
>>
>> +* The incomplete DUMPFILE
>> +  When generating DUMPFILE, if ENOSPACE error happens, the DUMPFILE will be
>> +  incomplete.
>> +
>> +  - The incomplete kdump-compressed DUMPFILE
>> +
>> +           the complete                  the incomplete
>> +    +-----------------------+    +-----------------------+
>> +    |      main header      |    |      main header      |  have incomplete flag
>> +    |-----------------------+    |-----------------------+
>> +    |      sub header       |    |      sub header       |
>> +    |-----------------------+    |-----------------------+
>> +    |      1st-bitmap       |    |      1st-bitmap       |
>> +    |-----------------------+    |-----------------------+
>> +    |      2nd-bitmap       |    |      2nd-bitmap       |
>> +    |-----------------------+    |-----------------------+
>> +    | page header for pfn 0 |    | page header for pfn 0 |
>> +    | page header for pfn 1 |    | page header for pfn 1 |
>> +    |                  :    |    |                  :    |
>> +    | page header for pfn N |    | page header for pfn N |  The page headers after
>> +    |                  :    |    |                       |  N don't exist. The
>> +    | page header for pfn Z |    |                       |  value of it is zero,
>> +    |-----------------------|    |-----------------------|  when try to read it.
>> +    |   page data (pfn 0)   |    |   page data (pfn 0)   |
>> +    |   page data (pfn 1)   |    |   page data (pfn 1)   |
>> +    |                  :    |    |                  :    |
>> +    |   page data (pfn N)   |    |   page data (pfn N)   |
>> +    |                  :    |    +-----------------------+
>> +    |   page data (pfn Z)   |
>> +    +-----------------------+
>> +
>> +    The incomplete flag is set into status of disk_dump_header by
>> +                          status |= DUMP_DH_COMPRESSED_INCOMPLETE
>> +    DUMP_DH_COMPRESSED_INCOMPLETE : 0x8
>> +
>> +    The page header and page data are written in pairs. When writting page data
>
> s/writting/writing/
>
>> +    (pfn N+1), if ENOSPACE error happens, the page headers after N won't be
>> +    written either.
>> +
>> +    If there is no page data dumped into the DUMPFILE, the DUMPFILE can't be
>> +    analysed by crash.
>> +
>> +  - The incomplete elf DUMPFILE
>
> There is no description of the ELF format itself in this documentation
> unlike the kdump-compressed format, I would be glad if you could write it.
>
>> +
>> +      the complete          the incomplete
>> +    +-------------+         +-------------+
>> +    |  elf header |         |  elf header |  have incomplete flag
>> +    |-------------+         |-------------+
>> +    |  PT_NOTE    |         |  PT_NOTE    |
>> +    |  PT_LOAD(1) |         |  PT_LOAD(1) |
>> +    |         :   |         |         :   |
>> +    |  PT_LOAD(N) |         |  PT_LOAD(N) |  The PT_LOAD after N don't exist.
>> +    |         :   |         |             |  The value of it is zero, when try
>> +    |  PT_LOAD(Z) |         |             |  to read it.
>> +    |-------------+         |-------------+
>
> The whole program header must exist since reserve_diskspace()
> pre-allocates enough space for it, the description above isn't right.
>
The space exists, but since PT_LOAD and segment are written in pairs,
if ENOSPACE happens, the left PT_LOAD won't be generated and won't be
written as well. The space reserved is for the PT_LOAD still in buffer.

-- 
Thanks
Zhou Wenjian

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

  reply	other threads:[~2014-11-13  9:33 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-12  8:29 [PATCH] makedumpfile: Add description of incomplete dump file Zhou Wenjian
2014-11-13  9:01 ` Atsushi Kumagai
2014-11-13  9:29   ` "Zhou, Wenjian/周文剑" [this message]
2014-11-14  1:21     ` Atsushi Kumagai

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=54647A13.30700@cn.fujitsu.com \
    --to=zhouwj-fnst@cn.fujitsu.com \
    --cc=kexec@lists.infradead.org \
    --cc=kumagai-atsushi@mxc.nes.nec.co.jp \
    /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.