Current-Users archive

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

Re: 9.99.86 HEAD



> On 1. Jul 2021, at 18:24, Martin Husemann <martin%duskware.de@localhost> wrote:
> 
> I did not trust macppc / lockdebug so reproduced it on evbarm.
> 
> Unfortunately nearly identical (not making any sense to me) output again...

I'm quite sure one thread does something like

  lookup_fastforward -> lookup_parsepath -> VOP_PARSEPATH -> ... -> fstrans_start

where dvp->v_mount is currently unmounting and therefore suspended.
If lookup_fastforward holds a lock on vi_nc_lock we have a deadlock.

According to vnode_if.src VOP_PARSEPATH(dvp...) should take a locked vnode
but here this lock is missing. So either

- make sure the vnode is locked so fstrans_start will no loner block.

or

- add FSTRANS=NO to vop_parsepath, file kern/vnode_if.src and allow unlocked vnodes:

 vop_parsepath {
+       FSTRANS=NO
        IN struct vnode *dvp;

David?

--
J. Hannken-Illjes - hannken%eis.cs.tu-bs.de@localhost - TU Braunschweig

Attachment: signature.asc
Description: Message signed with OpenPGP



Home | Main Index | Thread Index | Old Index