 - 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.
 - 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.

jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase