Uso muito alto da CPU pelo IRQ # 16

3

Recentemente, notei que uma das minhas CPUs estava inativa em torno de 85-90% e, de acordo com top , o uso vinha de interrupções, então assim como nesta pergunta eu usei uma combinação de dmesg e periodicamente cat ing /proc/interrupts e descobri isto:

            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

Como você pode ver, o IRQ # 16 está enviando interrupções como um louco (toda vez que a CPU acorda do S3 parece começar a enviar spams um CPU diferente), eu também descobri que meu touchpad usa o mesmo IRQ e se o I2C modo está habilitado (ou avançado modo, de acordo com o meu BIOS), ele pára aleatoriamente de trabalhar com as seguintes mensagens (de 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

Este é um problema de hardware? O que posso fazer?

Finalmente, tenho a chance de pesquisar mais sobre isso, executando lspci -nnkv Descobri dois dispositivos que estão usando a 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

e:

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

O problema parece ter desaparecido se eu descarregar o módulo intel_lpss_pci , ou seja, rmmod intel_lpss_pci , mas é claro que o touchpad pararia de funcionar. Mas eu acho que é melhor do que ter uma CPU sempre em 100%.

    
por arielnmz 01.03.2018 / 06:25

0 respostas