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