[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Y8aGpHgSOczqeEHf@hirez.programming.kicks-ass.net>
Date: Tue, 17 Jan 2023 12:29:40 +0100
From: Peter Zijlstra <peterz@...radead.org>
To: Ingo Molnar <mingo@...nel.org>
Cc: x86@...nel.org, Joan Bruguera <joanbrugueram@...il.com>,
linux-kernel@...r.kernel.org, Juergen Gross <jgross@...e.com>,
"Rafael J. Wysocki" <rafael@...nel.org>,
xen-devel <xen-devel@...ts.xenproject.org>,
Jan Beulich <jbeulich@...e.com>,
Roger Pau Monne <roger.pau@...rix.com>,
Kees Cook <keescook@...omium.org>, mark.rutland@....com,
Andrew Cooper <Andrew.Cooper3@...rix.com>,
Jörg Rödel <joro@...tes.org>,
"H. Peter Anvin" <hpa@...or.com>
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@...radead.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)
Powered by blists - more mailing lists