Messages in this thread | | | Date | Wed, 22 Jul 2015 06:24:03 +0200 | From | Borislav Petkov <> | Subject | Re: Kernel broken on processors without performance counters |
| |
On Tue, Jul 21, 2015 at 02:50:25PM -0400, Jason Baron wrote: > hmmm...so this is a case where need to the default the branch > to the out-of-line branch at boot. That is, we can't just enable > the out-of-line branch at boot time, b/c it might be too late at > that point? IE native_sched_clock() gets called very early?
Well, even the layout is wrong here. The optimal thing would be to have:
NOP rdtsc
unlikely: /* read jiffies */
at build time. And then at boot time, patch in the JMP over the NOP on !use_tsc boxes. And RDTSC works always, no matter how early.
I'm fairly sure we can do that now with alternatives instead of jump labels.
The problem currently is that the 5-byte NOP gets patched in with a JMP so we have an unconditional forwards JMP to the RDTSC.
Now I'd put my money on most arches handling NOPs better then unconditional JMPs and this is a hot path...
-- Regards/Gruss, Boris.
ECO tip #101: Trim your mails when you reply. --
| |