Messages in this thread | | | Date | Fri, 14 Jan 2011 00:31:36 +0100 (CET) | From | Thomas Gleixner <> | Subject | Re: [RFC PATCH] x86: Add safe_udelay() and safe_msleep() |
| |
On Thu, 13 Jan 2011, Yinghai Lu wrote:
> > > > What the hell is the root problem ? > > for patch > > x86: usb handoff in early_quirk > > some systems keep getting > APIC calibration not consistent with PM-Timer: 139ms instead of 100ms > APIC delta adjusted to PM-Timer: 831249 (1163736) > > USB legacy SMI handler is not disabled at that time. > > According to Thomas: > | http://lkml.indiana.edu/hypermail/linux/kernel/0703.2/0420.html > | > | The wrong calibration values are probably caused by SMM code trying to > | emulate a PS/2 keyboard from a (maybe connected or not) USB keyboard. > | This prohibits the accurate delivery of PIT interrupts, which are used > | to calibrate the local APIC timer. Unfortunately we have no way to > | disable this BIOS misfeature in the early boot process. > > Try to disable USB legacy support early with this patch. > So later APIC Timer calibration don't get messed up by USB legacy support SMI handler. > After this patch, that warning never show up for 100 reboot tests. > > reuse code from drivers/usb/host/pci-quirks.c > > > but pci-quirks.c is using udelay and msleep ... > > And BenH does't want > 1. if (early)... > 2. include .c > 3. new API new about safe_udelay/safe_msleep... > > just want to keep the old udelay/mdelay.
NAK. That's the total wrong thing to do.
Do we have any indication that we miscalibrate? If no, then were is the point of this ? If yes, then I it's way easier to fix that than doing all this ugly churn.
We deal with that SMI crap in the TSC calibration as well and I'd rather see a combined TSC/APIC calibration than all this fugliness.
Thanks,
tglx
| |