[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 0/7] acpi: Error Record Serialization Table, ERST, support
From: |
Michael S. Tsirkin |
Subject: |
Re: [PATCH v2 0/7] acpi: Error Record Serialization Table, ERST, support for QEMU |
Date: |
Fri, 14 May 2021 09:57:40 -0400 |
On Mon, Feb 08, 2021 at 03:57:52PM -0500, Eric DeVolder wrote:
> This patchset introduces support for the ACPI Error Record
> Serialization Table, ERST.
OK I'm expecting v3 I guess?
> Linux uses the persistent storage filesystem, pstore, to record
> information (eg. dmesg tail) upon panics and shutdowns. Pstore is
> independent of, and runs before, kdump. In certain scenarios (ie.
> hosts/guests with root filesystems on NFS/iSCSI where networking
> software and/or hardware fails), pstore may contain the only
> information available for post-mortem debugging.
>
> Two common storage backends for the pstore filesystem are ACPI ERST
> and UEFI. Most BIOS implement ACPI ERST; however, ACPI ERST is not
> currently supported in QEMU, and UEFI is not utilized in all guests.
> By implementing ACPI ERST within QEMU, then the ACPI ERST becomes a
> viable pstore storage backend for virtual machines (as it is now for
> bare metal machines).
>
> Enabling support for ACPI ERST facilitates a consistent method to
> capture kernel panic information in a wide range of guests: from
> resource- constrained microvms to very large guests, and in
> particular, in direct-boot environments (which would lack UEFI
> run-time services).
>
> Note that Microsoft Windows also utilizes the ACPI ERST for certain
> crash information, if available.
>
> The ACPI ERST persistent storage is contained within a single backing
> file, with a default size of 64KiB. The size and filename of the
> backing file can be obtained from QEMU parameters.
>
> The ACPI specification[1], in Chapter "ACPI Platform Error Interfaces
> (APEI)", and specifically subsection "Error Serialization", outlines
> a method for storing error records into persistent storage.
>
> [1] "Advanced Configuration and Power Interface Specification",
> version 6.2, May 2017.
> https://www.uefi.org/sites/default/files/resources/ACPI_6_2.pdf
>
> [2] "Unified Extensible Firmware Interface Specification",
> version 2.8, March 2019.
> https://uefi.org/sites/default/files/resources/UEFI_Spec_2_8_final.pdf
>
> Suggested-by: Konrad Wilk <konrad.wilk@oracle.com>
> Signed-off-by: Eric DeVolder <eric.devolder@oracle.com>
>
> ---
> v2: 8feb2021
> - Added qtest/smoke test per Paolo Bonzini
> - Split patch into smaller chunks, per Igo Mammedov
> - Did away with use of ACPI packed structures, per Igo Mammedov
>
> v1: 26oct2020
> - initial post
>
> ---
> Eric DeVolder (7):
> ACPI ERST: bios-tables-test.c steps 1 and 2
> ACPI ERST: header file for erst
> ACPI ERST: support for ACPI ERST feature
> ACPI ERST: build step for ACPI ERST
> ACPI ERST: support ERST for x86 guest
> ACPI ERST: qtest for ERST
> ACPI ERST: bios-tables-test.c step 5
>
> hw/acpi/erst.c | 952
> +++++++++++++++++++++++++++++++++++++++++++
> hw/acpi/meson.build | 1 +
> hw/i386/acpi-build.c | 4 +
> include/hw/acpi/erst.h | 77 ++++
> tests/data/acpi/microvm/ERST | 0
> tests/data/acpi/pc/ERST | Bin 0 -> 976 bytes
> tests/data/acpi/q35/ERST | Bin 0 -> 976 bytes
> tests/qtest/erst-test.c | 106 +++++
> tests/qtest/meson.build | 2 +
> 9 files changed, 1142 insertions(+)
> create mode 100644 hw/acpi/erst.c
> create mode 100644 include/hw/acpi/erst.h
> create mode 100644 tests/data/acpi/microvm/ERST
> create mode 100644 tests/data/acpi/pc/ERST
> create mode 100644 tests/data/acpi/q35/ERST
> create mode 100644 tests/qtest/erst-test.c
>
> --
> 1.8.3.1
- Re: [PATCH v2 0/7] acpi: Error Record Serialization Table, ERST, support for QEMU,
Michael S. Tsirkin <=