[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <p733auekcly.fsf@bingen.suse.de>
Date: Fri, 07 Dec 2007 11:44:57 +0100
From: Andi Kleen <andi@...stfloor.org>
To: "David P. Reed" <dpreed@...d.com>
Cc: linux-kernel@...r.kernel.org, Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...hat.com>,
"H. Peter Anvin" <hpa@...or.com>
Subject: Re: RFC: outb 0x80 in inb_p, outb_p harmful on some modern AMD64 with MCP51 laptops
"David P. Reed" <dpreed@...d.com> writes:
>
> ANy help/suggestions?
Use a variable for the port and and do a early quirk to change
the port to something safe on your chipset?
Ok there might be code using outb_p() before the early quirks,
but should be possible to find using instrumentation.
Also the port assignment might not be chipset specific, but BIOS
specific, then you would need to match the DMI identifier. The
disadvantage of that is that there are usually other BIOS
with other identifiers but the same problem around.
> Changing the delay instruction sequence from the outb to short jumps
> might be the safe thing. But Linus, et al. may have experience with
> that on other architectures like older Pentiums etc.
I don't think that makes sense to do on anything modern. The trouble
is that the jumps will effectively execute near "infinitely fast" on any
modern CPU compared to the bus. But the delay really needs to be something
that is about IO port speed. Ok in theory you could try to measure
a outb using RDTSC and then use udelay, but first you would need
a safe port for that already and then RDTSC is not necessarily constant.
-Andi
--
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