From: Eric Auger <eric.auger@redhat.com>
To: eric.auger.pro@gmail.com, eric.auger@redhat.com,
peter.maydell@linaro.org, qemu-arm@nongnu.org,
qemu-devel@nongnu.org, wanghaibin.wang@huawei.com
Cc: vijay.kilari@gmail.com, drjones@redhat.com, wei@redhat.com,
quintela@redhat.com, dgilbert@redhat.com,
christoffer.dall@linaro.org, wu.wubin@huawei.com
Subject: [Qemu-devel] [RFC 0/3] vITS Reset
Date: Wed, 27 Sep 2017 16:56:42 +0200 [thread overview]
Message-ID: <1506524205-20763-1-git-send-email-eric.auger@redhat.com> (raw)
At the moment the ITS is not properly reset. On System reset or
reboot, previous ITS register values and caches are left
unchanged. Some of the registers might point to some guest RAM
tables which are not provisionned. This leads to state
inconsistencies that are detected by the kernel save/restore
code. And eventually this may cause qemu abort on source or
destination.
The 1st patch, suggested to be cc'ed stable proposes to remove
the abort in case of table save/restore failure. This is
definitively not ideal but looks the most reasonable until we
get a proper way to reset the ITS. Still a message is emitted
to report the save/restore did not happen correctly.
Subsequent patches add the support of explicit reset using
a new kvm device group/attribute combo. The associated kernel
series is not upstream [1], hence the RFC.
ITS specification is not very clear about reset. There is no
reset wire. Some register fields are documented to have
architecturally defined reset values and we use those here:
Most importantly the Valid bit of GITS_CBASER and GITS_BASER
are cleared and the GITS_CTLR.Enabled bit is cleared as well.
Best Regards
Eric
Host Kernel dependencies:
- [1] [PATCH 0/10 v2] vITS Migration fixes and reset
The series is available at:
https://github.com/eauger/qemu/tree/v2.10-its-reset-v1
Eric Auger (3):
hw/intc/arm_gicv3_its: Don't abort on table save/restore
linux-headers: Partial header update for ITS reset
hw/intc/arm_gicv3_its: Implement reset
hw/intc/arm_gicv3_its_common.c | 5 ++---
hw/intc/arm_gicv3_its_kvm.c | 37 ++++++++++++++++++++++++----------
include/hw/intc/arm_gicv3_its_common.h | 1 +
linux-headers/asm-arm/kvm.h | 1 +
linux-headers/asm-arm64/kvm.h | 1 +
5 files changed, 31 insertions(+), 14 deletions(-)
--
2.5.5
next reply other threads:[~2017-09-27 14:57 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-27 14:56 Eric Auger [this message]
2017-09-27 14:56 ` [Qemu-devel] [RFC 1/3] hw/intc/arm_gicv3_its: Don't abort on table save/restore Eric Auger
2017-10-12 11:54 ` Peter Maydell
2017-10-17 12:54 ` Auger Eric
2017-09-27 14:56 ` [Qemu-devel] [RFC 2/3] linux-headers: Partial header update for ITS reset Eric Auger
2017-09-27 14:56 ` [Qemu-devel] [RFC 3/3] hw/intc/arm_gicv3_its: Implement reset Eric Auger
2017-10-12 11:52 ` Peter Maydell
2017-10-09 18:17 ` [Qemu-devel] [RFC 0/3] vITS Reset Peter Maydell
2017-10-11 16:06 ` Auger Eric
2017-10-12 10:36 ` Peter Maydell
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=1506524205-20763-1-git-send-email-eric.auger@redhat.com \
--to=eric.auger@redhat.com \
--cc=christoffer.dall@linaro.org \
--cc=dgilbert@redhat.com \
--cc=drjones@redhat.com \
--cc=eric.auger.pro@gmail.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=vijay.kilari@gmail.com \
--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 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).