From nobody Sun Feb 8 17:48:56 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@amazon.es; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=amazon.es ARC-Seal: i=1; a=rsa-sha256; t=1764593942; cv=none; d=zohomail.com; s=zohoarc; b=Fw5Qd9TWfWvbLd7O9sAJ0mZ1klWF4ptm7ks8IClfP8maAy8NvGqRmlTynlxvfD70JbkIRChpLQjn2D6OLbuqjO25ND4FAXhmxyc+EZZsmqYjC2S8cpLCyh6kuI7gS4tDVU5xVBrUGww587M9fsQBmXQj3syAKrio3gYdTblprhQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1764593942; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Af3wAy5m9T1pyoUgQy/nPKuc+zbTcDofO927bNzlVoI=; b=fO3sHdBSww4EEh/4cPjAQgDoQnQz2qsrJANVUuQEEm+T8m/kZH/EtjXuBb/C43aVnmAYlsPdyNkp5WDeM4/54Xugr+oElPSbfx/VdXAv98QjjGhVeS8RJfQ9nVEilnjnO+yfhrAzgrMhauP9w5z5dPGoZ5jaakwcQNdXxYOK2Zw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@amazon.es; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1764593942723783.7586550792385; Mon, 1 Dec 2025 04:59:02 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vQ3NA-00083J-1M; Mon, 01 Dec 2025 07:51:21 -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 1vQ3My-00080J-6q for qemu-devel@nongnu.org; Mon, 01 Dec 2025 07:51:09 -0500 Received: from fra-out-005.esa.eu-central-1.outbound.mail-perimeter.amazon.com ([63.176.194.123]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vQ3Mw-0003kX-Cq for qemu-devel@nongnu.org; Mon, 01 Dec 2025 07:51:07 -0500 Received: from ip-10-6-11-83.eu-central-1.compute.internal (HELO smtpout.naws.eu-central-1.prod.farcaster.email.amazon.dev) ([10.6.11.83]) by internal-fra-out-005.esa.eu-central-1.outbound.mail-perimeter.amazon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Dec 2025 12:50:48 +0000 Received: from EX19MTAEUB002.ant.amazon.com [54.240.197.224:13112] by smtpin.naws.eu-central-1.prod.farcaster.email.amazon.dev [10.0.31.35:2525] with esmtp (Farcaster) id 992c0900-3165-4cce-aa02-746190535d2e; Mon, 1 Dec 2025 12:50:48 +0000 (UTC) Received: from EX19D012EUA003.ant.amazon.com (10.252.50.98) by EX19MTAEUB002.ant.amazon.com (10.252.51.59) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.29; Mon, 1 Dec 2025 12:50:48 +0000 Received: from EX19D012EUA001.ant.amazon.com (10.252.50.122) by EX19D012EUA003.ant.amazon.com (10.252.50.98) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.29; Mon, 1 Dec 2025 12:50:48 +0000 Received: from EX19D012EUA001.ant.amazon.com ([fe80::b7ea:84f7:2c4b:2719]) by EX19D012EUA001.ant.amazon.com ([fe80::b7ea:84f7:2c4b:2719%3]) with mapi id 15.02.2562.029; Mon, 1 Dec 2025 12:50:48 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.es; i=@amazon.es; q=dns/txt; s=amazoncorp2; t=1764593466; x=1796129466; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=Af3wAy5m9T1pyoUgQy/nPKuc+zbTcDofO927bNzlVoI=; b=G9c/eAX+qKwr19Oa+WfBiI3BCAQrk73xzxKhd7WsNL4w3zP0ID1Uk2hi N3S9tJnRtsgGuBD5TyHsyCds3XNxKWsR3GdX7b8cpdTGKWdmhYZyLoDVZ i0HJkTobYpTLxIpICp80kjp9ZOV0ysCiVOB1W300e3uSUgvn6/opS2IDv UEe7EvRAhDLWGwQ72AK0m0EWEaDIrs2wlwaYGambqiVU2nbquBDpuP1zY ep+Ual2j7hO+hcwAkn/GMzpIOOmlf4dV23c2glUtJEUnymUuo4ISL0jvm ghoQVOgPHSYhXLrEJN25mxY7WnGgBIAH9euO9GotG3Nh35m0vjbt2kPKy Q==; X-CSE-ConnectionGUID: 4oNWy7yeQL+EihnGrv1S0Q== X-CSE-MsgGUID: vVHcoRUzTEen1V0+f2jh0g== X-IronPort-AV: E=Sophos;i="6.20,240,1758585600"; d="scan'208";a="6058410" X-Farcaster-Flow-ID: 992c0900-3165-4cce-aa02-746190535d2e From: "Chalios, Babis" To: "mst@redhat.com" , "imammedo@redhat.com" , "cohuck@redhat.com" , "pbonzini@redhat.com" CC: "qemu-devel@nongnu.org" , "dwmw2@infradead.org" , "Chalios, Babis" , "Graf (AWS), Alexander" , "mzxreary@0pointer.de" Subject: [RFC PATCH 1/4] acpi: fix acpi_send_gpe_event() to handle more events Thread-Topic: [RFC PATCH 1/4] acpi: fix acpi_send_gpe_event() to handle more events Thread-Index: AQHcYsEdcQTQFFpCvkGEL1mIzIcFZA== Date: Mon, 1 Dec 2025 12:50:47 +0000 Message-ID: <20251201125023.18344-3-bchalios@amazon.es> References: <20251201125023.18344-1-bchalios@amazon.es> In-Reply-To: <20251201125023.18344-1-bchalios@amazon.es> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.13.247.161] Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=63.176.194.123; envelope-from=prvs=423f6341f=bchalios@amazon.es; helo=fra-out-005.esa.eu-central-1.outbound.mail-perimeter.amazon.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, T_SPF_PERMERROR=0.01, UNPARSEABLE_RELAY=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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @amazon.es) X-ZM-MESSAGEID: 1764593945017019200 Content-Type: text/plain; charset="utf-8" acpi_send_gpe_events() sends events encoded in the AcpiEventStatusBits enum. The maximum bit used so far in the latter was 128, hence a single byte (ACPIGPE.sts[0]) is currently enough to hold the set bits. When we add an extra one, we will need a second byte to encode the state and casting from AcpiEventStatusBits to uint8_t will silently ignore the higher bits. Fix this, by taking into account the length value inside ACPIGPE. Signed-off-by: Babis Chalios --- hw/acpi/core.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/hw/acpi/core.c b/hw/acpi/core.c index ff16582803..48694eca54 100644 --- a/hw/acpi/core.c +++ b/hw/acpi/core.c @@ -730,7 +730,13 @@ uint32_t acpi_gpe_ioport_readb(ACPIREGS *ar, uint32_t = addr) void acpi_send_gpe_event(ACPIREGS *ar, qemu_irq irq, AcpiEventStatusBits status) { - ar->gpe.sts[0] |=3D status; + int i; + + for (i =3D 0; i < ar->gpe.len; i++) { + ar->gpe.sts[i] |=3D (status & 0xff); + status >>=3D 8; + } + acpi_update_sci(ar, irq); } =20 --=20 2.34.1 From nobody Sun Feb 8 17:48:56 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@amazon.es; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=amazon.es ARC-Seal: i=1; a=rsa-sha256; t=1764593968; cv=none; d=zohomail.com; s=zohoarc; b=R/3zhHPa+4pw7KEFpFhhxUp/4Wfl5QaCTbHuZb4IgURUd18C9kCsQfXOKqQrfqlUUFBN9qFqPSqshDpEA8ZXYTG65Dgvp9p4p90pjL/au4Uqs0od+D7amc+TDgTSeLrhfff7x4fGNK9lIxcWYJ/d2RNEeC/3Sctp9MQR12+HUrE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1764593968; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=SyOmMtS87Fj8wOKMxxjUIwG7mOYmsl1VXssurPgDu6o=; b=WE6rW4krrYhvIR7WVkhDlYnB5GaOqVff1iac9VV55aT6oUpHnGRkCG2uqLSVJjiSOGvbR15z9svQ/nKajzF2EpScoF5AXipMzhm5UDSHHRv9LXR+2UYKiyZG0BWT+3rEZCboWzOuZT69qXYJiDh/xTgsFgSGKXDkh2PkYfnsdMs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@amazon.es; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1764593968174242.0515132351219; Mon, 1 Dec 2025 04:59:28 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vQ3NJ-0008Lf-My; Mon, 01 Dec 2025 07:51:29 -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 1vQ3NB-00087e-Fy for qemu-devel@nongnu.org; Mon, 01 Dec 2025 07:51:21 -0500 Received: from fra-out-002.esa.eu-central-1.outbound.mail-perimeter.amazon.com ([3.65.3.180]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vQ3N9-0003m1-An for qemu-devel@nongnu.org; Mon, 01 Dec 2025 07:51:20 -0500 Received: from ip-10-6-3-216.eu-central-1.compute.internal (HELO smtpout.naws.eu-central-1.prod.farcaster.email.amazon.dev) ([10.6.3.216]) by internal-fra-out-002.esa.eu-central-1.outbound.mail-perimeter.amazon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Dec 2025 12:51:00 +0000 Received: from EX19MTAEUA002.ant.amazon.com [54.240.197.232:21883] by smtpin.naws.eu-central-1.prod.farcaster.email.amazon.dev [10.0.10.60:2525] with esmtp (Farcaster) id 75a89876-aa07-4770-b9ca-f223213e8cc6; Mon, 1 Dec 2025 12:51:00 +0000 (UTC) Received: from EX19D012EUA002.ant.amazon.com (10.252.50.32) by EX19MTAEUA002.ant.amazon.com (10.252.50.126) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.29; Mon, 1 Dec 2025 12:50:59 +0000 Received: from EX19D012EUA001.ant.amazon.com (10.252.50.122) by EX19D012EUA002.ant.amazon.com (10.252.50.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.29; Mon, 1 Dec 2025 12:50:59 +0000 Received: from EX19D012EUA001.ant.amazon.com ([fe80::b7ea:84f7:2c4b:2719]) by EX19D012EUA001.ant.amazon.com ([fe80::b7ea:84f7:2c4b:2719%3]) with mapi id 15.02.2562.029; Mon, 1 Dec 2025 12:50:59 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.es; i=@amazon.es; q=dns/txt; s=amazoncorp2; t=1764593479; x=1796129479; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=SyOmMtS87Fj8wOKMxxjUIwG7mOYmsl1VXssurPgDu6o=; b=NhiElWyS0ZsIdoBegOiyinGHZ4Lg+lFneYUM8CZ0JcY2cwt4hO57M2CH dZXhtEyvmkx4563ucLwEHuy3ZuUOkFPTRMU7snkAhLa7pBUzpqd2ippKU IEWl0ah2uuSdh4V30u6SKPMh+69+V7HXsXYPTQuJvL7zubJQNp6yoMok7 2BNmbdQVkuhI3Rb19czNCSc9kvwiyVVsyeJRe03z9WFYevfx3o5H8dq0p mHeFUCWbsIRFWg/BmXuJmnAq9RiipDad9zsVfQ0pEVElRkygSUl8Is56f eNQSAQZXu6GoyT6it7LfpRENAXZaTp/8r4ZdKkZ5OhPXz4sDe7yvJhUv/ g==; X-CSE-ConnectionGUID: VJzJewh6SlSE/a0w49zGfg== X-CSE-MsgGUID: 8DsAb2RIT/SOX5uuJG6oOg== X-IronPort-AV: E=Sophos;i="6.20,240,1758585600"; d="scan'208";a="6055140" X-Farcaster-Flow-ID: 75a89876-aa07-4770-b9ca-f223213e8cc6 From: "Chalios, Babis" To: "mst@redhat.com" , "imammedo@redhat.com" , "cohuck@redhat.com" , "pbonzini@redhat.com" CC: "qemu-devel@nongnu.org" , "dwmw2@infradead.org" , "Chalios, Babis" , "Graf (AWS), Alexander" , "mzxreary@0pointer.de" Subject: [RFC PATCH 2/4] hw/acpi: add new fields in VMClock ABI Thread-Topic: [RFC PATCH 2/4] hw/acpi: add new fields in VMClock ABI Thread-Index: AQHcYsEkuCIYhcNvIUSZItyTw04tHA== Date: Mon, 1 Dec 2025 12:50:59 +0000 Message-ID: <20251201125023.18344-4-bchalios@amazon.es> References: <20251201125023.18344-1-bchalios@amazon.es> In-Reply-To: <20251201125023.18344-1-bchalios@amazon.es> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.13.247.161] Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=3.65.3.180; envelope-from=prvs=423f6341f=bchalios@amazon.es; helo=fra-out-002.esa.eu-central-1.outbound.mail-perimeter.amazon.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, T_SPF_PERMERROR=0.01, UNPARSEABLE_RELAY=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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @amazon.es) X-ZM-MESSAGEID: 1764593968755019200 Content-Type: text/plain; charset="utf-8" VMClock now supports a vm_generation_counter field in the struct it exposes to userspace. The field signals a disruption that happened due to a guest loaded from a snapshot. Moreover, VMClock now optionally supports device notifications when the seq_count changes to a new even value. Signed-off-by: Babis Chalios --- include/standard-headers/linux/vmclock-abi.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/include/standard-headers/linux/vmclock-abi.h b/include/standar= d-headers/linux/vmclock-abi.h index 15b0316cb4..fe824badc0 100644 --- a/include/standard-headers/linux/vmclock-abi.h +++ b/include/standard-headers/linux/vmclock-abi.h @@ -115,6 +115,17 @@ struct vmclock_abi { * bit again after the update, using the about-to-be-valid fields. */ #define VMCLOCK_FLAG_TIME_MONOTONIC (1 << 7) + /* + * If the VM_GEN_COUNTER_PRESENT flag is set, the hypervisor will + * bump the vm_generation_counter field every time the guest is + * loaded from some save state (restored from a snapshot). + */ +#define VMCLOCK_FLAG_VM_GEN_COUNTER_PRESENT (1 << 8) + /* + * If the NOTIFICATION_PRESENT flag is set, the hypervisor will send + * a notification every time it updates seq_count to a new even number. + */ +#define VMCLOCK_FLAG_NOTIFICATION_PRESENT (1 << 9) =20 uint8_t pad[2]; uint8_t clock_status; @@ -177,6 +188,15 @@ struct vmclock_abi { uint64_t time_frac_sec; /* Units of 1/2^64 of a second */ uint64_t time_esterror_nanosec; uint64_t time_maxerror_nanosec; + + /* + * This field changes to another non-repeating value when the guest + * has been loaded from a snapshot. In addition to handling a + * disruption in time (which will also be signalled through the + * disruption_marker field), a guest may wish to discard UUIDs, + * reset network connections, reseed entropy, etc. + */ + uint64_t vm_generation_counter; }; =20 #endif /* __VMCLOCK_ABI_H__ */ --=20 2.34.1 From nobody Sun Feb 8 17:48:56 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@amazon.es; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=amazon.es ARC-Seal: i=1; a=rsa-sha256; t=1764594021; cv=none; d=zohomail.com; s=zohoarc; b=J8x3Yfpsi8J6drwDN3Kt5OgnBQBXzHh5oM/Vlcfo185uasuGK42sIOSsy7PUiqyHBsuwQBV4q0yPbC+6tbMR5cuOhPNkLpVP5MvfTVo5bcsua+dVZUU0ISmCG6MuTTOZHXPWBhfn1OIKqQ7bP3el5bZhg/IGDTtnAIN2WyQX5jg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1764594021; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=YiVSaceXokDxVjzqEE15bxJ9XS5trYPoQuYPiHb327Y=; b=bqhFQxBRSy4E2y5CX8/p91ikv4/8opmankdqGAsZAoXPhWahUqzu1uP8Pd4+BB3Q54Zq4/3HyAq4zVYUHoVlP0Pgh+4f1FoeCJje26ZScUbCeXazSMtbDSKPPMfiYMrrCHx9BkBZi9HVaTgMY3UqkZXdaqOT4uT7VDr5jyyzOdo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@amazon.es; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1764594021237253.86637069121662; Mon, 1 Dec 2025 05:00:21 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vQ3NN-00007o-2j; Mon, 01 Dec 2025 07:51:33 -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 1vQ3NL-0008TZ-DE for qemu-devel@nongnu.org; Mon, 01 Dec 2025 07:51:31 -0500 Received: from fra-out-012.esa.eu-central-1.outbound.mail-perimeter.amazon.com ([52.57.120.243]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vQ3NJ-0003mj-NG for qemu-devel@nongnu.org; Mon, 01 Dec 2025 07:51:31 -0500 Received: from ip-10-6-11-83.eu-central-1.compute.internal (HELO smtpout.naws.eu-central-1.prod.farcaster.email.amazon.dev) ([10.6.11.83]) by internal-fra-out-012.esa.eu-central-1.outbound.mail-perimeter.amazon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Dec 2025 12:51:11 +0000 Received: from EX19MTAEUA001.ant.amazon.com [54.240.197.233:14458] by smtpin.naws.eu-central-1.prod.farcaster.email.amazon.dev [10.0.46.211:2525] with esmtp (Farcaster) id 468c4a21-0ed0-4b65-9332-218af19a7de7; Mon, 1 Dec 2025 12:51:11 +0000 (UTC) Received: from EX19D012EUA003.ant.amazon.com (10.252.50.98) by EX19MTAEUA001.ant.amazon.com (10.252.50.192) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.29; Mon, 1 Dec 2025 12:51:11 +0000 Received: from EX19D012EUA001.ant.amazon.com (10.252.50.122) by EX19D012EUA003.ant.amazon.com (10.252.50.98) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.29; Mon, 1 Dec 2025 12:51:10 +0000 Received: from EX19D012EUA001.ant.amazon.com ([fe80::b7ea:84f7:2c4b:2719]) by EX19D012EUA001.ant.amazon.com ([fe80::b7ea:84f7:2c4b:2719%3]) with mapi id 15.02.2562.029; Mon, 1 Dec 2025 12:51:10 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.es; i=@amazon.es; q=dns/txt; s=amazoncorp2; t=1764593489; x=1796129489; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=YiVSaceXokDxVjzqEE15bxJ9XS5trYPoQuYPiHb327Y=; b=GvogPZSwU08roz8hZ8dep2NjRboQJWfSoBL1GclkV6NG9qhluTAAhqSq ogstseLtoOdjica5yYNebTIpQP4vnNz0BxcVILipI7Y6YujV7FBVhMgGo 91+vvWizMnWVrDqtGz5rZc9QQFst0FoUQ/RpsC2Pgf7b+y7RbpBA/kRYC JQARoBsWTP4dyuO3tTjNTeB36y+ymdI6JjGQvw6qBj6OKLKPF/HFoJN4R cjntP9YlNogEVwhUhSp50lmk1vc7f+6sYvMs6913pp/mWfOy+Mi2l1VZs DPHVKdkbARbGmnzWe4lOiLm+VKGlpUwPdBQaIzEeVCN48PNfxYVJRqUrD w==; X-CSE-ConnectionGUID: TSrHaiA8R1aHhEPNuKGz6A== X-CSE-MsgGUID: Cuuq4Ue8T5qMFyslP0SUFw== X-IronPort-AV: E=Sophos;i="6.20,240,1758585600"; d="scan'208";a="5958501" X-Farcaster-Flow-ID: 468c4a21-0ed0-4b65-9332-218af19a7de7 From: "Chalios, Babis" To: "mst@redhat.com" , "imammedo@redhat.com" , "cohuck@redhat.com" , "pbonzini@redhat.com" CC: "qemu-devel@nongnu.org" , "dwmw2@infradead.org" , "Chalios, Babis" , "Graf (AWS), Alexander" , "mzxreary@0pointer.de" Subject: [RFC PATCH 3/4] hw/acpi: add VM generation counter field to VMClock Thread-Topic: [RFC PATCH 3/4] hw/acpi: add VM generation counter field to VMClock Thread-Index: AQHcYsErx2HlZkNTNkCuXI6RHIRzQg== Date: Mon, 1 Dec 2025 12:51:10 +0000 Message-ID: <20251201125023.18344-5-bchalios@amazon.es> References: <20251201125023.18344-1-bchalios@amazon.es> In-Reply-To: <20251201125023.18344-1-bchalios@amazon.es> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.13.247.161] Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=52.57.120.243; envelope-from=prvs=423f6341f=bchalios@amazon.es; helo=fra-out-012.esa.eu-central-1.outbound.mail-perimeter.amazon.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, T_SPF_PERMERROR=0.01, UNPARSEABLE_RELAY=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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @amazon.es) X-ZM-MESSAGEID: 1764594023149019201 Content-Type: text/plain; charset="utf-8" The final published version of the VMClock specification adds support for an extra vm_generation_counter field which allows hypervisors to differentiate between live migration and snapshot loading events. During the latter, apart from adjusting clocks, guests might want to take further actions such as resetting network devices, updating UUIDs, reseeding entropy pools, etc. VM generation counter itself is stored in the guest memory region and exposed to guest userspace, so we don't need to serialize it within vmstate_vmclock as well. Signed-off-by: Babis Chalios --- hw/acpi/vmclock.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/hw/acpi/vmclock.c b/hw/acpi/vmclock.c index c582c0c1f8..47cbba4496 100644 --- a/hw/acpi/vmclock.c +++ b/hw/acpi/vmclock.c @@ -20,6 +20,7 @@ #include "hw/qdev-properties.h" #include "hw/qdev-properties-system.h" #include "migration/vmstate.h" +#include "migration/misc.h" #include "system/reset.h" =20 #include "standard-headers/linux/vmclock-abi.h" @@ -64,6 +65,7 @@ void vmclock_build_acpi(VmclockState *vms, GArray *table_= data, static void vmclock_update_guest(VmclockState *vms) { uint64_t disruption_marker; + uint64_t vm_generation_counter; uint32_t seq_count; =20 if (!vms->clk) { @@ -79,6 +81,16 @@ static void vmclock_update_guest(VmclockState *vms) disruption_marker++; vms->clk->disruption_marker =3D cpu_to_le64(disruption_marker); =20 + /* + * We only increase the vm_generation_counter when loading from a snap= shot, + * not during live migration + */ + if (!migration_is_running()) { + vm_generation_counter =3D le64_to_cpu(vms->clk->vm_generation_coun= ter); + vm_generation_counter++; + vms->clk->vm_generation_counter =3D cpu_to_le64(vm_generation_coun= ter); + } + /* These barriers pair with read barriers in the guest */ smp_wmb(); vms->clk->seq_count =3D cpu_to_le32(seq_count + 1); @@ -144,6 +156,7 @@ static void vmclock_realize(DeviceState *dev, Error **e= rrp) vms->clk->magic =3D cpu_to_le32(VMCLOCK_MAGIC); vms->clk->size =3D cpu_to_le16(VMCLOCK_SIZE); vms->clk->version =3D cpu_to_le16(1); + vms->clk->flags =3D cpu_to_le64(VMCLOCK_FLAG_VM_GEN_COUNTER_PRESENT); =20 /* These are all zero and thus default, but be explicit */ vms->clk->clock_status =3D VMCLOCK_STATUS_UNKNOWN; --=20 2.34.1 From nobody Sun Feb 8 17:48:56 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@amazon.es; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=amazon.es ARC-Seal: i=1; a=rsa-sha256; t=1764593946; cv=none; d=zohomail.com; s=zohoarc; b=J09UJLC8vsEzCk6CcPzDtJswgjNkpj0bDJ8hmBrcUMm9zaHlA3ns52ob24fukVTwfYiaeQpqMRZfLtL0q/Bs379XXFRlMxAvVAj40bcepXS+FmenUXfEwu15poaCjFCqsVvxcsEX6gwzGvJ2LvfFzIy+vgyIVlecj2QThRNA0OQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1764593946; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Df5wsz2RSElfKfhsADXDWgX0ZlC5dNW9+WhnQcsb5BQ=; b=Cw4OykgXr04WacNnSTKJ6VrEjFMI9B8jqVjMF0rNFSulBWP18c7vNkOZeVJSwQXjsIG+3iRCTZUWNm7QgOCiNRrFZr/p+50NOIF/SHyviroh55OTxorayTKj+qeWv38r/GzoJOBK61cDqFsEmwwaTGfk+cFrM43R+0Z3nZ3aICU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=@amazon.es; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1764593946943131.6214657926738; Mon, 1 Dec 2025 04:59:06 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vQ3O5-0001UR-0C; Mon, 01 Dec 2025 07:52:17 -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 1vQ3Ne-0000qY-AS for qemu-devel@nongnu.org; Mon, 01 Dec 2025 07:51:54 -0500 Received: from fra-out-008.esa.eu-central-1.outbound.mail-perimeter.amazon.com ([35.158.23.94]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vQ3Nc-0003nJ-Gi for qemu-devel@nongnu.org; Mon, 01 Dec 2025 07:51:50 -0500 Received: from ip-10-6-6-97.eu-central-1.compute.internal (HELO smtpout.naws.eu-central-1.prod.farcaster.email.amazon.dev) ([10.6.6.97]) by internal-fra-out-008.esa.eu-central-1.outbound.mail-perimeter.amazon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Dec 2025 12:51:22 +0000 Received: from EX19MTAEUC001.ant.amazon.com [54.240.197.225:26348] by smtpin.naws.eu-central-1.prod.farcaster.email.amazon.dev [10.0.21.117:2525] with esmtp (Farcaster) id 85614544-48d7-4f29-9356-489bd89025a3; Mon, 1 Dec 2025 12:51:22 +0000 (UTC) Received: from EX19D012EUA002.ant.amazon.com (10.252.50.32) by EX19MTAEUC001.ant.amazon.com (10.252.51.193) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.29; Mon, 1 Dec 2025 12:51:22 +0000 Received: from EX19D012EUA001.ant.amazon.com (10.252.50.122) by EX19D012EUA002.ant.amazon.com (10.252.50.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.29; Mon, 1 Dec 2025 12:51:22 +0000 Received: from EX19D012EUA001.ant.amazon.com ([fe80::b7ea:84f7:2c4b:2719]) by EX19D012EUA001.ant.amazon.com ([fe80::b7ea:84f7:2c4b:2719%3]) with mapi id 15.02.2562.029; Mon, 1 Dec 2025 12:51:22 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.es; i=@amazon.es; q=dns/txt; s=amazoncorp2; t=1764593508; x=1796129508; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=Df5wsz2RSElfKfhsADXDWgX0ZlC5dNW9+WhnQcsb5BQ=; b=GB86SNmR8RQqwDPOKU1ul9RVlDRkHMspNG9X840V3wpbK89l2AfPAI1p NGEqqBPvU9inK/JdmcDJ2EQmttbDa9cq2/bI58Jq97jYjP1MHH94c5l6J e72uHmdKhfNwS3B163otBWz5l6gJjNNCib9PIQFVGr+ZDgwAReSW/G8DX XkJ0JLXqdG70OMdfEan4Iwk324uG58cXuniiDD0tNxz2PYlnlScqG145n p/SYVkmiOogGhatDvpePVUm2/mOUkrjy0v0z3BipfUuUS6FQlyRcBH6VV k0OGvcwwqH6UDCOiKMjb/Jz1vzlpF4rdjifqMX7ttlyERZum3aRQc2Lpc g==; X-CSE-ConnectionGUID: tpHgzo5KTFqzVkK9PSz/Cg== X-CSE-MsgGUID: X6iMoA3CTTaH8Uiuv1e6Ug== X-IronPort-AV: E=Sophos;i="6.20,240,1758585600"; d="scan'208";a="6056174" X-Farcaster-Flow-ID: 85614544-48d7-4f29-9356-489bd89025a3 From: "Chalios, Babis" To: "mst@redhat.com" , "imammedo@redhat.com" , "cohuck@redhat.com" , "pbonzini@redhat.com" CC: "qemu-devel@nongnu.org" , "dwmw2@infradead.org" , "Chalios, Babis" , "Graf (AWS), Alexander" , "mzxreary@0pointer.de" Subject: [RFC PATCH 4/4] hw/acpi: add ACPI notification to VMClock device Thread-Topic: [RFC PATCH 4/4] hw/acpi: add ACPI notification to VMClock device Thread-Index: AQHcYsExYoIYzSGQdke7VH92GRB+vg== Date: Mon, 1 Dec 2025 12:51:22 +0000 Message-ID: <20251201125023.18344-6-bchalios@amazon.es> References: <20251201125023.18344-1-bchalios@amazon.es> In-Reply-To: <20251201125023.18344-1-bchalios@amazon.es> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.13.247.161] Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=35.158.23.94; envelope-from=prvs=423f6341f=bchalios@amazon.es; helo=fra-out-008.esa.eu-central-1.outbound.mail-perimeter.amazon.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, T_SPF_PERMERROR=0.01, UNPARSEABLE_RELAY=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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @amazon.es) X-ZM-MESSAGEID: 1764593948744019200 Content-Type: text/plain; charset="utf-8" Extend VMClock device to send an ACPI notification every time the seqcount changes to a new even value. Use GPE E08 event, which now becomes part of the guest ABI. Signed-off-by: Babis Chalios --- hw/acpi/vmclock.c | 17 +++++++++++++++-- include/hw/acpi/acpi_dev_interface.h | 1 + 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/hw/acpi/vmclock.c b/hw/acpi/vmclock.c index 47cbba4496..f6f242cb66 100644 --- a/hw/acpi/vmclock.c +++ b/hw/acpi/vmclock.c @@ -28,7 +28,7 @@ void vmclock_build_acpi(VmclockState *vms, GArray *table_data, BIOSLinker *linker, const char *oem_id) { - Aml *ssdt, *dev, *scope, *crs; + Aml *ssdt, *dev, *scope, *crs, *method; AcpiTable table =3D { .sig =3D "SSDT", .rev =3D 1, .oem_id =3D oem_id, .oem_table_id =3D "VMCLOCK" }; =20 @@ -57,6 +57,11 @@ void vmclock_build_acpi(VmclockState *vms, GArray *table= _data, aml_append(scope, dev); aml_append(ssdt, scope); =20 + /* Attach an ACPI notify */ + method =3D aml_method("\\_GPE._E08", 0, AML_NOTSERIALIZED); + aml_append(method, aml_notify(aml_name("\\_SB.VCLK"), aml_int(0x80))); + aml_append(ssdt, method); + g_array_append_vals(table_data, ssdt->buf->data, ssdt->buf->len); acpi_table_end(linker, &table); free_aml_allocator(); @@ -67,6 +72,10 @@ static void vmclock_update_guest(VmclockState *vms) uint64_t disruption_marker; uint64_t vm_generation_counter; uint32_t seq_count; + Object *obj =3D object_resolve_path_type("", TYPE_ACPI_DEVICE_IF, NULL= ); + if (!obj) { + return; + } =20 if (!vms->clk) { return; @@ -94,6 +103,9 @@ static void vmclock_update_guest(VmclockState *vms) /* These barriers pair with read barriers in the guest */ smp_wmb(); vms->clk->seq_count =3D cpu_to_le32(seq_count + 1); + + /* Send _GPE.E08 event */ + acpi_send_event(DEVICE(obj), ACPI_VMCLOCK_CHANGE_STATUS); } =20 /* @@ -156,7 +168,8 @@ static void vmclock_realize(DeviceState *dev, Error **e= rrp) vms->clk->magic =3D cpu_to_le32(VMCLOCK_MAGIC); vms->clk->size =3D cpu_to_le16(VMCLOCK_SIZE); vms->clk->version =3D cpu_to_le16(1); - vms->clk->flags =3D cpu_to_le64(VMCLOCK_FLAG_VM_GEN_COUNTER_PRESENT); + vms->clk->flags =3D cpu_to_le64(VMCLOCK_FLAG_VM_GEN_COUNTER_PRESENT | + VMCLOCK_FLAG_NOTIFICATION_PRESENT); =20 /* These are all zero and thus default, but be explicit */ vms->clk->clock_status =3D VMCLOCK_STATUS_UNKNOWN; diff --git a/include/hw/acpi/acpi_dev_interface.h b/include/hw/acpi/acpi_de= v_interface.h index 8294f8f0cc..f51f6065f9 100644 --- a/include/hw/acpi/acpi_dev_interface.h +++ b/include/hw/acpi/acpi_dev_interface.h @@ -14,6 +14,7 @@ typedef enum { ACPI_VMGENID_CHANGE_STATUS =3D 32, ACPI_POWER_DOWN_STATUS =3D 64, ACPI_GENERIC_ERROR =3D 128, + ACPI_VMCLOCK_CHANGE_STATUS =3D 256, } AcpiEventStatusBits; =20 #define TYPE_ACPI_DEVICE_IF "acpi-device-interface" --=20 2.34.1