On Tue, 4 Dec 2018 at 12:33, Cédric Le Goater <[email protected]> wrote:
> A completely new interrupt controller was introduced on the POWER9
> processor and it uses MMIO regions for interrupt management. These
> regions are backed by simple MRs in QEMU, when using TCG, and backed
> by ram_device_ptr MRs under KVM.
>
> Difficulties arise with the fact that POWER9 pseries guests need
> to support the old mode (XICS, no MMIOs) and the new mode XIVE.
> The interrupt mode is negotiated at boot between the hypervisor
> and the guest and a reset is generated to take into account
> the changes. Which means that, at reset, we may need to disconnect
> from a KVM IC device and reconnect to another.

This is a painful API for QEMU to implement, incidentally,
because we don't have any concept really of a warm reset. In
theory reset should get you back to exactly the same state
as if you'd just started QEMU. You can probably bodge something
together, though.

> When switching from XICS to XIVE mode :
>
>   if kvm
>     - destroy KVM XICS device
>     - create KVM XIVE device
>     - get fd, mmap, init ram_device_ptr MRs
>     - map mmio
>   - enable MMIOs
>
> When switching from XIVE to XICS  :
>
>   - disable MMIOs
>   if kvm
>     - delete MRs
>     - munmap
>     - destroy KVM XIVE device
>     - create KVM XICS device

This seems basically OK, I think.

thanks
-- PMM

Reply via email to