* [PATCH]: fix makedumpfile cache page exclusion dump levels.
@ 2011-07-25 17:25 Thayumanavar S
2011-07-27 8:04 ` tachibana
0 siblings, 1 reply; 2+ messages in thread
From: Thayumanavar S @ 2011-07-25 17:25 UTC (permalink / raw)
To: tachibana, kumagai-atsushi, kexec
[-- Attachment #1: Type: text/plain, Size: 8824 bytes --]
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:
Signed-off-by: thayumker@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@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@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
>
[-- Attachment #2: diff1.txt --]
[-- Type: text/plain, Size: 2235 bytes --]
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++;
}
[-- Attachment #3: patch_alt.txt --]
[-- Type: text/plain, Size: 3659 bytes --]
diff --git a/makedumpfile.8 b/makedumpfile.8
index b9a3bf0..27fe7d2 100644
--- 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
[-- Attachment #4: Type: text/plain, Size: 143 bytes --]
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH]: fix makedumpfile cache page exclusion dump levels.
2011-07-25 17:25 [PATCH]: fix makedumpfile cache page exclusion dump levels Thayumanavar S
@ 2011-07-27 8:04 ` tachibana
0 siblings, 0 replies; 2+ messages in thread
From: tachibana @ 2011-07-27 8:04 UTC (permalink / raw)
To: Thayumanavar S; +Cc: kexec, tachibana, kumagai-atsushi
Hi Thayumanavar,
On 2011/07/25 22:55:35 +0530, Thayumanavar S <thayumker@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@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@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@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@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec
>
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-07-27 8:07 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-25 17:25 [PATCH]: fix makedumpfile cache page exclusion dump levels Thayumanavar S
2011-07-27 8:04 ` tachibana
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.