Hi! I'm working on top of the zmq_samples example, trying to set up 2 Ethernet devices on 2 of the 3 VM's.
The passthrough for both VM's has been done, and both detect the NICs. For more information, this is the setup for the irqs in the camkes file:
vm0.vm_irqs = [
{"name":"inner_eth", "ioapic":0, "source":0xb, "level_trig":1, "active_low":1, "dest":10}
];
vm2.vm_irqs = [
{"name":"outer_eth", "ioapic":0, "source":0xb, "level_trig":1, "active_low":1, "dest":12}
];
My problem is related to having the same IRQ11 in both e1000e devices. I can't control this; that is what QEMU provides.
When I set up the first NIC in any VM, say VM0, doing ifconfig eth1 up, it works correctly, but when I try to bring up the other one, VM2, the whole system freezes for a moment. Then VM0 complains about this:
[ 48.557120] irq 10: nobody cared (try booting with the "irqpoll" option)
[ 48.557120] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W 4.9.337+ #19
[ 48.557120] df811f94 d08f1778 df807d00 00000000 df811fa8 d08f08e0 df807d00 00000000
[ 48.557120] d0459f68 df811fc4 d04596ec 0000000b 00000000 df807d00 00000000 d0459f68
[ 48.557120] df811fd8 d0457a55 00000000 df807d00 df807d64 df811fe8 d0457a7e df807d00
[ 48.557120] Call Trace:
[ 48.557120] [ 48.557120] [] dump_stack+0x4f/0x63
[ 48.557120] [] __report_bad_irq+0x33/0x98
[ 48.557120] [] ? unmask_irq+0x22/0x22
[ 48.557120] [] note_interrupt+0x185/0x1c3
[ 48.557120] [] ? unmask_irq+0x22/0x22
[ 48.557120] [] handle_irq_event_percpu+0x31/0x38
[ 48.557120] [] handle_irq_event+0x22/0x3b
[ 48.557120] [] handle_level_irq+0x52/0x80
[ 48.557120] [] handle_irq+0x91/0xb6
[ 48.557120] [ 48.557120]
[ 48.557120] [] do_IRQ+0x33/0x99
[ 48.557120] [] common_interrupt+0x2c/0x34
[ 48.557120] [] ? __do_softirq+0x55/0x1a1
[ 48.557120] [] ? _local_bh_enable+0x6c/0x6c
[ 48.557120] [] call_on_stack+0x40/0x46
[ 48.557120] [ 48.557120] [] ? irq_exit+0x56/0x91
[ 48.557120] [] ? do_IRQ+0x7f/0x99
[ 48.557120] [] ? common_interrupt+0x2c/0x34
[ 48.557120] [] ? default_idle+0x16/0x18
[ 48.557120] [] ? arch_cpu_idle+0xd/0xf
[ 48.557120] [] ? default_idle_call+0x14/0x16
[ 48.557120] [] ? cpu_startup_entry+0xbb/0x158
[ 48.557120] [] ? rest_init+0x5d/0x5f
[ 48.557120] [] ? start_kernel+0x339/0x343
[ 48.557120] [] ? i386_start_kernel+0x3e/0x40
[ 48.557120] handlers:
[ 48.557120] [] e1000_intr
[ 48.557120] Disabling IRQ #10
Any interruption goes to VM2; they all go to VM0 but are not intended to go to that one, so they are ignored.
Any thoughts on this would be appreciated!