Re: [PATCH -v1.1] HPET: Fix HPET readout for small deltas

From: Thomas Gleixner
Date: Mon Nov 29 2010 - 17:37:16 EST


On Mon, 29 Nov 2010, Borislav Petkov wrote:
>
> + /* Accept only sensible values written by BIOS */
> + if (hpet_tbl->minimum_tick < hpet_min_tick)
> + hpet_min_tick = hpet_tbl->minimum_tick;

I ran this through everything I could get hold of. And as I feared
when ACPI was mentioned in the first place, I found at least three
machines which have hpet_tbl->minimum_tick < 4. Two of those failed to
boot.

This is all doomed to fail.

1) ACPI's trustworthiness aproaches ZERO

2) The chipset manufactures who implement the "HPET spec" are even
worse. They could tell us the exact number of cycles which are
necessary to make these "specificatin compliant" trainwrecks
functional, but all we get is a reference to #1.

Crap. If you don't come up with some real facts, I'm simply going to
commit

diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c
index ae03cab..0388a70 100644
--- a/arch/x86/kernel/hpet.c
+++ b/arch/x86/kernel/hpet.c
@@ -408,7 +408,7 @@ static int hpet_next_event(unsigned long delta,
*/
res = (s32)(cnt - hpet_readl(HPET_COUNTER));

- return res < 8 ? -ETIME : 0;
+ return res < 128 ? -ETIME : 0;
}

static void hpet_legacy_set_mode(enum clock_event_mode mode,

along with the corresponding fix for the min_delta_ns value.

Thanks,

tglx
--
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/