Messages in this thread | | | Date | Tue, 17 Jan 2023 12:29:40 +0100 | From | Peter Zijlstra <> | Subject | Re: [PATCH v2 6/7] x86/power: Sprinkle some noinstr |
| |
On Tue, Jan 17, 2023 at 10:31:05AM +0100, Ingo Molnar wrote: > > * Peter Zijlstra <peterz@infradead.org> wrote: > > > + /* > > + * Definitely wrong, but at this point we should have at least enough > > + * to do CALL/RET (consider SKL callthunks) and this avoids having > > + * to deal with the noinstr explosion for now :/ > > + */ > > + instrumentation_begin(); > > BTW., readability side note: instrumentation_begin()/end() are the > misnomers of the century - they don't signal the start/end of instrumented > code areas like the name falsely & naively suggests, but the exact > opposite: start/end of *non-*instrumented code areas.
Nope, they do as they say on the tin.
noinstr void foo(void) { }
declares the whole function as non-instrumented.
Within such functions, we demark regions where instrumentation is allowed by:
noinstr void foo(void) { instrumentation_begin(); /* code that calls non-noinstr functions goes here */ instrumentation_end(); }
(note the double negative in the comment)
| |