Subject: port-powerpc/14904: PowerPC w/o NEWPMAP deadlocks if faulting on kernel map when pv_nfree == 0
To: None <gnats-bugs@gnats.netbsd.org>
From: Duncan Missimer <dmissimer@matrix.corp.rhapsodynetworks.com>
List: netbsd-bugs
Date: 12/10/2001 11:49:06
>Number: 14904
>Category: port-powerpc
>Synopsis: PowerPC w/o NEWPMAP deadlocks if faulting on kernel map when pv_nfree == 0
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: port-powerpc-maintainer
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon Dec 10 11:50:01 PST 2001
>Closed-Date:
>Last-Modified:
>Originator: dmissimer@rhapsodynetworks.com
>Release: -current ca. 2001-7-17
>Organization:
Rhapsody Networks, Inc.
>Environment:
proprietary
>Description:
> %From: Chuck Silvers [chuq@chuq.com]
> %Sent: Saturday, December 08, 2001 10:58 PM
> %To: Duncan Missimer
> %Subject: Re: deadlock in PowerPC VM system
hi,
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.
thanks,
-Chuck
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
> 7/17.
>
> thanks,
> Duncan
>How-To-Repeat:
Heavy load with lots of ps'es running
>Fix:
Use NEWPMAP, apparently
>Release-Note:
>Audit-Trail:
>Unformatted: