From 5ddf5664ccd9a5fa53eda81e8ec89445bfaf3c41 Mon Sep 17 00:00:00 2001 From: kib Date: Sun, 23 Mar 2008 13:45:24 +0000 Subject: Yield the cpu in the kernel while iterating the list of the vnodes belonging to the mountpoint. Also, yield when in the softdep_process_worklist() even when we are not going to sleep due to buffer drain. It is believed that the ULE fixed the problem [1], but the yielding seems to be needed at least for the 4BSD case. Discussed: on stable@, with bde Reviewed by: tegge, jeff [1] MFC after: 2 weeks --- sys/sys/vnode.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'sys/sys/vnode.h') diff --git a/sys/sys/vnode.h b/sys/sys/vnode.h index a1ec516..ba23b18 100644 --- a/sys/sys/vnode.h +++ b/sys/sys/vnode.h @@ -124,6 +124,7 @@ struct vnode { struct socket *vu_socket; /* v unix domain net (VSOCK) */ struct cdev *vu_cdev; /* v device (VCHR, VBLK) */ struct fifoinfo *vu_fifoinfo; /* v fifo (VFIFO) */ + int vu_yield; /* yield count (VMARKER) */ } v_un; /* @@ -178,6 +179,7 @@ struct vnode { #define v_socket v_un.vu_socket #define v_rdev v_un.vu_cdev #define v_fifoinfo v_un.vu_fifoinfo +#define v_yield v_un.vu_yield /* XXX: These are temporary to avoid a source sweep at this time */ #define v_object v_bufobj.bo_object -- cgit v1.1