multi-process: create IOHUB object to handle irq

IOHUB object is added to manage PCI IRQs. It uses KVM_IRQFD
ioctl to create irqfd to injecting PCI interrupts to the guest.
IOHUB object forwards the irqfd to the remote process. Remote process
uses this fd to directly send interrupts to the guest, bypassing QEMU.

Signed-off-by: John G Johnson <john.g.johnson@oracle.com>
Signed-off-by: Jagannathan Raman <jag.raman@oracle.com>
Signed-off-by: Elena Ufimtseva <elena.ufimtseva@oracle.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-id: 51d5c3d54e28a68b002e3875c59599c9f5a424a1.1611938319.git.jag.raman@oracle.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
Jagannathan Raman 2021-01-29 11:46:19 -05:00 committed by Stefan Hajnoczi
parent c746b74a7d
commit bd36adb8df
12 changed files with 249 additions and 0 deletions

View file

@ -254,6 +254,11 @@ bool mpqemu_msg_valid(MPQemuMsg *msg)
return false;
}
break;
case MPQEMU_CMD_SET_IRQFD:
if (msg->size || (msg->num_fds != 2)) {
return false;
}
break;
default:
break;
}