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] [PATCH v4 0/4] vITS Reset
Date: Fri, 24 Nov 2017 14:30:34 +0100 [thread overview]
Message-ID: <1511530238-18318-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 valid anymore. This leads to state
inconsistencies that are detected by the kernel save/restore
code. And eventually this may cause qemu abort.
This series adds vITS reset modality:
- the 2 first patches bring a minimalist reset through individual
register writes. However, with kernel versions < 4.15, this reset
is not complete (vITS caches are not voided).
- With kernel versions >= 4.15 we can rely on a new ITS KVM device
reset IOTCL. The last 2 patches introduce the full reset.
Tested with 4.11, 4.14 and 4.15 host kernels.
Best Regards
Eric
The series is available at:
https://github.com/eauger/qemu/tree/2.11.0-rc2-its-reset-v4
History:
v3 -> v4:
- replace partial linux header update by an exhaustive one
v2 -> v3:
- don't call post_load on reset (no iidr check anymore)
v1 -> v2:
- Clarify why abort should be removed for save. Leave abort
for restore.
- Adopt the same reset infra as vgic
- introduce "hw/intc/arm_gicv3_its: Implement a minimalist reset"
which perform individual register writes. This is sufficient to
fix the issues without ioctl
Eric Auger (4):
hw/intc/arm_gicv3_its: Don't call post_load on reset
hw/intc/arm_gicv3_its: Implement a minimalist reset
linux-headers: update to pre 4.15-rc0
hw/intc/arm_gicv3_its: Implement full reset
hw/intc/arm_gicv3_its_common.c | 2 -
hw/intc/arm_gicv3_its_kvm.c | 52 ++-
include/standard-headers/asm-s390/virtio-ccw.h | 1 +
include/standard-headers/asm-x86/hyperv.h | 394 +--------------------
include/standard-headers/linux/input-event-codes.h | 2 +
include/standard-headers/linux/input.h | 1 +
include/standard-headers/linux/pci_regs.h | 45 ++-
linux-headers/asm-arm/kvm.h | 8 +
linux-headers/asm-arm/kvm_para.h | 1 +
linux-headers/asm-arm/unistd.h | 2 +
linux-headers/asm-arm64/kvm.h | 8 +
linux-headers/asm-arm64/unistd.h | 1 +
linux-headers/asm-powerpc/epapr_hcalls.h | 1 +
linux-headers/asm-powerpc/kvm.h | 1 +
linux-headers/asm-powerpc/kvm_para.h | 1 +
linux-headers/asm-powerpc/unistd.h | 1 +
linux-headers/asm-s390/kvm.h | 1 +
linux-headers/asm-s390/kvm_para.h | 1 +
linux-headers/asm-s390/unistd.h | 4 +-
linux-headers/asm-x86/kvm.h | 1 +
linux-headers/asm-x86/kvm_para.h | 2 +-
linux-headers/asm-x86/unistd.h | 1 +
linux-headers/linux/kvm.h | 2 +
linux-headers/linux/kvm_para.h | 1 +
linux-headers/linux/psci.h | 1 +
linux-headers/linux/userfaultfd.h | 1 +
linux-headers/linux/vfio.h | 1 +
linux-headers/linux/vfio_ccw.h | 1 +
linux-headers/linux/vhost.h | 1 +
29 files changed, 122 insertions(+), 417 deletions(-)
--
2.5.5
next reply other threads:[~2017-11-24 13:31 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-24 13:30 Eric Auger [this message]
2017-11-24 13:30 ` [Qemu-devel] [PATCH v4 1/4] hw/intc/arm_gicv3_its: Don't call post_load on reset Eric Auger
2017-11-24 13:41 ` Peter Maydell
2017-11-24 13:30 ` [Qemu-devel] [PATCH v4 2/4] hw/intc/arm_gicv3_its: Implement a minimalist reset Eric Auger
2017-11-24 13:34 ` Peter Maydell
2017-11-24 13:39 ` Auger Eric
2017-11-24 13:30 ` [Qemu-devel] [PATCH v4 3/4] linux-headers: update to pre 4.15-rc0 Eric Auger
2017-11-24 13:38 ` Peter Maydell
2017-11-24 13:50 ` Auger Eric
2017-11-24 13:30 ` [Qemu-devel] [PATCH v4 4/4] hw/intc/arm_gicv3_its: Implement full reset Eric Auger
2017-11-24 13:40 ` 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=1511530238-18318-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).