From: Igor Mammedov <imammedo@redhat.com>
To: Eric DeVolder <eric.devolder@oracle.com>
Cc: ehabkost@redhat.com, mst@redhat.com, konrad.wilk@oracle.com,
qemu-devel@nongnu.org, pbonzini@redhat.com,
boris.ostrovsky@oracle.com, rth@twiddle.net
Subject: Re: [PATCH v4 0/6] acpi: Error Record Serialization Table, ERST, support for QEMU
Date: Tue, 22 Jun 2021 17:51:20 +0200 [thread overview]
Message-ID: <20210622175120.3080e88a@redhat.com> (raw)
In-Reply-To: <1623436283-20213-1-git-send-email-eric.devolder@oracle.com>
On Fri, 11 Jun 2021 14:31:17 -0400
Eric DeVolder <eric.devolder@oracle.com> wrote:
> This patchset introduces support for the ACPI Error Record
> Serialization Table, ERST.
>
> 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. The size and location of the backing file is specified upon
> QEMU startup of the ACPI ERST device.
>
> 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>
>
> ---
> v4: 11jun2021
> - Converted to a PCI device, per Igor.
Series looks much better now that impl. were split into
backend/frontend parts and dynamic MMIO placement.
I left some mandatory nit-picking about
comments, styles, overall documentation, leftovers
from previous revisions.
And also some how we can simplify impl. a bit more.
> - Updated qtest.
>
> v3: 28may2021
> - Converted to using a TYPE_MEMORY_BACKEND_FILE object rather than
> internal array with explicit file operations, per Igor.
> - Changed the way the qdev and base address are handled, allowing
> ERST to be disabled at run-time. Also aligns better with other
> existing code.
>
> 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 (6):
> 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: create ACPI ERST table for pc/x86 machines.
> ACPI ERST: qtest for ERST
> ACPI ERST: step 6 of bios-tables-test.c
>
> hw/acpi/erst.c | 880 +++++++++++++++++++++++++++++++++++++++++++
> hw/acpi/meson.build | 1 +
> hw/i386/acpi-build.c | 5 +
> include/hw/acpi/erst.h | 79 ++++
> 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 | 109 ++++++
> tests/qtest/meson.build | 2 +
> 9 files changed, 1076 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
>
next prev parent reply other threads:[~2021-06-22 15:55 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-11 18:31 [PATCH v4 0/6] acpi: Error Record Serialization Table, ERST, support for QEMU Eric DeVolder
2021-06-11 18:31 ` [PATCH v4 1/6] ACPI ERST: bios-tables-test.c steps 1 and 2 Eric DeVolder
2021-06-22 6:34 ` Igor Mammedov
2021-06-22 6:44 ` Igor Mammedov
2021-06-11 18:31 ` [PATCH v4 2/6] ACPI ERST: header file for ERST Eric DeVolder
2021-06-11 18:31 ` [PATCH v4 3/6] ACPI ERST: support for ACPI ERST feature Eric DeVolder
2021-06-22 15:29 ` Igor Mammedov
2021-06-11 18:31 ` [PATCH v4 4/6] ACPI ERST: create ACPI ERST table for pc/x86 machines Eric DeVolder
2021-06-22 6:50 ` Igor Mammedov
2021-06-11 18:31 ` [PATCH v4 5/6] ACPI ERST: qtest for ERST Eric DeVolder
2021-06-11 18:31 ` [PATCH v4 6/6] ACPI ERST: step 6 of bios-tables-test.c Eric DeVolder
2021-06-22 15:51 ` Igor Mammedov [this message]
2021-06-24 18:49 ` [PATCH v4 0/6] acpi: Error Record Serialization Table, ERST, support for QEMU Eric DeVolder
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=20210622175120.3080e88a@redhat.com \
--to=imammedo@redhat.com \
--cc=boris.ostrovsky@oracle.com \
--cc=ehabkost@redhat.com \
--cc=eric.devolder@oracle.com \
--cc=konrad.wilk@oracle.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.