Date: Wed, 4 Jun 2014 11:06:11 -0400 From: John Baldwin <jhb@freebsd.org> To: freebsd-hackers@freebsd.org Cc: Konstantin Belousov <kostikbel@gmail.com>, hackers@freebsd.org, "Alexander V. Chernikov" <melifaro@freebsd.org> Subject: Re: Permit init(8) use its own cpuset group. Message-ID: <201406041106.11659.jhb@freebsd.org> In-Reply-To: <20140602164850.GS3991@kib.kiev.ua> References: <538C8F9A.4020301@FreeBSD.org> <20140602164850.GS3991@kib.kiev.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201406041106.11659.jhb>