diff options
author | Jeff Roberson <jeff@FreeBSD.org> | 2008-03-12 06:31:06 +0000 |
---|---|---|
committer | Jeff Roberson <jeff@FreeBSD.org> | 2008-03-12 06:31:06 +0000 |
commit | c5aa6b581d3bb4c466526bc0144c0e56ee852901 (patch) | |
tree | 20ec4b3ab190fc07828f6c3f536e039ecdead59a /sys/kern/kern_timeout.c | |
parent | df4691b98481b2379d249c3e4bb094b445e9196c (diff) | |
download | src-c5aa6b581d3bb4c466526bc0144c0e56ee852901.tar.gz src-c5aa6b581d3bb4c466526bc0144c0e56ee852901.zip |
- Pass the priority argument from *sleep() into sleepq and down into
sched_sleep(). This removes extra thread_lock() acquisition and
allows the scheduler to decide what to do with the static boost.
- Change the priority arguments to cv_* to match sleepq/msleep/etc.
where 0 means no priority change. Catch -1 in cv_broadcastpri() and
convert it to 0 for now.
- Set a flag when sleeping in a way that is compatible with swapping
since direct priority comparisons are meaningless now.
- Add a sysctl to ule, kern.sched.static_boost, that defaults to on which
controls the boost behavior. Turning it off gives better performance
in some workloads but needs more investigation.
- While we're modifying sleepq, change signal and broadcast to both
return with the lock held as the lock was held on enter.
Reviewed by: jhb, peter
Notes
Notes:
svn path=/head/; revision=177085
Diffstat (limited to 'sys/kern/kern_timeout.c')
-rw-r--r-- | sys/kern/kern_timeout.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/kern_timeout.c b/sys/kern/kern_timeout.c index d48bf2e94f34..70d558c69cd5 100644 --- a/sys/kern/kern_timeout.c +++ b/sys/kern/kern_timeout.c @@ -563,7 +563,7 @@ again: sleepq_add(&callout_wait, &callout_lock.lock_object, "codrain", SLEEPQ_SLEEP, 0); - sleepq_wait(&callout_wait); + sleepq_wait(&callout_wait, 0); sq_locked = 0; /* Reacquire locks previously released. */ |