[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-users] IRQs



Hi guys,

I have a bunch of onboard USB controllers that I need to passthrough to different PV domUs:
home-xen:~# lspci | grep -i usb
00:12.0 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI0 Controller
00:12.2 USB Controller: ATI Technologies Inc SB700/SB800 USB EHCI Controller
00:13.0 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI0 Controller
00:13.2 USB Controller: ATI Technologies Inc SB700/SB800 USB EHCI Controller
00:14.5 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI2 Controller 00:16.0 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI0 Controller
00:16.2 USB Controller: ATI Technologies Inc SB700/SB800 USB EHCI Controller
04:00.0 USB Controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 03) 05:05.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 61) 05:05.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 61)
05:05.2 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 63)

Unluckily, the kernel seems to squeeze them on the same IRQ:
home-xen:~# cat /proc/interrupts
            CPU0       CPU1
   1:        410          0  xen-pirq-ioapic-edge  i8042
   8:          0          0  xen-pirq-ioapic-edge  rtc0
   9:          1          0  xen-pirq-ioapic-edge  acpi
17: 4990 0 xen-pirq-ioapic-level pata_via, HDA Intel, pciback[0000:00:13.2], pciback[0000:00:12.2] * 18: 976 0 xen-pirq-ioapic-level pciback[0000:00:13.0], pciback[0000:00:12.0], pciback[0000:01:05.0]*
1230:          7          0   xen-dyn-event     storage0
1231:        936          0   xen-dyn-event     blkif-backend
1232:         28          0   xen-dyn-event     blkif-backend
1233:       9464          0   xen-dyn-event     blkif-backend
1234:        181          0   xen-dyn-event     evtchn:xenconsoled
1235:        269          0   xen-dyn-event     evtchn:xenstored
1236:         22          0   xen-dyn-event     blkif-backend
1237:      10359          0   xen-dyn-event     blkif-backend
1238:        194          0   xen-dyn-event     pciback
1239:        142          0   xen-dyn-event     evtchn:xenconsoled
1240:        291          0   xen-dyn-event     evtchn:xenstored
1247:          2          0   xen-dyn-event     evtchn:xenstored
1248:       3665          0   xen-dyn-event     evtchn:xenstored
1249:      21362          0  xen-pirq-msi       eth0
1250:      95630          0  xen-pirq-msi       ahci
1252:          0          0   xen-dyn-virq      mce
1258:          0          0   xen-dyn-virq      pcpu
1259:       6075          0   xen-dyn-event     xenbus
1263:      12167          0   xen-dyn-event     ady0
1264:        152          0   xen-dyn-event     blkif-backend
1265:       7590          0   xen-dyn-event     blkif-backend
1266:        505          0   xen-dyn-event     pciback
1267:        230          0   xen-dyn-event     evtchn:xenconsoled
1268:        345          0   xen-dyn-event     evtchn:xenstored
1269:         51          0   xen-dyn-event     atlas0
1270:          0       5084   xen-dyn-ipi       callfuncsingle1
1271:          0          0   xen-dyn-virq      debug1
1272:          0        119   xen-dyn-ipi       callfunc1
1273:          0      33631   xen-dyn-ipi       resched1
1274:          0     124343   xen-dyn-virq      timer1
1275:        527          0   xen-dyn-ipi       callfuncsingle0
1276:          0          0   xen-dyn-virq      debug0
1277:         16          0   xen-dyn-ipi       callfunc0
1278:      13347          0   xen-dyn-ipi       resched0
1279:     130062          0   xen-dyn-virq      timer0
 NMI:          0          0   Non-maskable interrupts
 LOC:          0          0   Local timer interrupts
 SPU:          0          0   Spurious interrupts
 PMI:          0          0   Performance monitoring interrupts
 PND:          0          0   Performance pending work
 RES:      13347      33631   Rescheduling interrupts
 CAL:        543       5203   Function call interrupts
 TLB:          0          0   TLB shootdowns
 TRM:          0          0   Thermal event interrupts
 THR:          0          0   Threshold APIC interrupts
 MCE:          0          0   Machine check exceptions
 MCP:          2          2   Machine check polls
 ERR:          0
 MIS:          0

This is causing an "Interrupt 18 disabled" sort of message on the console of random (?) domUs and the entire server is slowly locking. I suspect the sata controller is filling up.

I am using Debian Squeeze:
home-xen:~# cat /etc/debian_version
squeeze/sid

home-xen:~# uname -a
Linux home-xen 2.6.32-5-xen-amd64 #1 SMP Tue Jun 1 06:38:33 UTC 2010 x86_64 GNU/Linux

home-xen:~# xm info
host                   : home-xen
release                : 2.6.32-5-xen-amd64
version                : #1 SMP Tue Jun 1 06:38:33 UTC 2010
machine                : x86_64
nr_cpus                : 4
nr_nodes               : 1
cores_per_socket       : 4
threads_per_core       : 1
cpu_mhz                : 2611
hw_caps : 178bf3ff:efd3fbff:00000000:00001310:00802001:00000000:000037ff:00000000
virt_caps              : hvm
total_memory           : 4094
free_memory            : 1107
node_to_cpu            : node0:0-3
node_to_memory         : node0:1107
node_to_dma32_mem      : node0:1041
max_node_id            : 0
xen_major              : 4
xen_minor              : 0
xen_extra              : .1-rc3
xen_caps : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64
xen_scheduler          : credit
xen_pagesize           : 4096
platform_params        : virt_start=0xffff800000000000
xen_changeset          : unavailable
xen_commandline : dom0_mem=262144 hap sched=credit vga=current cpufreq=xen
cc_compiler            : gcc version 4.4.4 (Debian 4.4.4-5)
cc_compile_by          : waldi
cc_compile_domain      : debian.org
cc_compile_date        : Wed Jun 30 14:32:51 UTC 2010
xend_config_format     : 4

Have you met something similar? I've found statements of people having issues with shared IRQs spread among different domUs, but they simply put the cards into different slots, while I can't do that due to the fact these are onboard.

I've tried messing with the latest 2.6.33.x stable xen pv_ops kernel from Jeremy's repository, but it's not really working. Actually, I need the ATI's Evergreen drivers and looks like Debian has backported them. I've tried patching the kernel with some patches found in their repositories just for ATI's Evergreen, but still not working. :(

Any ideas on how to assign different IRQs to some devices? Maybe trying to group them on the same different IRQ for each domU?

Thanks bunch!

--
Deac Mihai-Adrian


_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.