Subject: port-powerpc/14904: PowerPC w/o NEWPMAP deadlocks if faulting on kernel map when pv_nfree == 0
To: None <email@example.com>
From: Duncan Missimer <firstname.lastname@example.org>
Date: 12/10/2001 11:49:06
>Synopsis: PowerPC w/o NEWPMAP deadlocks if faulting on kernel map when pv_nfree == 0
>Arrival-Date: Mon Dec 10 11:50:01 PST 2001
>Release: -current ca. 2001-7-17
Rhapsody Networks, Inc.
> %From: Chuck Silvers [email@example.com]
> %Sent: Saturday, December 08, 2001 10:58 PM
> %To: Duncan Missimer
> %Subject: Re: deadlock in PowerPC VM system
could you please enter this into the netbsd bug-tracking system
with the "send-pr" program? this is fixed in NEWPMAP, but until
and unless that option becomes the default, this is still a problem.
On Wed, Dec 05, 2001 at 06:54:14PM -0800, Duncan Missimer wrote:
> Anybody else seen this one?
> sys__sysctl ->
> kern_sysctl ->
> sysctl_procargs ->
> uvm_io -> # creates kernel mapping
> uiomove ->
> kcopy ->
> bcopy ->
> trap ->
> uvm_fault -> # acquires shared lock for kernel map
> pmap_enter ->
> pmap_enter_pv ->
> pmap_alloc_pv -> # but pv_nfree is 0, so.....
> uvm_km_zalloc (== uvm_km_alloc1) ->
> uvm_map ->
> uvm_map_lock ->
> lockmgr(kernel_map, LK_EXCLUSIVE # hangs forever waiting for above
> shared lock to go away
> Note that the WEHOLDIT test under LK_EXCLUSIVE doesn't help because
> it is
> impossible to identify the owner[s] of shared locks.
> Got any good ideas? I understand that the kernel is based on current as of
Heavy load with lots of ps'es running
Use NEWPMAP, apparently