On 11/09/2017 03:09 AM, Christoph Hellwig wrote: > On Wed, Nov 08, 2017 at 09:13:59AM -0700, Jens Axboe wrote: >> There are numerous valid reasons to be able to set the affinity, for >> both nics and block drivers. It's great that the kernel has a predefined >> layout that works well, but users do need the flexibility to be able to >> reconfigure affinities, to suit their needs. > > Managed interrupts are about more than just setting affinities - they > bind a a vector (which means a queue) to a specific cpu or set of cpus. > This is extremely useful to deal with hotplug issues and also makes > life a lot easier in general.
I know why it was done. >> But that particular case is completely orthogonal to whether or not we >> should allow the user to reconfigure. The answer to that is clearly YES, >> and we should ensure that this is possible. > > And why is the answer yes? If the anser is YES it means we need explicit > boilerplate code to deal with cpu hotplug in every driver not using > managed interrupts (even if optionally), so it is a non-trivial tradeoff. The answer is yes because as with any other kernel level policy, there are situations where it isn't the optimal solution. I ran into this myself with nvme recently, and I started cursing the managed setup for that very reason. You can even argue this is a regression, since we used to be able to move things around as we saw fit. If the answer is boilerplate code to make it feasible, then we need that boilerplate code. -- Jens Axboe