[RFC] A method for forcing IFUNC selector
Roland McGrath
roland@hack.frob.com
Thu Nov 6 22:05:00 GMT 2014
Please contribute to benchtests so that they are more representative of a
variety of workloads. Those tests are how we make decisions about changes
intended to improve performance, so improving them is how we can improve
that decision-making.
There is indeed no mechanism to control the selection. It just uses cpuid
directly to set up __cpu_features and then each selector has its own logic
to choose an implementation based on that.
I am not very sanguine either about random new environment variables, nor
about a mechanism that has users picking implementations by internal symbol
name.
As to the basic way in to do any kind of tweak like this, that is the
long-standing subject of "tunables". We have had (for years now, I guess)
a plan to get a plan about that subject, but nobody has put real work into
even proposing a model. (I have previously lodged strenuous objection to
willy-nilly adding magic environment variables. But I haven't proposed a
specific alternative mechanism.)
As to how you'd go about describing what it is you want once there were a
place to put it, that also needs some thought. I'm more positively
disposed towards ideas like a mask for cpuid feature bits, which would be
more generic and more in terms of the well-specified aspects of the
hardware rather than feeling like an API that talks in terms of
implementation internals, which seems wrong. But I can see how that might
not actually give you the knob you really want.
More information about the Libc-alpha
mailing list