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@lists.xensource.com http://lists.xensource.com/xen-users