Hello,
I've bought a brand new PC to act as gateway/firewall/file server/... at home. It's based upon an Intel DQ77KB motherboard, Core i3, Intel Centrino Advanced-N 6230. It boots on a mini-pci SSD (Intel SSDMCEAC060B3), and I've added 2 SATA HDD (HGST HTS721010A9E630 JB0OA3B0) on SATA6 ports.
It's my first install of FreeBSD 9.1 - fully updated (I'm used to 8.x). It's also my first full ZFS install.
For now, the box is still a work in progress, and I've few problems with it. Biggest one is the interrupt rate becoming quite huge as soon as the state of the HDMI port changes (plug or unplug, switch off display, switch display to use another video input...).
When the HDMI port change states, [CMD=""]top -S[/CMD] shows that [CMD=""]intr[/CMD] goes from 0% and stick around 65-70%. CPU load average climbs to 0.8-0.9. It's a fanless box, so it means also higher temperature...
[CMD=""]vmstat -i[/CMD] shows that the problem comes from IRQ 16 (xhci0 and ehci0). Here is a "normal" output, before triggering the problem:
Same command just after an HDMI cable is plugged:
and the corresponding
The only solution to reset this behavior is to reboot the system.
What can I do to prevent this interrupt problem? I've though about disabling xHCI, but I can't find a way to prevent the driver to load. I've added
into /boot/loader.conf, but no effect.
dmesg: http://patpro.net/dmesg_DQ77KB.txt
[CMD=]kldstat -v[/CMD] output: http://patpro.net/kldstat_DQ77KB.txt
I've bought a brand new PC to act as gateway/firewall/file server/... at home. It's based upon an Intel DQ77KB motherboard, Core i3, Intel Centrino Advanced-N 6230. It boots on a mini-pci SSD (Intel SSDMCEAC060B3), and I've added 2 SATA HDD (HGST HTS721010A9E630 JB0OA3B0) on SATA6 ports.
It's my first install of FreeBSD 9.1 - fully updated (I'm used to 8.x). It's also my first full ZFS install.
For now, the box is still a work in progress, and I've few problems with it. Biggest one is the interrupt rate becoming quite huge as soon as the state of the HDMI port changes (plug or unplug, switch off display, switch display to use another video input...).
When the HDMI port change states, [CMD=""]top -S[/CMD] shows that [CMD=""]intr[/CMD] goes from 0% and stick around 65-70%. CPU load average climbs to 0.8-0.9. It's a fanless box, so it means also higher temperature...
[CMD=""]vmstat -i[/CMD] shows that the problem comes from IRQ 16 (xhci0 and ehci0). Here is a "normal" output, before triggering the problem:
Code:
$ vmstat -i
interrupt total rate
irq16: xhci0 ehci0 150863 63
irq23: ehci1 4923 2
cpu0:timer 134646 56
irq265: hdac0 80 0
irq266: iwn0 49541 20
irq267: em1:rx 0 3771 1
irq268: em1:tx 0 1066 0
irq269: em1:link 2 0
irq270: ahci0 4417 1
cpu1:timer 30750 12
cpu2:timer 23486 9
cpu3:timer 38270 16
Total 441815 186
Same command just after an HDMI cable is plugged:
Code:
$ vmstat -i
interrupt total rate
irq16: xhci0 ehci0 6468138 2552
irq23: ehci1 5250 2
cpu0:timer 142452 56
irq265: hdac0 80 0
irq266: iwn0 53391 21
irq267: em1:rx 0 3972 1
irq268: em1:tx 0 1091 0
irq269: em1:link 2 0
irq270: ahci0 4587 1
cpu1:timer 32544 12
cpu2:timer 25519 10
cpu3:timer 86331 34
Total 6823357 2692
and the corresponding
top
output:
Code:
$ top -SHb 1000 | grep "intr{irq"
12 root -88 - 0K 304K CPU1 3 0:55 68.46% intr{irq16: xhci0 ehc}
12 root -88 - 0K 304K WAIT 1 0:00 0.00% intr{irq270: ahci0}
12 root -92 - 0K 304K WAIT 0 0:00 0.00% intr{irq267: em1:rx 0}
12 root -92 - 0K 304K WAIT 3 0:00 0.00% intr{irq266: iwn0}
12 root -88 - 0K 304K WAIT 0 0:00 0.00% intr{irq23: ehci1}
12 root -92 - 0K 304K WAIT 0 0:00 0.00% intr{irq268: em1:tx 0}
12 root -92 - 0K 304K WAIT 2 0:00 0.00% intr{irq269: em1:link}
12 root -96 - 0K 304K WAIT 2 0:00 0.00% intr{irq265: hdac0}
The only solution to reset this behavior is to reboot the system.
What can I do to prevent this interrupt problem? I've though about disabling xHCI, but I can't find a way to prevent the driver to load. I've added
Code:
xhci_load="NO"
dmesg: http://patpro.net/dmesg_DQ77KB.txt
[CMD=]kldstat -v[/CMD] output: http://patpro.net/kldstat_DQ77KB.txt