Dave Anderson wrote: > I can reproduce it on a bare-metal RHEL5 kernel, so let me > figure out what's going on... Hello Yang, The problem is that the functions that implement the search command were originally written to be processor-neutral on machines with a relatively small, contiguous, unity-mapped kernel/static-data region and a vmalloc region. With the advent of machines with sparse memory regions, architectures with separately-mapped kernel regions that are no longer part of their unity-mapped regions, the command does not scale well because too much time is spent dealing with inter-region non-existent memory. It's due for a proper re-write with a machine-dependent next_kpage() assist function. I was mistaken in stating that your patch would skip the vmalloc section, but it could only compile on an ia64. Attached is an ugly patch that does does the same thing as yours did, compiles on all architectures, and would still work on 2.4-era ia64 kernels whose kernel text/static-data were still located in the unity-mapped region 7. Some day I'll get around to a real fix... Thanks, Dave
--- memory.c.orig 2008-03-28 14:53:37.000000000 -0400 +++ memory.c 2008-03-28 14:51:41.000000000 -0400 @@ -10942,6 +10942,10 @@ case 'k': if (!sflag) { start = machdep->kvbase; + if (machine_type("IA64") && + (start < machdep->identity_map_base) && + (kt->stext > start)) + start = kt->stext; sflag++; } memtype = KVADDR;
-- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility