summaryrefslogtreecommitdiffstats
path: root/sys/ufs
diff options
context:
space:
mode:
authorattilio <attilio@FreeBSD.org>2012-12-21 13:14:12 +0000
committerattilio <attilio@FreeBSD.org>2012-12-21 13:14:12 +0000
commit0d14b65c785757387aa6e75157e63bdd8bb2a0bc (patch)
tree70fdfa64dc1e67a8233315e7ccc55338c7d31ec7 /sys/ufs
parent1292747048991acc3e6b9238ad78a37864bfafe3 (diff)
downloadFreeBSD-src-0d14b65c785757387aa6e75157e63bdd8bb2a0bc.zip
FreeBSD-src-0d14b65c785757387aa6e75157e63bdd8bb2a0bc.tar.gz
Fixup r218424: uio_yield() was scaling directly to userland priority.
When kern_yield() was introduced with the possibility to specify a new priority, the behaviour changed by not lowering priority at all in the consumers, making the yielding mechanism highly ineffective for high priority kthreads like bufdaemon, syncer, vlrudaemon, etc. There are no evidences that consumers could bear with such change in semantic and this situation could finally lead to bugs similar to the ones fixed in r244240. Re-specify userland pri for kthreads involved. Tested by: pho Reviewed by: kib, mdf MFC after: 1 week
Diffstat (limited to 'sys/ufs')
-rw-r--r--sys/ufs/ffs/ffs_softdep.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c
index 55f9468..4ee16ab 100644
--- a/sys/ufs/ffs/ffs_softdep.c
+++ b/sys/ufs/ffs/ffs_softdep.c
@@ -1569,7 +1569,7 @@ softdep_process_worklist(mp, full)
*/
if (should_yield()) {
FREE_LOCK(&lk);
- kern_yield(PRI_UNCHANGED);
+ kern_yield(PRI_USER);
bwillwrite();
ACQUIRE_LOCK(&lk);
}
OpenPOWER on IntegriCloud