HI Jan, Current Jailhouse implementation has support for partitioning the SPI interrupts on a GICv3. However, the LPI interrupts managed by the GIC ITS cannot be partitioned.
Typical usage of LPI are for connecting PCIe devices on arm64 platforms where the endpoint sends MSI interrupts. Kernel drivers for GIC assumes full ownership of the ITS module. To enable partitioning of PCI devices/functions (from same or different PCI controller) across VMs, One of the key important feature that will be needed is the ITS virtualization. Since the GIC ITS does not support per VM tables, one option would be to use emulation of the ITS module. Here is the proposal for such an approach. * GIC kernel driver allocates separate ITS table in its VM address space * When Jailhouse is enabled, Hypervisor allocates a new ITS table and copies the descriptors from root cell * All accesses to the ITS registers are trapped and emulated in the Jailhouse * Any attempt from a VM trying to setup the descriptor for a certain device needs to be policed against VM ownership * Jailhouse validates and updates the physical ITS table descriptors to match the VM maintained tables This will be similar to the approach taken for SMMU stage1 emulation developed by Pratyush Yadav. What so you think about adding this support in the Jailhouse? Would you be willing to accept patches for the ITS emulation? Regards, Nikhil D -- You received this message because you are subscribed to the Google Groups "Jailhouse" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jailhouse-dev/ddc49d2b6a6f47a2b847b44aa1416074%40ti.com.
