From: Ingo Molnar <mingo@elte.hu>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
Rene Herman <rene.herman@keyaccess.nl>,
dpreed@reed.com, Islam Amer <pharon@gmail.com>,
hpa@zytor.com, Pavel Machek <pavel@ucw.cz>,
Ingo Molnar <mingo@redhat.com>, Andi Kleen <andi@firstfloor.org>,
Thomas Gleixner <tglx@linutronix.de>,
Linux Kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] x86: provide a DMI based port 0x80 I/O delay override
Date: Sun, 30 Dec 2007 16:28:35 +0100 [thread overview]
Message-ID: <20071230152835.GX16946@elte.hu> (raw)
In-Reply-To: <20071230144700.78f4605c@the-village.bc.nu>
* Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:
> For modern systems we should just use tsc delays, but we have to fix
> all the drivers first as right now 0x80 causes posting and we have
> some PCI users (I think probably all bogus), and we need to fix the
> tons of locking errors that are mostly covered by the inb 0x80 being
> an indivisible operation so not getting split by interrupts/SMP.
i dont get your last point. Firstly, we do an "outb $0x80" not an inb.
Secondly, outb $0x80 has no PCI posting side-effects AFAICS. Thirdly,
even assuming that it has PCI posting side-effects, how can any locking
error be covered up by an outb 0x80 sticking together with the inb it
does before it? The sequence we emit is:
inbb $some_port
outb $0x80
and i see that the likelyhood of getting such sequences from two CPUs
'mixed up' are low, but how can this have any smp locking side-effects?
How can this provide any workaround/coverup?
> I've been going through the drivers that use it - the biggest mess
> appears to be in the watchdog drivers all of which copied an original
> lack of locking from the mid 1990s caused by umm.. me. I guess my past
> is catching up with me ;)
heh :-)
> The X server also appears to touch 0x80 in some cases but we can hope
> only on ancient hardware.
do you have any memories about the outb_p() use of misc_32.c:
pos = (x + cols * y) * 2; /* Update cursor position */
outb_p(14, vidport);
outb_p(0xff & (pos >> 9), vidport+1);
outb_p(15, vidport);
outb_p(0xff & (pos >> 1), vidport+1);
was this ever needed? This is so early in the bootup that can we cannot
do any sensible delay. Perhaps we could try a natural delay sequence via
inb from 0x3cc:
outb(14, vidport);
inb(0x3cc); /* delay */
outb(0xff & (pos >> 9), vidport+1);
inb(0x3cc); /* delay */
outb(15, vidport);
inb(0x3cc); /* delay */
outb(0xff & (pos >> 1), vidport+1);
inb(0x3cc); /* delay */
as a dummy delay (totally untested).
Reading from the 0x3cc port does not impact the cursor position update
sequence IIRC - i think the vidport is even ignored for the input
direction by most hardware, there's a separate input register. The 0x3cc
port is a well-defined VGA register which should be unused on non-VGA
hardware. (which makes it a perfect delay register in any case)
Ingo
next prev parent reply other threads:[~2007-12-30 15:36 UTC|newest]
Thread overview: 186+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-30 3:34 [PATCH] x86: provide a DMI based port 0x80 I/O delay override Rene Herman
2007-12-30 9:30 ` Linus Torvalds
2007-12-30 12:48 ` Andi Kleen
2007-12-30 13:05 ` Ingo Molnar
2007-12-30 16:08 ` Andi Kleen
2007-12-30 16:28 ` Ingo Molnar
2007-12-30 18:21 ` Andi Kleen
2007-12-30 13:03 ` Ingo Molnar
2007-12-30 14:14 ` Rene Herman
2007-12-30 14:47 ` Alan Cox
2007-12-30 15:28 ` Ingo Molnar [this message]
2007-12-30 15:38 ` Alan Cox
2007-12-30 16:01 ` Ingo Molnar
2007-12-30 16:48 ` Alan Cox
2007-12-30 17:08 ` Ingo Molnar
2007-12-30 18:14 ` Rene Herman
2007-12-30 18:39 ` Alan Cox
2007-12-30 19:33 ` Rene Herman
2007-12-30 20:00 ` Linus Torvalds
2007-12-30 20:09 ` Rene Herman
2007-12-30 21:20 ` David P. Reed
2007-12-30 21:36 ` Alan Cox
2007-12-30 23:14 ` David P. Reed
2007-12-31 0:23 ` H. Peter Anvin
2007-12-31 11:59 ` Alan Cox
2007-12-31 18:19 ` H. Peter Anvin
2007-12-31 12:23 ` Alan Cox
2007-12-31 14:35 ` Rene Herman
2007-12-31 15:56 ` Alan Cox
2007-12-31 20:22 ` Ondrej Zary
2007-12-31 21:25 ` Alan Cox
2007-12-31 21:47 ` H. Peter Anvin
2007-12-31 23:24 ` Alan Cox
2007-12-31 23:41 ` H. Peter Anvin
2008-01-02 3:01 ` Rene Herman
2007-12-30 17:10 ` Juergen Beisert
2007-12-30 20:50 ` H. Peter Anvin
2007-12-31 1:03 ` David P. Reed
2007-12-31 1:40 ` H. Peter Anvin
2007-12-30 15:47 ` Rene Herman
2007-12-30 16:07 ` Ingo Molnar
2007-12-30 16:27 ` Rene Herman
2007-12-30 17:06 ` Ingo Molnar
2007-12-30 17:54 ` Rene Herman
2007-12-30 18:29 ` Alan Cox
2007-12-30 18:43 ` Andi Kleen
2007-12-30 20:46 ` Ingo Molnar
2007-12-30 21:07 ` Rene Herman
2007-12-30 21:25 ` Ingo Molnar
2007-12-30 21:29 ` Alan Cox
2007-12-30 22:03 ` Ingo Molnar
2007-12-31 13:11 ` Pavel Machek
2008-01-01 16:48 ` Ingo Molnar
2007-12-30 18:40 ` Linus Torvalds
2007-12-30 20:34 ` Ingo Molnar
2007-12-30 21:28 ` Alan Cox
2007-12-30 21:54 ` Ingo Molnar
2007-12-30 21:13 ` Alan Cox
2007-12-31 15:29 ` Christer Weinigel
2007-12-31 13:21 ` Pavel Machek
2007-12-31 12:29 ` Alan Cox
[not found] <9BdU5-1YW-9@gated-at.bofh.it>
[not found] ` <9BeZN-3Gf-5@gated-at.bofh.it>
[not found] ` <9BnTB-1As-31@gated-at.bofh.it>
[not found] ` <9BrX4-8go-1@gated-at.bofh.it>
[not found] ` <9BuBG-4eR-51@gated-at.bofh.it>
[not found] ` <9BvRd-6aL-71@gated-at.bofh.it>
[not found] ` <9GRQW-1DX-13@gated-at.bofh.it>
[not found] ` <9GSah-23W-1@gated-at.bofh.it>
[not found] ` <9GSDy-2GD-23@gated-at.bofh.it>
[not found] ` <9GTpK-40d-15@gated-at.bofh.it>
[not found] ` <9GUvy-5H2-11@gated-at.bofh.it>
[not found] ` <9GVKU-7SS-25@gated-at.bofh.it>
2008-01-07 19:38 ` Bodo Eggert
2008-01-07 19:46 ` H. Peter Anvin
2008-01-07 22:02 ` Bodo Eggert
2008-01-07 22:10 ` H. Peter Anvin
2008-01-07 22:27 ` Bodo Eggert
2008-01-07 22:59 ` Rene Herman
2008-01-07 23:24 ` H. Peter Anvin
2008-01-07 23:26 ` Rene Herman
2008-01-08 0:10 ` [linux-kernel] " David P. Reed
2008-01-09 21:01 ` Matthieu castet
2008-01-08 12:51 ` Bodo Eggert
2008-01-08 14:09 ` Rene Herman
2008-01-08 14:31 ` Alan Cox
2008-01-07 23:25 ` Alan Cox
2008-01-08 13:17 ` Bodo Eggert
2008-01-08 14:38 ` Alan Cox
2008-01-08 3:15 ` Christer Weinigel
[not found] <fa.PuxU73ceCfHAUeWLO4W21Zbrm7A@ifi.uio.no>
[not found] ` <fa.ipKZdmvkNYmQ40C0cO+2u3eYohw@ifi.uio.no>
[not found] ` <fa.ppsa4qOLo1V8UlDNTucnaqIJmKA@ifi.uio.no>
[not found] ` <fa.3IG7z0AfHuLo9eQjn7Gkl/+/lnA@ifi.uio.no>
[not found] ` <fa.slc2tTnUBrTGO2aTi/C5UGHEEEM@ifi.uio.no>
[not found] ` <fa.8g+KfLLge6wS5cEnKhZJmdkIVAI@ifi.uio.no>
2007-12-30 18:22 ` Robert Hancock
[not found] ` <fa.XY5q1SY4QX+yjnE6p8T3kbTt/8I@ifi.uio.no>
[not found] ` <fa.KEBfnq5vGkAJSEhZSx7+yy+Hdbs@ifi.uio.no>
[not found] ` <fa.MLKgXLxgzIKzm4bQXjEOqg9oDwU@ifi.uio.no>
[not found] ` <fa.KbCnGLPlUEYe/Ibajd+hTY7A7Qw@ifi.uio.no>
2007-12-31 18:21 ` Robert Hancock
[not found] <9FXbU-3M4-11@gated-at.bofh.it>
[not found] ` <9G2Om-4hg-1@gated-at.bofh.it>
[not found] ` <9G7O3-3O2-7@gated-at.bofh.it>
[not found] ` <9G8qN-4TX-13@gated-at.bofh.it>
2007-12-30 17:50 ` Bodo Eggert
2007-12-30 18:10 ` Ingo Molnar
2007-12-30 20:56 ` H. Peter Anvin
2007-12-30 21:00 ` Ingo Molnar
2007-12-30 21:32 ` Bodo Eggert
2007-12-30 21:33 ` Alan Cox
2007-12-30 22:02 ` Ingo Molnar
2007-12-30 21:44 ` H. Peter Anvin
2007-12-30 21:58 ` Rene Herman
2007-12-30 20:53 ` H. Peter Anvin
2007-12-30 21:31 ` Alan Cox
2007-12-31 14:39 ` Bodo Eggert
2007-12-31 15:56 ` Alan Cox
[not found] <469578CD.3080609@reed.com>
[not found] ` <1184216528.12353.203.camel@chaos>
[not found] ` <1184218962.12353.209.camel@chaos>
[not found] ` <46964352.7040301@reed.com>
[not found] ` <1184253339.12353.223.camel@chaos>
[not found] ` <469697C6.50903@reed.com>
[not found] ` <1184274754.12353.254.camel@chaos>
2007-12-14 2:59 ` [PATCH] x86_64: fix problems due to use of "outb" to port 80 on some AMD64x2 laptops, etc David P. Reed
2007-12-14 13:15 ` Ingo Molnar
2007-12-14 18:02 ` H. Peter Anvin
2007-12-14 21:06 ` Pavel Machek
2007-12-14 22:13 ` H. Peter Anvin
2007-12-14 23:29 ` Alan Cox
2007-12-15 8:08 ` Paul Rolland
2007-12-15 8:13 ` Rene Herman
2007-12-15 20:27 ` H. Peter Anvin
2007-12-15 23:26 ` [PATCH] x86: " Rene Herman
2007-12-15 23:51 ` H. Peter Anvin
2007-12-16 13:15 ` [PATCH] x86: provide a DMI based port 0x80 I/O delay override Rene Herman
2007-12-16 15:22 ` Ingo Molnar
2007-12-17 1:43 ` Rene Herman
2007-12-17 2:05 ` H. Peter Anvin
2007-12-17 2:19 ` Rene Herman
2007-12-17 3:35 ` H. Peter Anvin
2007-12-17 13:02 ` Rene Herman
2007-12-17 17:14 ` H. Peter Anvin
2007-12-17 19:43 ` David P. Reed
2007-12-17 19:55 ` H. Peter Anvin
2007-12-17 21:02 ` David P. Reed
2007-12-17 21:17 ` H. Peter Anvin
2007-12-17 21:25 ` Alan Cox
2008-01-01 15:57 ` David P. Reed
2008-01-01 21:16 ` H. Peter Anvin
2008-01-01 15:59 ` David P. Reed
2008-01-01 16:15 ` Alan Cox
2008-01-01 16:43 ` Ingo Molnar
2008-01-01 17:32 ` Alan Cox
2008-01-01 18:45 ` Ingo Molnar
2008-01-01 20:14 ` Christer Weinigel
2008-01-01 21:13 ` Alan Cox
2008-01-01 21:07 ` Alan Cox
2008-01-02 10:04 ` Ingo Molnar
2008-01-02 13:47 ` Alan Cox
2008-01-02 15:35 ` Rene Herman
2008-01-02 15:50 ` Rene Herman
2008-01-01 17:32 ` Christer Weinigel
2008-01-01 18:46 ` Ingo Molnar
2008-01-01 19:35 ` Christer Weinigel
2008-01-01 19:59 ` Rene Herman
2008-01-01 20:55 ` Christer Weinigel
2008-01-01 21:24 ` H. Peter Anvin
2008-01-01 21:01 ` Ingo Molnar
2008-01-01 21:26 ` Alan Cox
2008-01-01 21:42 ` Christer Weinigel
2008-01-01 21:42 ` Rene Herman
2008-01-01 21:50 ` H. Peter Anvin
2008-01-01 21:21 ` H. Peter Anvin
2008-01-01 23:05 ` Christer Weinigel
2008-01-01 23:12 ` Alan Cox
2008-01-02 0:23 ` Christer Weinigel
2008-01-02 10:00 ` Ingo Molnar
2008-01-01 17:32 ` David P. Reed
2008-01-01 17:38 ` Alan Cox
2008-01-01 21:15 ` H. Peter Anvin
2008-01-01 21:35 ` Rene Herman
2008-01-01 21:44 ` H. Peter Anvin
2008-01-01 22:35 ` Rene Herman
2008-01-01 22:39 ` H. Peter Anvin
2008-01-01 23:11 ` Rene Herman
2008-01-02 0:25 ` Rene Herman
2008-01-02 0:55 ` Christer Weinigel
2008-01-02 1:00 ` Rene Herman
2008-01-02 2:27 ` H. Peter Anvin
2008-01-09 17:27 ` Maciej W. Rozycki
2008-01-09 18:18 ` H. Peter Anvin
2008-01-01 17:31 ` Pavel Machek
2008-01-01 17:33 ` David P. Reed
2007-12-17 4:09 ` H. Peter Anvin
2007-12-17 10:57 ` Ingo Molnar
2007-12-17 11:29 ` Ingo Molnar
2007-12-17 13:34 ` David P. Reed
2007-12-17 12:15 ` Rene Herman
2007-12-17 13:09 ` Ingo Molnar
2007-12-17 13:22 ` Rene Herman
2007-12-17 13:31 ` Pavel Machek
2007-12-17 13:31 ` Rene Herman
2007-12-17 13:32 ` David P. Reed
2007-12-17 13:36 ` Rene Herman
2007-12-17 14:39 ` Ingo Molnar
2007-12-17 16:12 ` Alan Cox
2007-12-17 16:48 ` Ingo Molnar
2007-12-17 20:48 ` Rene Herman
2007-12-17 20:57 ` H. Peter Anvin
2007-12-17 21:33 ` Rene Herman
2007-12-17 21:40 ` H. Peter Anvin
2007-12-17 21:46 ` Ingo Molnar
2007-12-17 21:50 ` Rene Herman
2007-12-17 21:41 ` Ingo Molnar
2007-12-17 21:47 ` Rene Herman
2007-12-17 21:56 ` Ingo Molnar
2007-12-17 22:01 ` Rene Herman
2007-12-17 22:18 ` David P. Reed
2007-12-17 19:38 ` David P. Reed
2007-12-17 19:55 ` H. Peter Anvin
2007-12-17 21:28 ` Ingo Molnar
2007-12-16 21:42 ` H. Peter Anvin
2007-12-17 1:48 ` Rene Herman
2007-12-17 1:53 ` H. Peter Anvin
2007-12-16 23:12 ` David P. Reed
2007-12-17 1:56 ` Rene Herman
2007-12-17 2:04 ` H. Peter Anvin
2007-12-17 2:15 ` Rene Herman
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=20071230152835.GX16946@elte.hu \
--to=mingo@elte.hu \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=andi@firstfloor.org \
--cc=dpreed@reed.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=pavel@ucw.cz \
--cc=pharon@gmail.com \
--cc=rene.herman@keyaccess.nl \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.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.