On Tue, 1 Oct 2024 13:42:45 +0200 Mauro Carvalho Chehab <mchehab+hua...@kernel.org> wrote:
> This RFC series was part of the previous PR to add generic error injection > support on GHES. > > It contains only the changes of the math used to calculate offsets at > HEST table and hardware_error firmware file. > > The first patch adds a new firmware file to store HEST address. > The second patch makes use of it. > The remaining ones add migration support. > > PS.: I'm sending this as a RFC as using the proceudure defined at the > pseudo-migration of: > > https://www.linux-kvm.org/page/Migration > > Didn't work. I tried to use two different QEMU versions to check a > real life case and also to use just one QEMU and trying to load a > virt-9.1 state on a virt-9.2 machine. > > For instance, trying to restore a virt-9.1 state on virt-9.2 gave me > this error: > > (qemu) qemu: Machine type received is 'virt-9.1' and local is 'virt-9.2' > qemu: load of migration failed: Invalid argument that's expected (idea is to keep machine type (virt-X) ABI stable so it would work the same way on old and new QEMU) migration is meant to move VM of the same machine type to a new/another QEMU instance. i.e try migrate qemu-9.1 -M virt-9.1 => qemu-9.2 -M virt-9.1 and vice-versa migration should succeed and memory error injection should still work the old way in both instances (I don't recall anymore how to simulate SEA, perhaps original author left a description how to do that somewhere on mail-list). virt-9.2 is never meant to be > Yet, running virt-9.1 used the old math code (offsets from hardware_errors > firmware > file) while running virt-9.2 executed the new math code using HEST address. > > Mauro Carvalho Chehab (5): > acpi/ghes: add a firmware file with HEST address > acpi/ghes: Use HEST table offsets when preparing GHES records > acpi/generic_event_device: Update GHES migration to cover hest addr > acpi/generic_event_device: add logic to detect if HEST addr is > available > arm/virt-acpi-build: Properly handle virt-9.1 > > hw/acpi/generic_event_device.c | 30 +++++++++ > hw/acpi/ghes.c | 108 ++++++++++++++++++++++++++++++--- > hw/arm/virt-acpi-build.c | 30 +++++++-- > hw/core/machine.c | 4 +- > include/hw/acpi/ghes.h | 2 + > 5 files changed, 159 insertions(+), 15 deletions(-) >