Re: [PATCH v1 02/15] nitro_enclaves: Define the PCI device interface

From: Paolo Bonzini
Date: Tue Apr 21 2020 - 17:22:48 EST


On 21/04/20 20:41, Andra Paraschiv wrote:
> The Nitro Enclaves (NE) driver communicates with a new PCI device, that
> is exposed to a virtual machine (VM) and handles commands meant for
> handling enclaves lifetime e.g. creation, termination, setting memory
> regions. The communication with the PCI device is handled using a MMIO
> space and MSI-X interrupts.
>
> This device communicates with the hypervisor on the host, where the VM
> that spawned the enclave itself run, e.g. to launch a VM that is used
> for the enclave.
>
> Define the MMIO space of the PCI device, the commands that are
> provided by this device. Add an internal data structure used as private
> data for the PCI device driver and the functions for the PCI device init
> / uninit and command requests handling.
>
> Signed-off-by: Alexandru-Catalin Vasile <lexnv@xxxxxxxxxx>
> Signed-off-by: Alexandru Ciobotaru <alcioa@xxxxxxxxxx>
> Signed-off-by: Andra Paraschiv <andraprs@xxxxxxxxxx>
> ---
> .../virt/amazon/nitro_enclaves/ne_pci_dev.h | 266 ++++++++++++++++++
> 1 file changed, 266 insertions(+)
> create mode 100644 drivers/virt/amazon/nitro_enclaves/ne_pci_dev.h

Can this be placed just in drivers/virt/nitro_enclaves, or
drivers/virt/enclave/nitro? It's not unlikely that this device be
implemented outside EC2 sooner or later, and there's nothing
Amazon-specific as far as I can see from the UAPI.

Paolo