cvs commit: src/sys/kern sched_ule.c

[ Available lists | Index of cvs-src | Month of Dec 2003 | Week of 10 Dec 2003 | Raw email | View thread | Wrap long lines | Reply | Tag ]
From
Jeff Roberson <jeff@FreeBSD.org>
Date
10 Dec 2003 19:57:25
Subject
cvs commit: src/sys/kern sched_ule.c
Message-ID
200312110357.hBB3vBFD065098@repoman.freebsd.org


[ Hide this part ]
jeff        2003/12/10 19:57:11 PST

FreeBSD src repository

Modified files:
sys/kern sched_ule.c
Log:
- Add support for CPU groups to ule. All SMT cores on the same physical
cpu are added to a group.
- Don't place a cpu into the kseq_idle bitmask until all cpus in that group
have idled.
- Prefer idle groups over idle group members in the new kseq_transfer()
function. In this way we will prefer to balance load across full cores
rather than add further load a partial core.
- Before a cpu goes idle, check the other group members for threads. Since
SMT cpus may freely share threads, this is cheap.
- SMT cores may be individually pinned and bound to now. This contrasts the
old mechanism where binding or pinning would have allowed a thread to run
on any available cpu.
- Remove some unnecessary logic from sched_switch(). Priority propagation
should be properly taken care of in sched_prio() now.

Revision Changes Path
1.86 +263 -116 src/sys/kern/sched_ule.c


Elapsed time: 0.076 seconds