On Mon, Jan 10, 2022 at 10:36:41AM -0500, Ryan Kavanagh wrote:
> >Synopsis:    high interrupt processing time on Dell Latitude E7450
> >Category:    kernel amd64
> >Environment:
>       System      : OpenBSD 7.0
>       Details     : OpenBSD 7.0-current (GENERIC.MP) #242: Sat Jan  8 
> 12:33:38 MST 2022
>                        
> dera...@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP
> 
>       Architecture: OpenBSD.amd64
>       Machine     : amd64
> >Description:
> 
> I installed OpenBSD 7.0 on a Dell Latitude E7450. The installer had me
> using GENERIC, and interrupts hovered above 40%-45% when idle. I
> upgraded to 7.0-current with the same issue. The laptop ran hot,
> presumably as a result of the high interrupt processing time.
> 
> Here is the output of vmstat -i under 7.0-current / GENERIC:
> 
> interrupt                       total     rate
> irq0/clock                     885333       99
> irq96/acpi0                      1789        0
> irq144/inteldrm0               117024       13
> irq114/em0                      12414        1
> irq176/azalia1                   1668        0
> irq115/iwm0                    416586       47
> irq102/ehci0                      221        0
> irq103/ahci0                   124340       14
> irq104/ichiic0                   1770        0
> irq145/pckbc0                   17710        1
> irq146/pckbc0                   44588        5
> Total                         1623443      183
> 
> Stuart Henderson suggested in the misc thread [0] that I try GENERIC.MP.
> After switching, top shows that CPU0 is spending roughly the same amount
> of time processing interrupts, while CPU1 is free to do other stuff.
> Representative capture:
> 
> CPU0 states: 18.6% user,  0.0% nice,  3.0% sys,  0.2% spin, 44.3% intr,
> 33.9% idle
> CPU1 states: 50.3% user,  0.0% nice,  5.0% sys,  1.6% spin,  0.0% intr,
> 43.1% idle
> 
> `systat vm` shows an Int% hovering around 20% (I imagine it's the mean
> of the two interrupt rates shown by top), with lows in the low 10% and
> highs in the low 30%.
> 
> My laptop does not seem to get as hot as quickly under GENERIC.MP, but
> it still gets pretty hot: hw.sensors.cpu0.temp0=86.00 degC after 5
> minutes when watching a video on Youtube in firefox.
> 
> vmstat -i under GENERIC.MP after being up ~35 minutes with light load:
> 
> interrupt                       total     rate
> irq0/clock                     860124      399
> irq0/ipi                       714019      331
> irq96/acpi0                       436        0
> irq144/inteldrm0                33945       15
> irq114/em0                       7965        3
> irq176/azalia1                      1        0
> irq115/iwm0                     73471       34
> irq102/ehci0                       73        0
> irq103/ahci0                    44676       20
> irq104/ichiic0                    431        0
> irq145/pckbc0                    6441        2
> irq146/pckbc0                    3178        1
> Total                         1744760      810
> 
> I ran
> 
> btrace -e 'profile:hz:100 { @[kstack] = count(); }' > /tmp/btrace.out
> 
> for ten seconds and ran the output through
> 
> https://github.com/brendangregg/FlameGraph/raw/master/stackcollapse-bpftrace.pl
> https://github.com/brendangregg/FlameGraph/raw/master/flamegraph.pl
> 
> The output of stackcollapse-bpftrace.pl and flamegraph.pl are attached
> as btrace.collapsed and btrace.svg.

The flamegraph suggests that you spent 10% of that time servicing
ichiic(4) interrupts from idle.

That could be a fluke though.

What does the main systat view look like in the interrupt column?

$ systat 1

Reply via email to