Re: [PATCH] x86_64: fix problems due to use of "outb" to port 80on some AMD64x2 laptops, etc.

From: Rene Herman
Date: Fri Dec 14 2007 - 09:58:44 EST


On 14-12-07 15:46, Ingo Molnar wrote:

* Rene Herman <rene.herman@xxxxxxxxx> wrote:

/*
- * This should be approx 2 Bo*oMips to start (note initial shift), and will
- * still work even if initially too large, it will just take slightly longer
+ * Initial value roughly corresponds to a 1 GHz CPU
*/
-unsigned long loops_per_jiffy = (1<<12);
+unsigned long loops_per_jiffy = 1000000000 / HZ;

EXPORT_SYMBOL(loops_per_jiffy);
this is a factor of ~2400 increase - this will take an eternity to boot on any older CPU.
Only any outb_p's used before loops_per_jiffy is calibrated are affected.

yes - but there are a couple of early udelays, which would thus be affected.

True. At the moment though they're just always not delaying anywhere close the intended amount (on anything with more than 2 bogomips). Pre-calibration all this stuff is just broken it seems.

This pre-calibation thing is what's historically held this change back (it's been discussed dozens of times before). At 4096, not any machine is going to have an appreciable delay before calibration when switching from the outb to 0x80.

i dont think this should matter: old systems that truly _need_ the ISA delay will be slow enough to not trip up. (nor are they really affected by these early delays - the delays were more for crappy ISA devices that get initialized later down, when the delay loop is already calibrated)

8253 (DMAC) and 8254 (PIT) have been reported in earlier versions of the thread. By Alan, I believe.

Rene.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/