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]
Date:	Fri, 13 Nov 2009 17:12:19 -0800
From:	"Pallipadi, Venkatesh" <venkatesh.pallipadi@...el.com>
To:	Justin Piszcz <jpiszcz@...idpixels.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, 2009-11-13 at 10:43 -0800, Justin Piszcz wrote:
> 
> 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)
> 

Justin,

I am missing something in here.
Without the below patch, on 2.6.31.4 and ACPI_PROCESSOR loaded (either
as module or builtin), you may see the WARNING. But, that should not
cause any other problems with C-states, P-states, or anything else.
Is that what you are seeing?

The below patch is not a workaround for the problem. Infact it will make
situation worse with constant stream of prinkts and can reduce the
C-state residency and turbo upside.

Thanks,
Venki
 
> --- 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;
>   }
> 


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