From nobody Sat Sep 26 20:50:58 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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; arc=pass (i=1 dmarc=pass fromdomain=nvidia.com); dmarc=pass(p=reject dis=none) header.from=nvidia.com ARC-Seal: i=2; a=rsa-sha256; t=1788545269; cv=pass; d=zohomail.com; s=zohoarc; b=dbFqc4gL4LXzbJmXoTuYDqsv2znbH+7rCpd+N0oA5PSinZ7z/K0lH3EQ8OGlPiCm1vTwqI8ouHvdGi0bVT7OTEa82CFBmhfTT2iqrXt+NqqeSfBfI2lOce86xiTr4T6A297Fc0g/Tm6lOaGdr4K5vjm7EoEqsGGdHiWj+yQ2ZOk= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788545269; 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=BuXrVsOtE5S145qrf1rklaLTKJ8S2HNWbO8hGKuuqkQ=; b=k9CQCIDL9yuJ96aYJdfLWsTSUNsw20BaNZLbwfHPS6mjI2wMsBE/wultHy6k1RYfG6QQCS2e6l6oUj40tHLzhn8IUweNiLADAonBVtp3DzBQq9ny6kxG1js4gNtD1nlQDARFQnTAxVJ4/udVxZpA030ZKEjc6l24dsAc50a6b+o= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; 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; arc=pass (i=1 dmarc=pass fromdomain=nvidia.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1788545269801444.0427055357019; Fri, 4 Sep 2026 11:07:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x2YJX-0003Yy-39; Fri, 04 Sep 2026 14:06:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x2YJV-0003YS-Hx; Fri, 04 Sep 2026 14:06:57 -0400 Received: from mail-northcentralusazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c105::7] helo=CH4PR04CU002.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x2YJU-0001jj-4j; Fri, 04 Sep 2026 14:06:57 -0400 Received: from BN9PR03CA0982.namprd03.prod.outlook.com (2603:10b6:408:109::27) by DS7PR12MB6191.namprd12.prod.outlook.com (2603:10b6:8:98::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.7; Fri, 4 Sep 2026 18:06:47 +0000 Received: from BL02EPF0002992D.namprd02.prod.outlook.com (2603:10b6:408:109:cafe::f) by BN9PR03CA0982.outlook.office365.com (2603:10b6:408:109::27) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.360.13 via Frontend Transport; Fri, 4 Sep 2026 18:06:47 +0000 Received: from mail.nvidia.com (216.228.117.161) by BL02EPF0002992D.mail.protection.outlook.com (10.167.249.58) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.8 via Frontend Transport; Fri, 4 Sep 2026 18:06:47 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Fri, 4 Sep 2026 11:06:22 -0700 Received: from NV-2Y5XW94.nvidia.com (10.126.230.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Fri, 4 Sep 2026 11:06:18 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=f8C1qwAjJ33xZS7QFLAcypMK4uPwZkyZRILjNsn86mNHm+TQQl8k7CvHcPDObET9RDgylliLh2PB3eDYhbOKJ/J7PFglwqIOKdNZ/B/k70paL0idnIbWuLCpeWQ7rO80+v85IWXY1e7s/KTkqAsdA/Insnu3ZORZkiLFKHQSLGU6xeCnI47L1x4cYwLYgkD9TInu1NwmQW6pfqaDhx2KMlYc4xOr0DdHE+Q0CTOZoMcO0VhJM4hOM0HJFhlbre74OURVmqd0py9uhsqrOPzcIiUmK8M7wJ3FwZpqFPk/Z+1fYymQBlAC63hjRdYS8BJukdS4Z98bWF9WdQahdjcHzA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=BuXrVsOtE5S145qrf1rklaLTKJ8S2HNWbO8hGKuuqkQ=; b=vmdnEcr7LlTbjjjPG8ixuPNxTi1oHAw9iU4Fru0nb6L1CUimLeOZ1mGxsNgGqyg96fwqUAXa4fVL+dcO27051ZMH8ZGMFKWU0DPUyvCFiqX798JxU4DwxZqPPWvaIcad2ubZQpBbHBmpDWKuDzarsHwBh3XVj4H5TB9/NES42Ao30t33xbGr1UyzO2lm/uSz5ZzTDwtP1BD4CfV2SM8l2CUBbNOnSCMUnXE4dlHZ+v8sBswDpdJXQUfJwA2QwosSWZCtLoTg15xW0koJKz0QsPkDXvLOSvBbc+LUyGGL2jeV5pBXTgpIyfpGoqSc9qOkZYjqrSuhj4+/jVFkbgf4eA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=nongnu.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BuXrVsOtE5S145qrf1rklaLTKJ8S2HNWbO8hGKuuqkQ=; b=Qc8on0tASTScIALKgwWB6w5eWRXUK6HS1PMEbWQPcYGWCb6f5QVRnygEogf/EWgIz36xhHefHwhUBvV0DYVoqpzlEQpUvgdgWfKBcFei6n/ZIJf3aVNUWwOBNtKLMUIsF9omDKW0SpZY6de4zdLTDZ4ho/CeUpOxykoYki/lMyMROf31rzpLBIya83/r4aqJUF1oWvA+IVqQaOsDiSX2M5lG50e9aLO872TjTAhd1VXPhr0rQnrXvm5JR0GRgqcLHyozOQGpgQRnNSyWB4RtBIQWA2h4uIwNxa6S74yEDFVURKFu+FHpBJi94AkzxGIqaspotIkZLcPffNNk0bJPMg== X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; 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=lists1p.gnu.org; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C From: Shameer Kolothum To: , CC: , , , , , , , , , , , Subject: [RFC PATCH 1/7] hw/arm/smmuv3-accel: Factor out the single vEVENT read Date: Fri, 4 Sep 2026 19:05:07 +0100 Message-ID: <20260904180513.248396-2-skolothumtho@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260904180513.248396-1-skolothumtho@nvidia.com> References: <20260904180513.248396-1-skolothumtho@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.126.230.37] X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF0002992D:EE_|DS7PR12MB6191:EE_ X-MS-Office365-Filtering-Correlation-Id: 77ea8880-b403-4e39-a219-08df0aaf4980 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|36860700016|376014|82310400026|23010399003|22082099003|56012099006|10067099003|18002099003|11063799006; X-Microsoft-Antispam-Message-Info: LyiEFOk7rRZ6oGiE5sW2xuKoTLd9Rc86bXyDkwehdufdxz5vkFnM7ib8M70owKR+wpakMACzYLA1jX7QW+8YfKYwi0L2BUWZqOuu3mV8sg000MTQ4IjSY+RMg+hJ/EhuJNcymHJ++L1LQp02NswPu9JDFBxxFCwl+gU+C0grECYJYV65NgkN+iBWSDYqZlInnkKNcONNtbGfeKssUpCAIqeWu+gJtybFOlqiEXeaIIUMKEKm1Qzsuil26+8gle+J48ehdtXnrqFC7dOcqHdxc4v8EnspjKfcT83EkpAUYJ8QSqRBqoD9I4Gw7kZEEtkwCugemGXdMDzKk3On4U6ra5Ow0KQJZDy0f2vJ6OE8GgA+rbyFAqBhh07K9Abh/bEPfo8fnuSjLLzk1C5/WjlhHOJNOQOinbxnCsPIWUA4Pzpjh3AOtOhLHTsweexdyqlmA6lw+v4zzAcKQnDXmYEMwntMxxt8LcaOBZ1xos1ejiZbR+NyNil/agE0d3Zg7/rt/MH1WCaWQTMxI2WAEdQI9HgAfdtyr0zueGZJdumrlEMhKSveFbLtWZfzYHQXStRMUFcwui/Miayf/tlfAItSA3ipPA1zCZEc36PAvTyFE5lCVQ9QeuyOWLbzC4CRxWnnzQRpcjmhb7utVuvAqFLUYMBG7nzEJLJuu5sGIdlbHV7l/QbNBbE9s/qiHfDOZxpvfYCsF2NidaMNI4Q/HAKf8w== X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230040)(1800799024)(36860700016)(376014)(82310400026)(23010399003)(22082099003)(56012099006)(10067099003)(18002099003)(11063799006); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: HdKPCfG6nX5P+n1icSPtE+nAMDeJUnQ/aJrjxJ4wGRZTCZ8Cvlez7UxHCMvM6yaqRQzLCkq13fMjOZkDQA/xnYh5nmDaSi/R9TfRaRiHsma2Da6o5fZygB0IpCr51lOmKxf1kT06NKnO5AHrBeOVFEHJnbKSt9d+RWow8IjG2pZzNYwzEA7aHDAkkUjK+TAL2IwazuHo2A/unPg/hJDnLrI4mvby5eq11sYvlr3+kaCC9a6vD/LaYjQL6hOlXG2NxHsd1S2re4f1uWS5MkEX4qy1CbXWzysnUFnAW2aHGhQH0agl5REdCJRQf9veQKdp17z3BkN2gM26W+tywkUrHvG7wFk6/4xpW+y/DWjAaoakzJfIvMiEbf9hEOZCv3COotDtPS3CuQDzvdleDYyWTd/cOkBHg5Av4djfgW/Dg2Ngv7aDtI/TD4yHDrLQw6Tg X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Sep 2026 18:06:47.6679 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 77ea8880-b403-4e39-a219-08df0aaf4980 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF0002992D.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6191 Received-SPF: permerror client-ip=2a01:111:f403:c105::7; envelope-from=skolothumtho@nvidia.com; helo=CH4PR04CU002.outbound.protection.outlook.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.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, FORGED_SPF_HELO=1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_NONE=0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development 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 @Nvidia.com) X-ZM-MESSAGEID: 1788545282812158501 Content-Type: text/plain; charset="utf-8" Move the body of smmuv3_accel_event_read() into a new helper, smmuv3_accel_event_read_one(), that reads one vEVENT and tells the caller whether it propagated an event, found the queue empty, or failed. Subsequent patch will make use of the helper to drain the queue. No functional change intended. Signed-off-by: Shameer Kolothum Reviewed-by: Eric Auger --- hw/arm/smmuv3-accel.c | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/hw/arm/smmuv3-accel.c b/hw/arm/smmuv3-accel.c index 91aca1aa14..fc503578f5 100644 --- a/hw/arm/smmuv3-accel.c +++ b/hw/arm/smmuv3-accel.c @@ -484,28 +484,38 @@ int smmuv3_accel_event_read_validate(IOMMUFDVeventq *= veventq, uint32_t type, return 0; } =20 -static void smmuv3_accel_event_read(void *opaque) +/* + * Read one pending vEVENT and propagate it to the guest event queue. + * Returns 0 if an event was propagated, 1 if the queue is drained, -1 on + * error with @errp set. + */ +static int smmuv3_accel_event_read_one(SMMUv3State *s, Error **errp) { - SMMUv3State *s =3D opaque; IOMMUFDVeventq *veventq =3D s->s_accel->veventq; struct { struct iommufd_vevent_header hdr; struct iommu_vevent_arm_smmuv3 vevent; } buf; - Error *local_err =3D NULL; int ret; =20 ret =3D smmuv3_accel_event_read_validate(veventq, IOMMU_VEVENTQ_TYPE_ARM_SMMUV3, = &buf, - sizeof(buf), &local_err); - if (ret < 0) { - warn_report_err_once(local_err); - return; - } - if (ret > 0) { - return; /* EAGAIN/EINTR */ + sizeof(buf), errp); + if (ret) { + return ret; } smmuv3_propagate_event(s, (Evt *)&buf.vevent); + return 0; +} + +static void smmuv3_accel_event_read(void *opaque) +{ + SMMUv3State *s =3D opaque; + Error *local_err =3D NULL; + + if (smmuv3_accel_event_read_one(s, &local_err) < 0) { + warn_report_err_once(local_err); + } } =20 static void smmuv3_accel_free_veventq(SMMUv3AccelState *accel) --=20 2.43.0 From nobody Sat Sep 26 20:50:58 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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; arc=pass (i=1 dmarc=pass fromdomain=nvidia.com); dmarc=pass(p=reject dis=none) header.from=nvidia.com ARC-Seal: i=2; a=rsa-sha256; t=1788545269; cv=pass; d=zohomail.com; s=zohoarc; b=JsZo32SEowjxiuX2XNlr/W51MlNEAFonVqqbYjXBTVPIVKCVSa0KXgWAXkQSHRz6rwNZAYIbnWSe1zLmTncn8KEPHekCJ+Ri5VRddxO+pXaZ0bFDYbml4XmEAx1nPnT4YLBLX1TPGFoD6wA5ni9ONdhPBIYmVr+fmapHGpd1JiM= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788545269; 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=Mr7yQ5pbi+LKWU/mdCej+/bvET4Be22onvrhzasP4xE=; b=bYWRcWz8dnUvM1JPfz9B66h2k9waKquXqWpa4xGUp2kkiKysN7fyuG9G1An2WHP46eQi87SffBRU/cYy02dJX23GhVy2vgm9GgVA5GfQIBYsbcxi17jUPeDy4EzykLR3X2kLBEkHSHGTeepMlVwSDsRZLOwifEyNo9/wGh7yZwk= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; 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; arc=pass (i=1 dmarc=pass fromdomain=nvidia.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1788545269728177.808243880688; Fri, 4 Sep 2026 11:07:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x2YJi-0003b4-M0; Fri, 04 Sep 2026 14:07:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x2YJg-0003a2-Eq; Fri, 04 Sep 2026 14:07:08 -0400 Received: from mail-southcentralusazlp170130001.outbound.protection.outlook.com ([2a01:111:f403:c10c::1] helo=SA9PR02CU001.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x2YJe-0001kI-U2; Fri, 04 Sep 2026 14:07:08 -0400 Received: from CH2PR04CA0015.namprd04.prod.outlook.com (2603:10b6:610:52::25) by BL1PR12MB5779.namprd12.prod.outlook.com (2603:10b6:208:392::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.7; Fri, 4 Sep 2026 18:06:56 +0000 Received: from BN5PEPF0004698C.namprd02.prod.outlook.com (2603:10b6:610:52:cafe::4b) by CH2PR04CA0015.outlook.office365.com (2603:10b6:610:52::25) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.382.13 via Frontend Transport; Fri, 4 Sep 2026 18:06:55 +0000 Received: from mail.nvidia.com (216.228.117.160) by BN5PEPF0004698C.mail.protection.outlook.com (10.167.245.41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.8 via Frontend Transport; Fri, 4 Sep 2026 18:06:55 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Fri, 4 Sep 2026 11:06:27 -0700 Received: from NV-2Y5XW94.nvidia.com (10.126.230.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Fri, 4 Sep 2026 11:06:24 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=woDmjbDye/URxP4sAJoj29QK3F6fJeSXUblzwo10A3cPVJU8lFAi/QP166aeFyvMmiElVRQf5ZIr3FbpO1W09LUnYbh97v9akCqjUxac7E3lP7UcJjeNIvIgQJsAqwYbNnlYMEiB6G4E7I+eCixO+sIGglUqAUVUk99hvNSGY0P3eAH2TYJLBWr3DaFnUu4OZcSFHjS8ihT/vKr/VCCh//AzZxC6ojpGuQmL0qep2jmB1l9ROL98sX8Wd9rUs33yKu3SPnwHmaBMQsYumuYyzC1pEwXxEErPk2Ol8Rj8xSMctyXY/EOUtv8TlbWpnp39l9Wp1jt1h807Xi0FBb4fSw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Mr7yQ5pbi+LKWU/mdCej+/bvET4Be22onvrhzasP4xE=; b=NQJ7t7f0ThaIVQqijFlhbFy3B9PCL/lp2ABPD9u31YlPsOnY2yVPmisMn/OKWBPzYX8qKLHbRx9c7bWRSwT0fuhLq7ThnUYm6B8KjoZ0fFSTxLkfkGFGdLo1tvh1DSEmu27tMWFvPmdaa0MDTkjoTBNeQ3vw8kZpvhyF8z/aoCAhxUoWin59n3rIESzLf/Wx1bJuq1qNU2ZZxy/Nldwl/KKNk/7a+DOCJnBVXTjgQu+ffr0MoOK7u/BAR2yQXkzNQ70cZM6zVwfxnB93MYkKd/AKRn5/pv3vj4Ldti79g3kI1cxIiXZSXfipjTqt6eup0o4rWUQj/NbQ9IRK1d0Eog== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=nongnu.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Mr7yQ5pbi+LKWU/mdCej+/bvET4Be22onvrhzasP4xE=; b=C1+a7k9/nx54xiL+12xS7uMSCfQXnRa1u61njy3UNfuI2s21HJxZnL8XLBhbxIGjbVydowc7v4a4pSP+6mdgp/bTn+SDBKwXVA6mey0EkK0JDLlH+PX5S7wnoSpVmyHArHZhLvsqH6czX/kpnQs4KTiknJ1n0WXPwm3tpRitRrI57XG/J6ogVK/JEtWkDQeOKKQcEg+wBIhnxMreLB9kN2hUDCFDPVizImgMvjtN2q4I6ht728oT6GAwOp4sStzfApERiCESf6ERHaHv7trafnVO5KgxzY1cOrs3Ri3aSaPU2vrmGRAVjIASnKRucP96hqH0jZn9KNlWBM2/HbTrmg== X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; 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=lists1p.gnu.org; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C From: Shameer Kolothum To: , CC: , , , , , , , , , , , Subject: [RFC PATCH 2/7] hw/arm/smmuv3-accel: Drain the vEVENTQ when the VM stops Date: Fri, 4 Sep 2026 19:05:08 +0100 Message-ID: <20260904180513.248396-3-skolothumtho@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260904180513.248396-1-skolothumtho@nvidia.com> References: <20260904180513.248396-1-skolothumtho@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.126.230.37] X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN5PEPF0004698C:EE_|BL1PR12MB5779:EE_ X-MS-Office365-Filtering-Correlation-Id: 6ff6c5da-8c5c-47e0-0039-08df0aaf4e03 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|82310400026|23010399003|1800799024|36860700016|376014|10067099003|11063799006|18002099003|22082099003|56012099006; X-Microsoft-Antispam-Message-Info: 4xwJklEjLqkmewYuDWpaT9AQqidXSV6U9+TM6BhAUfSEdGiUdJ0LQPK34dkylHl3dIghpGlsZP8ioBn0nSSyhpVfukdvCErEGgrKiiH/jpQd5FDggFd6fpvh2VZjAADf14HFr18r2MkzzDJGi5ItMFYK57jYLusFpkpM/MIEVt7T/RDhmm69b2rrmdxm/osz5YRT7rpGoDjeii4WBXyir8M3BEHMVcFuRzpCwi6zz1A/nNSI0CyDw/0a/qIm3nQWfWFKakc6V48H5Sa69Bro2CsYfsgPVeVlDgnctBoLbXKI65wAa4lMk4XGUv4KLjHp6Bj9fPNXXUjsPcKr/6MeGS+uJjvky6bo1ciS8+1MKCSZM6fhjtESjcwles/8P80D8IYA0swbntNS59nlJhrIttdf68Lu+P0E8ZoqliuU/40fgcMAU4Udd4aHQ+fBZAWr27v2lczACk+yv7926iuQonD1MteDAk393iPW16Ru6VcIkAEGt+IcXS9c/pX8fmkGJv7XS7XXtR7dtzqCmW+uW4Gv11bC9e2oBB24lvVIA4NKFSRurE90WdXHnTLjc2bgcM4TkNKEJIXMAVjpmpz8QNLROXmbFa5ds77z6hUsg6EKzwboGLzYUcHWdYJVa/BSALZ8MbY0aQlL91I0xmrXy6wyH2/WGQBMHRz65wBSagtUEiKfczKjMgi/DDnYpPQeHT7obg+xNW2e5R5YvW4IGg== X-Forefront-Antispam-Report: CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE; SFS:(13230040)(82310400026)(23010399003)(1800799024)(36860700016)(376014)(10067099003)(11063799006)(18002099003)(22082099003)(56012099006); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 6IbQbJaW49ceIbVPcCn2HzhmddWnT9SnILGjoP3ZivXn0cM3KRi3XqECPa0ZP6H1FzbEqphHh4/50xK3vTpf1J0Ki9QwPMDmkbyqpShi9eqU5eej9YQCDGCg/FA2UzkGkM+5I2Ve9rUKUn/rfc7dkOVdwz1095SeH9GXbXVYBRdIC6bBLc1edWHUO7bv7Rg6lFwo79vlk5sDmltYP8Xwf1yq1wdCV1xtIaN+C5GDBytio97ax6nSdclMlEf541Xn6oZg3UcoSaLH82wEoFS+G/OoBr7IXvYDLbMz4xr5Ec4e1W+mPesUCh8sDiStv8bYhrzusJYv3TREX2ixDySGskRoSft9Ibuy4npoyx1dzY4mIBqQANlnbxwU7t9yIwPSSaXVuJRmby5iv0MeDlHsczAVfv9Q6RGiII2H9EZNq+rQqzEcMkV1JThyDPsj8fHR X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Sep 2026 18:06:55.2464 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6ff6c5da-8c5c-47e0-0039-08df0aaf4e03 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN5PEPF0004698C.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5779 Received-SPF: permerror client-ip=2a01:111:f403:c10c::1; envelope-from=skolothumtho@nvidia.com; helo=SA9PR02CU001.outbound.protection.outlook.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.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, FORGED_SPF_HELO=1, SPF_HELO_PASS=-0.001, SPF_NONE=0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development 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 @Nvidia.com) X-ZM-MESSAGEID: 1788545270894158500 Content-Type: text/plain; charset="utf-8" Fault events sit in the kernel vEVENTQ until smmuv3_accel_event_read() moves them into the emulated event queue. The vEVENTQ is an iommufd object that is not migrated, so anything left in it when the source stops is lost. Drain it from a VM state change handler, which runs before any state is saved. Propagating an event writes the record into guest RAM and raises the event queue interrupt, and both guest RAM and the GIC are saved before the SMMUv3 device state. A pre_save hook would run after both, hence using qemu_add_vm_change_state_handler(). Signed-off-by: Shameer Kolothum Reviewed-by: Eric Auger --- hw/arm/smmuv3-accel.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/hw/arm/smmuv3-accel.c b/hw/arm/smmuv3-accel.c index fc503578f5..73509dbd8d 100644 --- a/hw/arm/smmuv3-accel.c +++ b/hw/arm/smmuv3-accel.c @@ -18,6 +18,7 @@ =20 #include "smmuv3-internal.h" #include "smmuv3-accel.h" +#include "system/runstate.h" #include "system/system.h" #include "tegra241-cmdqv.h" =20 @@ -518,6 +519,37 @@ static void smmuv3_accel_event_read(void *opaque) } } =20 +/* + * Drain the kernel vEVENTQ into the guest event queue whenever the VM sto= ps, + * so that a migration does not strand events in an object it does not car= ry. + * Propagating an event writes the record into guest RAM and raises the ev= ent + * queue interrupt, both of which are saved before the SMMUv3 device state= , so + * a pre_save hook would be too late for either. + * + * VFIO registers at a higher priority and the stop path runs in descending + * priority, so the devices are already in STOP by the time this runs. + */ +static void smmuv3_accel_vm_state_change(void *opaque, bool running, + RunState state) +{ + SMMUv3State *s =3D opaque; + SMMUv3AccelState *accel =3D s->s_accel; + Error *local_err =3D NULL; + int ret; + + if (running || !accel || !accel->veventq) { + return; + } + + do { + ret =3D smmuv3_accel_event_read_one(s, &local_err); + } while (!ret); + + if (ret < 0) { + warn_report_err(local_err); + } +} + static void smmuv3_accel_free_veventq(SMMUv3AccelState *accel) { IOMMUFDVeventq *veventq =3D accel->veventq; @@ -1146,5 +1178,8 @@ bool smmuv3_accel_init(SMMUv3State *s, Error **errp) qemu_add_machine_init_done_notifier(&s->machine_done); } =20 + /* For migartion of vEVENTQ pending events */ + qemu_add_vm_change_state_handler(smmuv3_accel_vm_state_change, s); + return true; } --=20 2.43.0 From nobody Sat Sep 26 20:50:58 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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; arc=pass (i=1 dmarc=pass fromdomain=nvidia.com); dmarc=pass(p=reject dis=none) header.from=nvidia.com ARC-Seal: i=2; a=rsa-sha256; t=1788545285; cv=pass; d=zohomail.com; s=zohoarc; b=TKVeJGRRat+txq4kEWhiD5Iw2K5TJSHTYe8cK3xf/tKJsefyXZXBoohZMi8rfTftsyXVHe1vTD17xv7M13hX62nBFBNYO4aPXeo9CI3coonmLi+Puy/ZnLoELRAnI3NiqLHKMGAfDb4huiCG1K+cggw3xBJAALeFaNrjk4hSXlQ= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788545285; 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=MuDdpObHdowphFzMNilYnyRc0L0AC0HlOZ4COdHKSdM=; b=UG8VR1SkUDykMSG0d8ERZVOzbU3PohMiz3TtuB7DgrUBMWmu7OpItwNGKyAwI9ztWOr9kLotA7+aZ2DJomq+rTlm7cOBjI+4F4zHcqiVmMXv8pvQd2oBUeE0slZA479jf3dV8Mhc0Q5iNWhs5DGfqwYLDV99x0aIJnhkQK/tHR0= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; 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; arc=pass (i=1 dmarc=pass fromdomain=nvidia.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1788545285254957.2931128635929; Fri, 4 Sep 2026 11:08:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x2YJj-0003b7-4a; Fri, 04 Sep 2026 14:07:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x2YJh-0003aF-Ju; Fri, 04 Sep 2026 14:07:09 -0400 Received: from mail-westus2azlp170100005.outbound.protection.outlook.com ([2a01:111:f403:c005::5] helo=CO1PR03CU002.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x2YJf-0001kU-L8; Fri, 04 Sep 2026 14:07:09 -0400 Received: from CH2PR20CA0030.namprd20.prod.outlook.com (2603:10b6:610:58::40) by CHBPR12MB463627.namprd12.prod.outlook.com (2603:10b6:610:36c::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.10; Fri, 4 Sep 2026 18:06:59 +0000 Received: from BN5PEPF00046988.namprd02.prod.outlook.com (2603:10b6:610:58:cafe::28) by CH2PR20CA0030.outlook.office365.com (2603:10b6:610:58::40) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.382.13 via Frontend Transport; Fri, 4 Sep 2026 18:06:59 +0000 Received: from mail.nvidia.com (216.228.117.160) by BN5PEPF00046988.mail.protection.outlook.com (10.167.245.37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.8 via Frontend Transport; Fri, 4 Sep 2026 18:06:58 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Fri, 4 Sep 2026 11:06:31 -0700 Received: from NV-2Y5XW94.nvidia.com (10.126.230.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Fri, 4 Sep 2026 11:06:28 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZLLGLiR9h4Z9mv7pPUpG5Uy9hL+mfwLQ210WELSGG2i7n84jUZ3bv4dDY2BcBq1F9FIttcgXHjlcIKRNUSRZt4LoTlWrXicTf0iT6k9hV+0Ng7Nzp7pcoDgRWffqwOUtAYOXdyTy7eOgDv5vKCQ2H0aUwk2Lvasf9GjEGTZzaGqEyKq3yAWdam8F1g+BfPVbrWt2t4PeA/ADszRzQdhIDuVhwiE5sHXXqHF8AvLfe1GE5GxapAQTQXFi8Kwur9nZs4Z8hq8WfTf9uANki61okm53+A1/TCK9ga64Aqtx1vkapIWKFD8YHdA0SERxc6iL/2LCL8tqPuER8fq/bBeFWg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=MuDdpObHdowphFzMNilYnyRc0L0AC0HlOZ4COdHKSdM=; b=OE6dwyNPRgzRLGyVy/oUQpxKrNtGraraOTyqdTMa4P9ORwwv2AJDPvKSS6VRnblC9wz4qR52mI2UcquQorh0N0gTjRhyukUys8w6Wrz2swpgIND6vtZeZ9nx9RKEN7+rAK/d0T6XgSAd9i6EYhKnthhBWIFEVLvT+CLFvHnaAO7rASisCFbd+r6k9N3DOR7x0LLoiLm2nFdMjPKO4YEZ0xNg+ioVEH0pdbwKGL89KMMITRu3fBlXTCJhkorFJoQrUcXVV7vQT0LOa3Ixf2qrQ++KxlNS0Hntf2o7t7fnbBw7Eg9XOL/ETlg8bDXrh8n+qlNTlwPeVgqpf0EMhunaIA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=nongnu.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MuDdpObHdowphFzMNilYnyRc0L0AC0HlOZ4COdHKSdM=; b=EWNrtjFsSEqCbZdi2GMN94Y5lf4MlyXwuM3R/2qI420n/gO/MzBfam2Hn4GyTj0H6hcHAaSokeLaMzD6KgB/eaaHYJE0AtkUAFEtNPMaxbm5SuthPaT3WXrldiBR34usfueUrOr1dll97FT3Rw6p6jHvhTOwMPd/J7if6KDqhX+z+Mi1JsQ1BKMnQd3aMEulktYp6BmXpn6hNUguIop4LWYDdsfpFzjB6lxDOww/r3NXu5EPBz+HQcCOB8p7Dyg89QqVa7Lyk8JL4Cq9/MtyFuYnPr44sUSFqLdw0cYu+q13+Jyh97iw4DdyCUhnAUvxVF7iChLCr6ditsOGOm8LpQ== X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; 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=lists1p.gnu.org; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C From: Shameer Kolothum To: , CC: , , , , , , , , , , , Subject: [RFC PATCH 3/7] hw/arm/smmuv3: Migrate the accelerator feature set Date: Fri, 4 Sep 2026 19:05:09 +0100 Message-ID: <20260904180513.248396-4-skolothumtho@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260904180513.248396-1-skolothumtho@nvidia.com> References: <20260904180513.248396-1-skolothumtho@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.126.230.37] X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN5PEPF00046988:EE_|CHBPR12MB463627:EE_ X-MS-Office365-Filtering-Correlation-Id: 69aa60d6-9a72-4f42-ae41-08df0aaf500d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|376014|23010399003|36860700016|82310400026|56012099006|11063799006|10067099003|3023799007|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: l9OVcm9ncXBphKH3voeHxKIlsTwXBq/mRPdxknJsKWaTuSdVGhGJwSxEJ8cKqwu4SJTnauCO26s3VARJjZy1HbGHvGAZWw0cW2xXC0jdLbaePs0IdfJD5L0Ld0AazEIqN1pfn4FVu6mVgnChvQVY/YSjNTQpaVQ2S9Gl4EWuVSsXlTrAI32rCY2mgDFpRzb7xLqOUYglqMDOMBDFwHzI0/JCUl7SE12QELA7ZuXcY3juOYZZ8qKOqr+4x0weUdFyGoZ+DYqWE2YMGUXOZ2CqHnHRgz/cjMyX9ravvC7y21/+pU77COVIz3jTyb7KJ/hPgMvcoxR27SEh5UwUynhW/wokvyWGgjZ37hw0J5PZMTJfAypXLSGLoq5U5qCjkpBPbkMZIrR1CBxnYz+yWaM3Oeqk127p9w56jLAZN5g6pVFApnnIGcXbvvnG4fmt1qEbTq2t0xYVmopnFaxjSJR48UVfI8r8pIbYLJS9qmwukvBw22LhKVr4sg20OWbe8ezViYFJcbmWealLI6zkmCSYGZh9K266eXxqU9cYFXJGVbIYKCaH380Iwy80B8KnghJG996PeNylC5AUvi2UKtY9NV/XLCRMxOv9AK6faWwWRxK7N/W6+ziKxrvIQmiyjLl5XqffnaFa2V1aocNs5CSG8MOTPNA4zV16vAKRRRS/P4jrmysFbk+R5Xr2zWBlNMBV7zky7b75iq5LscHyvK9N8Q== X-Forefront-Antispam-Report: CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE; SFS:(13230040)(1800799024)(376014)(23010399003)(36860700016)(82310400026)(56012099006)(11063799006)(10067099003)(3023799007)(18002099003)(22082099003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: VuDH9bUqfqR4/6PFxY/3LftFb4Lu5m2SF2S2q52ELCNV3vbQSExRi0NBA73crNiHZolkkGQZDGtAzVloGcnIzsHE6QH9fHMghXrQnKdQw4mQJ9hmwxTJqjuIL1VbUdL3bncneTPj/kGWlSfeBkkSN4iCjOjWfMYojkPZ69NYnTe0cg1VOTzQmegCbO0gzCjIzogaFONe9Z3bfUAa+HStJkQQ0J431lPuhl2yESvoatbOw9S+2lYm7VxPTuL4a5w+NTN26cfJvqI5cjgXhwI4IvbKuDZI2ZVZVWbGsY1fX4erLxVcK16/4f15yS3SlpCMon3r14EMYeQQrDofEEum1Eu3/B8b/GH1zVdxQpaiEvpE6+ZhjoVTu1PRjnY9hv8sVCKXdRnWPQNaIiLI+KRfY1e0byM91zk4pesgrgup0KynB3leF1f/OC8ugu+jbesB X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Sep 2026 18:06:58.6537 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 69aa60d6-9a72-4f42-ae41-08df0aaf500d X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN5PEPF00046988.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CHBPR12MB463627 Received-SPF: permerror client-ip=2a01:111:f403:c005::5; envelope-from=skolothumtho@nvidia.com; helo=CO1PR03CU002.outbound.protection.outlook.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.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, FORGED_SPF_HELO=1, SPF_HELO_PASS=-0.001, SPF_NONE=0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development 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 @Nvidia.com) X-ZM-MESSAGEID: 1788545287006158500 Content-Type: text/plain; charset="utf-8" Add a subsection carrying idr[0] to idr[5], needed when accel=3Don. pre_load saves the locally resolved values and post_load fails the migration if the incoming ones differ. Accepting the source values would leave QEMU advertising features the destination host cannot provide. Signed-off-by: Shameer Kolothum --- hw/arm/smmuv3-accel.h | 1 + include/hw/arm/smmuv3.h | 7 ++++- hw/arm/smmuv3-accel-stubs.c | 12 ++++++++ hw/arm/smmuv3-accel.c | 58 +++++++++++++++++++++++++++++++++++++ hw/arm/smmuv3.c | 1 + 5 files changed, 78 insertions(+), 1 deletion(-) diff --git a/hw/arm/smmuv3-accel.h b/hw/arm/smmuv3-accel.h index ea11d513cc..a91d188d61 100644 --- a/hw/arm/smmuv3-accel.h +++ b/hw/arm/smmuv3-accel.h @@ -99,6 +99,7 @@ void smmuv3_accel_idr_override(SMMUv3State *s); bool smmuv3_accel_alloc_veventq(SMMUv3State *s, Error **errp); int smmuv3_accel_event_read_validate(IOMMUFDVeventq *veventq, uint32_t typ= e, void *buf, size_t size, Error **errp); +extern const VMStateDescription vmstate_smmuv3_accel; void smmuv3_accel_reset(SMMUv3State *s); SMMUv3AccelCmdqvType smmuv3_accel_cmdqv_type(Object *obj); =20 diff --git a/include/hw/arm/smmuv3.h b/include/hw/arm/smmuv3.h index d39fe8850b..9e0836b81a 100644 --- a/include/hw/arm/smmuv3.h +++ b/include/hw/arm/smmuv3.h @@ -26,6 +26,9 @@ =20 #define TYPE_SMMUV3_IOMMU_MEMORY_REGION "smmuv3-iommu-memory-region" =20 +/* Number of IDR registers, IDR0 to IDR5 */ +#define SMMU_NUM_IDR 6 + typedef struct SMMUQueue { uint64_t base; /* base register */ uint32_t prod; @@ -41,7 +44,9 @@ struct SMMUv3State { uint8_t sid_size; uint8_t sid_split; =20 - uint32_t idr[6]; + uint32_t idr[SMMU_NUM_IDR]; + /* Locally resolved IDRs, saved by pre_load for post_load to check */ + uint32_t local_idr[SMMU_NUM_IDR]; uint32_t iidr; uint32_t aidr; uint32_t cr[3]; diff --git a/hw/arm/smmuv3-accel-stubs.c b/hw/arm/smmuv3-accel-stubs.c index b8dd7e7b89..b57b5c01e7 100644 --- a/hw/arm/smmuv3-accel-stubs.c +++ b/hw/arm/smmuv3-accel-stubs.c @@ -8,6 +8,7 @@ #include "qapi/error.h" #include "hw/arm/smmuv3.h" #include "hw/arm/smmuv3-accel.h" +#include "migration/vmstate.h" =20 bool smmuv3_accel_init(SMMUv3State *s, Error **errp) { @@ -53,6 +54,17 @@ int smmuv3_accel_event_read_validate(IOMMUFDVeventq *vev= entq, uint32_t type, return 0; } =20 +static bool smmuv3_accel_vmstate_needed(void *opaque) +{ + return false; +} + +const VMStateDescription vmstate_smmuv3_accel =3D { + .name =3D "smmuv3/accel", + .version_id =3D 1, + .minimum_version_id =3D 1, + .needed =3D smmuv3_accel_vmstate_needed, +}; =20 void smmuv3_accel_reset(SMMUv3State *s) { diff --git a/hw/arm/smmuv3-accel.c b/hw/arm/smmuv3-accel.c index 73509dbd8d..287ea91fbe 100644 --- a/hw/arm/smmuv3-accel.c +++ b/hw/arm/smmuv3-accel.c @@ -18,6 +18,7 @@ =20 #include "smmuv3-internal.h" #include "smmuv3-accel.h" +#include "migration/vmstate.h" #include "system/runstate.h" #include "system/system.h" #include "tegra241-cmdqv.h" @@ -1096,6 +1097,63 @@ bool smmuv3_accel_attach_gbpa_hwpt(SMMUv3State *s, E= rror **errp) return all_ok; } =20 +static bool smmuv3_accel_vmstate_pre_load(void *opaque, Error **errp) +{ + SMMUv3State *s =3D opaque; + + if (!s->s_accel) { + error_setg(errp, "Incoming stream carries SMMUv3 accelerator state= " + "but this arm-smmuv3 has accel=3Doff"); + return false; + } + + /* Save the locally resolved IDRs before the stream overwrites them. */ + memcpy(s->local_idr, s->idr, sizeof(s->idr)); + return true; +} + +static bool smmuv3_accel_vmstate_post_load(void *opaque, int version_id, + Error **errp) +{ + ERRP_GUARD(); + SMMUv3State *s =3D opaque; + int i; + + for (i =3D 0; i < ARRAY_SIZE(s->idr); i++) { + if (s->idr[i] =3D=3D s->local_idr[i]) { + continue; + } + error_setg(errp, "SMMUv3 IDR%d mismatch: source 0x%08x, " + "destination 0x%08x", i, s->idr[i], + s->local_idr[i]); + error_append_hint(errp, "ril, ats, oas and ssidsize must resolve t= o " + "the same values on source and destination.\n"); + return false; + } + + return true; +} + +static bool smmuv3_accel_vmstate_needed(void *opaque) +{ + SMMUv3State *s =3D opaque; + + return s->accel; +} + +const VMStateDescription vmstate_smmuv3_accel =3D { + .name =3D "smmuv3/accel", + .version_id =3D 1, + .minimum_version_id =3D 1, + .needed =3D smmuv3_accel_vmstate_needed, + .pre_load_errp =3D smmuv3_accel_vmstate_pre_load, + .post_load_errp =3D smmuv3_accel_vmstate_post_load, + .fields =3D (const VMStateField[]) { + VMSTATE_UINT32_ARRAY(idr, SMMUv3State, SMMU_NUM_IDR), + VMSTATE_END_OF_LIST() + } +}; + void smmuv3_accel_reset(SMMUv3State *s) { SMMUv3AccelState *accel =3D s->s_accel; diff --git a/hw/arm/smmuv3.c b/hw/arm/smmuv3.c index ed19536a4d..66d95e1076 100644 --- a/hw/arm/smmuv3.c +++ b/hw/arm/smmuv3.c @@ -2137,6 +2137,7 @@ static const VMStateDescription vmstate_smmuv3 =3D { }, .subsections =3D (const VMStateDescription * const []) { &vmstate_gbpa, + &vmstate_smmuv3_accel, NULL } }; --=20 2.43.0 From nobody Sat Sep 26 20:50:58 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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; arc=pass (i=1 dmarc=pass fromdomain=nvidia.com); dmarc=pass(p=reject dis=none) header.from=nvidia.com ARC-Seal: i=2; a=rsa-sha256; t=1788545271; cv=pass; d=zohomail.com; s=zohoarc; b=Lz/veTT0cK990PO1FC3nZl007U6GlhJSrB3qopf0qQPWsaIcCKkYO+5qj7z6JmG4TUAZLzD8GiExpEPhE2tTkT/Fxjihza1nHQD49X2/KqceRFUkzqkJgI501PfKqLxFenfxOi7BpIoC+97dzDqOkDQMlWA+RotwWYupxbxPgxI= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788545271; 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=8gz5uRBtFK/IDu4vP2urIKp0swgGuYfjZT/egDXY/Pk=; b=EItpP1Q9ouye8743a+famuqjTlZrvMJsHQGk7dGHoBJmuzeHUphoUtv2/PmSAfTNvpeLLYPnQVMOCf7Zi8dcwUEhoKqfminDIMfCTM7u3EkTmbdqntsj+0oM0AvXiM6y4f2zcdPRtClQhbjc31/e/EBj//CZ7+cMVTbQKx6Qhrg= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; 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; arc=pass (i=1 dmarc=pass fromdomain=nvidia.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1788545271123406.24954362579854; Fri, 4 Sep 2026 11:07:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x2YJm-0003eN-Lz; Fri, 04 Sep 2026 14:07:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x2YJj-0003bc-K4; Fri, 04 Sep 2026 14:07:11 -0400 Received: from mail-westusazlp170120002.outbound.protection.outlook.com ([2a01:111:f403:c001::2] helo=SJ2PR03CU001.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x2YJh-0001lE-Sq; Fri, 04 Sep 2026 14:07:11 -0400 Received: from CH5PR04CA0011.namprd04.prod.outlook.com (2603:10b6:610:1f4::27) by DM6PR12MB4386.namprd12.prod.outlook.com (2603:10b6:5:28f::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.10; Fri, 4 Sep 2026 18:07:01 +0000 Received: from BL02EPF00029927.namprd02.prod.outlook.com (2603:10b6:610:1f4:cafe::4c) by CH5PR04CA0011.outlook.office365.com (2603:10b6:610:1f4::27) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.382.13 via Frontend Transport; Fri, 4 Sep 2026 18:07:01 +0000 Received: from mail.nvidia.com (216.228.117.161) by BL02EPF00029927.mail.protection.outlook.com (10.167.249.52) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.8 via Frontend Transport; Fri, 4 Sep 2026 18:07:00 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Fri, 4 Sep 2026 11:06:36 -0700 Received: from NV-2Y5XW94.nvidia.com (10.126.230.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Fri, 4 Sep 2026 11:06:33 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hElyv3InDUEG3jz/iLPcNk/iTcGNGyh8EWnlIfPJyz9R79HpA4bOUhxism4vKtIDXU8FDmkn5D9FePQHRCdU2SLGFOFSjf+XlDCISUWhp1ETx3hqsr6TJ5IuL1WECyU8XtAHrh0Dw4ZmTu+zqlgr35BQmeP+DdkUACh5LISoY2ZsAIobe+Yxen+xSy7/MwVXPHJEb3upt5lUF3rlyDd7nmkJ9adrILByuZHGKIFJO7zyM8c5M3MaT78CGIcQ5aYl1tl5k3hFzjbudIXbgKVwXFWSuY/3q5NiGa2+oyk+d07407iKXYl4QK6CehjzRwDXhhPmJhTIPSLD58a9XRMf2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=8gz5uRBtFK/IDu4vP2urIKp0swgGuYfjZT/egDXY/Pk=; b=NZjsI+WFVJzca7xTnnaYHtyuO8LzdAZOa2TWJgwMrl2xQDmhO7ugaNROdYdOA5lMPe5+jqAERcwthnL99ccBVZRD/HKEyhxTKzTI3nbUk3KEejHyX/SYHGcfwo95aBk9p/2W8V6ayOyiaEzMmu1h4zyY9ed/OP+nmchuYKvT+7cg9AAbbR1MW1bWOnlqmrArxzg9yr08T2FuRDqVlkve1yprKy42hgXNiqx/Lpc18DCjYYknaIytLhuYatbQ4L7JZSzYcZHNFTdy8lJ2EgQL0Uutb8qRmBbSvbKCRfENDms5wRYo1RsmBHRdGGPmtB3F1zPcJLXdoJui+pKKFiAbPQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=nongnu.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8gz5uRBtFK/IDu4vP2urIKp0swgGuYfjZT/egDXY/Pk=; b=KVi/Vs9LVbec4YKY5u9/xljqvp8YiiGJKmDmumSPTWQ22tZ17HvdzSaUrXpy6XyOCffUaDgZ68cKFfzKji4oXrcAvtkAx0v6fLhOyZx2vSPGbk42uo1PRBNbgJj99Muc5fgj2idl3dDT3QSZ/K9v+ZfmIoNWeTulPa+DL17+qar+fRbZDuf5jSrSorAe9Dy5esp8YeIDcWR/+PopYYLOClKgaWZv0qqoZQVRUmboMtJCdh42X4JSLE0HCX4YrkrLRZxk1aRS8JnImNhKvXW17w6QoDNIOpYV9muLgABEhwasuIskZifKu3mhl0bQ0HTS8GDqUC2CZnvmBQEQDNG3bw== X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; 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=lists1p.gnu.org; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C From: Shameer Kolothum To: , CC: , , , , , , , , , , , Subject: [RFC PATCH 4/7] hw/arm/smmuv3-accel: Add a helper to replay all STEs Date: Fri, 4 Sep 2026 19:05:10 +0100 Message-ID: <20260904180513.248396-5-skolothumtho@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260904180513.248396-1-skolothumtho@nvidia.com> References: <20260904180513.248396-1-skolothumtho@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.126.230.37] X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF00029927:EE_|DM6PR12MB4386:EE_ X-MS-Office365-Filtering-Correlation-Id: 36e58478-f86d-45e5-bfa9-08df0aaf5150 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|82310400026|36860700016|23010399003|376014|1800799024|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: SqkGBaObYpQIkWp+sWaIG6QLvsnkmWGF0MUIneVvxKUYPkS08qMmf94ifhFh/U3OPwOhWmfHUWJrru97LOUPii1l2rBHFbAhRXWoZNBIqViVQYZhMe2QqS3yv/Ylnsm02GJuhqtVsFNfRxNxhuO041+VOwvIV4DU/8OEZYjW0z47Jv+TBAM5VjwOekMSjpjyaDiql5Wf6uKA87N6J4z6tzoxQF6cXg3mgltXhEYPj841wMH6ag3BDzltFDHL6eyZtXTsHTaZ0mtC1p2Pz4B2yH13EOjueHfqQgdb0Bj7oQCbHIMmSs2b7ZJDspKYJIOWj527ch254qkUrKn/29XwLjqfVPZ9pAQ98+TEcsHH85OFSc+KDQFfvumr7TBwRdbJtXxtOLMf1w6MWj7krfCaSPuriiRUX9wNiqmyeU9kJY5PiuCOr/MtZ/uXrHLAPG5ZeWqaTuemoU1sA1NvZGW1czC5n2SaSUKMo3EJkXtrElFYz8z49O4xZyLIaAKnze1GA7GuoH+hLMr3Y44Ckj+/BS8zszB4N+EsCl3l25xSamgXI8Xd4ZI+HMtam9aMzXHMLNfvy6K6sYpka+z6dFw5Iq+kPgRIpwSJl7gozCeIw3vLWPR6MUFZJYNTd13LZnRKVnPtK7MtmdhrOMzkJEEEJL4xe5qqe1kyB7S47dNZQag/CeRiXWN1drV3QwqRNkVbjO8ioy+nPZX8DM3OL28Daw== X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230040)(82310400026)(36860700016)(23010399003)(376014)(1800799024)(10067099003)(56012099006)(11063799006)(22082099003)(18002099003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 6VHr00Lif7TIZJdZhPoB9Sl7uI1tnZgqAvo54a3uysCxP0BBr9sm2Dob7RczkpA6GiRTbHM/FoUBmWo8WovaXAkh1h+E0c95bxu6ldzT+F4KWSp79RdSJeqqfnvTfYBVW3qmQOvZHnBmngEaxV1nYgKqdx/uZj31waGtBYrYf6T/DqnHD0y3CBfxEYcyFl+ZJ4C4CoQOVWTMODWEj3YJfyMirVxnacyajXO/Fi/pjc6uSkk0XsTTUExcqByIHtKGMwdPYrngrjna9hOrw+gfNNjU31vvbE0YHixdB5TNs2kbIyBTqbEK8H27TdGlatUu6StU4PZHsG0hTgB+X0Bj+vWxhWRKdDRWZPE/3tdMsEd4wyx9PIoQn0w8kP6kZPQZOMJ8Mp8yQjNw+8ctKYcW8o38zNrfLIkoELihG2HXlP8F0zsb34+3REsBriNgjpMn X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Sep 2026 18:07:00.7812 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 36e58478-f86d-45e5-bfa9-08df0aaf5150 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF00029927.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4386 Received-SPF: permerror client-ip=2a01:111:f403:c001::2; envelope-from=skolothumtho@nvidia.com; helo=SJ2PR03CU001.outbound.protection.outlook.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.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, FORGED_SPF_HELO=1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_NONE=0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development 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 @Nvidia.com) X-ZM-MESSAGEID: 1788545272780158501 Content-Type: text/plain; charset="utf-8" Add smmuv3_accel_replay_stes(). It walks the guest stream table and calls smmuv3_accel_install_ste() for every device behind an accelerated SMMUv3, which rebuilds the vDEVICE and the nested HWPT. The incoming migration path uses this instead of transferring per device host state, all of which can be derived from guest RAM once strtab_base and CR0 are restored. No caller yet. Signed-off-by: Shameer Kolothum --- hw/arm/smmuv3-accel.h | 1 + hw/arm/smmuv3-accel-stubs.c | 5 +++++ hw/arm/smmuv3-accel.c | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+) diff --git a/hw/arm/smmuv3-accel.h b/hw/arm/smmuv3-accel.h index a91d188d61..24828ba9ab 100644 --- a/hw/arm/smmuv3-accel.h +++ b/hw/arm/smmuv3-accel.h @@ -92,6 +92,7 @@ bool smmuv3_accel_install_ste(SMMUv3State *s, SMMUDevice = *sdev, int sid, Error **errp); bool smmuv3_accel_install_ste_range(SMMUv3State *s, SMMUSIDRange *range, Error **errp); +bool smmuv3_accel_replay_stes(SMMUv3State *s, Error **errp); bool smmuv3_accel_attach_gbpa_hwpt(SMMUv3State *s, Error **errp); bool smmuv3_accel_issue_inv_cmd(SMMUv3State *s, void *cmd, SMMUDevice *sde= v, Error **errp); diff --git a/hw/arm/smmuv3-accel-stubs.c b/hw/arm/smmuv3-accel-stubs.c index b57b5c01e7..0514915e45 100644 --- a/hw/arm/smmuv3-accel-stubs.c +++ b/hw/arm/smmuv3-accel-stubs.c @@ -28,6 +28,11 @@ bool smmuv3_accel_install_ste_range(SMMUv3State *s, SMMU= SIDRange *range, return true; } =20 +bool smmuv3_accel_replay_stes(SMMUv3State *s, Error **errp) +{ + return true; +} + bool smmuv3_accel_attach_gbpa_hwpt(SMMUv3State *s, Error **errp) { return true; diff --git a/hw/arm/smmuv3-accel.c b/hw/arm/smmuv3-accel.c index 287ea91fbe..6678e49f6e 100644 --- a/hw/arm/smmuv3-accel.c +++ b/hw/arm/smmuv3-accel.c @@ -407,6 +407,40 @@ bool smmuv3_accel_install_ste_range(SMMUv3State *s, SM= MUSIDRange *range, return all_ok; } =20 +/* + * Install the STE again for every device behind this accelerated SMMUv3, = by + * reading the guest stream table once more. Stops at the first failure. + */ +bool smmuv3_accel_replay_stes(SMMUv3State *s, Error **errp) +{ + ERRP_GUARD(); + SMMUv3AccelState *accel =3D s->s_accel; + SMMUv3AccelDevice *accel_dev; + + if (!accel || !accel->viommu) { + return true; + } + + QLIST_FOREACH(accel_dev, &accel->device_list, next) { + uint32_t sid =3D smmu_get_sid(&accel_dev->sdev); + SMMUEventInfo event =3D {.type =3D SMMU_EVT_NONE, .sid =3D sid, + .inval_ste_allowed =3D true}; + STE ste; + + /* Skip a device the guest has not programmed */ + if (smmu_find_ste(s, sid, &ste, &event)) { + continue; + } + + if (!smmuv3_accel_install_ste(s, &accel_dev->sdev, sid, errp)) { + error_prepend(errp, "Device 0x%x: Failed to install STE: ", si= d); + return false; + } + } + + return true; +} + /* * This issues the invalidation cmd to the host SMMUv3. * --=20 2.43.0 From nobody Sat Sep 26 20:50:58 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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; arc=pass (i=1 dmarc=pass fromdomain=nvidia.com); dmarc=pass(p=reject dis=none) header.from=nvidia.com ARC-Seal: i=2; a=rsa-sha256; t=1788545282; cv=pass; d=zohomail.com; s=zohoarc; b=ThdEspap4S7zak8IA+P/L3AYtK9ewZshYmuKIeXKavsdjB/DQ4OKaKGHCDSi43P2NsI8FgQ6TP8iaG1JZGVK7fzWqlgEgKKPo4dDSjM/pHa8XBPmOT9zo/6RXe8pg8mf4Rk+fsd0zDOMp66PPa9IQkjRgXIF8SiYADDOe7q052s= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788545282; 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=ZB5i8WRh/0Jo6Uj5VkhaAU9qknn1GDguvQHphZ9N3qM=; b=AgJFVZen72xG3XU0oA5TZ3FJAu8UXaKKwRaBO2IX+tq1bsGWKevuDxH1pE4TpJwXk/fhWjsGYcHztfvURT5lmHx4/FSTcxwu7JsPXCxLREfnB9mjhLImh4BnEXMMKIxDnBDVMIc+q0uiIGAptDI81aI5e/eWkE2Oqufmpknuy3o= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; 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; arc=pass (i=1 dmarc=pass fromdomain=nvidia.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17885452820611016.7818958598338; Fri, 4 Sep 2026 11:08:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x2YJv-0003gE-62; Fri, 04 Sep 2026 14:07:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x2YJm-0003eV-JS; Fri, 04 Sep 2026 14:07:14 -0400 Received: from mail-eastus2azlp170110003.outbound.protection.outlook.com ([2a01:111:f403:c110::3] helo=BN8PR05CU002.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x2YJl-0001nF-3t; Fri, 04 Sep 2026 14:07:14 -0400 Received: from CH5PR04CA0015.namprd04.prod.outlook.com (2603:10b6:610:1f4::16) by SA5PPFF1E6547B5.namprd12.prod.outlook.com (2603:10b6:80f:fc04::8ea) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.13; Fri, 4 Sep 2026 18:07:04 +0000 Received: from BL02EPF00029927.namprd02.prod.outlook.com (2603:10b6:610:1f4:cafe::55) by CH5PR04CA0015.outlook.office365.com (2603:10b6:610:1f4::16) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.382.13 via Frontend Transport; Fri, 4 Sep 2026 18:07:04 +0000 Received: from mail.nvidia.com (216.228.117.161) by BL02EPF00029927.mail.protection.outlook.com (10.167.249.52) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.8 via Frontend Transport; Fri, 4 Sep 2026 18:07:04 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Fri, 4 Sep 2026 11:06:40 -0700 Received: from NV-2Y5XW94.nvidia.com (10.126.230.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Fri, 4 Sep 2026 11:06:37 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=C56H8Dl6Tp6fWP5is2IJYKHSAsii4aR0O77JEy0VhW/fK1/EXl3fLck+C67BYZi4SUTqX019aFSTCu+GnQi/Ma/dxjLwdqf7dvwtZLEY+YeJ4Xpo9k/PO5ky3Shnry3gP8kVjp4cSfsWQW+O76YJpnKhT18FzBe6ztPL7gSUo7HUKjjvRu1QhAU8n8oKKpv59DrxJmmv38dGos51oc9lAU/Feu3d6iRo0EtroPumtDWF/Z5yNumX7J5My8thkkFDZ8cQI7YBW3gro9Qg4LUkdURQ/w5Bi6nnUn/9/8DrLEw19yboE+R++Tq7jWsNvLTqL7NP5rZoXwvj7gMDCV7bvQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ZB5i8WRh/0Jo6Uj5VkhaAU9qknn1GDguvQHphZ9N3qM=; b=DLvyDmL+F+Uy5o/7blwmKoDQx/hiXT5TTa/4sabIfVwjBWwkB7Ic16Rol/l293PmSZuGISwLdtQUneCleHe59TfPfzOYOvevgjFkRpAtcJ4u5Q+8vXwKFrZgaWcjR6mmQHX3t3+TxdzsbBGwFSEX6OCUpefeus0k1qupxhe38re5vRnTKNVD/UGAiRdjrVi9f6Zg/jTcWRLf3xiXofdekpuiXTyS+2iDetkvYMlt8oA4IxfOoudWlabbYeHdMyG56M+8JsH4BZoNKCUTh+o8r3D1hUhHVi2W+9sR7mF5QmJ7oD5HhlvBdmsm7ZybLtpJn2JL2toqTnYf/5qW7AIuQg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=nongnu.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZB5i8WRh/0Jo6Uj5VkhaAU9qknn1GDguvQHphZ9N3qM=; b=JkyWS8eFdWxlvpn/ziOx9cS4NdgqU+DsDidHg7MUzlvhJ+sRK6W6ijuQgIZbFa45ToHQsAWXw+loIvl9t+NcMsX1tALNXv2CXtjANbNVUoqXItjXrnly177tA/soYj+3aNuHhkzMrJTW4deyaoEgykkHwk/lplvMeKwMvhAnDQKClN5z9BhkC2lAfLed91xB30jM4/A+3+UaknfbntVDpyEKXNAcMiL2rltM2ZQS1pdbnbBzOY5X1CSJaJk2/fWEOhhYeTHik0pyrcnyvElJ/FxZLT2OwdrrvTNUMuJ6dU98WGyqG1De5Z1omaC79/CjZtQZBH9/7KLQmJJgRrU46w== X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; 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=lists1p.gnu.org; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C From: Shameer Kolothum To: , CC: , , , , , , , , , , , Subject: [RFC PATCH 5/7] hw/arm/smmuv3-accel: Restore accelerator state on incoming migration Date: Fri, 4 Sep 2026 19:05:11 +0100 Message-ID: <20260904180513.248396-6-skolothumtho@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260904180513.248396-1-skolothumtho@nvidia.com> References: <20260904180513.248396-1-skolothumtho@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.126.230.37] X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF00029927:EE_|SA5PPFF1E6547B5:EE_ X-MS-Office365-Filtering-Correlation-Id: f189d651-1cfb-4a4a-af0d-08df0aaf5360 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|376014|23010399003|36860700016|82310400026|56012099006|10067099003|11063799006|3023799007|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: VuVhkkj3sXJpfRAnV9mIgufysixobLlvqI5yE2YbdBcATYeZlks7FuVJ1KNYbXaYvzlprxbx+2OmWlr8KxyiH5QgWH2qbL3RsZnxYtHxJT9177mvU428dSX1WrfPZbMu1OL6HVCCda94VcPqPd4MICo2/Dgp9b7vGg0tmtXz1ZsDuSldcl/P3opZ4ym5txTGsgUAL2aTfr1mgKB0XBVc12B/t4hFlMnGFVvDUfcmPxhJsMQqEx8leLnZb4q/bKGXFrtG8s1yIYkAnqqPfMuOt0raC6BZd2snJudil60lNCpHqIIRaZngC3Ufal5OqwXcOrDjqzQCsKdKI8xFtnVZch8LlwUhUCeqBdrjAwN+l7bcoV26Mq6GAbwnd1miEKrm7IlmZL1wqHtbEFEgL7tri5Re3g5qie4WY/HfdSo6lMfpAHKudn+2P1+m6wnruaigxtx5vUR3v3vZ0p1YjqAtHQYhQ3Kf8I8B5YXoGh5E/CLdY8PKivQN1CqhOMR6n+KsPBJD1Im+yAnezhcvUnGRFBeX7QXCOB+Mds07fp3WEC2w7/uWGEnDlPkG0OQRMkuzdjx8TbPIdW67igk7t3/493+aUZ38ns6uxMT6fggG5zMZforEMZrWePJgRJ0uLOpQ7J8IbtQuPL/wR8R+wS+5JKwMbrGCPl62Er6RHmp/aetV+ZLY2O2PNyESbsM7Wzj5yiwkCu7mV9yAAYoeJx6HWA== X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230040)(1800799024)(376014)(23010399003)(36860700016)(82310400026)(56012099006)(10067099003)(11063799006)(3023799007)(22082099003)(18002099003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: KbkhrkbEvIDPO2+6C4egbW7/QhIqruF4ekamNGG5tabU0Xbrbtl28H+9ZOFeGrwGfTf1KZYLhnq9GNSfQk1T1gikhHt+1Tf5/L8lY74BKGyfEK+WFCsbPUJeZfX7g7qEWahXrEMFPQGZ3qohd4Dx8ZH3BS8TdBp69z/BHzHUNpZdbOkyBpJhvXtwbiK9tuMQ5aYVVcHQ3Z9/PMspz1aF8dxOytRMOoS/2nYqXhwPjxs2cQZsyLcIZrBAZb+vJJ9ITypc+BmJIk0cAh9y/gmjyRtQg61lXXgdqrYKdf+AcS0BLv/fcb+e0KHj1eWFOistObL87mf5OVFjdjkPvDt8PF8PTMKOcnS53yz/v7BbxkEeqJTiohigtkq4PZ+RdfJ91KQdPMl+rmJuC4gV+l9CBCsXAHOaQUJr6XeDfCRy7Kgjmsw6gQdnrrtWKl82EVoo X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Sep 2026 18:07:04.2334 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f189d651-1cfb-4a4a-af0d-08df0aaf5360 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF00029927.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA5PPFF1E6547B5 Received-SPF: permerror client-ip=2a01:111:f403:c110::3; envelope-from=skolothumtho@nvidia.com; helo=BN8PR05CU002.outbound.protection.outlook.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.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, FORGED_SPF_HELO=1, SPF_HELO_PASS=-0.001, SPF_NONE=0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development 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 @Nvidia.com) X-ZM-MESSAGEID: 1788545282800158500 Content-Type: text/plain; charset="utf-8" Extend the accel subsection post_load, after the IDR check, to bring the host side back in line. It allocates the vEVENTQ, which the A_CR0 write handler normally does, using the restored s->eventq.log2size. It attaches the HWPT for the restored GBPA to every device. Then it replays the STEs, which overrides that HWPT wherever the guest has a usable entry. Signed-off-by: Shameer Kolothum --- hw/arm/smmuv3-accel.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/hw/arm/smmuv3-accel.c b/hw/arm/smmuv3-accel.c index 6678e49f6e..b653f3f4ce 100644 --- a/hw/arm/smmuv3-accel.c +++ b/hw/arm/smmuv3-accel.c @@ -1165,6 +1165,28 @@ static bool smmuv3_accel_vmstate_post_load(void *opa= que, int version_id, return false; } =20 + if (!s->s_accel->viommu) { + return true; + } + + /* Normally done by the A_CR0 write handler, which is not replayed. */ + if (!smmuv3_accel_alloc_veventq(s, errp)) { + error_prepend(errp, "Failed to restore the vEVENTQ: "); + return false; + } + + /* smmuv3/gbpa is listed before this subsection, so it is in place */ + if (!smmuv3_accel_attach_gbpa_hwpt(s, errp)) { + error_prepend(errp, "Failed to restore the GBPA HWPT: "); + return false; + } + + /* Everything else comes from guest memory, which is already restored.= */ + if (!smmuv3_accel_replay_stes(s, errp)) { + error_prepend(errp, "Failed to replay the stream table: "); + return false; + } + return true; } =20 --=20 2.43.0 From nobody Sat Sep 26 20:50:58 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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; arc=pass (i=1 dmarc=pass fromdomain=nvidia.com); dmarc=pass(p=reject dis=none) header.from=nvidia.com ARC-Seal: i=2; a=rsa-sha256; t=1788545280; cv=pass; d=zohomail.com; s=zohoarc; b=MEtmdDhqLBBY2dDaLsiD+9cdPBUutjq0ijc6coZzrL8E+B1u7dpQkmDZZzUTZ+DxjbAEmcO0Hl8QLrRVihyFWYuOGC14FDNxVcYECacayyYjkf2NXVScKrvpo9FRfoilhW2cyY9uvREksMpSHwrZaXm1GJwtFtA/DxrKRbHzpa8= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788545280; 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=oPla5zRQB9oPyQujhIddRJBfM4g26SMRyQd0O+dk7iY=; b=Hx0SdeSSlKLJj3HuNx+iTRPhXBKo9anD8atOYHGf1IhUq1bLCqkFNVedElCC9GEtq6MNzqvsY8PEekL8jC8kCxxdojsOoHfg2aLGvAr6y3JmuxdHXAbORqCpp7joc2RPG27ETDeG5s4f1rFtAc/K9aZ31tzHuwh9rw/Gkzrr31g= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; 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; arc=pass (i=1 dmarc=pass fromdomain=nvidia.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1788545280790353.61304524915863; Fri, 4 Sep 2026 11:08:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x2YK2-0003sh-9M; Fri, 04 Sep 2026 14:07:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x2YJs-0003gZ-0H; Fri, 04 Sep 2026 14:07:23 -0400 Received: from mail-centralusazlp170110009.outbound.protection.outlook.com ([2a01:111:f403:c111::9] helo=DM5PR21CU001.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x2YJq-0001pU-GG; Fri, 04 Sep 2026 14:07:19 -0400 Received: from CH5PR04CA0022.namprd04.prod.outlook.com (2603:10b6:610:1f4::19) by IA1PR12MB6164.namprd12.prod.outlook.com (2603:10b6:208:3e8::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.13; Fri, 4 Sep 2026 18:07:07 +0000 Received: from BL02EPF00029927.namprd02.prod.outlook.com (2603:10b6:610:1f4:cafe::35) by CH5PR04CA0022.outlook.office365.com (2603:10b6:610:1f4::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.382.13 via Frontend Transport; Fri, 4 Sep 2026 18:07:07 +0000 Received: from mail.nvidia.com (216.228.117.161) by BL02EPF00029927.mail.protection.outlook.com (10.167.249.52) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.8 via Frontend Transport; Fri, 4 Sep 2026 18:07:06 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Fri, 4 Sep 2026 11:06:45 -0700 Received: from NV-2Y5XW94.nvidia.com (10.126.230.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Fri, 4 Sep 2026 11:06:42 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VC9dplyxISGIhXOmscEyJRARxsYiwhMaLvFg/cb/LvWm056+/bkFgZKmuXuA9QhI9mg4CaY0Ym+eRZ28wtguPOMDPQ2IDlh1g3s2kx79TjDmQQ0GlHgt9ko6X28mYgUlQBq6w7zRMMeflAExpFc+LkAtQ5jGnKmh2uEeTq5loCRBKHBmaLxNXFgRvRvEE8Ya1KMBrnpGpWGvhCdiUs9n0hdl8O4Elw+GUR+Y+Rmcx3Ekqgo+88A80xfKIW/HSK+5GRE2YXOH/u9fUzg9DN8us6OanQoWzeQEU5FGuBsOucuTU+gZB3R5ysBRHIIxgAYIre2h8MB7/KU4K1qg1RmaVg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=oPla5zRQB9oPyQujhIddRJBfM4g26SMRyQd0O+dk7iY=; b=ZHynmjsdpeERymumBN3zntQwtMQM5op9bA66k4VuFXB7sgdwqMKP/DeQVOGrsWZPxtJ9t7QXrFgPYHdyFsgWjP5OPhyzkk7MApGT5ijEkxPGhIGV0v+MobywgRJaemcE7+I9Kt6JqNDDamMda1RLeYiVk/yIRf661DZzhTE+kBHUBgR91SXXuI/2ilFfhRWGYJgc7qsJ7CRvPdDG9tBEZcUtnd8jhcr8sQL3QmndDtLM993vDXpHSsWeJ8JgeANj/4D6fyhFtAVyD83B+ht3CllpUd2BeAyv8xCvMMmbOgXUTApDG7cEcn/7gZ89902ZdWzFgjQTH3Dzf6ZBRHSpnw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=nongnu.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=oPla5zRQB9oPyQujhIddRJBfM4g26SMRyQd0O+dk7iY=; b=m5JdFZe7xWCSz0wAEu/TX1z5Eu8R23HVVkNBMg53/6rXWJ1CodTntgoXlyN+Fl1cCwva2QGoLI8L4OUIbbKor01SVEYNLg7IX1gYCHz0U+JMwBmolOXb6SXpKIOpU9ID8dE3tsABnFp/qNzVE7NpCMdxsinjRpIKm934tc4ni/TJ+4ztlsM3Hy6VL3sV7ZZrMAmnlbmZnxngNeDaCi0xLmtcozicg+qyK0qnuUYvPKGAua4Wj6kzSkum8RUCg4blD7LAKSgTGEBiqKMpkcPQnB65lg4F9UJlDyHft4HvPhDO0LS8wZpyCO2FcAxVAJkS+gjCTbh2xjtGItLrL9u2Xg== X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; 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=lists1p.gnu.org; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C From: Shameer Kolothum To: , CC: , , , , , , , , , , , Subject: [RFC PATCH 6/7] hw/arm/smmuv3-accel: Request dirty tracking on the nesting parent Date: Fri, 4 Sep 2026 19:05:12 +0100 Message-ID: <20260904180513.248396-7-skolothumtho@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260904180513.248396-1-skolothumtho@nvidia.com> References: <20260904180513.248396-1-skolothumtho@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.126.230.37] X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF00029927:EE_|IA1PR12MB6164:EE_ X-MS-Office365-Filtering-Correlation-Id: c298be0a-d71a-4615-c4d6-08df0aaf54ef X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|23010399003|82310400026|36860700016|1800799024|376014|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: nURWbA8A4+7NYaEK/mKuXskIoLbPJkGFawcukY26Ms4826igH2PAcIqlrs0FkNw1Z6EspvxCOEn/rNdnso2vsUzYybi5kIM718SymWus/wKRUHKEdeV/HRb20Ju/zLnJx7cGU9s0OMGgTVQi8iS7RHwJuMxcIiXnpUB+kAiz7SdiZAB00pWF7+u7ewc9ki1jW133UuSURcxta6bjeRKwkStYcZWQ2Hg7howYsyfPQtoi3vpD6OkDjg/zFLd7bstLHUi34qLm9VjyOxljL/Z8RlvCCbmSzZ7m0aFRuImqIpwZ1PZmmMB3GykA7jwjnNH/mvjtR9vnEYk8fUFYrsF34IIjmPueIds4QE1JGDo79bqmr3ofexpx5xYAd7+5P9lhql8ljtomGlXH7OGZ1mCPNtykgftRLFkbo/WziFTiufc2rbGVpvdKX+6cB8yEdIxFZLoAmCxQIFra52zP+3pdn996qghTGnCslHjSn7UX8uio5PhdXmdJ5Um6AQCNHR0yeSsv9+WmMaTK4Vkmozel55YsOI2jshk1JcbXwEiKnEoj3jhSj7NxAFGR5v/WeTMlIURrWwskf9Mlo7bzPuTmu14u+Npo3Eez2ftzqNdwr8SyW560o6XAjOwvN9MJSzIEjM0DgMTYH+aQI35ClHEOYCC8PRQ0B4WRcgAb5SXP9tSyhJmc2V1ZlEINPS80nvwndyDdiK2iG8wqZagkWWmcgg== X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230040)(23010399003)(82310400026)(36860700016)(1800799024)(376014)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: vZ0uYhCskg+I2js3owo3RPqGqZuk/s46+5yj0KxEHFNbLikECN4Nqea0o0pnsAMKYMlsk2kg5VrccGFASHKR6WZfhpxluwxxGL97g2q9AXVekr50ud6itYXOPCxXTQrEJSFzZaU7dGyHfv74SIJ5lAHuXPukRW1PK8Rj9hIjfRLrzJdBE7QqhuklbqcTijyzdKFl/HlqkDBySKI3QwPwMbVwbrKlu+mimmcXxukUZfQInlk5Z0ShtF7coc2I89ia2FOHrC5wC0/g95kG4e4y+wpLDAT9MtW0fdsD3eFX+kFdAr63aLmeh2TXsJbPvdxFsyhmr8OYhM6PJ9mpQi//NbgqesSzMk8iHxt4COqZhZ9PMPZ3tpbhZyjR9SeRXLuvAEVTEKcA7CtqwcwCJX806WCJLUXNsZ5v4KnkGAKxVuq9aGzYNyC5CTBPzfjIwre4 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Sep 2026 18:07:06.8572 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c298be0a-d71a-4615-c4d6-08df0aaf54ef X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF00029927.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6164 Received-SPF: permerror client-ip=2a01:111:f403:c111::9; envelope-from=skolothumtho@nvidia.com; helo=DM5PR21CU001.outbound.protection.outlook.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.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, FORGED_SPF_HELO=1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_NONE=0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development 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 @Nvidia.com) X-ZM-MESSAGEID: 1788545282796158500 Content-Type: text/plain; charset="utf-8" With accel=3Don the guest owns Stage 1, so the Stage 2 nesting parent is the only page table the host can track guest writes through. VFIO only asks for IOMMU_HWPT_ALLOC_DIRTY_TRACKING on the nesting parent when the vIOMMU sets VIOMMU_FLAG_WANT_NESTING_DIRTY_TRACKING, which smmuv3-accel does not, so the parent is allocated plain. Set the flag. Signed-off-by: Shameer Kolothum Reviewed-by: Eric Auger --- hw/arm/smmuv3-accel.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/hw/arm/smmuv3-accel.c b/hw/arm/smmuv3-accel.c index b653f3f4ce..3f83b505d0 100644 --- a/hw/arm/smmuv3-accel.c +++ b/hw/arm/smmuv3-accel.c @@ -1037,6 +1037,12 @@ static uint64_t smmuv3_accel_get_viommu_flags(void *= opaque) SMMUState *bs =3D opaque; SMMUv3State *s =3D ARM_SMMUV3(bs); =20 + /* + * The guest owns Stage 1, so the Stage 2 parent is the only page table + * the host can track guest writes through. + */ + flags |=3D VIOMMU_FLAG_WANT_NESTING_DIRTY_TRACKING; + if (smmuv3_pasid_supported(s)) { flags |=3D VIOMMU_FLAG_PASID_SUPPORTED; } --=20 2.43.0 From nobody Sat Sep 26 20:50:58 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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; arc=pass (i=1 dmarc=pass fromdomain=nvidia.com); dmarc=pass(p=reject dis=none) header.from=nvidia.com ARC-Seal: i=2; a=rsa-sha256; t=1788545297; cv=pass; d=zohomail.com; s=zohoarc; b=CzsTETz9RCzLjaYfdTIOLOx+w/eLIbnnV7uvDQh7OnAkMCoYVv2oBtVTMrvrIvjDpSNb3ajjiTQsODNpP0JdfILXAuooEUWlsnDdBjWyaTGotrPgYjcqYXTRvO+nQiE4kiRIGOYRyU9Zu18BvPLsrT/mNY3/Jb8V2uyNPhSGOeM= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1788545297; 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=Ya3kmp1TAJeHUwJEYs7QrgY3lu0eCVB3cVXL7VZ9ycM=; b=gb9gOspHqdsthAzsKuwILnH8rXfOW1EcOic3G6jeQZM/fj/JhPYs5Qvnh4n9kbF6toVIxql59k3Ii0EbLhfi7/rjLuXGGukKoBcuGBbxuzpt4NbSx5ppVwXDNsl9z8cnYHqSH13ayhmnHXqjBgpj0C0hA1DSfHQoQW1PEWTq40M= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; 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; arc=pass (i=1 dmarc=pass fromdomain=nvidia.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1788545297272479.5629909734905; Fri, 4 Sep 2026 11:08:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x2YK8-0004G1-Te; Fri, 04 Sep 2026 14:07:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x2YK6-00041g-EL; Fri, 04 Sep 2026 14:07:34 -0400 Received: from mail-westus2azlp170120002.outbound.protection.outlook.com ([2a01:111:f403:c007::2] helo=MW6PR02CU001.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x2YK4-0001rT-OA; Fri, 04 Sep 2026 14:07:34 -0400 Received: from CH5PR04CA0021.namprd04.prod.outlook.com (2603:10b6:610:1f4::14) by MN0PR12MB6152.namprd12.prod.outlook.com (2603:10b6:208:3c4::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.13; Fri, 4 Sep 2026 18:07:21 +0000 Received: from BN5PEPF0004698E.namprd02.prod.outlook.com (2603:10b6:610:1f4:cafe::8e) by CH5PR04CA0021.outlook.office365.com (2603:10b6:610:1f4::14) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.382.13 via Frontend Transport; Fri, 4 Sep 2026 18:07:21 +0000 Received: from mail.nvidia.com (216.228.117.160) by BN5PEPF0004698E.mail.protection.outlook.com (10.167.245.43) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.8 via Frontend Transport; Fri, 4 Sep 2026 18:07:19 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Fri, 4 Sep 2026 11:06:50 -0700 Received: from NV-2Y5XW94.nvidia.com (10.126.230.37) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Fri, 4 Sep 2026 11:06:47 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WfTVMNTUzvkRTMinfCSYCH36CX1bEkPnj/LM2nsOcP28XAqg9h9hm2uQNR0naIQt1rmN+n6oGA0M4/mgSyWhuOhREkM4OXiOZG8MZ/ikLnIm4LmiNpIqinaq7FXgXC+DReUlJjOFSKyKv18oD60VyONdD3n+Jv4oIl6s6rDqKEWx++ib9Z0bCt0dMnyXEr/fEH2WIfXebg+aa2zCzmff7+PdtkXXxXBiqiOX3kdNLWnfiTG+/QPYx2jkQ7rpFYCkkMTiZnqvAX2/faPGv9xvwZIpqOJz6+dTCYCGUCIj359h5zgP4NUEgdqAyf4OLEElsHxxzog/AQaqPXiJH7V9bg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Ya3kmp1TAJeHUwJEYs7QrgY3lu0eCVB3cVXL7VZ9ycM=; b=tJHAOLGNdKiKAsFyeMAn+hQA7AnwaWYNRkYchTGU7gmaq+fYzoMWOwE4PSdybrqMAfAVbZdK5Gc2MLWeC9FopxuFaI6aMf0zOowgeiXgTKCyRBogRClUDmfPmMWbhLGyTEjEvDce5h9kw1GTPMVOCqdLFOzXcEMGYm0+QHswVNPQETjmm6FEoDT5ZvRoqTOsdFgT/jTI1zr0jxCSrQ2EpUkTD6iP+NZIYxZ2jpA7yqi4M4PW0s2SVwKicAcjvOHZMZnVQOn8lUEwmhEUYpgs06QypXofW7OpzwMOdU4jpwrsk5CX2Ci9YRTUp4GsSJMSQq2hYNVZGTnY9pyfiQ447w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=nongnu.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ya3kmp1TAJeHUwJEYs7QrgY3lu0eCVB3cVXL7VZ9ycM=; b=JCrOatvcsjnSssCKeqt6hHrfz8DyWzkFmqfBKwu+e5hat8usoi+d9SAKjyRrQgaas85fD32JlCIjCX8hAdJgP5e5O/zxrLa8EpLrYfmn1M814pcXjxFbdZD7g5nvzGraxOXHv8LWbndBcDdV/sfK6z5EyeDnaGzsD4+BI2w7sbqkisOHOH+Z6qlIhjltp72bwPdIH/dmRy10CvPTe8gNUx1EGCiMAZvEbhfuj3Z95WY+5L/0eFCFcLhXUNSJIouT+RuH2MzZA8oJ7yfrYe77N2pgheKRfTpX+L6fXiyVsIiw7+1ExUEZA72hGMn1tw5oxgLdH2TKHmDNkv9Z3mzLqQ== X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; 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=lists1p.gnu.org; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C From: Shameer Kolothum To: , CC: , , , , , , , , , , , Subject: [RFC PATCH 7/7] hw/arm/smmuv3: Support migration with accel=on Date: Fri, 4 Sep 2026 19:05:13 +0100 Message-ID: <20260904180513.248396-8-skolothumtho@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260904180513.248396-1-skolothumtho@nvidia.com> References: <20260904180513.248396-1-skolothumtho@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.126.230.37] X-ClientProxiedBy: rnnvmail203.nvidia.com (10.129.68.9) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN5PEPF0004698E:EE_|MN0PR12MB6152:EE_ X-MS-Office365-Filtering-Correlation-Id: 98c5b356-e1bc-488d-a46c-08df0aaf5c55 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|36860700016|23010399003|82310400026|1800799024|376014|22082099003|18002099003|56012099006|11063799006|10067099003; X-Microsoft-Antispam-Message-Info: FzfwyqpzwjwD73Ezg9P0QPhVcKqWZX2J+kB1WX2GSPhBH2vpHDcsRv2NeE2SNUDXoJG5IHtWSqVFOFapukA+yFbM7rFy9JGkuV43Xkr93f2c3TSOtSvP02gQG4PJnt7PTwkvP62GMDEgF/GBvdEAS965ZWYWPza5k9si8TEgnQniYAKATKWqGQYndQrz9taqj3Rf9IN61PY1894zOk0wHDfqbCD2L7EPvJRAYobTt4YQouHJerxBIi8T1M9Ml69nR1I0XKjBCLzk1+Zh1DolxIiwlGdXt9q+aNpBYGuRC89F8sntcBAE2NJjbl0MAjjQNQ8z0Ko4x4lHYLLh79fh1iDJa15kvDVJ0kxcWb1CU+fWSWM2MoODY/o0dz+TiyN3CImPqbF4ZwCksuSaoE/CNO6e+SabKh65nIWaoubrMBRO5dZlK7bJdJvfyHURJ2092nlKrVeixkxYwbLYkYiaEbb2augWCLM3Fgq74XTple1yvaLyNWUQgcYIwXdTT4PCZi56K7oJ6ukhb13/Fy4op+84ME9thAQVKvhOEP9w1O/mraSY040PPnH6CUZdc44+FEbNoijUWDqh/H13U+9j19tBWGwin5mFhNy0wQrn0L4YAdoEq8IYcAMAGeny5bRuevXCkmgdAq/chhoExbwZ65fTCxIbopv2ZVHt1SpUnH3+xIhzUlreY6ILNznIVBJdA4uTSebiTn7MPoXQ3xWIpg== X-Forefront-Antispam-Report: CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE; SFS:(13230040)(36860700016)(23010399003)(82310400026)(1800799024)(376014)(22082099003)(18002099003)(56012099006)(11063799006)(10067099003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: uWYpHxhweOR22Y7N613lpmq3q5nAOHaVYsACYvG6G8EWUKHt4pS/L1B+Nm0PS8wsgL2sIgFx+ScUGrIjXPiZZ8gdH9cTKSmgtngAeZNtnaxMeiHa/zeHveIRx9of9Ni7xDnE2ZX2/CQtiHfR0EH2xhEiocHkMLGRifYdPQCFgs3DyBZ8Z7aMm2pEJiF8+rZIVSxCOjrZrb61EKRzxHpvIOIlyA6Sb2mqTLAvvw52bGXTqeC6AKh6jWfP/z+8klgTsNwPGc+KVQxckr0dm3KNd+y55MiOJuD1NhSM3tM0+nvIOgAYFNICOQvV+DzklSHTaVowSVL3mqDJmGGE8m2479LupSFp0kLSatYHk1wLiVqXfy5/9PrBJ679DKIO0400ABdSaLV88ev+a6gM1CABS4hSlOn+M6MInn3+KGgTq1IVv99RFjni4w/Zr/eLnVFF X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Sep 2026 18:07:19.2561 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 98c5b356-e1bc-488d-a46c-08df0aaf5c55 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN5PEPF0004698E.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6152 Received-SPF: permerror client-ip=2a01:111:f403:c007::2; envelope-from=skolothumtho@nvidia.com; helo=MW6PR02CU001.outbound.protection.outlook.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, SPF_HELO_NONE=0.001, SPF_NONE=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: qemu development 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 @Nvidia.com) X-ZM-MESSAGEID: 1788545305024158500 Content-Type: text/plain; charset="utf-8" With the restore path in place, allow migration of an accelerated SMMUv3. Replace the blocker installed unconditionally at realize with one scoped to CMDQV, installed where CMDQV is actually selected. CMDQV migration support is not enabled now. Signed-off-by: Shameer Kolothum Reviewed-by: Eric Auger --- hw/arm/smmuv3-accel.c | 11 +++++++++++ hw/arm/smmuv3.c | 5 ----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/hw/arm/smmuv3-accel.c b/hw/arm/smmuv3-accel.c index 3f83b505d0..5456fd0ae2 100644 --- a/hw/arm/smmuv3-accel.c +++ b/hw/arm/smmuv3-accel.c @@ -18,6 +18,7 @@ =20 #include "smmuv3-internal.h" #include "smmuv3-accel.h" +#include "migration/blocker.h" #include "migration/vmstate.h" #include "system/runstate.h" #include "system/system.h" @@ -801,6 +802,16 @@ smmuv3_accel_select_cmdqv(SMMUv3State *s, HostIOMMUDev= iceIOMMUFD *idev, return false; } s->s_accel->cmdqv_ops =3D ops; + + /* No support for CMDQV migration for now */ + if (ops) { + error_setg(&s->migration_blocker, + "Migration is not supported with SMMUv3 CMDQV enabled"); + if (migrate_add_blocker(&s->migration_blocker, errp) < 0) { + return false; + } + } + return true; } =20 diff --git a/hw/arm/smmuv3.c b/hw/arm/smmuv3.c index 66d95e1076..8e8ca341c9 100644 --- a/hw/arm/smmuv3.c +++ b/hw/arm/smmuv3.c @@ -2047,11 +2047,6 @@ static void smmu_realize(DeviceState *d, Error **err= p) if (!smmuv3_accel_init(s, errp)) { return; } - error_setg(&s->migration_blocker, "Migration not supported with SM= MUv3 " - "accelerator mode enabled"); - if (migrate_add_blocker(&s->migration_blocker, errp) < 0) { - return; - } } =20 c->parent_realize(d, &local_err); --=20 2.43.0