Date: Mon, 06 Sep 2010 20:22:41 -0500 From: Nathan Whitehorn <nwhitehorn@freebsd.org> To: freebsd-hackers@freebsd.org Subject: PS3 livelock and pmap_remove() Message-ID: <4C8593E1.5080000@freebsd.org>
next in thread | raw e-mail | index | archive | help
Now that my SLB allocation issue is solved, with help with Matthew and Alan, I have another VM puzzler. I have a simple program that tries to use all the memory on the system, which isn't very much on the PS3, so I use it to test swap as well. Shortly after it begins paging, the system locks up completely. I managed to duplicate this behavior on an emulator, and found out what it is actually doing. Somehow pmap_remove() is being called with arguments pmap_remove(userpmap, PAGE_SIZE, VM_MAXUSER_ADDRESS = USRSTACK). For powerpc64, VM_MAXUSER_ADDRESS is 0x7ffffffffffff000, so there are 10^15 pages to unmap in that range and it was busy taking until the end of time unmapping them all. Here's the trace from KDB: moea64_remove() pmap_remove() vm_daemon() fork_exit() fork_trampoline() ----end----- Does anyone have any idea why this is happening? Thanks, -Nathan
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4C8593E1.5080000>