[PATCH]: fix makedumpfile cache page exclusion dump levels.
tachibana at mxm.nes.nec.co.jp
tachibana at mxm.nes.nec.co.jp
Wed Jul 27 04:04:16 EDT 2011
Hi Thayumanavar,
On 2011/07/25 22:55:35 +0530, Thayumanavar S <thayumker at gmail.com> wrote:
> Looking at the code in depth the condition for exclusion of cache
> private seem to exclude cache pages including private pages. The
> levels cache page ( exclude private ) and cache private (cache page
> with private) need to be mutually exclusive.The following patch fixes
> this:
Thank you for the patches.
Your idea is reasonable. But we made the dump level 4 (excluding cache
pages including private pages) for diskdump compatibility. And I worry about
influence of changing the meaning of the dump level.
So I'd like to correct man data at the next version.
Thanks
tachibana
>
> Signed-off-by: thayumker at gmail.com
> diff --git a/makedumpfile.8 b/makedumpfile.8
> index b9a3bf0..dd7960b 100644
> --- a/makedumpfile.8
> +++ b/makedumpfile.8
> @@ -138,32 +138,32 @@ by dump_level 11, makedumpfile retries it by
> dump_level 31.
> 1 | X | | | |
> 2 | | X | | |
> 3 | X | X | | |
> - 4 | | X | X | |
> - 5 | X | X | X | |
> + 4 | | | X | |
> + 5 | X | | X | |
> 6 | | X | X | |
> 7 | X | X | X | |
> 8 | | | | X |
> 9 | X | | | X |
> 10 | | X | | X |
> 11 | X | X | | X |
> - 12 | | X | X | X |
> - 13 | X | X | X | X |
> + 12 | | | X | X |
> + 13 | X | | X | X |
> 14 | | X | X | X |
> 15 | X | X | X | X |
> 16 | | | | | X
> 17 | X | | | | X
> 18 | | X | | | X
> 19 | X | X | | | X
> - 20 | | X | X | | X
> - 21 | X | X | X | | X
> + 20 | | | X | | X
> + 21 | X | | X | | X
> 22 | | X | X | | X
> 23 | X | X | X | | X
> 24 | | | | X | X
> 25 | X | | | X | X
> 26 | | X | | X | X
> 27 | X | X | | X | X
> - 28 | | X | X | X | X
> - 29 | X | X | X | X | X
> + 28 | | | X | X | X
> + 29 | X | | X | X | X
> 30 | | X | X | X | X
> 31 | X | X | X | X | X
>
> diff --git a/makedumpfile.c b/makedumpfile.c
> index 7d0c663..e117f31 100644
> --- a/makedumpfile.c
> +++ b/makedumpfile.c
> @@ -5015,7 +5015,7 @@ __exclude_unnecessary_pages(unsigned long mem_map,
> */
> else if ((info->dump_level & DL_EXCLUDE_CACHE_PRI)
> && (isLRU(flags) || isSwapCache(flags))
> - && !isAnon(mapping)) {
> + && isPrivate(flags) && !isAnon(mapping)) {
> clear_bit_on_2nd_bitmap_for_kernel(pfn);
> pfn_cache_private++;
> }
>
>
> or
> Correct the makedumpfile man making it more explicit so that the
> end-users can understand.The following patch fixes this:
> --- a/makedumpfile.8
> +++ b/makedumpfile.8
> @@ -130,42 +130,43 @@ by dump_level 11, makedumpfile retries it by
> dump_level 31.
> .br
> # makedumpfile \-d 11,31 \-x vmlinux /proc/vmcore dumpfile
>
> - dump | zero | cache|cache | user | free
> - level | page | page |private| data | page
> + dump | zero | cache page |cache page | user | free
> + level | page | (exlude priv)|(include priv)| data | page
> + | |
> .br
> \-\-\-\-\-\-\-+\-\-\-\-\-\-+\-\-\-\-\-\-+\-\-\-\-\-\-\-+\-\-\-\-\-\-+\-\-\-\-\-\-
> - 0 | | | | |
> - 1 | X | | | |
> - 2 | | X | | |
> - 3 | X | X | | |
> - 4 | | X | X | |
> - 5 | X | X | X | |
> - 6 | | X | X | |
> - 7 | X | X | X | |
> - 8 | | | | X |
> - 9 | X | | | X |
> - 10 | | X | | X |
> - 11 | X | X | | X |
> - 12 | | X | X | X |
> - 13 | X | X | X | X |
> - 14 | | X | X | X |
> - 15 | X | X | X | X |
> - 16 | | | | | X
> - 17 | X | | | | X
> - 18 | | X | | | X
> - 19 | X | X | | | X
> - 20 | | X | X | | X
> - 21 | X | X | X | | X
> - 22 | | X | X | | X
> - 23 | X | X | X | | X
> - 24 | | | | X | X
> - 25 | X | | | X | X
> - 26 | | X | | X | X
> - 27 | X | X | | X | X
> - 28 | | X | X | X | X
> - 29 | X | X | X | X | X
> - 30 | | X | X | X | X
> - 31 | X | X | X | X | X
> + 0 | | | | |
> + 1 | X | | | |
> + 2 | | | X | |
> + 3 | X | | X | |
> + 4 | | X | X | |
> + 5 | X | X | X | |
> + 6 | | X | X | |
> + 7 | X | X | X | |
> + 8 | | | | X |
> + 9 | X | | | X |
> + 10 | | | X | X |
> + 11 | X | | X | X |
> + 12 | | X | X | X |
> + 13 | X | X | X | X |
> + 14 | | X | X | X |
> + 15 | X | X | X | X |
> + 16 | | | | | X
> + 17 | X | | | | X
> + 18 | | | X | | X
> + 19 | X | | X | | X
> + 20 | | X | X | | X
> + 21 | X | X | X | | X
> + 22 | | X | X | | X
> + 23 | X | X | X | | X
> + 24 | | | | X | X
> + 25 | X | | | X | X
> + 26 | | | X | X | X
> + 27 | X | | X | X | X
> + 28 | | X | X | X | X
> + 29 | X | X | X | X | X
> + 30 | | X | X | X | X
> + 31 | X | X | X | X | X
>
>
> .TP
>
>
> On Sat, Jul 9, 2011 at 9:49 AM, Thayumanavar S <thayumker at gmail.com> wrote:
> > I believe that makedumpfile man page which descirbe the dump file and
> > corressponding page exclusion table appears to have incorrect
> > inentries ( such as 5&7 having value,likewise 29&31) and not following
> > the bitmask as mentioned in the code.
> > Below code fixes this issue.
> >
> > Signed-off-by: thayumker at gmail.com
> > diff --git a/makedumpfile.8 b/makedumpfile.8
> > index b9a3bf0..dd7960b 100644
> > --- a/makedumpfile.8
> > +++ b/makedumpfile.8
> > @@ -138,32 +138,32 @@ by dump_level 11, makedumpfile retries it by
> > dump_level 31.
> > 1 | X | | | |
> > 2 | | X | | |
> > 3 | X | X | | |
> > - 4 | | X | X | |
> > - 5 | X | X | X | |
> > + 4 | | | X | |
> > + 5 | X | | X | |
> > 6 | | X | X | |
> > 7 | X | X | X | |
> > 8 | | | | X |
> > 9 | X | | | X |
> > 10 | | X | | X |
> > 11 | X | X | | X |
> > - 12 | | X | X | X |
> > - 13 | X | X | X | X |
> > + 12 | | | X | X |
> > + 13 | X | | X | X |
> > 14 | | X | X | X |
> > 15 | X | X | X | X |
> > 16 | | | | | X
> > 17 | X | | | | X
> > 18 | | X | | | X
> > 19 | X | X | | | X
> > - 20 | | X | X | | X
> > - 21 | X | X | X | | X
> > + 20 | | | X | | X
> > + 21 | X | | X | | X
> > 22 | | X | X | | X
> > 23 | X | X | X | | X
> > 24 | | | | X | X
> > 25 | X | | | X | X
> > 26 | | X | | X | X
> > 27 | X | X | | X | X
> > - 28 | | X | X | X | X
> > - 29 | X | X | X | X | X
> > + 28 | | | X | X | X
> > + 29 | X | | X | X | X
> > 30 | | X | X | X | X
> > 31 | X | X | X | X | X
> >
>
---------------------------------------------------------------------
> _______________________________________________
> kexec mailing list
> kexec at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec
>
More information about the kexec
mailing list