On Wed, 2005-11-02 at 17:34 -0500, Dave Anderson wrote:
> crash> rd -u 0x400000
> rd: invalid user virtual address: 400000 type: "64-bit UVADDR"
Ah, damn it -- it would also be printed later on in
readmem() if uvtop() fails:
while (size > 0) {
switch (memtype)
{
case UVADDR:
if (!uvtop(CURRENT_CONTEXT(), addr, &paddr,
0)) {
if (PRINT_ERROR_MESSAGE)
error(INFO, INVALID_UVADDR,
addr, type);
goto readmem_error;
}
break;
That's probably where it's happening...
I would guess that x86_64_uvtop() needs to immediately
recognize if the new VM scheme is in place, and if so
it should veer off to a new "x86_64_uvtop_lev4()" routine.
Yep. I realized that after sending you e-mail. Now we have
4-level pagetables which include "PUD". I cooked up one,
but its still not working :(
I tried reusing the FILL_PML4 code from x86_64_kvtop()
for x86_64_uvtop() -- it still doesn't work.
I need to spend more time on it to understand it better
before I hack it up blindly.
Thanks,
Badari