From patchwork Wed Jan 22 15:46:17 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mauro Carvalho Chehab X-Patchwork-Id: 13947471 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id B9C97C02182 for ; Wed, 22 Jan 2025 15:49:09 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tacwy-00054c-Mp; Wed, 22 Jan 2025 10:47:28 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tacwT-0004y4-GD; Wed, 22 Jan 2025 10:47:03 -0500 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tacwR-0006u5-Qf; Wed, 22 Jan 2025 10:46:57 -0500 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 32AD05C6085; Wed, 22 Jan 2025 15:46:00 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E6D3AC4AF0E; Wed, 22 Jan 2025 15:46:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1737560800; bh=xgqHqajVAv5YFaGSD+Bsr3dzmM+voIVzZZYOg6BWkh8=; h=From:To:Cc:Subject:Date:From; b=MkVxpfvnuuhiRQvdrXBo4jemukHoGHGwldya+r+XdW7tpd/SNn7fZ4e3o0C40J9+L gzmXoPPDN1VQHZUTLqBWnrUy16FCheDfGNjdFVLxf7X9uOErKnE/iDTIomEMq3n+oW OuCIjhUPTTCgqgu/reZcZoOv7uSa9SGil+Fhbj8JOKCjIktJiTa3aCLRe1dvkAx7dl o3R0RYfi76XyyTEXAi5TjwxhqavyP3AL2Hjisee3UL6Rjw2WYmpox3ZwL6q4j+zWbw AR2ytzlMfuVdNnfMRYzq2UnNmDqjAnj6atXKO1hrg41keqC8DTLz+RLYZAAcQF7U43 hOktCBd7kn8qw== Received: from mchehab by mail.kernel.org with local (Exim 4.98) (envelope-from ) id 1tacw9-00000008ogE-3Aj4; Wed, 22 Jan 2025 16:46:37 +0100 From: Mauro Carvalho Chehab To: Igor Mammedov , "Michael S . Tsirkin" Cc: Jonathan Cameron , Shiju Jose , qemu-arm@nongnu.org, qemu-devel@nongnu.org, Mauro Carvalho Chehab , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Ani Sinha , Cleber Rosa , Dongjiu Geng , Eduardo Habkost , Eric Blake , John Snow , Marcel Apfelbaum , Markus Armbruster , Michael Roth , Paolo Bonzini , Peter Maydell , Shannon Zhao , Yanan Wang , Zhao Liu , kvm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 00/11] Change ghes to use HEST-based offsets and add support for error inject Date: Wed, 22 Jan 2025 16:46:17 +0100 Message-ID: X-Mailer: git-send-email 2.48.1 MIME-Version: 1.0 Received-SPF: pass client-ip=2604:1380:4641:c500::1; envelope-from=mchehab+huawei@kernel.org; helo=dfw.source.kernel.org X-Spam_score_int: -73 X-Spam_score: -7.4 X-Spam_bar: ------- X-Spam_report: (-7.4 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.996, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Now that the ghes preparation patches were merged, let's add support for error injection. I'm opting to fold two patch series into one here: 1. https://lore.kernel.org/qemu-devel/20250113130854.848688-1-mchehab+huawei@kernel.org/ It is the first 5 patches containing changes to the math used to calculate offsets at HEST table and hardware_error firmware file, together with its migration code. Migration tested with both latest QEMU released kernel and upstream, on both directions. There were no changes on this series since last submission, except for a conflict resolution at the migration table, due to upstream changes. For more details, se the post of my previous submission. 2. It follows 6 patches from: https://lore.kernel.org/qemu-devel/cover.1726293808.git.mchehab+huawei@kernel.org/ containing the error injection code and script. They add a new QAPI to allow injecting GHESv2 errors, and a script using such QAPI to inject ARM Processor Error records. PS.: If I'm counting well, this is the 18th version of this series rebase. Mauro Carvalho Chehab (11): acpi/ghes: Prepare to support multiple sources on ghes 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 acpi/ghes: add a notifier to notify when error data is ready acpi/ghes: Cleanup the code which gets ghes ged state acpi/generic_event_device: add an APEI error device arm/virt: Wire up a GED error device for ACPI / GHES qapi/acpi-hest: add an interface to do generic CPER error injection scripts/ghes_inject: add a script to generate GHES error inject MAINTAINERS | 10 + hw/acpi/Kconfig | 5 + hw/acpi/aml-build.c | 10 + hw/acpi/generic_event_device.c | 38 ++ hw/acpi/ghes-stub.c | 4 +- hw/acpi/ghes.c | 184 +++++-- hw/acpi/ghes_cper.c | 32 ++ hw/acpi/ghes_cper_stub.c | 19 + hw/acpi/meson.build | 2 + hw/arm/virt-acpi-build.c | 35 +- hw/arm/virt.c | 19 +- hw/core/machine.c | 2 + include/hw/acpi/acpi_dev_interface.h | 1 + include/hw/acpi/aml-build.h | 2 + include/hw/acpi/generic_event_device.h | 1 + include/hw/acpi/ghes.h | 36 +- include/hw/arm/virt.h | 2 + qapi/acpi-hest.json | 35 ++ qapi/meson.build | 1 + qapi/qapi-schema.json | 1 + scripts/arm_processor_error.py | 377 +++++++++++++ scripts/ghes_inject.py | 51 ++ scripts/qmp_helper.py | 702 +++++++++++++++++++++++++ target/arm/kvm.c | 2 +- 24 files changed, 1517 insertions(+), 54 deletions(-) create mode 100644 hw/acpi/ghes_cper.c create mode 100644 hw/acpi/ghes_cper_stub.c create mode 100644 qapi/acpi-hest.json create mode 100644 scripts/arm_processor_error.py create mode 100755 scripts/ghes_inject.py create mode 100644 scripts/qmp_helper.py