[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 0/8] spapr: fix IOMMU and XICS/IRQs migration
From: |
Alexey Kardashevskiy |
Subject: |
[Qemu-devel] [PATCH 0/8] spapr: fix IOMMU and XICS/IRQs migration |
Date: |
Fri, 14 Mar 2014 15:18:01 +1100 |
This initial problem came form libvirt - it does not preserve
the device order when running QEMU. So it is easy to get source QEMU with:
-device spapr-vscsi,id=scsi1,reg=0x2000 -device spapr-vscsi,id=scsi0,reg=0x3000
and destination QEMU with:
-device spapr-vscsi,id=scsi0,reg=0x3000 -device spapr-vscsi,id=scsi1,reg=0x2000
Since SPAPR IOMMU device does not have a bus, it is identified in
the migration stream as "spapr-iommu" and @instance_id which is assigned
as IOMMUs are created. This results in broken migration as @reg does not match.
The first patch fixes this issue by adding a bus device and a bridge.
However just 1/8 does not fix the migration as device creation order also
affects IRQs assigned to the devices, for both PCI and VIO.
2/7..8/8 fix that by moving XICS IRQ management from SPAPR to XICS and
implementing migration support for the entire XICS IRQ map.
As we are here, the patchset also prepares XICS to support multiple ICS
(interrupt servers).
This is a bugfix patchset but it feels too big to go to 2.0, right? :)
Alexey Kardashevskiy (8):
spapr-iommu: add a bus for spapr-iommu devices
xics: add flags for interrupts
xics: add find_server
xics: add pre_load() hook to ICSStateClass
xics: disable flags reset on xics reset
spapr: move interrupt allocator to xics
spapr: remove @next_irq
xics: enable interrupt configuration reset on migration
hw/intc/xics.c | 158 +++++++++++++++++++++++++++++++++++++++++++++----
hw/intc/xics_kvm.c | 9 +--
hw/ppc/spapr.c | 73 +----------------------
hw/ppc/spapr_events.c | 2 +-
hw/ppc/spapr_iommu.c | 59 +++++++++++++++++-
hw/ppc/spapr_pci.c | 8 +--
hw/ppc/spapr_vio.c | 4 +-
include/hw/ppc/spapr.h | 18 +++---
include/hw/ppc/xics.h | 8 ++-
trace-events | 4 ++
10 files changed, 238 insertions(+), 105 deletions(-)
--
1.8.4.rc4
- [Qemu-devel] [PATCH 0/8] spapr: fix IOMMU and XICS/IRQs migration,
Alexey Kardashevskiy <=
- [Qemu-devel] [PATCH 3/8] xics: add find_server, Alexey Kardashevskiy, 2014/03/14
- [Qemu-devel] [PATCH 6/8] spapr: move interrupt allocator to xics, Alexey Kardashevskiy, 2014/03/14
- [Qemu-devel] [PATCH 1/8] spapr-iommu: add a bus for spapr-iommu devices, Alexey Kardashevskiy, 2014/03/14
- [Qemu-devel] [PATCH 7/8] spapr: remove @next_irq, Alexey Kardashevskiy, 2014/03/14
- [Qemu-devel] [PATCH 4/8] xics: add pre_load() hook to ICSStateClass, Alexey Kardashevskiy, 2014/03/14
- [Qemu-devel] [PATCH 5/8] xics: disable flags reset on xics reset, Alexey Kardashevskiy, 2014/03/14
- [Qemu-devel] [PATCH 8/8] xics: enable interrupt configuration reset on migration, Alexey Kardashevskiy, 2014/03/14
- [Qemu-devel] [PATCH 2/8] xics: add flags for interrupts, Alexey Kardashevskiy, 2014/03/14
- Re: [Qemu-devel] [PATCH 0/8] spapr: fix IOMMU and XICS/IRQs migration, Andreas Färber, 2014/03/19