Messages in this thread | | | Date | Fri, 2 Jun 2023 08:45:15 +0200 | From | Peter Zijlstra <> | Subject | Re: Direct rdtsc call side-effect |
| |
On Thu, Jun 01, 2023 at 09:41:15PM +0000, Steven Noonan wrote: > On Thursday, June 1st, 2023 at 1:31 PM, Peter Zijlstra <peterz@infradead.org> wrote: > > What about kernel based emulation? You could tie it into user_dispatch > > and have a user_dispatch tsc offset. > > > > > So regular kernel emulation simply returns the native value (keeps the > > VDSO working for one), but then from a user_dispatch range, it returns > > +offset. > > > > > That is; how slow is the below? > > It's around 1800-1900 clock cycles on this system
Much more expensive than the actual instruction ofcourse, but that seems eminently usable.
> (modified patch attached, compile fix + rdtscp support).
Right, that's what I get for writing 'patches' while falling asleep :/
> Since faulting would still make the vDSO clocks go through this path > we'd have to be careful that whatever offsets we throw into this path > don't affect the correctness of the other clocks.
Hence the suggested tie-in with user-dispatch; only add the offset when the IP is from the user-dispatch range.
| |