Re: [PATCH v6 0/9] vITS Migration fixes and reset

From: Christoffer Dall
Date: Mon Oct 30 2017 - 02:20:46 EST


Hi Eric,

On Thu, Oct 26, 2017 at 05:23:02PM +0200, Eric Auger wrote:
> This series fixes various bugs observed when saving/restoring the
> ITS state before the guest writes the ITS registers (on first boot or
> after reset/reboot).
>
> This is a follow up of Wanghaibin's series [1] plus additional
> patches following additional code review. It also proposes one
> ITS reset implementation.
>
> Currently, the in-kernel emulated ITS is not reset. After a
> reset/reboot, the ITS register values and caches are left
> unchanged. Registers may point to some tables in guest memory
> which do not exist anymore. If an ITS state backup is initiated
> before the guest re-writes the registers, the save fails
> because inconsistencies are detected. Also restore of data saved
> as such moment is failing.
>
> Patches [1-4] are fixes of bugs observed during migration at
> early guets boot stage.
> - handle case where all collection, device and ITT entries are
> invalid on restore (which is not an error)
> - Check the GITS_BASER<n> valid bit before attempting the save
> any table
> - Check the GITS_BASER<n> and GITS_CBASER are valid before enabling
> the ITS
>
> Patches [5-9] allow to empty the caches on reset and implement a
> new ITS reset IOCTL

I applied patches 1-4 to kvmarm/master and included them in a late pull
request to kvm.

I also took the remaining patches with the adjusted comment in
kvmarm/next.

One question: Don't we have a remaining issue to support saving the
collection table even if the device table is inconsistent and vice
versa? Are you planning on picking up that work?

Thanks,
-Christoffer