From: Christoffer Dall <cdall@linaro.org>
To: Eric Auger <eric.auger@redhat.com>
Cc: eric.auger.pro@gmail.com, linux-kernel@vger.kernel.org,
kvm@vger.kernel.org, kvmarm@lists.cs.columbia.edu,
marc.zyngier@arm.com, peter.maydell@linaro.org,
andre.przywara@arm.com, wanghaibin.wang@huawei.com,
wu.wubin@huawei.com, drjones@redhat.com, wei@redhat.com
Subject: Re: [PATCH v5 05/10] KVM: arm/arm64: vgic-its: Save the collection table before device tables
Date: Wed, 25 Oct 2017 11:59:49 +0200 [thread overview]
Message-ID: <20171025095949.GE91785@lvm> (raw)
In-Reply-To: <1508767709-15256-6-git-send-email-eric.auger@redhat.com>
On Mon, Oct 23, 2017 at 04:08:24PM +0200, Eric Auger wrote:
> Currently the ITS caches are not emptied on reset.
>
> After a reset, in case we attempt to save the state before
> the bound devices have registered their MSIs and after the
> 1st level table has been allocated by the ITS driver
> (device BASER is valid), the first level entries are still
> invalid. If the device cache is not empty (devices registered
> before the reset), vgic_its_save_device_tables fails.
>
> This failure has no consequence as those devices do not
> deserve to be saved: they correspond to the state before
> the reset.
>
> However the ITS driver already sent MAPC for collections
> and those need to be saved. With the current code, they
> will not and the restored guest will not work properly.
>
> So this patch saves collection tables before device tables.
>
> Signed-off-by: Eric Auger <eric.auger@redhat.com>
>
> ---
>
> candidate to be CC'ed stable
> ---
> virt/kvm/arm/vgic/vgic-its.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/virt/kvm/arm/vgic/vgic-its.c b/virt/kvm/arm/vgic/vgic-its.c
> index b6650c2..8472417 100644
> --- a/virt/kvm/arm/vgic/vgic-its.c
> +++ b/virt/kvm/arm/vgic/vgic-its.c
> @@ -2324,11 +2324,11 @@ static int vgic_its_save_tables_v0(struct vgic_its *its)
> return -EBUSY;
> }
>
> - ret = vgic_its_save_device_tables(its);
> + ret = vgic_its_save_collection_table(its);
> if (ret)
> goto out;
>
> - ret = vgic_its_save_collection_table(its);
> + ret = vgic_its_save_device_tables(its);
>
I don't understand this. It seems to indicate an ordering of device
tables vs. collection tables. What is that?
I thought the point was that you'd want to save the valid table, and not
save the other one.
So, aren't we looking for something like this:
ret = vgic_its_save_device_tables(its);
if (ret < 0)
goto out;
ret = vgic_its_save_collection_table(its);
Thanks,
-Christoffer
next prev parent reply other threads:[~2017-10-25 9:59 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-23 14:08 [PATCH v5 00/10] vITS Migration fixes and reset Eric Auger
2017-10-23 14:08 ` Eric Auger
2017-10-23 14:08 ` [PATCH v5 01/10] KVM: arm/arm64: vgic-its: Fix return value for device table restore Eric Auger
2017-10-23 14:08 ` Eric Auger
2017-10-24 16:02 ` Christoffer Dall
2017-10-23 14:08 ` [PATCH v5 02/10] KVM: arm/arm64: vgic-its: Fix vgic_its_restore_collection_table returned value Eric Auger
2017-10-24 16:15 ` Christoffer Dall
2017-10-23 14:08 ` [PATCH v5 03/10] KVM: arm/arm64: vgic-its: Check CBASER/BASER validity before enabling the ITS Eric Auger
2017-10-23 14:08 ` Eric Auger
2017-10-25 9:38 ` Marc Zyngier
2017-10-25 9:38 ` Marc Zyngier
2017-10-25 9:46 ` Marc Zyngier
2017-10-25 9:46 ` Marc Zyngier
2017-10-25 11:52 ` Christoffer Dall
2017-10-23 14:08 ` [PATCH v5 04/10] KVM: arm/arm64: vgic-its: Check GITS_BASER Valid bit before saving tables Eric Auger
2017-10-23 14:08 ` Eric Auger
2017-10-25 9:47 ` Marc Zyngier
2017-10-25 9:47 ` Marc Zyngier
2017-10-23 14:08 ` [PATCH v5 05/10] KVM: arm/arm64: vgic-its: Save the collection table before device tables Eric Auger
2017-10-25 9:59 ` Christoffer Dall [this message]
2017-10-23 14:08 ` [PATCH v5 06/10] KVM: arm/arm64: vgic-its: Remove kvm_its_unmap_device Eric Auger
2017-10-25 9:45 ` Christoffer Dall
2017-10-23 14:08 ` [PATCH v5 07/10] KVM: arm/arm64: vgic-its: New helper functions to free the caches Eric Auger
2017-10-23 14:08 ` Eric Auger
2017-10-25 10:31 ` Christoffer Dall
2017-10-25 10:31 ` Christoffer Dall
2017-10-25 10:31 ` Marc Zyngier
2017-10-25 10:31 ` Marc Zyngier
2017-10-23 14:08 ` [PATCH v5 08/10] KVM: arm/arm64: vgic-its: Free caches when GITS_BASER Valid bit is cleared Eric Auger
2017-10-25 10:23 ` Marc Zyngier
2017-10-25 10:23 ` Marc Zyngier
2017-10-23 14:08 ` [PATCH v5 09/10] KVM: arm/arm64: Document KVM_DEV_ARM_ITS_CTRL_RESET Eric Auger
2017-10-23 14:08 ` Eric Auger
2017-10-25 10:40 ` Marc Zyngier
2017-10-25 10:40 ` Marc Zyngier
2017-10-23 14:08 ` [PATCH v5 10/10] KVM: arm/arm64: vgic-its: Implement KVM_DEV_ARM_ITS_CTRL_RESET Eric Auger
2017-10-25 10:52 ` Marc Zyngier
2017-10-25 10:52 ` Marc Zyngier
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=20171025095949.GE91785@lvm \
--to=cdall@linaro.org \
--cc=andre.przywara@arm.com \
--cc=drjones@redhat.com \
--cc=eric.auger.pro@gmail.com \
--cc=eric.auger@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=linux-kernel@vger.kernel.org \
--cc=marc.zyngier@arm.com \
--cc=peter.maydell@linaro.org \
--cc=wanghaibin.wang@huawei.com \
--cc=wei@redhat.com \
--cc=wu.wubin@huawei.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.