summaryrefslogtreecommitdiffstats
path: root/sys/kern
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2013-06-03 17:36:43 +0000
committerkib <kib@FreeBSD.org>2013-06-03 17:36:43 +0000
commitda0ffbeb0e4ca70cbf67d19e93ab1c5af518aa23 (patch)
tree6c8e6ab4df29f7ea9fd88e33f90b39cfafc72f67 /sys/kern
parent9b5da9961260ea6402d6dfb925c5b6f9a2bddaa7 (diff)
downloadFreeBSD-src-da0ffbeb0e4ca70cbf67d19e93ab1c5af518aa23.zip
FreeBSD-src-da0ffbeb0e4ca70cbf67d19e93ab1c5af518aa23.tar.gz
Be more generous when donating the current thread time to the owner of
the vnode lock while iterating over the free vnode list. Instead of yielding, pause for 1 tick. The change is reported to help in some virtualized environments. Submitted by: Roger Pau Monn? <roger.pau@citrix.com> Discussed with: jilles Tested by: pho MFC after: 2 weeks
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/vfs_subr.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index 1f4a838..e64f379 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -4693,7 +4693,7 @@ restart:
if (mp_ncpus == 1 || should_yield()) {
TAILQ_INSERT_BEFORE(vp, *mvp, v_actfreelist);
mtx_unlock(&vnode_free_list_mtx);
- kern_yield(PRI_USER);
+ pause("vnacti", 1);
mtx_lock(&vnode_free_list_mtx);
goto restart;
}
OpenPOWER on IntegriCloud