Re: FreeBSD-HEAD gets stuck on vnode operations

From: Roger Pau Monné <roger.pau_at_citrix.com>
Date: Sun, 26 May 2013 22:52:07 +0200
On 26/05/13 22:20, Jilles Tjoelker wrote:
> Instead of a pause() that may be too short or too long, how about
> waiting for the necessary lock? In other words, replace the kern_yield()
> call with VI_LOCK(vp); VI_UNLOCK(vp);. This is also the usual approach
> to acquire two locks without imposing an order between them.

Since there might be more than one locked vnode, waiting on a specific
locked vnode seemed rather arbitrary, but I agree that the pause is also
rather arbitrary.

Also, can we be sure that the v_interlock mutex will not be destroyed
while the syncer process is waiting for it to be unlocked?

> I expect blocking on a mutex to be safe enough; a mutex may not be held
> across waiting for hardware or other events.
> 
Received on Sun May 26 2013 - 18:52:16 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:38 UTC