lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ