> 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