From: Rogier Wolff <R.E.Wolff@BitWizard.nl>
To: Linus Torvalds <torvalds@transmeta.com>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>,
Petr Vandrovec <vandrove@vc.cvut.cz>,
lk@tantalophile.demon.co.uk, Ingo Molnar <mingo@elte.hu>,
drepper@redhat.com, bart@etpmod.phys.tue.nl,
davej@codemonkey.org.uk, hpa@transmeta.com,
terje.eggestad@scali.com, matti.aarnio@zmailer.org,
hugh@veritas.com, linux-kernel@vger.kernel.org
Subject: Re: Intel P6 vs P7 system call performance
Date: Tue, 24 Dec 2002 09:05:20 +0100 [thread overview]
Message-ID: <20021224090520.A19829@bitwizard.nl> (raw)
In-Reply-To: <Pine.LNX.4.44.0212232005080.2328-100000@home.transmeta.com>
On Mon, Dec 23, 2002 at 08:10:14PM -0800, Linus Torvalds wrote:
>
>
> On Tue, 24 Dec 2002, Stephen Rothwell wrote:
> >
> > And if you change the 0x00 use for alighment to 0x90 (nop) you can
> > use gdb to disassemble that array of bytes to check any changes ...
>
> Yeah, and I really should align the _normal_ return address (and not the
> restart address).
>
> Something like the appended, perhaps?
>
> Linus
>
> ===== arch/i386/kernel/entry.S 1.45 vs edited =====
> --- 1.45/arch/i386/kernel/entry.S Wed Dec 18 14:42:17 2002
> +++ edited/arch/i386/kernel/entry.S Mon Dec 23 20:02:10 2002
> @@ -233,7 +233,7 @@
> #endif
>
> /* Points to after the "sysenter" instruction in the vsyscall page */
> -#define SYSENTER_RETURN 0xffffe00a
> +#define SYSENTER_RETURN 0xffffe010
>
> # sysenter call handler stub
> ALIGN
> ===== arch/i386/kernel/sysenter.c 1.5 vs edited =====
> --- 1.5/arch/i386/kernel/sysenter.c Sun Dec 22 21:12:23 2002
> +++ edited/arch/i386/kernel/sysenter.c Mon Dec 23 20:04:33 2002
> @@ -57,12 +57,17 @@
> 0x51, /* push %ecx */
> 0x52, /* push %edx */
> 0x55, /* push %ebp */
> + /* 3: backjump target */
> 0x89, 0xe5, /* movl %esp,%ebp */
> 0x0f, 0x34, /* sysenter */
> - 0x00, /* align return point */
> - /* System call restart point is here! (SYSENTER_RETURN - 2) */
> - 0xeb, 0xfa, /* jmp to "movl %esp,%ebp" */
> - /* System call normal return point is here! (SYSENTER_RETURN in entry.S) */
> +
> + /* 7: align return point with nop's to make disassembly easier */
> + 0x90, 0x90, 0x90, 0x90,
> + 0x90, 0x90, 0x90,
> +
> + /* 14: System call restart point is here! (SYSENTER_RETURN - 2) */
> + 0xeb, 0xf3, /* jmp to "movl %esp,%ebp" */
> + /* 16: System call normal return point is here! (SYSENTER_RETURN in entry.S) */
> 0x5d, /* pop %ebp */
> 0x5a, /* pop %edx */
> 0x59, /* pop %ecx */
Ehmm, Linus,
Why do you want to align the return point? Why are jump-targets aligned?
Because they are faster. But why are they faster? Because the
cache-line fill is more efficient: the CPU might execute those
instructions, while it has a smaller chance of hitting the instructions
before the target.
In this case, I'd guess we'd have more benefit from the sysenter return
prefetching the sysenter cache line, than from prefetching the bunch
of noops just behind the return from syscall.
Now this is very hard to prove using a benchmark: In the benchmark
you'll quite likely run from a hot cache, and the cache line
effects are the things we would want to measure.
Roger.
--
** R.E.Wolff@BitWizard.nl ** http://www.BitWizard.nl/ ** +31-15-2600998 **
*-- BitWizard writes Linux device drivers for any device you may have! --*
* The Worlds Ecosystem is a stable system. Stable systems may experience *
* excursions from the stable situation. We are currently in such an *
* excursion: The stable situation does not include humans. ***************
next prev parent reply other threads:[~2002-12-24 7:58 UTC|newest]
Thread overview: 268+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-12-19 13:55 Intel P6 vs P7 system call performance bart
2002-12-19 19:37 ` Linus Torvalds
2002-12-19 22:10 ` Jamie Lokier
2002-12-19 22:16 ` H. Peter Anvin
2002-12-19 22:22 ` Linus Torvalds
2002-12-19 22:26 ` H. Peter Anvin
2002-12-19 22:49 ` Linus Torvalds
2002-12-19 23:30 ` Linus Torvalds
2002-12-22 11:08 ` James H. Cloos Jr.
2002-12-22 18:49 ` Linus Torvalds
2002-12-22 19:07 ` Ulrich Drepper
2002-12-22 19:34 ` Linus Torvalds
2002-12-22 19:51 ` Ulrich Drepper
2002-12-22 20:50 ` James H. Cloos Jr.
2002-12-22 20:56 ` Ulrich Drepper
2002-12-22 19:17 ` Ulrich Drepper
2002-12-20 10:08 ` Ulrich Drepper
2002-12-20 12:06 ` Jamie Lokier
2002-12-20 16:47 ` Linus Torvalds
2002-12-20 23:38 ` Jamie Lokier
2002-12-20 23:50 ` H. Peter Anvin
2002-12-21 0:09 ` Linus Torvalds
2002-12-21 17:18 ` Jamie Lokier
2002-12-21 19:39 ` Linus Torvalds
2002-12-22 2:18 ` Jamie Lokier
2002-12-22 3:11 ` Linus Torvalds
2002-12-22 10:13 ` Ingo Molnar
2002-12-22 15:32 ` Jamie Lokier
2002-12-22 18:53 ` Linus Torvalds
2002-12-23 5:03 ` Linus Torvalds
2002-12-23 7:14 ` Ulrich Drepper
2002-12-23 23:27 ` Petr Vandrovec
2002-12-24 0:22 ` Stephen Rothwell
2002-12-24 4:10 ` Linus Torvalds
2002-12-24 8:05 ` Rogier Wolff [this message]
2002-12-24 18:51 ` Linus Torvalds
2002-12-24 21:10 ` Rogier Wolff
2002-12-27 16:14 ` Kai Henningsen
2002-12-24 19:36 ` Linus Torvalds
2002-12-24 20:20 ` Ingo Molnar
2002-12-24 20:27 ` Linus Torvalds
2002-12-24 20:31 ` Ingo Molnar
2002-12-24 20:39 ` Linus Torvalds
2002-12-28 2:05 ` H. Peter Anvin
2002-12-28 2:04 ` H. Peter Anvin
2002-12-26 7:47 ` Pavel Machek
2003-01-10 11:30 ` Gabriel Paubert
2003-01-10 17:11 ` Linus Torvalds
2002-12-22 10:23 ` Ingo Molnar
-- strict thread matches above, loose matches on Subject: below --
2003-01-10 18:08 Gabriel Paubert
2002-12-30 13:06 Manfred Spraul
2002-12-30 14:54 ` Andi Kleen
2002-12-22 15:45 Nakajima, Jun
2002-12-22 12:33 Mikael Pettersson
2002-12-22 16:00 ` Jamie Lokier
2002-12-19 18:46 billyrose
2002-12-19 16:10 billyrose
2002-12-19 15:20 bart
2002-12-19 14:57 bart
2002-12-19 14:40 billyrose
2002-12-19 15:11 ` Richard B. Johnson
2002-12-19 13:22 bart
2002-12-19 13:38 ` Dave Jones
2002-12-19 14:22 ` Jamie Lokier
2002-12-19 16:56 ` Dave Jones
2002-12-19 19:29 ` H. Peter Anvin
2002-12-18 23:51 billyrose
2002-12-19 13:10 ` Richard B. Johnson
2002-12-18 12:55 Terje Eggestad
2002-12-18 20:14 ` H. Peter Anvin
2002-12-18 20:25 ` Richard B. Johnson
2002-12-18 20:26 ` H. Peter Anvin
2002-12-18 22:28 ` Jamie Lokier
2002-12-18 22:37 ` Linus Torvalds
2002-12-18 22:57 ` Linus Torvalds
2002-12-20 0:53 ` Daniel Jacobowitz
2002-12-20 1:47 ` Linus Torvalds
2002-12-20 2:37 ` Daniel Jacobowitz
2002-12-18 22:39 ` H. Peter Anvin
2002-12-18 1:30 Nakajima, Jun
2002-12-18 1:54 ` Ulrich Drepper
2002-12-18 3:36 ` H. Peter Anvin
2002-12-18 4:05 ` Linus Torvalds
2002-12-18 4:36 ` H. Peter Anvin
2002-12-18 4:07 ` Linus Torvalds
2002-12-18 4:40 ` Stephen Rothwell
2002-12-18 4:52 ` Linus Torvalds
2002-12-18 4:53 ` Andrew Morton
2002-12-18 19:12 ` Andrew Morton
2002-12-18 23:45 ` Pavel Machek
2002-12-20 3:05 ` Alan Cox
2002-12-20 4:03 ` Stephen Rothwell
2002-12-18 6:00 ` Brian Gerst
2002-12-17 16:32 Manfred Spraul
2002-12-17 17:13 ` Richard B. Johnson
2002-12-17 17:19 ` Richard B. Johnson
2002-12-17 17:37 ` Mikael Pettersson
2002-12-17 16:14 John Reiser
2002-12-17 16:01 John Reiser
[not found] <20021209193649.GC10316@suse.de.suse.lists.linux.kernel>
[not found] ` <Pine.LNX.4.44.0212161639310.1623-100000@penguin.transmeta.com.suse.lists.linux.kernel>
2002-12-17 8:56 ` Andi Kleen
2002-12-17 16:57 ` Linus Torvalds
2002-12-18 5:25 ` Brian Gerst
2002-12-18 6:06 ` Linus Torvalds
2002-12-21 11:24 ` Ingo Molnar
2002-12-21 17:28 ` Jamie Lokier
2002-12-21 16:07 ` Christian Leber
2002-12-15 8:43 scott thomason
2002-12-15 4:06 Albert D. Cahalan
2002-12-15 22:01 ` Pavel Machek
2002-12-16 7:33 ` Albert D. Cahalan
2002-12-16 11:17 ` Pavel Machek
2002-12-16 17:54 ` Mark Mielke
2002-12-16 16:07 ` Jonah Sherman
2002-12-17 4:10 ` David Schwartz
2002-12-17 8:02 ` Helge Hafting
2002-12-16 19:55 ` H. Peter Anvin
2002-12-13 21:52 Margit Schubert-While
2002-12-13 19:32 Dieter Nützel
2002-12-13 17:51 Margit Schubert-While
2002-12-11 12:48 Terje Eggestad
2002-12-11 18:50 ` H. Peter Anvin
2002-12-12 9:42 ` Terje Eggestad
2002-12-12 10:06 ` Arjan van de Ven
2002-12-12 10:31 ` Terje Eggestad
2002-12-12 19:03 ` H. Peter Anvin
2002-12-12 20:36 ` Mark Mielke
2002-12-12 20:56 ` J.A. Magallon
2002-12-12 20:12 ` Zac Hansen
2002-12-13 9:21 ` Terje Eggestad
2002-12-13 15:58 ` Ville Herva
2002-12-13 21:57 ` Terje Eggestad
2002-12-13 22:53 ` H. Peter Anvin
2002-12-12 20:56 ` Vojtech Pavlik
2002-12-09 8:30 Mike Hayward
2002-12-09 15:40 ` erich
2002-12-09 17:48 ` Linus Torvalds
2002-12-09 19:36 ` Dave Jones
2002-12-09 19:46 ` H. Peter Anvin
2002-12-28 20:37 ` Ville Herva
2002-12-29 2:05 ` Christian Leber
2002-12-30 18:22 ` Christian Leber
2002-12-30 21:22 ` Linus Torvalds
2002-12-30 11:29 ` Dave Jones
2002-12-17 0:47 ` Linus Torvalds
2002-12-17 1:03 ` Dave Jones
2002-12-17 2:36 ` Linus Torvalds
2002-12-17 5:55 ` Linus Torvalds
2002-12-17 6:09 ` Linus Torvalds
2002-12-17 6:18 ` Linus Torvalds
2002-12-19 14:03 ` Shuji YAMAMURA
2002-12-17 6:19 ` GrandMasterLee
2002-12-17 6:43 ` dean gaudet
2002-12-17 16:50 ` Linus Torvalds
2002-12-17 19:11 ` H. Peter Anvin
2002-12-17 21:39 ` Benjamin LaHaise
2002-12-17 21:41 ` H. Peter Anvin
2002-12-17 21:53 ` Benjamin LaHaise
2002-12-18 23:53 ` Pavel Machek
2002-12-19 22:18 ` H. Peter Anvin
2002-12-19 22:21 ` Pavel Machek
2002-12-19 22:23 ` H. Peter Anvin
2002-12-19 22:26 ` Pavel Machek
2002-12-19 22:30 ` H. Peter Anvin
2002-12-19 22:34 ` Pavel Machek
2002-12-19 22:36 ` H. Peter Anvin
2002-12-17 19:12 ` H. Peter Anvin
2002-12-17 19:26 ` Martin J. Bligh
2002-12-17 20:51 ` Alan Cox
2002-12-17 20:16 ` H. Peter Anvin
2002-12-17 20:49 ` Alan Cox
2002-12-17 20:12 ` H. Peter Anvin
2002-12-17 9:45 ` Andre Hedrick
2002-12-17 12:40 ` Dave Jones
2002-12-17 23:18 ` Andre Hedrick
2002-12-17 15:12 ` Alan Cox
2002-12-18 23:55 ` Pavel Machek
2002-12-19 22:17 ` H. Peter Anvin
2002-12-17 10:53 ` Ulrich Drepper
2002-12-17 11:17 ` dada1
2002-12-17 17:33 ` Ulrich Drepper
2002-12-17 17:06 ` Linus Torvalds
2002-12-17 17:55 ` Ulrich Drepper
2002-12-17 18:01 ` Linus Torvalds
2002-12-17 19:23 ` Alan Cox
2002-12-17 18:48 ` Ulrich Drepper
2002-12-17 19:19 ` H. Peter Anvin
2002-12-17 19:44 ` Alan Cox
2002-12-17 19:52 ` Richard B. Johnson
2002-12-17 19:54 ` H. Peter Anvin
2002-12-17 19:58 ` Linus Torvalds
2002-12-18 7:20 ` Kai Henningsen
2002-12-17 18:49 ` Linus Torvalds
2002-12-17 19:09 ` Ross Biro
2002-12-17 21:34 ` Benjamin LaHaise
2002-12-17 21:36 ` H. Peter Anvin
2002-12-17 21:50 ` Benjamin LaHaise
2002-12-18 23:59 ` Pavel Machek
2002-12-17 16:12 ` Hugh Dickins
2002-12-17 16:33 ` Richard B. Johnson
2002-12-17 17:47 ` Linus Torvalds
2002-12-17 16:54 ` Hugh Dickins
2002-12-17 17:07 ` Linus Torvalds
2002-12-17 17:19 ` Matti Aarnio
2002-12-17 17:55 ` Linus Torvalds
2002-12-17 18:24 ` Linus Torvalds
2002-12-17 18:33 ` Ulrich Drepper
2002-12-17 18:30 ` Ulrich Drepper
2002-12-17 19:04 ` Linus Torvalds
2002-12-17 19:19 ` Ulrich Drepper
2002-12-17 19:28 ` Linus Torvalds
2002-12-17 19:32 ` H. Peter Anvin
2002-12-17 19:44 ` Linus Torvalds
2002-12-17 19:53 ` Ulrich Drepper
2002-12-17 20:01 ` Linus Torvalds
2002-12-17 20:17 ` Ulrich Drepper
2002-12-18 4:15 ` Linus Torvalds
2002-12-18 4:15 ` Linus Torvalds
2002-12-18 4:39 ` H. Peter Anvin
2002-12-18 4:49 ` Linus Torvalds
2002-12-18 6:38 ` Linus Torvalds
2002-12-18 13:17 ` Richard B. Johnson
2002-12-18 13:40 ` Horst von Brand
2002-12-18 13:47 ` Sean Neakums
2002-12-18 14:10 ` Horst von Brand
2002-12-18 14:51 ` dada1
2002-12-18 19:12 ` Mark Mielke
2002-12-18 15:52 ` Alan Cox
2002-12-18 16:41 ` Dave Jones
2002-12-18 18:41 ` Horst von Brand
2002-12-17 19:26 ` Alan Cox
2002-12-17 18:57 ` Ulrich Drepper
2002-12-17 19:10 ` Linus Torvalds
2002-12-17 19:21 ` H. Peter Anvin
2002-12-17 19:37 ` Linus Torvalds
2002-12-17 19:43 ` H. Peter Anvin
2002-12-17 20:07 ` Matti Aarnio
2002-12-17 20:10 ` H. Peter Anvin
2002-12-17 19:59 ` Matti Aarnio
2002-12-17 20:06 ` Ulrich Drepper
2002-12-17 20:35 ` Daniel Jacobowitz
2002-12-18 0:20 ` Linus Torvalds
2002-12-18 0:38 ` Ulrich Drepper
2002-12-18 7:41 ` Kai Henningsen
2002-12-18 13:00 ` Rogier Wolff
2002-12-17 19:47 ` Dave Jones
2002-12-18 12:57 ` Rogier Wolff
2002-12-19 0:14 ` Pavel Machek
2002-12-17 21:38 ` Benjamin LaHaise
2002-12-17 21:41 ` H. Peter Anvin
2002-12-17 18:39 ` Jeff Dike
2002-12-17 19:05 ` Linus Torvalds
2002-12-18 5:34 ` Jeremy Fitzhardinge
2002-12-18 5:38 ` H. Peter Anvin
2002-12-18 15:50 ` Alan Cox
2002-12-18 23:51 ` Pavel Machek
2002-12-13 15:45 ` William Lee Irwin III
2002-12-13 16:49 ` Mike Hayward
2002-12-14 0:55 ` GrandMasterLee
2002-12-14 4:41 ` Mike Dresser
2002-12-14 4:53 ` Mike Dresser
2002-12-14 10:01 ` Dave Jones
2002-12-14 17:48 ` Mike Dresser
2002-12-14 18:36 ` GrandMasterLee
2002-12-15 2:03 ` J.A. Magallon
2002-12-15 21:59 ` Pavel Machek
2002-12-15 22:37 ` William Lee Irwin III
2002-12-15 22:43 ` Pavel Machek
2002-12-09 7:01 Samium Gromoff
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=20021224090520.A19829@bitwizard.nl \
--to=r.e.wolff@bitwizard.nl \
--cc=bart@etpmod.phys.tue.nl \
--cc=davej@codemonkey.org.uk \
--cc=drepper@redhat.com \
--cc=hpa@transmeta.com \
--cc=hugh@veritas.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lk@tantalophile.demon.co.uk \
--cc=matti.aarnio@zmailer.org \
--cc=mingo@elte.hu \
--cc=sfr@canb.auug.org.au \
--cc=terje.eggestad@scali.com \
--cc=torvalds@transmeta.com \
--cc=vandrove@vc.cvut.cz \
/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.