HomeFreeBSD

ULE 3.0: Fine grain scheduler locking and affinity improvements. This has

Description

ULE 3.0: Fine grain scheduler locking and affinity improvements. This has
been in development for over 6 months as SCHED_SMP.

  • Implement one spin lock per thread-queue. Threads assigned to a run-queue point to this lock via td_lock.
  • Improve the facility for assigning threads to CPUs now that sched_lock contention no longer dominates scheduling decisions on larger SMP machines.
  • Re-write idle time stealing in an attempt to make it less damaging to general performance. This is still disabled by default. See kern.sched.steal_idle.
  • Call the long-term load balancer from a callout rather than sched_clock() so there are no locks held. This is disabled by default. See kern.sched.balance.
  • Parameterize many scheduling decisions via sysctls. Try to document these via sysctl descriptions.
  • General structural and naming cleanups.
  • Document each function with comments.

Tested by: current@ amd64, x86, UP, SMP.
Approved by: re

Details

Provenance
jeffAuthored on Jul 17 2007, 10:53 PM
Parents
rG40380a6a6b8f: - Optimize the amd64 cpu_switch() TD_LOCK blocking and releasing to
Branches
Unknown
Tags
Unknown

Event Timeline