So, the key will be to find a difference between 2.6.10 and
2.6.11's symbol contents.
Hi Badari,
Looking at what appears to be Andi's wholesale patch set that
made the VM changes, I think it may be possible to use
"boot_vmalloc_pgt" as a qualifier, because it went away with
the new scheme. Also, "vmalloc_fault" was added, but since
it's a static function, its only caller may have inlined it
in the new kernel.
Also, given the VM changes, I'm still amazed that the virtual
to physical translation of vmalloc and user page addresses
still works. Are you sure that "vtop" on vmalloc and user
space addresses works correctly?
To verify user-space address translation is working, you
should be able to do something like this. Run crash in a
live session, and look at the very beginning of its address
space, and read the first few bytes:
crash> set
PID: 8052
COMMAND: "crash"
TASK: 10018e1f7f0 [THREAD_INFO: 100189e4000]
CPU: 3
STATE: TASK_RUNNING (ACTIVE)
crash> vm
PID: 8052 TASK: 10018e1f7f0 CPU: 3 COMMAND: "crash"
MM PGD RSS TOTAL_VM
1002fc08040 10018286000 63376k 121176k
VMA START END FLAGS FILE
1002b8269f8 400000 788000 1875 /usr/bin/crash
1002bb5d3c8 888000 8ab000 101873 /usr/bin/crash
100288d9408 8ab000 8f8000 100077
100302a0688 9aa000 9c2000 101873 /usr/bin/crash
10028f49b98 9c2000 1b50000 100077
10028f49358 2a95556000 2a95558000 100073
1002edad688 2a95584000 2a95587000 100073
...
crash> rd -u 0x400000
400000: 00010102464c457f .ELF....
crash>
You should see the first bytes of the executable's ELF header,
as verified by the "ELF" string there.
To verify module virtual addresses translation, try disassembling
a module text address, say some ext3 function, and verifying that
it makes sense?
Thanks,
Dave