5

I recently noticed that one of my CPUs was idling at around 85-90% and according to top the usage was coming from interrupts, so just like in this question I used a combination of dmesg and periodically cating /proc/interrupts and found out this:

            CPU0       CPU1       CPU2       CPU3       
   0:         17          0          0          0  IR-IO-APIC    2-edge      timer
   1:      11548          0       2429          0  IR-IO-APIC    1-edge      i8042
   8:          0          0          0          1  IR-IO-APIC    8-edge      rtc0
   9:          7         16          0          0  IR-IO-APIC    9-fasteoi   acpi
  12:      14530     108887          0          0  IR-IO-APIC   12-edge      i8042
  16:   78464100          0          0   11702812  IR-IO-APIC   16-fasteoi   idma64.0, i2c_designware.0, i801_smbus
 120:          0          0          0          0  DMAR-MSI    0-edge      dmar0
 121:          0          0          0          0  DMAR-MSI    1-edge      dmar1

As you can see, IRQ #16 is sending interrupts like crazy (every time the CPU wakes up from S3 it seems to start spamming a different CPU), I also found out that my touchpad uses the same IRQ and if the I2C mode is enabled (or advanced mode, according to my BIOS), it randomly stops working with the following messages (from dmesg):

[  167.851139] irq 16: nobody cared (try booting with the "irqpoll" option)
[  167.851158] CPU: 2 PID: 3874 Comm: firefox Not tainted 4.15.3-300.fc27.x86_64 #1
[  167.851160] Hardware name: Acer Aspire E5-575/Ironman_SK  , BIOS V1.04 04/26/2016
[  167.851162] Call Trace:
[  167.851171]  <IRQ>
[  167.851185]  dump_stack+0x5c/0x85
[  167.851193]  __report_bad_irq+0x30/0xc0
[  167.851196]  note_interrupt+0x235/0x280
[  167.851198]  handle_irq_event_percpu+0x51/0x70
[  167.851201]  handle_irq_event+0x27/0x50
[  167.851204]  handle_fasteoi_irq+0x6b/0x120
[  167.851209]  handle_irq+0xaf/0x120
[  167.851214]  do_IRQ+0x41/0xc0
[  167.851219]  common_interrupt+0xa2/0xa2
[  167.851222]  </IRQ>
[  167.851224] RIP: 0010:_raw_spin_lock+0x10/0x20
[  167.851226] RSP: 0000:ffffa85a857dfdd0 EFLAGS: 00000246 ORIG_RAX: ffffffffffffffdb
[  167.851230] RAX: 0000000000000000 RBX: ffff8d0a268930c8 RCX: 00003ffffffff000
[  167.851231] RDX: 0000000000000001 RSI: 8000000000000025 RDI: ffffd21648d7ca70
[  167.851232] RBP: ffffd2164892e100 R08: 0000000000000000 R09: 0000000000171800
[  167.851233] R10: 0000000000271800 R11: 0000000000001000 R12: 0000000000000000
[  167.851234] R13: 8000000224b84867 R14: ffffd21648d7ca70 R15: ffff8d0a35f29810
[  167.851244]  __handle_mm_fault+0xa4c/0x1290
[  167.851249]  handle_mm_fault+0xaa/0x1f0
[  167.851255]  __do_page_fault+0x25d/0x4e0
[  167.851262]  ? SyS_mmap_pgoff+0xfb/0x250
[  167.851264]  do_page_fault+0x32/0x110
[  167.851267]  ? page_fault+0x36/0x60
[  167.851269]  page_fault+0x4c/0x60
[  167.851272] RIP: 0033:0x7ff86dc0b205
[  167.851273] RSP: 002b:00007ffe6493e888 EFLAGS: 00010206
[  167.851276] handlers:
[  167.851291] [<0000000061f0cd43>] idma64_irq [idma64]
[  167.851296] [<000000006909bb35>] i2c_dw_isr
[  167.851302] [<00000000ee17d26d>] i801_isr [i2c_i801]
[  167.851304] Disabling IRQ #16

Is this a hardware issue? What can I do?


Finally I have a chance to dig more into this, by running lspci -nnkv I found out 2 devices that are using IRQ 16:

00:15.0 Signal processing controller [1180]: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 [8086:9d60] (rev 21)
        Subsystem: Acer Incorporated [ALI] Device [1025:1094]
        Flags: fast devsel, IRQ 16
        Memory at a132b000 (64-bit, non-prefetchable) [size=4K]
        Capabilities: [80] Power Management version 3
        Capabilities: [90] Vendor Specific Information: Len=14 <?>
        Kernel driver in use: intel-lpss
        Kernel modules: intel_lpss_pci

and:

00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-LP SMBus [8086:9d23] (rev 21)
        Subsystem: Acer Incorporated [ALI] Device [1025:1094]
        Flags: medium devsel, IRQ 16
        Memory at a132e000 (64-bit, non-prefetchable) [size=256]
        I/O ports at 4040 [size=32]
        Kernel driver in use: i801_smbus
        Kernel modules: i2c_i801

The problem seems to go away if I unload the intel_lpss_pci module i.e. rmmod intel_lpss_pci, but of course the touchpad would stop working. But I guess it's better than having a CPU always at 100%.

1
  • I encountered this same problem. It seems to disappear for a while after I modprobe intel_lpss_pci.
    – yorick
    Mar 4, 2019 at 18:53

1 Answer 1

0

Might need to add it to PM suspend list so that it gets reloaded after a suspend/thaw cycle.

SUSPEND_MODULES="brcmfmac intel_lpss_pci intel_lpss_acpi"

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .