On 16.12.2014. 6:16, Jonathan Matthew wrote:
On Sun, Dec 14, 2014 at 06:22:37PM +0100, Hrvoje Popovski wrote:
Hi all,
I have got two new Dell R630 and have current on them from Sun Dec
14 15:07:17. Installation went great and very fast.
The problem is that I see around 11k interrupts on acpi0. First I
thought that problem is similar to this thread
http://marc.info/?l=openbsd-misc&m=140551906923931&w=2
But if in dell bios system profile settings is set to performance or
to DAPC there are always interrupts on acpi0.
In links bellow you can find acpidump and dmesg from performance and
DAPC settings in dell bios.
We just got some r630s too, so I spent some time last week figuring out what's
going on here. Something in the AML wants to talk to the intel MEI device.
Normally this works, but on the new generation of dell machines (we've seen it
on r630s and r730s), it's been moved outside the pci memory range we currently
allow on amd64. You can see this in your dmesgs:
0:22:0: mem address conflict 0x33ffff03000/0x10
0:22:1: mem address conflict 0x33ffff02000/0x10
The interrupt will keep triggering until it manages to talk to the device,
which will never happen.
kettenis@ says we can get the pci memory range information we need to deal with
this from acpi. Until that happens, expanding the allowed pci memory range
makes things work properly.
ok?
Index: pci_machdep.c
===================================================================
RCS file: /cvs/src/sys/arch/amd64/pci/pci_machdep.c,v
retrieving revision 1.59
diff -u -p -u -p -r1.59 pci_machdep.c
--- pci_machdep.c 19 Apr 2014 11:53:42 -0000 1.59
+++ pci_machdep.c 16 Dec 2014 04:21:53 -0000
@@ -622,13 +622,17 @@ pci_init_extents(void)
* here. As long as vendors continue to support
* 32-bit operating systems, we should never see BARs
* outside that region.
+ *
+ * Dell 13G servers have important devices outside the
+ * 36-bit address space. Until we can extract the address
+ * ranges from acpi, expand the allowed range to suit.
*/
pcimem_ex = extent_create("pcimem", 0, 0xffffffffffffffffUL,
M_DEVBUF, NULL, 0, EX_NOWAIT);
if (pcimem_ex == NULL)
return;
- extent_alloc_region(pcimem_ex, 0x1000000000UL,
- 0xfffffff000000000UL, EX_NOWAIT);
+ extent_alloc_region(pcimem_ex, 0x40000000000UL,
+ 0xfffffc0000000000UL, EX_NOWAIT);
for (bmp = bios_memmap; bmp->type != BIOS_MAP_END; bmp++) {
/*
Hi,
you patch makes acpi0 calm as overeaten grandad :)
Thank you.
vmstat without your patch
# vmstat -i
interrupt total rate
irq0/clock 103588029 799
irq0/ipi 102596 0
irq144/acpi0 1579930055 12201
irq96/mfii0 6938 0
irq114/em0 270250 2
irq99/ehci0 131 0
irq99/ehci1 28 0
Total 1683898027 13004
vmstat with your patch
# vmstat -i
interrupt total rate
irq0/clock 848873 800
irq0/ipi 14085 13
irq144/acpi0 3 0
irq96/mfii0 2235 2
irq114/em0 3685 3
irq99/ehci0 56 0
irq99/ehci1 28 0
Total 868965 819