CVSROOT: /cvs Module name: src Changes by: m...@cvs.openbsd.org 2015/06/05 04:15:54
Modified files: sys/arch/powerpc/powerpc: pmap.c Log message: Finally protect VP lookups to guarantee that a pted won't be freed or reused by a CPU while another CPU is manipulating it. This races occurs because the virtual spill handlers are run without taking the KERNEL_LOCK for obvious reasons. So use a per-pmap mutex that CPUs must hold when modifying a pted in order to guarantee the atomicity of operations *and* the coherence between pmap VPs tree and what's in the HASH. Thanks to dlg@ for assisting me debugging this. This change ends your PowerPC pmap SMP show of the week. GENERIC.MP on macppc should now be stable enough to build ports without corrupting its own memory. ok kettenis@, deraadt@, dlg@