Subject: re: MP Alpha kernels go multi-user
To: None <thorpej@zembu.com>
From: matthew green <mrg@eterna.com.au>
List: port-alpha
Date: 04/21/2001 12:54:56
   
   Now consider a system call of page fault on the other CPU that causes
   pmap_enter() to be called, which tries to acquire the map->pvhead lock
   direction (note it's already holding kernel_lock).
   
   Now you're screwed -- one cpu did "kernel_lock -> pmap_lock" and the
   other did "pmap_lock -> kernel_lock".  Deadlock.
   
   Sigh, guess I have to put pmap_emulate_reference() in the kernel_lock
   perimeter for now (until kernel_lock is no longer required by interrupt
   handlers...)



i came across similiar issues in the sparc pmap while i was adding
locking around parts of it...  i need to re-think how locking works
in there i think.


.mrg.


ps. you rule.