Re: NMI error and Intel S5000PSL Motherboards

Previous thread: [PATCH] - drivers/hid/hid-debug.c - trivial - add KERN_DEBUG prefix, fix typo, constify by Joe Perches on Tuesday, September 25, 2007 - 6:44 pm. (2 messages)

Next thread: [PATCH] Add cgroup write_uint() helper method by Paul Menage on Tuesday, September 25, 2007 - 8:12 pm. (1 message)
From: AndrewL733
Date: Wednesday, September 26, 2007 - 3:12 am

We have about 100 servers based on Intel S5000PSL-SATA motherboards. 
They have been running for anywhere between 1 and 10 months. For the 
past few months, after updating them all to the 2.6.20.15 kernel 
(because of a bug in the 2.6.18 kernel), we are seeing some strange NMI 
errors. For example:

Aug 29 09:02:10 master kernel: Uhhuh. NMI received for unknown reason 30.
Aug 29 09:02:10 master kernel: Do you have a strange power saving mode 
enabled?
Aug 29 09:02:10 master kernel: Dazed and confused, but trying to continue

Sometimes these errors cause a total system freeze. Most of the time the 
systems keep running.

We have determined these errors come most frequently on machines that 
have an Intel PCI-e Quad Port Gigabit Adapter. On machines that HAVE 
these cards (it doesn't matter what slot they are in), the NMI errors 
can occur as frequently as every 3-5 minutes. On machines that do NOT 
have these Quad Port Adapters, the NMI errors occur about once per month 
on average. (we have tried the "in-kernel" e1000 drivers, as well as 
Intel's latest - 7.6.5).

We have also determined (through a chance discovery) that running 
“scanpci” can 100 percent reliably reproduce the NMI error on any 
machine that has the Quad Port NICS. Our various motherboards have 
different Intel BIOS versions – some have Rev 70, others 74, 79 or 81. 
They all exhibit the same behavior regardless of BIOS version.

We have reproduced this problem with:

Mandriva 2008 RC2 (2.6.22 kernel)
Mandriva 2007 with custom 2.6.20.15 kernel
Mandriva 2007 with custom 2.6.19.8 kernel
Ubuntu “Feisty” with 2.6.20 kernel
Fedora Core 7 with 2.6.22 kernel

The problem does NOT occur with any distribution running a 2.6.18 kernel 
or lower. I.E., CentOS or SUSE 10 and also Mandriva 2007 with included 
2.6.17 kernel or custom-compiled 2.6.18 kernel.

We have been in contact with Intel. Their high level tech support people 
have basically said,

    “the errors we have logged so far are pointing to a kernel ...
From: Randy Dunlap
Date: Tuesday, September 25, 2007 - 7:59 pm

product info (for others):


Please provide some basic info, like:

- how much RAM
- what CPUs (be precise: use 'cat /proc/cpuinfo')
- output of 'lspci -v'
- what kind(s) of SATA drives
- are you using 32-bit or 64-bit kernel(s)

Can you test kernels from kernel.org (i.e., not vendor kernels,
  no other [unkwown] patches applied to them)?

Does tracing 'scanpci' produce any helpful information?
# strace -o scanpci.trace scanpci


---
~Randy
Phaedrus says that Quality is about caring.
-

From: Randy Dunlap
Date: Tuesday, September 25, 2007 - 9:58 pm

Answer #2:  if a kernel change was responsible for this problem,
the direct way to find that change is to clone the kernel 'git' tree
and then use git bisect to find the culprit.  If you are certain
that 2.6.18 is good and 2.6.19 is bad, then use those git tree tags
instead of the ones that are used in the example at:
  http://www.kernel.org/pub/software/scm/git/docs/git-bisect.html

git wiki is here:  http://git.or.cz/
and git docs are here:  http://www.kernel.org/pub/software/scm/git/docs/

If you want to use this tool, say so and I think that we (the royal
"we") will try to work you thru it.

---
~Randy
Phaedrus says that Quality is about caring.
-

From: Alan Cox
Date: Wednesday, September 26, 2007 - 4:16 am

What would be useful is to know under what situations that board can

The first thing to find out is to find out in which kernel the behaviour
is introduced. It might also be worth disabling msi in case Intel screwed

See if 2.6.20.* with the 2.6.18 driver compiles and how that behaves.
Also see if pci=nomsi and/or pci=nommconf make a difference.

Alan
-

From: Jim Paris
Date: Wednesday, September 26, 2007 - 4:48 pm

I'm also working with Andrew and Samson.  It seems that the cause of
the problem is CONFIG_PCIEAER, which was introduced after 2.6.18 and
defaults to y.

With CONFIG_PCIEAER=n, scanpci works fine with no errors.  This is the
workaround that they'll likely use for now.

With CONFIG_PCIEAER=y, scanpci always triggers the NMI error.  The
option aerdriver.forceload=1 has no effect.

The related dmesg output at boot is:

  Evaluate _OSC Set fails. Status = 0x0005
  Evaluate _OSC Set fails. Status = 0x0005
  aer_init: AER service init fails - Run ACPI _OSC fails
  aer: probe of 0000:00:02.0:pcie01 failed with error 2
  aer_init: AER service init fails - No ACPI _OSC support
  aer: probe of 0000:00:03.0:pcie01 failed with error 1
  Evaluate _OSC Set fails. Status = 0x0005
  Evaluate _OSC Set fails. Status = 0x0005
  aer_init: AER service init fails - Run ACPI _OSC fails
  aer: probe of 0000:00:04.0:pcie01 failed with error 2
  Evaluate _OSC Set fails. Status = 0x0005
  Evaluate _OSC Set fails. Status = 0x0005
  aer_init: AER service init fails - Run ACPI _OSC fails
  aer: probe of 0000:00:05.0:pcie01 failed with error 2
  Evaluate _OSC Set fails. Status = 0x0005
  Evaluate _OSC Set fails. Status = 0x0005
  aer_init: AER service init fails - Run ACPI _OSC fails
  aer: probe of 0000:00:06.0:pcie01 failed with error 2
  aer_init: AER service init fails - No ACPI _OSC support
  aer: probe of 0000:00:07.0:pcie01 failed with error 1

Full dmesg, lspci, and ACPI DSDT are available here:
  http://jim.sh/~jim/tmp/nmi/

-jim
-

From: Randy Dunlap
Date: Wednesday, September 26, 2007 - 5:03 pm

The 'forceload' option only forces the driver to load even when the
ACPI hardware initialization routine fails.

It would be nice to be able to disable PCIEAER at boot time though.


---
~Randy
Phaedrus says that Quality is about caring.
-

From: AndrewL733
Date: Friday, September 28, 2007 - 8:11 am

So, looking for some closure here, what do we think is the "root cause"? 
Is it:

1)  a defect with Intel's S5000PSL motherboards that is exposed by an 
otherwise fine new (since 2.6.19) Linux kernel feature? (in which case 
we and others should probably press Intel to recognize they have a 
problem, seeing as they only "officially support" distributions running 
on 2.6.16 or below so maybe they don't even know about this issue).

2)  a problem with PCIEAER? And maybe "CONFIG_PCIEAER=y"  should NOT be 
the default setting? (in which case the kernel maybe needs fixing)

3)  just a bad interaction between a good motherboard and a good Linux 
feature that don't play well together? (in which case this is a kernel 
"feature" that anybody compiling a kernel to run on the Intel S5000PSL 
motherboard should know not to enable -- maybe a note is warranted so 
that when configuring the kernel, people with S5000PSL motherboards 

-

From: AndrewL733
Date: Friday, September 28, 2007 - 8:13 am

So, looking for some closure here, what do we think is the "root cause"? 
Is it:

1)  a defect with Intel's S5000PSL motherboards that is exposed by an 
otherwise fine new (since 2.6.19) Linux kernel feature? (in which case 
we and others should probably press Intel to recognize they have a 
problem, seeing as they only "officially support" distributions running 
on 2.6.16 or below so maybe they don't even know about this issue).

2)  a problem with PCIEAER? And maybe "CONFIG_PCIEAER=y"  should NOT be 
the default setting? (in which case the kernel maybe needs fixing)

3)  just a bad interaction between a good motherboard and a good Linux 
feature that don't play well together? (in which case this is a kernel 
"feature" that anybody compiling a kernel to run on the Intel S5000PSL 
motherboard should know not to enable -- maybe a note is warranted so 
that when configuring the kernel, people with S5000PSL motherboards 

-

From: AndrewL733
Date: Sunday, September 30, 2007 - 9:09 pm

This is a slightly edited repost of a note sent on Friday September 28, 
as we haven't heard back from anyone yet. (I know it was the weekend!) 
Sorry to post again but this issue caused great problems for us and I 
want to be sure we're choosing a decent solution.

Perhaps one of the people who so helpfully commented on this issue 
earlier last week can now give their opinion on the what should be 
concluded from our discovery that "CONFIG_PCIEAER=y" -- introduced in 
the 2.6.19 kernel and set as the default -- leads to NMI errors on the 
Intel S5000PSL motherboard.

I'm told Intel people were closely involved in the development of this 
PCIEAER feature -- so it seems even weirder that it causes problems for 
this Intel motherboard. But we have confirmed the problem with multiple 
Linux distributions.

We are hoping to get some insights into the real cause. Please see below 
Although running "scanpci" provoked the NMI errors 100 percent on 
demand, the NMI errors would also occur randomly every few weeks on a 
given system without doing anything special. I don't want anybody to 
think we are just trying to prevent a problem from occurring because we 
like running "scanpci".  "Scanpci" just turned out to be a reliable way 


So, looking for some closure here, what do you think is the "root 
cause"? Is it:

1)  a defect with Intel's S5000PSL motherboards that is not seen when 
running 2.6.18 and earlier kernels but that is exposed by this feature 
added in 2.6.19? In which case, shouldn't we work to get Intel to 
investigate?

2)  a problem with the PCIEAER feature? And maybe "CONFIG_PCIEAER=y"  
should NOT be the default setting?

3)  just a bad interaction between a good motherboard and a good Linux 
feature that don't play well together? (in which case isn't this a 
"feature" that anybody compiling a kernel to run on the Intel S5000PSL 
motherboard should know not to enable?/

And in general is it a bad idea to set "CONFIG_PCIEAER to "no"". Or is 
it something that ...
Previous thread: [PATCH] - drivers/hid/hid-debug.c - trivial - add KERN_DEBUG prefix, fix typo, constify by Joe Perches on Tuesday, September 25, 2007 - 6:44 pm. (2 messages)

Next thread: [PATCH] Add cgroup write_uint() helper method by Paul Menage on Tuesday, September 25, 2007 - 8:12 pm. (1 message)