On Tue, 1 Oct 2024 13:42:45 +0200
Mauro Carvalho Chehab <mchehab+huawei@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(-)
>