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.

Reply via email to