can the scheduler decide to schedule an interrupted but runnable thread on another CPU core? What are the implications for code?

Andrey Chernov ache at freebsd.org
Wed Feb 19 14:29:11 UTC 2014


On 18.02.2014 23:42, John Baldwin wrote:
> Eh, no.  CPU_WHICH_CPUSET changes the global set that the thread belongs to.  
> t is not per proceses or per thread.  Unless you are explicitly creating
> new global sets, your thread belongs to the default set (set 1), and this
> call is changing the default set (set 1) to only use a single CPU.  This
> affects all processes in the machine that do not have their own sets.
> 

Thanx for detailed explanation. According to it, SCHED_ULE does the
right thing for such CPU_WHICH_CPUSET call, while SCHED_4BSD does not.
Is recent r260043 supposed to fix the problem for SCHED_4BSD or is it
unrelated? I can't check it by myself yet.

-- 
http://ache.vniz.net/


More information about the freebsd-arch mailing list