On Fri, Apr 28, 2017 at 06:34:17PM +0200, Peter Zijlstra wrote: > On Fri, Apr 28, 2017 at 08:49:54AM -0700, Darren Hart wrote: > > On Fri, Apr 28, 2017 at 03:46:58PM +0200, Peter Zijlstra wrote: > > > > How are they available? The only way a module can access this is by > > > grubbing around kernel internals, basically doing a manual link stage. > > > > Well it's a rare thing, but I don't agree. The driver can use this function > > already, to do so it just builds itself in and not as a module. > > And _that_ is the crucial difference. It means that the source needs to > be available to whomever builds the kernel. > > It means that whoever builds the kernel can validate behaviour. > > All that goes out the window the moment you expose an interface to > modules. > > > Further, we (the kernel community) have made it abundantly clear that we > > couldn't care less about out of tree drivers, so they shouldn't even be part of > > this discussion. So the only code that matters is in-tree drivers, and they can > > already use this.... > > I don't much care for out-of-tree crap (as you well know), but the fact > is that it exists and people do use it. Heck some binary only modules > are even quite common/popular :-( > > So I think its realistic to be weary of our module interface. > > > What makes this one so special? > > It can completely mess up the load-balancer if used in creative ways. I > just don't want to spend a minute having to worry about that. OK, while I maintain there are some inconsistencies in our policies, I don't disagree that there are core kernel internals that should not be exposed to drivers (whether modular or not) and these seem like such functions. Approaching this from that angle, as I mentioned just a moment ago, Peter would you be willing to entertain the idea of an interface which allows modular drivers to advise the scheduler on what they know of the system without giving them explicit control? And leaving any actuation on that information to the scheduler? -- Darren Hart VMware Open Source Technology Center