Permit init(8) use its own cpuset group.

John Baldwin jhb at freebsd.org
Wed Jun 4 15:07:14 UTC 2014


On Monday, June 02, 2014 12:48:50 pm Konstantin Belousov wrote:
> On Mon, Jun 02, 2014 at 06:52:10PM +0400, Alexander V. Chernikov wrote:
> > Hello list!
> > 
> > Currently init(8) uses group 1 which is root group.
> > Modifications of this group affects both kernel and userland threads.
> > Additionally, such modifications are impossible, for example, in presence
> > of multi-queue NIC drivers (like igb or ixgbe) which binds their threads 
to
> > particular cpus.
> > 
> > Proposed change ("init_cpuset" loader tunable) permits changing cpu 
> > masks for
> > userland more easily. Restricting user processes to migrate to/from CPU 
> > cores
> > used for network traffic processing is one of the cases.
> > 
> > Phabricator: https://phabric.freebsd.org/D141 (the same version attached 
> > inline)
> > 
> > If there are no objections, I'll commit this next week.
> Why is the tunable needed ?

Because some people already depend on doing 'cpuset -l 0 -s 1'.  It is also 
documented in our manpages that processes start in cpuset 1 by default so
that you can use 'cpuset -l 0 -s 1' to move all processes, etc.

For the stated problem (bound ithreads in drivers), I would actually like to 
fix ithreads that are bound to a specific CPU to create a different cpuset 
instead so they don't conflict with set 1.

-- 
John Baldwin


More information about the freebsd-hackers mailing list