From: Alexey Kardashevskiy <aik@ozlabs.ru>
To: qemu-devel@nongnu.org
Cc: "Alexey Kardashevskiy" <aik@ozlabs.ru>,
qemu-ppc@nongnu.org, "Alexander Graf" <agraf@suse.de>,
"Andreas Färber" <afaerber@suse.de>
Subject: [Qemu-devel] [PATCH 0/8] spapr: fix IOMMU and XICS/IRQs migration
Date: Fri, 14 Mar 2014 15:18:01 +1100 [thread overview]
Message-ID: <1394770689-29039-1-git-send-email-aik@ozlabs.ru> (raw)
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
next reply other threads:[~2014-03-14 4:19 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-14 4:18 Alexey Kardashevskiy [this message]
2014-03-14 4:18 ` [Qemu-devel] [PATCH 1/8] spapr-iommu: add a bus for spapr-iommu devices Alexey Kardashevskiy
2014-04-10 12:40 ` Alexander Graf
2014-04-10 14:40 ` Alexey Kardashevskiy
2014-04-10 14:52 ` Andreas Färber
2014-04-10 15:18 ` Alexey Kardashevskiy
2014-03-14 4:18 ` [Qemu-devel] [PATCH 2/8] xics: add flags for interrupts Alexey Kardashevskiy
2014-04-10 12:43 ` Alexander Graf
2014-03-14 4:18 ` [Qemu-devel] [PATCH 3/8] xics: add find_server Alexey Kardashevskiy
2014-03-14 4:18 ` [Qemu-devel] [PATCH 4/8] xics: add pre_load() hook to ICSStateClass Alexey Kardashevskiy
2014-03-14 4:18 ` [Qemu-devel] [PATCH 5/8] xics: disable flags reset on xics reset Alexey Kardashevskiy
2014-03-14 4:18 ` [Qemu-devel] [PATCH 6/8] spapr: move interrupt allocator to xics Alexey Kardashevskiy
2014-04-10 12:51 ` Alexander Graf
2014-04-10 13:24 ` Alexey Kardashevskiy
2014-04-10 13:26 ` Alexander Graf
2014-04-10 14:43 ` Alexey Kardashevskiy
2014-04-11 9:24 ` Alexander Graf
2014-04-11 12:38 ` Alexey Kardashevskiy
2014-04-11 13:58 ` Alexander Graf
2014-04-11 14:50 ` Alexey Kardashevskiy
2014-04-11 14:58 ` Alexander Graf
2014-04-11 15:27 ` Alexey Kardashevskiy
2014-04-11 15:38 ` Alexander Graf
2014-04-11 16:01 ` Alexey Kardashevskiy
2014-04-11 16:15 ` Alexander Graf
2014-04-11 16:30 ` Alexey Kardashevskiy
2014-03-14 4:18 ` [Qemu-devel] [PATCH 7/8] spapr: remove @next_irq Alexey Kardashevskiy
2014-03-14 7:19 ` Thomas Huth
2014-03-14 4:18 ` [Qemu-devel] [PATCH 8/8] xics: enable interrupt configuration reset on migration Alexey Kardashevskiy
2014-04-10 12:55 ` Alexander Graf
2014-03-20 1:25 ` [Qemu-devel] [PATCH 0/8] spapr: fix IOMMU and XICS/IRQs migration Andreas Färber
2014-04-04 5:53 ` Alexey Kardashevskiy
2014-05-04 13:56 ` Alexey Kardashevskiy
2014-05-04 21:52 ` Paolo Bonzini
2014-05-04 23:48 ` Alexey Kardashevskiy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1394770689-29039-1-git-send-email-aik@ozlabs.ru \
--to=aik@ozlabs.ru \
--cc=afaerber@suse.de \
--cc=agraf@suse.de \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).