On Sun, Aug 10, 2014 at 11:32:31PM -0400, Jason Baron wrote: > That is correct. We don't currently support having the default > branch direction or the fast path be different from how the > 'static_key' is initialized. > > If I understand your use-case correctly, you can't have the tsc > path be the default *before* tsc_init() is called?
Yes. And also have it come first in the function so that after nopping out the JMP later turns it into a 0-cost path. > If not, another thought on the implementation here might be > to re-visit the work the Steven Rostedt proposed a while back, > to use jump instead of no-ops by default, and then convert > the jumps to no-ops in a post-processing phase in order to > reduce code size (by having 2-byte jumps for example on > x86). Potentially, we could then avoid converting some of the > jumps, if they didn't match the default branch direction. > See: http://www.serverphorums.com/read.php?12,759207 Haha, so I did a very similar thing too, independently from Steve (patch at the end): https://lkml.kernel.org/r/20140809105742.ga5...@pd.tnic but mine is dumber. I'll dig out Steve's version and play with it a bit. > In that way there is no API change, we are just relaxing the > restriction that the default branch direction must match the > way that the keys are initialized. Which would make the change even smaller and invisible to users, good! Thanks. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/