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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).