NetBSD-Bugs archive

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

kern/57263: vnd locks up when using vn_rdwr



>Number:         57263
>Category:       kern
>Synopsis:       vnd locks up when using vn_rdwr
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Mar 08 13:00:00 +0000 2023
>Originator:     Frank Kardel
>Release:        NetBSD 9.99.100
>Organization:
	
>Environment:
	
	
System: NetBSD pip.kardel.name 9.99.100 NetBSD 9.99.100 (PIPGEN) #0: Fri Feb 17 20:19:40 CET 2023 ...
Architecture: x86_64
Machine: amd64
>Description:
	vndX stalls on following setups
		- ffs on raidX
		- zfs
	the wchan is "vndpc" which is only used when
	vnd uses vn_rdwr() for I/O.
	vnd will work when vnd can use strategy() and the block mapping functions.
	thus, currently vnd is of limited use
>How-To-Repeat:
	configure vnd device off of ffs on raidX or zfs files systems. Do some
	heavy I/O and get stuck on "vndpc".
	the waiting code fragment in vndstrategy is:
        if ((vnd->sc_flags & VNF_USE_VN_RDWR)) {
                KASSERT(vnd->sc_pending >= 0 &&
                    vnd->sc_pending <= VND_MAXPENDING(vnd));
                while (vnd->sc_pending == VND_MAXPENDING(vnd))
                        tsleep(&vnd->sc_pending, PRIBIO, "vndpc", 0);
                vnd->sc_pending++;
        }

>Fix:
	find the root cause why vnd->sc_pending is stuck at VND_MAXPENDING(vnd)



Home | Main Index | Thread Index | Old Index