cvs commit: src/sys/kern subr_trap.c

Jeff Roberson jroberson at chesapeake.net
Sat Dec 25 23:33:11 PST 2004


This causes a slight slowdown with sched_ule because ule depends on extra
context switches to help out the load balancer.  I'm in the process of
making a slightly more agressive rebalancer at the moment, after which it
will be an improvement on ULE as well.  Allowing the thread to continue to
run even though it is not technically the highest priority thread is
acceptable in this case because priority propagation ensures that we are
not running when something as important as an interrupt thread is still
waiting to run.

On Sun, 26 Dec 2004, Jeff Roberson wrote:

> jeff        2004-12-26 07:30:36 UTC
>
>   FreeBSD src repository
>
>   Modified files:
>     sys/kern             subr_trap.c
>   Log:
>    - Run sched_userret() after thread_userret().  Before, sched_userret() would
>      lower the priority of the returning thread to a user priority before
>      calling into thread_userret() which would call wakeup() which in turn would
>      cause the returning thread to eventually context switch rather than
>      completing its slice.  Allowing this thread to complete its slice first
>      yields a 15% performance improvement in super-smack on my dual opteron with
>      4BSD.
>
>   Revision  Changes    Path
>   1.277     +4 -5      src/sys/kern/subr_trap.c
>


More information about the cvs-src mailing list