--On Tuesday, October 22, 2002 22:37:10 -0700 Andrew Morton wrote: > > I'm getting lockups in install_page() with shared pagetables > enabled. I haven't really delved into it. It happens under > heavy memory pressure on SMP. > > Ingo's new patch is using install_page much more than we > used to (I don't think I've ever run it before), so we're > running fairly untested codepaths here. As Ingo said, he added install_page. > I tried this: > > (snip) > > Because doing a pte_page_lock(ptepage) and then losing > track of the page we just locked looks fishy. Didn't > help though. The code was correct. pte_unshare moves the lock to the new pte page if it installs one. I know that's not real clean, but it eliminates multiple unlock/relock sequences. > Dave could you please review the code in there? It's probably > something simple. I found the problem. In memory.c:do_file_page it unlocks the page_table_lock. In the new locking scheme, it's actually the pte_page_lock that's held instead. The patch to fix this is attached. Dave McCracken ====================================================================== Dave McCracken IBM Linux Base Kernel Team 1-512-838-3059 dmccr@us.ibm.com T/L 678-3059