Re: RFC: outb 0x80 in inb_p, outb_p harmful on some modern AMD64 with MCP51 laptops

Pavel Machek
2007-12-09T23:21:32Z

On Sun 2007-12-09 22:29:28, Alan Cox wrote:
> On Sun, 9 Dec 2007 22:25:13 +0100
> Pavel Machek <pavel@ucw.cz> wrote:
>
> > On Sun 2007-12-09 17:59:08, Andi Kleen wrote:
> > > > I mean, we expect 8usec delay -- historical ISA timing -- but when
> > > > _PCI_ card with leds is inserted, it is likely to be faster than old
> > > > ISA, right?
> > >
> > > Yes, i guess switching to udelay at least on newer systems would
> > > be a good idea. I'm not quite sure about systems without TSC though.
> >
> > Something like this? (Warning, will not probably even compile on
> > x86-64, I do not have 64-bit compiler near me).
>
> You need to stick in a bug trap to verify that the udelay is not called
> before the cpu timer has been set up.

Really?

udelay() seems to use
... cpu_data(raw_smp_processor_id()).loops_per_jiffy ..

..so it seems that bug trap is already there... because
raw_smp_processor_id() will probably just oops...

We could solve this by pre-initializing loops_per_jiffy to some huge
number, but I do not see convenient place where to do that.
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html