Re: [PATCH v6 00/17] KVM: PPC: Book3S HV: add XIVE native exploitation mode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Apr 18, 2019 at 12:39:25PM +0200, Cédric Le Goater wrote:
> On the POWER9 processor, the XIVE interrupt controller can control
> interrupt sources using MMIOs to trigger events, to EOI or to turn off
> the sources. Priority management and interrupt acknowledgment is also
> controlled by MMIO in the CPU presenter sub-engine.
> 
> PowerNV/baremetal Linux runs natively under XIVE but sPAPR guests need
> special support from the hypervisor to do the same. This is called the
> XIVE native exploitation mode and today, it can be activated under the
> PowerPC Hypervisor, pHyp. However, Linux/KVM lacks XIVE native support
> and still offers the old interrupt mode interface using a KVM device
> implementing the XICS hcalls over XIVE.
> 
> The following series is proposal to add the same support under KVM.
> 
> A new KVM device is introduced for the XIVE native exploitation
> mode. It reuses most of the XICS-over-XIVE glue implementation
> structures which are internal to KVM but has a completely different
> interface. A set of KVM device ioctls provide support for the
> hypervisor calls, all handled in QEMU, to configure the sources and
> the event queues. From there, all interrupt control is transferred to
> the guest which can use MMIOs.
> 
> These MMIO regions (ESB and TIMA) are exposed to guests in QEMU,
> similarly to VFIO, and the associated VMAs are populated dynamically
> with the appropriate pages using a fault handler. These are now
> implemented using mmap()s of the KVM device fd.
> 
> Migration has its own specific needs regarding memory. The patchset
> provides a specific control to quiesce XIVE before capturing the
> memory. The save and restore of the internal state is based on the
> same ioctls used for the hcalls.
> 
> On a POWER9 sPAPR machine, the Client Architecture Support (CAS)
> negotiation process determines whether the guest operates with a
> interrupt controller using the XICS legacy model, as found on POWER8,
> or in XIVE exploitation mode. Which means that the KVM interrupt
> device should be created at run-time, after the machine has started.
> This requires extra support from KVM to destroy KVM devices. It is
> introduced at the end of the patchset and requires some attention.
> 
> This is based on Linux 5.1-rc5 and is a candidate for 5.2. The OPAL
> patches have been merged now.

Thanks, patch series applied to my kvm-ppc-next tree.  I added two
patches of mine on top to make sure we exclude other execution paths
in the device release method, and to clear the escalation interrupt
hardware pointers on release.  I also modified your last patch to free
the xive structures in book3s.c rather than powerpc.c in order to fix
compilation for Book E configs.

Paul.



[Index of Archives]     [KVM Development]     [KVM ARM]     [KVM ia64]     [Linux Virtualization]     [Linux USB Devel]     [Linux Video]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux