• Peter Zijlstra's avatar
    x86/tsc: Provide sched_clock_noinstr() · 5c5e9a2b
    Peter Zijlstra authored
    With the intent to provide local_clock_noinstr(), a variant of
    local_clock() that's safe to be called from noinstr code (with the
    assumption that any such code will already be non-preemptible),
    prepare for things by providing a noinstr sched_clock_noinstr()
    function.
    
    Specifically, preempt_enable_*() calls out to schedule(), which upsets
    noinstr validation efforts.
    
      vmlinux.o: warning: objtool: native_sched_clock+0x96: call to preempt_schedule_notrace_thunk() leaves .noinstr.text section
      vmlinux.o: warning: objtool: kvm_clock_read+0x22: call to preempt_schedule_notrace_thunk() leaves .noinstr.text section
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Tested-by: Michael Kelley <mikelley@microsoft.com>  # Hyper-V
    Link: https://lore.kernel.org/r/20230519102715.910937674@infradead.org
    5c5e9a2b
tsc.c 41.9 KB