[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-arm] [PATCH v6 0/4] vITS Reset
From: |
Eric Auger |
Subject: |
[Qemu-arm] [PATCH v6 0/4] vITS Reset |
Date: |
Tue, 28 Nov 2017 16:41:28 +0100 |
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-v6
History:
v5 -> v6:
- update linux header update commit title and message
- add class_size in 2/4
v4 -> v5:
- correct error message in 2/4
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 4.15-rc1
hw/intc/arm_gicv3_its: Implement full reset
hw/intc/arm_gicv3_its_common.c | 2 -
hw/intc/arm_gicv3_its_kvm.c | 53 ++-
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, 123 insertions(+), 417 deletions(-)
--
2.5.5
- [Qemu-arm] [PATCH v6 0/4] vITS Reset,
Eric Auger <=
- [Qemu-arm] [PATCH v6 1/4] hw/intc/arm_gicv3_its: Don't call post_load on reset, Eric Auger, 2017/11/28
- [Qemu-arm] [PATCH v6 2/4] hw/intc/arm_gicv3_its: Implement a minimalist reset, Eric Auger, 2017/11/28
- [Qemu-arm] [PATCH v6 3/4] linux-headers: update to 4.15-rc1, Eric Auger, 2017/11/28
- [Qemu-arm] [PATCH v6 4/4] hw/intc/arm_gicv3_its: Implement full reset, Eric Auger, 2017/11/28
- Re: [Qemu-arm] [PATCH v6 0/4] vITS Reset, Peter Maydell, 2017/11/29