mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Linus Torvalds <torvalds@linux-foundation.org>
To: Roland McGrath <roland@redhat.com>
Cc: Ingo Molnar <mingo@elte.hu>, Thomas Gleixner <tglx@linutronix.de>,
	Andrew Morton <akpm@linux-foundation.org>,
	Alexander Viro <aviro@redhat.com>, Eric Paris <eparis@redhat.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 3/4] x86_64 ia32 syscall audit fast-path
Date: Mon, 7 Jul 2008 09:34:06 -0700 (PDT)	[thread overview]
Message-ID: <alpine.LFD.1.10.0807070927090.11076@woody.linux-foundation.org> (raw)
In-Reply-To: <20080707065742.7C119154246@magilla.localdomain>



On Sun, 6 Jul 2008, Roland McGrath wrote:
>
> This adds fast paths for 32-bit syscall entry and exit when
> TIF_SYSCALL_AUDIT is set, but no other kind of syscall tracing.
> These paths does not need to save and restore all registers as
> the general case of tracing does.  Avoiding the iret return path
> when syscall audit is enabled helps performance a lot.

Please don't do it like this.

I realize that Fedora enables audit by default, and that you care about 
the speed of the audit path, but I care about the speed of the *non*audit 
path. And you just slowed it down unnecessarily.


>  	TRACE_IRQS_OFF
> -	testl	$_TIF_ALLWORK_MASK,threadinfo_flags(%r10)
> +	testl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT),threadinfo_flags(%r10)
>  	jnz	int_ret_from_sys_call
> +	bt	$TIF_SYSCALL_AUDIT,threadinfo_flags(%r10)
> +	jc	sysexit_audit

Please don't add more instructions to the fastpath. Especially not 
relatively slow ones like 'bt'. 

So keep the

	testl   $_TIF_ALLWORK_MASK,threadinfo_flags(%r10)
	jnz     audit_or_other_work

and then in that *slow*path in int_ret_from_sys_call, do

  audit_or_other_work:
	testl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT),threadinfo_flags(%r10)
	jnz  int_ret_from_sys_call
  sysexit_audit:
	....

so that we don't have any extra costs at all for the non-audit case.

I realize that maybe you don't care too much about the ia32 emulation, but 
it's going to be the common case for some distros (I think several distros 
end up with a 32-bit user space even when they use a 64-bit kernel).

		Linus

  reply	other threads:[~2008-07-07 16:35 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-07  6:56 [PATCH 1/4] x86_64: remove bogus optimization in sysret_signal Roland McGrath
2008-07-07  6:57 ` [PATCH 2/4] x86_64 syscall audit fast-path Roland McGrath
2008-07-07  6:57 ` [PATCH 3/4] x86_64 ia32 " Roland McGrath
2008-07-07 16:34   ` Linus Torvalds [this message]
2008-07-07 16:39     ` Linus Torvalds
2008-07-08  0:02       ` Roland McGrath
2008-07-08  0:37         ` Linus Torvalds
2008-07-18 11:36         ` Ingo Molnar
2008-07-21 23:54           ` Roland McGrath
2008-07-24  0:22             ` Linus Torvalds
2008-07-24  0:40               ` Linus Torvalds
2008-07-24  1:04               ` Roland McGrath
2008-07-07  6:58 ` [PATCH 4/4] i386 " Roland McGrath

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=alpine.LFD.1.10.0807070927090.11076@woody.linux-foundation.org \
    --to=torvalds@linux-foundation.org \
    --cc=akpm@linux-foundation.org \
    --cc=aviro@redhat.com \
    --cc=eparis@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=roland@redhat.com \
    --cc=tglx@linutronix.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®