The do_trace_write_msr(), do_trace_read_msr(), and do_trace_rdpmc()
wrappers exist to break the header dependency from asm/msr.h which
cannot include trace headers directly. Their callers in asm/msr.h
already guard calls with tracepoint_enabled() checks, so the trace_foo()
calls inside these wrappers perform a redundant static_branch_unlikely()
re-evaluation.

Replace trace_write_msr(), trace_read_msr(), and trace_rdpmc() with
their trace_call__##name() variants to call the tracepoint callbacks
directly without the redundant static branch check.

Suggested-by: Steven Rostedt <[email protected]>
Suggested-by: Peter Zijlstra <[email protected]>
Signed-off-by: Vineeth Pillai (Google) <[email protected]>
---
 arch/x86/lib/msr.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/x86/lib/msr.c b/arch/x86/lib/msr.c
index dfdd1da89f366..14785fe5e07b5 100644
--- a/arch/x86/lib/msr.c
+++ b/arch/x86/lib/msr.c
@@ -125,21 +125,21 @@ EXPORT_SYMBOL_FOR_KVM(msr_clear_bit);
 #ifdef CONFIG_TRACEPOINTS
 void do_trace_write_msr(u32 msr, u64 val, int failed)
 {
-       trace_write_msr(msr, val, failed);
+       trace_call__write_msr(msr, val, failed);
 }
 EXPORT_SYMBOL(do_trace_write_msr);
 EXPORT_TRACEPOINT_SYMBOL(write_msr);
 
 void do_trace_read_msr(u32 msr, u64 val, int failed)
 {
-       trace_read_msr(msr, val, failed);
+       trace_call__read_msr(msr, val, failed);
 }
 EXPORT_SYMBOL(do_trace_read_msr);
 EXPORT_TRACEPOINT_SYMBOL(read_msr);
 
 void do_trace_rdpmc(u32 msr, u64 val, int failed)
 {
-       trace_rdpmc(msr, val, failed);
+       trace_call__rdpmc(msr, val, failed);
 }
 EXPORT_SYMBOL(do_trace_rdpmc);
 EXPORT_TRACEPOINT_SYMBOL(rdpmc);
-- 
2.53.0


Reply via email to