From: David Newall <david@davidnewall.com>
To: Rene Herman <rene.herman@keyaccess.nl>
Cc: Paul Rolland <rol@as2917.net>, "H. Peter Anvin" <hpa@zytor.com>,
Krzysztof Halasa <khc@pm.waw.pl>, Pavel Machek <pavel@ucw.cz>,
Andi Kleen <andi@firstfloor.org>,
Alan Cox <alan@lxorguk.ukuu.org.uk>,
"David P. Reed" <dpreed@reed.com>,
linux-kernel@vger.kernel.org,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>,
rol@witbe.net
Subject: Re: RFC: outb 0x80 in inb_p, outb_p harmful on some modern AMD64 with MCP51 laptops
Date: Wed, 12 Dec 2007 00:20:27 +1030 [thread overview]
Message-ID: <475E95A3.3070801@davidnewall.com> (raw)
In-Reply-To: <475E8D91.20201@keyaccess.nl>
Rene Herman wrote:
> This particular discussion isn't about anything in general but solely
> about the delay an outb_p gives you on x86 since what is under
> discussion is not using an output to port 0x80 on that platform to
> generate it.
That could be true if outb_p were used only in architecture dependent
code, but it's not. It's used in drivers that are supposed to run on
all sorts of platforms. Why does a megaraid controller need delays on
i386 but not on Sparc, PowerPC, Alpha and others? Is it buggy on most
platforms, or just unnecessarily slow on Intel?
>> is needed, wouldn't you use a real delay; one that says how long it
>> should be?
> Thinking that _p gives a pause is perhaps too PC-centric. Why, if a delay
>
> Because any possible outb_p delay should be synced to the bus-clock,
> not to any wall-clock.
You misunderstand. A delay can be counted in bus cycles.
> In the real world, driver authors aren't perfect and will have used
> outb_p as a wall-clock delay which they have gotten away with since
> it's a nicely specified delay in terms of the ISA/LPC clock and the
> ISA/LPC clock being fairly (old) to very (new) constant.
It's most commonly a zero delay. Only in the minority of architectures
is it otherwise. If a delay is needed, then put one in, but don't put
in a paper promise that's more likely to be ignored than observed.
Plenty of doubt has been expressed as to whether _p is widely used
without need. Not surprising since it has such a vague specific
meaning. One could say, Linux on i386 is liberally sprinkled with
needless delays. I suppose it has the advantage that Microsoft will be
hard pressed to catch up when finally we remove them. :-)
I really prefer accurate code, but I'm also pragmatic and realise that
it's far too much work to fix this any time soon. But if it were to be
fixed, then perhaps _p would take an additional parameter, measured in
cycles of delay.
next prev parent reply other threads:[~2007-12-11 13:50 UTC|newest]
Thread overview: 125+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-06 22:38 RFC: outb 0x80 in inb_p, outb_p harmful on some modern AMD64 with MCP51 laptops David P. Reed
2007-12-07 0:15 ` Alan Cox
2007-12-07 10:44 ` Andi Kleen
2007-12-07 14:50 ` David P. Reed
2007-12-05 11:10 ` Pavel Machek
2007-12-08 0:21 ` Andi Kleen
2007-12-07 14:54 ` Andi Kleen
2007-12-07 15:43 ` Rene Herman
2007-12-07 16:28 ` Rene Herman
2007-12-11 0:31 ` H. Peter Anvin
2007-12-11 5:53 ` H. Peter Anvin
2007-12-07 16:04 ` Alan Cox
2007-12-07 16:31 ` Andi Kleen
2007-12-07 17:19 ` Alan Cox
2007-12-07 18:45 ` Rene Herman
2007-12-07 18:42 ` Alan Cox
2007-12-07 19:25 ` Rene Herman
2007-12-07 21:45 ` Alan Cox
2007-12-08 19:25 ` David P. Reed
2007-12-08 19:50 ` Andi Kleen
2007-12-08 20:47 ` David P. Reed
2007-12-08 21:04 ` Alan Cox
2007-12-08 20:26 ` Alan Cox
2007-12-11 5:58 ` H. Peter Anvin
2007-12-09 5:04 ` Rene Herman
2007-12-09 13:22 ` Pavel Machek
2007-12-11 15:14 ` Lennart Sorensen
2007-12-09 12:54 ` Pavel Machek
2007-12-09 13:41 ` Dr. David Alan Gilbert
2007-12-09 15:54 ` Ondrej Zary
2007-12-09 16:59 ` Andi Kleen
2007-12-09 21:25 ` Pavel Machek
2007-12-09 22:29 ` Alan Cox
2007-12-09 23:22 ` Pavel Machek
2007-12-10 12:02 ` Alan Cox
2007-12-10 4:17 ` Rene Herman
2007-12-10 11:30 ` Krzysztof Halasa
2007-12-10 12:08 ` Rene Herman
2007-12-10 18:02 ` Ondrej Zary
2007-12-11 1:10 ` David Newall
2007-12-11 1:25 ` H. Peter Anvin
2007-12-11 1:42 ` David Newall
2007-12-11 1:46 ` H. Peter Anvin
2007-12-11 1:51 ` H. Peter Anvin
2007-12-11 7:40 ` Paul Rolland
2007-12-11 9:50 ` Rene Herman
2007-12-11 12:08 ` David Newall
2007-12-11 13:16 ` Rene Herman
2007-12-11 13:32 ` Paul Rolland
2007-12-11 14:15 ` Rene Herman
2007-12-11 15:28 ` Rene Herman
2007-12-11 15:37 ` Paul Rolland
2007-12-11 15:53 ` Rene Herman
2007-12-11 16:58 ` David P. Reed
2007-12-11 17:01 ` Rene Herman
2007-12-11 17:05 ` H. Peter Anvin
2007-12-11 17:32 ` Alan Cox
2007-12-11 19:19 ` David P. Reed
2007-12-11 19:36 ` Pavel Machek
2007-12-11 20:16 ` Alan Cox
2007-12-11 20:27 ` linux-os (Dick Johnson)
2007-12-11 20:34 ` Rene Herman
2007-12-11 21:03 ` David P. Reed
2007-12-11 23:56 ` David P. Reed
2007-12-12 13:11 ` linux-os (Dick Johnson)
2007-12-12 16:12 ` Alan Cox
2007-12-14 14:33 ` Ingo Molnar
2007-12-16 21:26 ` Pavel Machek
2007-12-17 0:02 ` Alan Cox
2007-12-17 0:03 ` Alan Cox
2007-12-17 0:28 ` Pavel Machek
2007-12-17 14:42 ` Ingo Molnar
2007-12-27 10:39 ` Pavel Machek
2007-12-12 19:42 ` Attitude problems David P. Reed
2007-12-12 20:31 ` linux-os (Dick Johnson)
2007-12-14 16:01 ` linux-os (Dick Johnson)
2007-12-11 16:32 ` RFC: outb 0x80 in inb_p, outb_p harmful on some modern AMD64 with MCP51 laptops John Stoffel
2007-12-11 16:40 ` Rene Herman
2007-12-11 13:50 ` David Newall [this message]
2007-12-11 14:14 ` Rene Herman
2007-12-11 14:25 ` Alan Cox
2007-12-12 22:18 ` David Newall
2007-12-12 23:00 ` Alan Cox
2007-12-13 13:13 ` David P. Reed
2007-12-13 13:21 ` Alan Cox
2007-12-14 1:50 ` David P. Reed
2007-12-14 15:16 ` Alan Cox
2007-12-11 15:41 ` linux-os (Dick Johnson)
2007-12-11 16:30 ` Andi Kleen
2007-12-11 16:50 ` Rene Herman
2007-12-11 17:00 ` David P. Reed
2007-12-11 17:04 ` Rene Herman
2007-12-11 17:27 ` Rene Herman
2007-12-11 19:18 ` Pavel Machek
2007-12-11 19:16 ` Pavel Machek
2007-12-11 19:59 ` Rene Herman
2007-12-11 19:59 ` Rene Herman
2007-12-11 20:00 ` Rene Herman
2007-12-11 20:00 ` Rene Herman
2007-12-12 20:07 ` More info on port 80 symptoms on MCP51 machine David P. Reed
2007-12-12 20:26 ` Rene Herman
2007-12-12 20:37 ` David P. Reed
2007-12-12 20:58 ` Rene Herman
2007-12-12 21:01 ` Alan Cox
2007-12-12 21:12 ` H. Peter Anvin
2007-12-12 21:29 ` Alan Cox
2007-12-15 22:34 ` Allen Martin
2007-12-15 22:46 ` H. Peter Anvin
2007-12-16 0:46 ` David P. Reed
2007-12-12 21:05 ` H. Peter Anvin
2007-12-14 22:05 ` Chuck Ebbert
2007-12-15 7:22 ` Rene Herman
2007-12-11 13:14 ` RFC: outb 0x80 in inb_p, outb_p harmful on some modern AMD64 with MCP51 laptops Alan Cox
2007-12-11 13:32 ` Andi Kleen
2007-12-11 13:47 ` Pavel Machek
2007-12-11 13:50 ` Andi Kleen
2007-12-14 13:33 ` Ingo Molnar
2007-12-11 6:54 ` Rene Herman
2007-12-11 17:01 ` H. Peter Anvin
[not found] <fa./27SNSh+L5T3iqFNPdHClEu+yT0@ifi.uio.no>
2007-12-07 0:23 ` Robert Hancock
2007-12-07 5:09 ` Rene Herman
2007-12-07 5:54 ` David P. Reed
2007-12-07 7:17 ` Rene Herman
2007-12-07 7:34 ` Rene Herman
2007-12-07 10:49 ` Andi Kleen
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=475E95A3.3070801@davidnewall.com \
--to=david@davidnewall.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=andi@firstfloor.org \
--cc=dpreed@reed.com \
--cc=hpa@zytor.com \
--cc=khc@pm.waw.pl \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=pavel@ucw.cz \
--cc=rene.herman@keyaccess.nl \
--cc=rol@as2917.net \
--cc=rol@witbe.net \
--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