Cc: Zachary Amsden <zach@...>, David P. Reed <dpreed@...>, Avi Kivity <avi@...>, Ondrej Zary <linux@...>, H. Peter Anvin <hpa@...>, Bodo Eggert <7eggert@...>, Ingo Molnar <mingo@...>, Alan Cox <alan@...>, Paul Rolland <rol@...>, Pavel Machek <pavel@...>, Thomas Gleixner <tglx@...>, <linux-kernel@...>, Ingo Molnar <mingo@...>, rol <rol@...>
Yes, Alan should be considered to be in the driver seat here (and current
x86.git changes should be tossed).
Just udelay() should be fine after "fixing" udelay() to be somewhat usefully
defined pre-calibration.
I'd not expect very time crtical. The current outb_p use gives a delay
somewhere between .5 and 2 microseconds as per earlier survey meaning a
udelay(1) or 2 would be enough -- again, at the point that udelay() is sensible.
New machines don't use the legacy PIC anymore anyway.
Floppies forever. In practice, leaving it alone isn't going to matter, but
in that same practice changing it to udelay() probably doesn't either. The
ones to leave alone are the ones that are clumsy/impossible to test and the
ones such as in NIC drivers that were specifically tuned.
Not sure what the final suggestion for those was either....
... or simply deleted. The current outb_p is "outb; slow_down_io" as a macro
so that with this you also get no binary changes, making it rather easy to
prove that things do not change timing in cases where you keep the delay.
(they're not so much function calls though -- they're inlined).
Based on specific DMI strings this can be limited to tested machines (as in
current x86.git) but yes, that's not particularly pleasing.
... destroying DX while it's at it meaning this might (will) also need DX
reloads. Not an argument versus a function call, but an argument versus the
current and proposed manual "outb; slow_down_io" split.
Not so much it seems. Only that the only reason for the outb_p slit is an
API one. Molnar wants the API cleaned up to make sure no new users of outb_p
creep in, and being explkicit abhout what it that you're doing is going to
take care of that.
If simple outb_p() deprecation is considered enough instead, no need to
touch anything in drivers/, only changes to "outb(); udelay()" outside drivers/.
I'd let Alan decide here.
Thanks for the roundup.
Rene.
--