[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 2/2] intel_iommu: allow migration
From: |
Peter Xu |
Subject: |
Re: [Qemu-devel] [PATCH v2 2/2] intel_iommu: allow migration |
Date: |
Fri, 6 Jan 2017 12:04:54 +0800 |
User-agent: |
Mutt/1.5.24 (2015-08-30) |
On Fri, Jan 06, 2017 at 11:42:30AM +0800, Jason Wang wrote:
>
>
> On 2017年01月06日 11:08, Peter Xu wrote:
> >IOMMU needs to be migrated before all the PCI devices (in case there are
> >devices that will request for address translation). So marking it with a
> >priority higher than the default (which PCI devices and other belong).
> >Migration framework handled the rest.
> >
> >Signed-off-by: Peter Xu <address@hidden>
> >---
> > hw/i386/intel_iommu.c | 21 ++++++++++++++++++++-
> > include/migration/vmstate.h | 1 +
> > 2 files changed, 21 insertions(+), 1 deletion(-)
> >
> >diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c
> >index 5f3e351..ea9e526 100644
> >--- a/hw/i386/intel_iommu.c
> >+++ b/hw/i386/intel_iommu.c
> >@@ -1996,7 +1996,26 @@ static void
> >vtd_iommu_notify_flag_changed(MemoryRegion *iommu,
> > static const VMStateDescription vtd_vmstate = {
> > .name = "iommu-intel",
> >- .unmigratable = 1,
> >+ .version_id = 1,
> >+ .minimum_version_id = 1,
> >+ .priority = MIG_PRI_IOMMU,
> >+ .fields = (VMStateField[]) {
> >+ VMSTATE_UINT64(root, IntelIOMMUState),
> >+ VMSTATE_UINT64(intr_root, IntelIOMMUState),
> >+ VMSTATE_UINT64(iq, IntelIOMMUState),
> >+ VMSTATE_UINT32(intr_size, IntelIOMMUState),
> >+ VMSTATE_UINT16(iq_head, IntelIOMMUState),
> >+ VMSTATE_UINT16(iq_tail, IntelIOMMUState),
> >+ VMSTATE_UINT16(iq_size, IntelIOMMUState),
> >+ VMSTATE_UINT16(next_frcd_reg, IntelIOMMUState),
> >+ VMSTATE_UINT8(iq_last_desc_type, IntelIOMMUState),
> >+ VMSTATE_BOOL(root_extended, IntelIOMMUState),
> >+ VMSTATE_BOOL(dmar_enabled, IntelIOMMUState),
> >+ VMSTATE_BOOL(qi_enabled, IntelIOMMUState),
> >+ VMSTATE_BOOL(intr_enabled, IntelIOMMUState),
> >+ VMSTATE_BOOL(intr_eime, IntelIOMMUState),
> >+ VMSTATE_END_OF_LIST()
> >+ }
> > };
>
> Looks like register values were missed (e.g csr[]) ?
Oops, I missed the most important thing. :)
And obviously it even escaped from smoke test... Thanks Jason. Will
repost.
-- peterx