panic: vm_page_cache: caching a dirty page

Matthew Dillon dillon at apollo.backplane.com
Thu Dec 6 14:11:07 PST 2007


:panic: vm_page_cache: caching a dirty page, pindex: 22
:mp_lock = 00000000; cpuid = 0
:boot() called on cpu#0
:Uptime: 11d2h43m2s
:
:(kgdb) bt
:#3  0xc029d6cf in vm_page_cache (m=0xc29f91d8) at /usr/src/sys/vm/vm_page.c:1244
:#4  0xc0291b22 in vm_fault_object (fs=0xef108c60, first_pindex=23, fault_type=2 '\002') at /usr/src/sys/vm/vm_fault.c:1093
:#5  0xc0292cdc in vm_fault (map=0xd3563150, vaddr=713383936, fault_type=2 '\002', fault_flags=8) at /usr/src/sys/vm/vm_fault.c:360

     Wow.  That's a really tiny window of opportunity.  vm_fault_object()
     is testing whether the page is dirty but it is still possible for
     the page to become dirty on a SMP system between that test and the
     call to vm_page_cache() due to a process running in user mode on
     a different cpu.

     I will put a second test in after the vm_page_protect() call in
     vm_page_cache().

						-Matt





More information about the Bugs mailing list