All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@kernel.org>
To: Denys Vlasenko <dvlasenk@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	Borislav Petkov <bp@alien8.de>, "H. Peter Anvin" <hpa@zytor.com>,
	Andy Lutomirski <luto@amacapital.net>,
	Oleg Nesterov <oleg@redhat.com>,
	Frederic Weisbecker <fweisbec@gmail.com>,
	Alexei Starovoitov <ast@plumgrid.com>,
	Will Drewry <wad@chromium.org>, Kees Cook <keescook@chromium.org>,
	x86@kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/4] x86/asm/entry/64: do not TRACE_IRQS fast SYSRET64 path
Date: Wed, 25 Mar 2015 19:04:41 +0100	[thread overview]
Message-ID: <20150325180441.GB7321@gmail.com> (raw)
In-Reply-To: <5512F339.8060209@redhat.com>


* Denys Vlasenko <dvlasenk@redhat.com> wrote:

> On 03/25/2015 06:29 PM, Ingo Molnar wrote:
> > 
> > * Denys Vlasenko <dvlasenk@redhat.com> wrote:
> > 
> >> SYSRET code path has a small irq-off block.
> >> On this code path, TRACE_IRQS_ON can't be called right before interrupts
> >> are enabled for real, we can't clobber registers there.
> >> So current code does it earlier, in a safe place.
> >>
> >> But with this, TRACE_IRQS_OFF/ON frames just two fast instructions,
> >> which is ridiculous: now most of irq-off block is _outside_ of the framing.
> >>
> >> Do the same thing that we do on SYSCALL entry: do not track this irq-off block,
> >> it is very small to ever cause noticeable irq latency.
> >>
> >> Be careful: make sure that "jnz int_ret_from_sys_call_irqs_off" now does
> >> invoke TRACE_IRQS_OFF - move int_ret_from_sys_call_irqs_off label before
> >> TRACE_IRQS_OFF.
> > 
> >> @@ -345,8 +346,8 @@ tracesys_phase2:
> >>   */
> >>  GLOBAL(int_ret_from_sys_call)
> >>  	DISABLE_INTERRUPTS(CLBR_NONE)
> >> -	TRACE_IRQS_OFF
> >>  int_ret_from_sys_call_irqs_off:
> >> +	TRACE_IRQS_OFF
> >>  	movl $_TIF_ALLWORK_MASK,%edi
> >>  	/* edi:	mask to check */
> > 
> > This latter trick absolutely needs a comment, to keep future lockdep 
> > developers from wondering about the mismatch and the weird label 
> > placement ...
> 
> Unsure how to format it.
> 
> How about:
> 
> 
> 	DISABLE_INTERRUPTS(CLBR_NONE)
> int_ret_from_sys_call_irqs_off: /* jumps come here with irqs off */
> 	TRACE_IRQS_OFF

Why not something like 'jumps come here from the irqs-off SYSRET 
path'?

> 
> 
> 
> (In truth, there is only one jump as of now, but using pliral
> "jumps" if that would change)

I'd also put a comment to the actual sysret IRQ-disablement that we 
are skipping with the annotation. Explain that it's an optimization 
for a visible irqs-off path that needs no annotation - and that the 
moment something complex is done in that path, this optimization loses 
its validity.

Thanks,

	Ingo

  reply	other threads:[~2015-03-25 18:04 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-25 17:18 [PATCH 1/4] x86/asm/entry/64: better label name, fix comments Denys Vlasenko
2015-03-25 17:18 ` [PATCH 2/4] x86/asm/entry/64: do not TRACE_IRQS fast SYSRET64 path Denys Vlasenko
2015-03-25 17:29   ` Ingo Molnar
2015-03-25 17:41     ` Denys Vlasenko
2015-03-25 18:04       ` Ingo Molnar [this message]
2015-03-25 18:19         ` Denys Vlasenko
2015-03-25 17:18 ` [PATCH 3/4] x86/asm/entry/64: use smaller insns Denys Vlasenko
2015-03-25 18:03   ` Andy Lutomirski
2015-03-25 23:51   ` Linus Torvalds
2015-03-25 23:56     ` H. Peter Anvin
2015-03-26  0:05       ` Linus Torvalds
2015-03-26  0:12         ` H. Peter Anvin
2015-03-26  9:27         ` Borislav Petkov
2015-03-26  9:37           ` Ingo Molnar
2015-03-26  9:51             ` Borislav Petkov
2015-03-26 10:07             ` Denys Vlasenko
2015-03-26 10:25               ` Ingo Molnar
2015-03-26 10:53                 ` Denys Vlasenko
2015-03-26 10:25               ` Borislav Petkov
2015-03-26  9:30     ` Ingo Molnar
2015-03-27 11:47   ` [tip:x86/asm] x86/asm/entry/64: Use smaller instructions tip-bot for Denys Vlasenko
2015-03-25 17:18 ` [PATCH 4/4] x86/asm/entry/64: fix typo in comment Denys Vlasenko
2015-03-27 11:46 ` [tip:x86/asm] x86/asm/entry/64: Use better label name, fix comments tip-bot for Denys Vlasenko
2015-03-27 12:15   ` Borislav Petkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150325180441.GB7321@gmail.com \
    --to=mingo@kernel.org \
    --cc=ast@plumgrid.com \
    --cc=bp@alien8.de \
    --cc=dvlasenk@redhat.com \
    --cc=fweisbec@gmail.com \
    --cc=hpa@zytor.com \
    --cc=keescook@chromium.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=oleg@redhat.com \
    --cc=rostedt@goodmis.org \
    --cc=torvalds@linux-foundation.org \
    --cc=wad@chromium.org \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.