|
From: | Blue Swirl |
Subject: | Re: [Qemu-devel] Sparc32 bash problem solved |
Date: | Sun, 28 May 2006 10:19:25 +0200 |
> emulator. I finally found the reason by observing strange Linux behaviour> relating to MMU no-fault mode. No fault mode seems to apply only to> supervisor accesses, not user ones. The logic was not described like this> in the manual, thank you very much. How did you find it?
I looked at qemu.log to find the faulting location in bash. I enabled DEBUG_MMU in helper.c and op_helper.c to see if the MMU mappings are correct, generating some 400 megs of logs. The instruction was load and the data being accessed was not mapped. Then I attached gdb to emulator and set a breakpoint to the faulting address and also to Linux fault handler. I noticed that the fault kept repeating forever, as if Linux didn't realise that any fault has happened. Then I got the idea to try this change. I think the logic is that it is not safe to allow user to override the MMU mappings. What an exciting story to tell your grandchildren, don't you think?
Caller[f0005e0c]: t_sec_trap_start_interrupt+0x38/0x5c Caller[f01096c4]: prom_nbputchar+0xa0/0xb0
Maybe there is something wrong with Proll putchar function, or Proll's data areas are overwritten.
_________________________________________________________________FREE pop-up blocking with the new MSN Toolbar - get it now! http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/
[Prev in Thread] | Current Thread | [Next in Thread] |