Messages in this thread |  | | Date | Mon, 28 Aug 2017 09:50:41 +0200 | From | Peter Zijlstra <> | Subject | Re: [patch 10/41] x86/apic: Remove the duplicated tracing versions of interrupts |
| |
On Fri, Aug 25, 2017 at 11:49:47AM -0400, Steven Rostedt wrote: > On Fri, 25 Aug 2017 12:31:13 +0200 > Thomas Gleixner <tglx@linutronix.de> wrote: > > > The error and the spurious interrupt are really rare events and not at all > > so performance sensitive that two NOP5s can not be tolerated when tracing > > is disabled. > > Just a note. I'm sure if we disassembled it, it may be a little more > work done than just two NOPs, as parameter passing to the tracepoints > sometimes leak out of the static jump block. It's moot on this patch, > but other irqs with fast paths may need to be looked at.
Is that something we can fix with the trace macros?
They have a general shape of:
#define trace_foo(args...) if (static_branch_unlikely(&foo_enabled)) { __trace_foo(args...); }
Right? And I suppose I see why the compiler would want to sometimes lift stuff out of the branch block, but we'd really like it not to do that. Would putting a barrier() in front of __trace_foo() help?
|  |