[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.00.0911131340140.5316@p34.internal.lan>
Date: Fri, 13 Nov 2009 13:43:54 -0500 (EST)
From: Justin Piszcz <jpiszcz@...idpixels.com>
To: "Pallipadi, Venkatesh" <venkatesh.pallipadi@...el.com>
cc: Thomas Gleixner <tglx@...utronix.de>,
john stultz <johnstul@...ibm.com>,
lkml <linux-kernel@...r.kernel.org>,
Arjan van de Ven <arjan@...radead.org>
Subject: RE: 2.6.31.4: WARNING: at arch/x86/kernel/hpet.c:390
hpet_next_event+0x70/0x80() [occurs when ACPI_PROCESSOR=y]
On Fri, 13 Nov 2009, Pallipadi, Venkatesh wrote:
> On Fri, 2009-11-13 at 01:38 -0800, Thomas Gleixner wrote:
>> On Thu, 12 Nov 2009, Pallipadi, Venkatesh wrote:
>>> Yes. Yes. This is a hardware errata. I have a patch to workaround this and
>>> waiting on the errata description to get published..
>>
>> Can we at least have some PCI quirk or whatever until you can push the
>> final workaround out so peoples machines do not explode ?
>
> Its a harmless bug functionality-wise and should not have any side
> effect other than triggering the WARN_ON_ONCE in hpet next event code.
>
> Thanks,
> Venki
>
Venki,
When the following patch is applied though: (courtesy of john stultz)
--- a/arch/x86/kernel/hpet.c
+++ b/arch/x86/kernel/hpet.c
@@ -376,7 +376,7 @@ static void hpet_set_mode(enum clock_event_mode mode,
static int hpet_next_event(unsigned long delta,
struct clock_event_device *evt, int timer)
{
- u32 cnt;
+ u32 cnt, check;
cnt = hpet_readl(HPET_COUNTER);
cnt += (u32) delta;
@@ -387,7 +387,12 @@ static int hpet_next_event(unsigned long delta,
* what we wrote hit the chip before we compare it to the
* counter.
*/
- WARN_ON_ONCE((u32)hpet_readl(HPET_Tn_CMP(timer)) != cnt);
+ check = (u32)hpet_readl(HPET_Tn_CMP(timer));
+ if(check != cnt) {
+ printk("hpet_next_event: hpet_writel failed: 0x%x != 0x%x\n",
+ check, cnt);
+ hpet_writel(cnt, HPET_Tn_CMP(timer));
+ }
return (s32)((u32)hpet_readl(HPET_COUNTER) - cnt) >= 0 ? -ETIME : 0;
}
You can see what it is doing with this patch:
[ 22.856850] hpet_next_event: hpet_writel failed: 0x13b7690a != 0x138c5241
[ 22.900424] hpet_next_event: hpet_writel failed: 0x138c5241 != 0x13b7691a
[ 22.906429] hpet_next_event: hpet_writel failed: 0x13b7691a != 0x1391467c
[ 22.923096] hpet_next_event: hpet_writel failed: 0x1391467c != 0x13974b5f
[ 22.950698] hpet_next_event: hpet_writel failed: 0x13974b5f != 0x13b7692c
[ 22.959424] hpet_next_event: hpet_writel failed: 0x13ad247d != 0x139cdade
[ 22.976065] hpet_next_event: hpet_writel failed: 0x139cdade != 0x13ad247c
[ 23.003919] hpet_next_event: hpet_writel failed: 0x13ad247c != 0x13a69410
[ 23.020581] hpet_next_event: hpet_writel failed: 0x13a69410 != 0x13ad2489
[ 23.050692] hpet_next_event: hpet_writel failed: 0x13ad2489 != 0x13b7694d
[ 23.069921] hpet_next_event: hpet_writel failed: 0x13b7694d != 0x13b50004
[ 23.086577] hpet_next_event: hpet_writel failed: 0x13b50004 != 0x13b8a43d
[ 23.103251] hpet_next_event: hpet_writel failed: 0x13b8a43d != 0x13db0607
[ 23.124690] hpet_next_event: hpet_writel failed: 0x13bd5467 != 0x13c2fdba
[ 23.150604] hpet_next_event: hpet_writel failed: 0x13c2fdba != 0x13db061a
[ 23.155307] hpet_next_event: hpet_writel failed: 0x13db061a != 0x13c7a97e
[ 23.171975] hpet_next_event: hpet_writel failed: 0x13c7a97e != 0x13d8d6d4
[ 23.202978] hpet_next_event: hpet_writel failed: 0x13d8d6d4 != 0x13d21457
[ 23.219647] hpet_next_event: hpet_writel failed: 0x13d21457 != 0x13d5b8b8
It makes a high-pitch squeal when this is occurring, is that OK for the HW?
For your patch, will it allow Turbo Mode and the processor module to both
function properly?
Without the patch/processor module, is there any other way to achieve turbo
mode via a BIOS setting or am I stuck with the max CPU multiplier non-turbo?
If your patch is working, do you have it available for testing?
Justin.
--
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