Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: evbarm hang



On Sun, Apr 21, 2019 at 07:05:15AM -0700, Jason Thorpe wrote:
> 
> 
> > On Apr 21, 2019, at 3:29 AM, Manuel Bouyer <bouyer%antioche.eu.org@localhost> wrote:
> > 
> >> Also, Jason suggested initialising kernel_pmap pm_obj_lock appropriately
> >> to help simplify pmap_{acquire,release}_pmap_lock further.
> > 
> > I didn't see Jason's message. I guess he suggested making kpm->pm_obj_lock
> > an IPL_VM lock. I can make that, and indeed it'll avoid a test in
> > pmap_{acquire,release}_pmap_lock. But then we'll need a separate IPL_NONE
> > lock for pmap_growkernel() (we can't use a IPL_VM lock here because
> > pmap_grow_map() may sleep).
> 
> Yes, that's right.  Then having a separate lock for grow kernel seems fine... alternatively, drop the IPL_VM lock before the call that sleeps, reacquire, and check to see if you lost the race.

pmap_grow_map() is called multiple times per pmap_grow_l2_bucket() calls,
it looks like the cleanup wouldn't be simple.
I think a separate lock is the cleanest way here.

-- 
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--


Home | Main Index | Thread Index | Old Index