On Thu, Apr 07, 2022 at 02:53:07PM +0200, Alexander Bluhm wrote:
> On Wed, Apr 06, 2022 at 03:23:55PM +0200, Sebastien Marie wrote:
> > > panic: vref used where vget required
> >
> > could you try to reproduce with the following kernel diff ?
> 
> My machine is still building release, before it took a day or two
> to crash.  But it has already printed some of your warnings.  My
> serial console creates time stamps, so you see how often it happens.
> The rest of the time it was quiet.
> 
> bluhm

I am still shared if it is expected or not... I don't know enough vnode 
lifecycle inside uvm object to be sure, but v_usecount=0 seems weird as 
uvn_attach() should have vref() the vnode.

here, all the vnode has VXLOCK set. but one vnode has VBIOONSYNCLIST too.

there is also both "uvn_io: start" and "uvn_io: after lock" for each vnode.

> uvn_io: start: 0x22af3f70, type VREG, use 0, write 0, hold 0, flags (VXLOCK)
>         tag VT_UFS, ino 37521, on dev 0, 9 flags 0x100, effnlink 1, nlink 1
>         mode 0100644, owner 0, group 9, size 54325
> uvn_io: after lock: 0x22af3f70, type VREG, use 0, write 0, hold 0, flags 
> (VXLOCK)
>         tag VT_UFS, ino 37521, on dev 0, 9 flags 0x100, effnlink 1, nlink 1
>         mode 0100644, owner 0, group 9, size 54325

> uvn_io: start: 0x27880cc0, type VREG, use 0, write 0, hold 1, flags 
> (VXLOCK|VBIOONSYNCLIST)
>         tag VT_UFS, ino 757817, on dev 0, 10 flags 0x106, effnlink 1, nlink 1
>         mode 0100660, owner 21, group 21, size 48008
> uvn_io: after lock: 0x27880cc0, type VREG, use 0, write 0, hold 1, flags 
> (VXLOCK|VBIOONSYNCLIST)
>         tag VT_UFS, ino 757817, on dev 0, 10 flags 0x106, effnlink 1, nlink 1
>         mode 0100660, owner 21, group 21, size 48008

I have a diff for adding some stacktrace history for vnode (keeping track of 
lasts vref/vrele/vget/vput). but I am not sure it would be efficient to found 
the underline problem.

Thanks.
-- 
Sebastien Marie

Reply via email to