[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20071230170612.GA16502@elte.hu>
Date: Sun, 30 Dec 2007 18:06:12 +0100
From: Ingo Molnar <mingo@...e.hu>
To: Rene Herman <rene.herman@...access.nl>
Cc: Alan Cox <alan@...rguk.ukuu.org.uk>,
Linus Torvalds <torvalds@...ux-foundation.org>,
dpreed@...d.com, Islam Amer <pharon@...il.com>, hpa@...or.com,
Pavel Machek <pavel@....cz>, Ingo Molnar <mingo@...hat.com>,
Andi Kleen <andi@...stfloor.org>,
Thomas Gleixner <tglx@...utronix.de>,
Linux Kernel <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] x86: provide a DMI based port 0x80 I/O delay override
* Rene Herman <rene.herman@...access.nl> wrote:
>>> Hardly. Duron 1300 on AMD756:
>>
>> but that does not matter at all: that's not '90s era hardware that we
>> are (slightly) worried about wrt. IO delays in misc_32.c. (i.e. on
>> _real_ ISA systems)
>
> Real ISA systems will also generally respond faster to it than the
> unused port (this thing actually has an ISA bus but not VGA on it
> ofcourse) which means that "a perfect delay register" it is not. But
> yes, I have an actual Am386DX-40 with ISA VGA up and running which
> also doesn't care either way, about the ones in misc_32.c or anywhere
> else for that matter.
yeah - and that's typical of most _p() use: most of them are totally
bogus, but the global existence of the delay was used as a "it _might_
break system" boogey-man against replacing it.
so _IF_ we do any delay in x86 platform drivers, we at most do a delay
on the order of the round-trip latency to the same piece of hardware we
are handling. That isolates the quirk to the same hardware category,
instead of creating these cross-dependencies and assumed dependencies on
fixed, absolute timings. (and most hardware timing bugs are not absolute
but depend on some bus speed/frequency, thus round-trip latency of that
hardware is a good approximation of that. The round-trip to the same
hardware also correctly adds any assumed PCI posting dependencies.)
So the current plan is to go with an io_delay=udelay default in v2.6.25,
to give this a migration window, and io_delay=none in v2.6.26 [and a
complete removal of arch/x86/kernel/io_delay.c], once the _p() uses are
fixed up. This is gradual enough to notice any regressions we care about
and also makes it nicely bisectable and gradual.
Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists