From: torvalds@transmeta.com (Linus Torvalds)
To: linux-kernel@vger.kernel.org
Subject: Re: [Bug 350] New: i386 context switch very slow compared to 2.4 due to wrmsr (performance)
Date: Wed, 12 Feb 2003 05:49:26 +0000 (UTC) [thread overview]
Message-ID: <b2cn96$7dk$1@penguin.transmeta.com> (raw)
In-Reply-To: 20030212042143.GB9273@bjl1.jlokier.co.uk
In article <20030212042143.GB9273@bjl1.jlokier.co.uk>,
Jamie Lokier <jamie@shareable.org> wrote:
>Dave Jones wrote:
>> I feel I'm missing something obvious here, but is this part the
>> low-hanging fruit that it seems ?
>
>You have eliminated one MSR write very cleanly, although there are
>still a few unnecessary conditionals when compared with grabbing a
>whole branch of the fruit tree, as it were.
>
>That leaves the other MSR write, which is also unnecessary.
No, the other one _is_ necessary. I did timings, and having it in the
context switch path made system calls clearly faster on a P4 (as
compared to my original trampoline approach).
It may be only two instructions difference ("movl xx,%esp ; jmp common")
in the system call path, but it was much more than two cycles. I don't
know why, but I assume the system call causes a total pipeline flush,
and then the immediate jmp basically means that the P4 has a hard time
getting the pipe restarted.
This might be fixable by moving more (all?) of the kernel-side fast
system call code into the per-cpu trampoline page, so that you wouldn't
have the immediate jump. Somebody needs to try it and time it, otherwise
the wrmsr stays in the context switch.
I want fast system calls. Most people don't see it yet (because you need
a glibc that takes advantage of it), but those fast system calls are
more than enough to make up for some scheduling overhead.
Linus
next prev parent reply other threads:[~2003-02-12 5:43 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-02-12 1:35 [Bug 350] New: i386 context switch very slow compared to 2.4 due to wrmsr (performance) Martin J. Bligh
2003-02-12 2:59 ` Dave Jones
2003-02-12 4:21 ` Jamie Lokier
2003-02-12 5:49 ` Linus Torvalds [this message]
2003-02-12 10:12 ` Jamie Lokier
2003-03-10 3:07 ` Linus Torvalds
2003-03-10 11:06 ` Andi Kleen
2003-03-10 18:33 ` Linus Torvalds
2003-03-10 22:44 ` Linus Torvalds
2003-02-12 12:54 ` Dave Jones
2003-02-12 7:50 ` Andi Kleen
2003-02-12 10:27 ` Jamie Lokier
2003-02-12 10:45 ` Andi Kleen
2003-02-12 17:52 ` Ingo Oeser
2003-02-12 18:13 ` Dave Jones
2003-02-12 18:18 ` Andi Kleen
2003-02-13 2:42 ` Alan Cox
2003-02-13 5:17 ` Eric W. Biederman
2003-02-13 18:07 ` Andi Kleen
2003-02-14 0:14 ` [discuss] " Peter Tattam
2003-02-14 1:29 ` Andi Kleen
2003-02-14 1:51 ` Eric Northup
2003-02-14 2:01 ` Peter Tattam
2003-02-14 4:07 ` Thomas J. Merritt
2003-02-14 9:38 ` Peter Finderup Lund
2003-02-14 8:27 ` Eric W. Biederman
2003-03-19 1:22 ` Rob Landley
2003-02-12 4:18 ` Jamie Lokier
2003-02-12 5:54 ` Linus Torvalds
2003-02-12 10:18 ` Jamie Lokier
2003-02-12 17:24 ` Linus Torvalds
2003-03-18 15:24 ` Kevin Pedretti
2003-03-18 16:41 ` Linus Torvalds
2003-03-18 18:30 ` Brian Gerst
2003-03-18 19:14 ` Thomas Molina
2003-03-18 19:21 ` Linus Torvalds
2003-03-18 20:03 ` Thomas Schlichter
2003-03-18 20:24 ` Steven Cole
2003-03-19 0:42 ` H. Peter Anvin
2003-03-19 2:22 ` george anzinger
[not found] <20030318165013$55f4@gated-at.bofh.it>
[not found] ` <20030318184010$6448@gated-at.bofh.it>
2003-03-18 20:19 ` Pascal Schmidt
-- strict thread matches above, loose matches on Subject: below --
2003-03-19 9:55 Ph. Marek
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='b2cn96$7dk$1@penguin.transmeta.com' \
--to=torvalds@transmeta.com \
--cc=linux-kernel@vger.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.