[Crash-utility] Fix for kmem -p

Dave Anderson anderson at redhat.com
Fri Feb 17 20:31:27 UTC 2006


Dave Anderson wrote:  Or perhaps just put

> a bunch of dashes in the MAPPING field.  Or something like
> that.
>
> Dave
>

This is what I'm thinking -- it just puts dashes in the
MAPPING and INDEX columns if the kernel uses this type
of page structure:


--- memory.c    14 Feb 2006 20:13:46 -0000      1.112
+++ memory.c    17 Feb 2006 20:36:58 -0000
@@ -3482,7 +3482,7 @@
 {
        long i, n;
        long total_pages;
-       int others, page_not_mapped, phys_not_mapped;
+       int others, page_not_mapped, phys_not_mapped, page_mapping;
        ulong pp, ppend;
        physaddr_t phys, physend;
        ulong tmp, reserved, shared, slabs;
@@ -3694,10 +3694,12 @@
                                continue;
                        }

+                       page_mapping = VALID_MEMBER(page_mapping);
+
                        if (v22) {
                                inode = ULONG(pcache + OFFSET(page_inode));
                                offset = ULONG(pcache + OFFSET(page_offset));
-                       } else {
+                       } else if (page_mapping) {
                                mapping = ULONG(pcache +
                                        OFFSET(page_mapping));
                                index = ULONG(pcache + OFFSET(page_index));
@@ -3740,6 +3742,20 @@
                                         space(MINSPACE),
                                        mkstring(buf4, 8, CENTER|RJUST, " "),
                                         " ");
+                               else if (!page_mapping)
+                                fprintf(fp, "%s%s%s%s%s%s%s %2d ",
+                                        mkstring(buf0, VADDR_PRLEN,
+                                        LJUST|LONG_HEX, MKSTR(pp)),
+                                        space(MINSPACE),
+                                        mkstring(buf1, MAX(PADDR_PRLEN,
+                                        strlen("PHYSICAL")),
+                                        RJUST|LONGLONG_HEX, MKSTR(&phys)),
+                                        space(MINSPACE),
+                                        mkstring(buf3, VADDR_PRLEN,
+                                        CENTER|RJUST, "-------"),
+                                        space(MINSPACE),
+                                        mkstring(buf4, 8, CENTER|RJUST, "-----"),
+                                        count);
                                else
                                 fprintf(fp, "%s%s%s%s%s%s%8ld %2d ",
                                        mkstring(buf0, VADDR_PRLEN,

Dave

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/crash-utility/attachments/20060217/57326d6f/attachment.htm>


More information about the Crash-utility mailing list