Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Feb 2014 18:29:01 +0400
From:      Andrey Chernov <ache@freebsd.org>
To:        John Baldwin <jhb@freebsd.org>
Cc:        "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org>, Andriy Gapon <avg@freebsd.org>, "freebsd-arch@freebsd.org" <freebsd-arch@freebsd.org>
Subject:   Re: can the scheduler decide to schedule an interrupted but runnable thread on another CPU core? What are the implications for code?
Message-ID:  <5304BFAD.50502@freebsd.org>
In-Reply-To: <201402181442.36380.jhb@freebsd.org>
References:  <CAJ-Vmo=7Nz1jqXy%2BrTQ7u9_ZP7jeFOKUJxU1O51tYJjvTUmWTg@mail.gmail.com> <20140215001100.GS34851@funkthat.com> <52FED14E.50304@freebsd.org> <201402181442.36380.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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/



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5304BFAD.50502>