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

Reply via email to