From patchwork Tue Jul 2 05:52:31 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: CLEMENT MATHIEU--DRIF X-Patchwork-Id: 13718984 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 79506C3065C for ; Tue, 2 Jul 2024 05:54:33 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sOWRV-0007u9-Oo; Tue, 02 Jul 2024 01:52:41 -0400 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 1sOWRU-0007tr-Ml for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:40 -0400 Received: from smarthost3.eviden.com ([80.78.11.84]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOWRS-0006Tu-Jo for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:40 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1719899559; x=1751435559; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=wllwYGVimOAK1sNkbxPQGXJMOd3677JZSN8l+Hwiayc=; b=GbPeYpZEy9aH+fPO+kvZMvWfrKRDvjQ9rRN+QXNUqmJp/RySmS/tHsWK nMaJU4qtXM6yuzHTpQeqmvkw/E/9j5zS8VUJ3fZJzuqCDRfOrL1liOH3R +SJurssY1J1TdJTG29AqbHavBSbFgDqNyMIancwQxMDiSc8TbHaCv1WjN 5MdeK/2x0w862jC1BcBKpnCyZlEWIB36UIB/wR8aqr26YcgSmQK6VCFM+ TCGA1RXtuebgwNYdPWxteUENsC+J7dBwWJ4H7OZ6SD1fjuyjk7yJqljTR ZT+5ZxXM4I7oqNL0IFkQcHSTcWKWdctS1DhDLu4mIwr/tLPd1iEjZPhqv g==; X-IronPort-AV: E=Sophos;i="6.09,178,1716242400"; d="scan'208";a="15721575" X-MGA-submission: MDGH6fPb9mMKieNzRlN5vVTjME4UMR1ZovjHMdqc7t0wafBIxqzXVR1IdxYdraHDQnpllBvzzGNSPD8ahExOnBgiZdbC9x4fnA73p86DgcIyi6F81auoap/bloYpR6IJvkCkfDkycfiTQBwiacG29BJ5nns/MRlw80n0+Y5BMxeODg== Received: from mail-am6eur05lp2110.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.110]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jul 2024 07:52:33 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=U5SuRbyDbqmow8rEzMus8qujezFL+qFJRSdOlPfTvmWJkdfK1RtxtzNw2VE0B7qeq8U/7LperbpKVG2b0umBeKVVbG0MIF9BTcaAZhdyowTdtqP/VXatNJmede3tYO7lH32dN+w617oYF/F9Aocf3wcFAYSLzvNNAVfYSGaB3isLai7FIjC3vTVBJgaPSh2ScZlNiurtQQdmv14wZC6kBORohJcROdHB8/U0p1KZlXS3+BPLv7olU5DmsiRD8Z3k65lix3GMRqfmUz2HY3oMp30uNkFyriXHrVbGEVSuYevOByQbi3UwkT9oXNsUPOgxm8VMJP/DIOInNxUAWNqE/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=wllwYGVimOAK1sNkbxPQGXJMOd3677JZSN8l+Hwiayc=; b=ShvA1NzpSAzU90D5GyU800Fajk4/rfUe6d9EpTswqLfrmDyEloiwgUUsdSQCcbzioGH52Lptqed2ZE32HzLcTfBhUWSdgdmfbLyxI1Z6x7Sw2IgHdanT3nHton93RJFczCR9B/prOh4iwGXxdYE/+Vd+Ic9f5WCS8qnu9jLGmndZLO6AJR1GxcOnyavZywrJQC3/pAJNO+ijjngopq5iV/TCEWMeB5JOKyV6pmM5QJa97YTP9Q00eTohGXFgcRjIKAvE0zsyFV+5aFEtCd0Xm05A2Sn3Ro3vf3VNB1McNra17tC/cw5T7HKHc7Z7h2pB2dMlMKvKURBj7d9/vQ+DUQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wllwYGVimOAK1sNkbxPQGXJMOd3677JZSN8l+Hwiayc=; b=L4VF0TDFip2xnX9M7X7kH8s8uplYNALEiEz6lWYGyBhAs0ptCEJkYmTaRYef0HT3x7BvuwQoY1w7TrGPwwpEUsG/vCIeipVZsQQsJOjrH6P0nEwMu7KtRD0CnLJ1KNwCgC9oFr9J5XlqIcyoeufh8f/A1huVUSoTBE3x55xOeSiC3uG2u4yRmpeHaZuF6URwu3PNDfifTYfAS1b+lqokR+9eGBEJgnGithQmQnyd9wINURlSFruPEJUU97gisqupGXwlmECzqHHyoc0X9onVSwM59FFWrS/jh2m5+yBfd+i3+TbpJgpTtvhgxb5ngOuG9zL6dAKXoU2QbZFW/ON3Uw== Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7080.eurprd07.prod.outlook.com (2603:10a6:20b:239::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.21; Tue, 2 Jul 2024 05:52:31 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7741.017; Tue, 2 Jul 2024 05:52:31 +0000 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , "mst@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v5 01/22] intel_iommu: fix FRCD construction macro. Thread-Topic: [PATCH ats_vtd v5 01/22] intel_iommu: fix FRCD construction macro. Thread-Index: AQHazEQHGsQhBlP7LEGqilns4McPCA== Date: Tue, 2 Jul 2024 05:52:31 +0000 Message-ID: <20240702055221.1337035-2-clement.mathieu--drif@eviden.com> References: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AS8PR07MB7080:EE_ x-ms-office365-filtering-correlation-id: 7579553c-357f-405d-dcfd-08dc9a5b29de x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?q?oo2oDTueoDejLKzUTzcpPx+jTb5MY0M?= =?utf-8?q?pXUkxI8CbiAj+63K/C3JK2gBoRGTyqPCnAXqmrcKEyiAry45bXKj0jgTGDkwmcGUM?= =?utf-8?q?2IUTUGrQl5LpNvLtEmR6STQLS693oW0h99PPUA+qb0GY7hUccPb6Ksz+YQtN61SKH?= =?utf-8?q?9mHgl47c28k4OFk21lKpizrbTOH3Q9vny+ZyW4sBWw+0YhNOC5SmB5OQFh6n+ouNf?= =?utf-8?q?InzENRSOkNcMPuVHEblKUy1kFgqozgCvPfurN2ZAINrKHIdTshQ5TDqSPw2r9BEeF?= =?utf-8?q?Sdpe1B30F4XNOKM0d6hftXKeIM7CvbQHlsvk5gelWOTYsjjYsm1xvRAZWAWlsRbYF?= =?utf-8?q?vlZX4u3DSWEAWid5XjNznUhdpa+80igL8T2PcEQoacD620nXy1++lx3ICXN/A2/Go?= =?utf-8?q?YjNrZQ/wx/MZPSGko1ub+wuhDIwYvZngObyTcoo2H3Q4Wf+4W1rF2ShspF7r8uNFh?= =?utf-8?q?2z+9C3RO0ig926+s+Sxfb4d0bFbzVms92RHyWcrgUTa2Cavrk0SN52fIMN6KhkOHY?= =?utf-8?q?YhCxthf+nnqWkvnNdeciIYLYY7Oo+vFCfianb67/WYwv4dbQv+Hb5S2PssjSBlPzV?= =?utf-8?q?KrwNkITBjLntnqJQoL2lXaFMs4uiEYV2aM/Xp5rYWbwCZnf+MWZ2vjKMJmHBsulPK?= =?utf-8?q?I4t/kEvitfZld925bVpGO/rDECHC+iM34fVswE4JLeOGO6GWIMmanuuYlcD35nB9+?= =?utf-8?q?HXpb7zJsj+fR8yiEOO2jrU19tCrDWSVYjsLhDsMDKac/CV7aGP2edCANClan2uFkF?= =?utf-8?q?v+U5vggx5r60pfoVGLvP+blmXSURAi3lm9yA3EdMzIBEnqko5YoCkFrVGTrRTngyn?= =?utf-8?q?cw9NhkInZTCjbHlx3rB6L/7/829LMrG3fyuWcCf/ziAzfGCvWj5DEvAe/AmwXbaDz?= =?utf-8?q?PvNF6q8/UMUaRawRMtu0PdtXfpG0wQGu//Mzu3l5bZiPhtRObUpazOBw2dUK+VbKF?= =?utf-8?q?5Yc1Hqt655bJAS2AWkhdB/Af+xFhRrjQqvXa0bbzjFRm5BymkZ/GW3mz8DotgUKWW?= =?utf-8?q?ovd0BZT+qPhl+uUVht9/sbim1Ucl6yGqHhOv4hcta0H/UZXbhMdqQCFan3wM23peH?= =?utf-8?q?LHydDn1eZP0ZmwVKrjPzt96d3AGpUlHmMIuql8ZQzPRZT0R6Kf+9MQoV/vYf906f6?= =?utf-8?q?c5WVREfGWe5Z4COaKzFJOP4KSNg1+/yeJMNMEFtYaZi6bvoR4cgLDex2d/RPsXRMB?= =?utf-8?q?aO/PtO23tJQPD8rz3qYXAZ5JtjDbgdDT5ov3BUUpo/elmnUNn6yCKFhhYd/xtFVCn?= =?utf-8?q?OPVIbwzC6leaQI55HieY0aIgpTKJtZkvVeVDaRP/LI4Xj95keGZKwYiqo7RXStTDB?= =?utf-8?q?NnLQGw/74SpDI3yplxazPylMXea8w2lThQ=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?vy6lMgAmA92b1AVdZw4m4Zig+Qzl?= =?utf-8?q?hbqpZadIeePkcaGc+ENhQcX6ti21P0CKC7rJfoazdeG0ApKdl+hxjNX5p1G3ecy8Q?= =?utf-8?q?kplq5to4YMi0V/251rIW5c6Zd7OB2XdEH+vVLaufAoENysqOuIL8HFM2d0eI0Fgep?= =?utf-8?q?+uK+hBeKShLeIIgZbdV7sFYaStEuTXwmJtKI4dhgSHR/XGcBHP/uUJYN/JQp7hSEu?= =?utf-8?q?YcMqZ3YBwdNG0KTfxXg8r2c1625qJ41G0Wz26H2bEgSzrlnFNDLr2AByAhu9tK0vU?= =?utf-8?q?27cpm6I4tYjw7gzKHirpCc7B+lsPncYg7TftcVgbpU+HoNjGPTJxv6Yhnt2bk+im0?= =?utf-8?q?1T6geMFexyfj796hSExJ6icuKtMxvmOyQo55jijUyTjeMrH5g3mA31hC6nTfhFvCy?= =?utf-8?q?fhfD5qgqZ97gl2uNuf2MZff0m+mYsBN6/IfbV4fjOXONg/624SoX97fqmKmbvGPE0?= =?utf-8?q?vRMKFvStZlx3w+sEOH5MtVDuSIuHfEZnK8myyQaMcCG6XgjfcazJS+oHHSrtCbI00?= =?utf-8?q?zpbZvWuesZnCQQqn6E2QJViwq6Lc0oVacD11fHWCAfw3ukmcPgweR0BcbmUfQui3N?= =?utf-8?q?U1kqR3NIiu9BTP4ItHGESfN0SFCcqEqdTrCKdr6W3Tqddj87V7fq8RUv3iHWfD3kB?= =?utf-8?q?lulJGYs2XRwlpNvCyf3/oYfkckXM/tYoicrzanwekXhFREe41gbCDs5QHdC9kXeew?= =?utf-8?q?eNcsdkLpd67DN6Ucp5Nn6VUh2EWjcmH1+KV0gV4CJYnsdDfJ5Dwy9JOwqR0wSEI5k?= =?utf-8?q?3gYIKk9AKUUcD+PckewJA8neuzXZg7tvFFivNw5FvdjYCEhXjwLnMbw0kn17rfNpE?= =?utf-8?q?SyPY32cLpJh9sEMCl3qwuwqSVReomSHRbc2J9S2w1wAyJ72+BoT7XDrqE/oU6Z8gy?= =?utf-8?q?zC6nlJcLeFxMpg1yVHe5A+m8qPLPUDTBuaBEXKY/GJwSBWREEbQWaVR/DNRnScIee?= =?utf-8?q?rbHZDzQqjFR4EAOW/tIauRyjggpwAxVn81Yd5Zb+xvHs7uK8zraVEicQJ89u0kIBH?= =?utf-8?q?jryt0//06jObfzMAuxC/3c0MPvO4d2jCNW/YfRbFGcJgisyOBVcI8fPxdNjaeoJor?= =?utf-8?q?99IV2FW4sHu40Aqx8PkMQW4pVqBAAeAXrY0TMzGTiO8d3j+scUOTr1tCkL8gWj2o8?= =?utf-8?q?GMWQiSbOX7oesE7qZgmoLYnRiT2F/XJosY7ppyjb6lX1BlCuXtxs/LUa5GIjFihsw?= =?utf-8?q?oiA/zC6wF8vQfrm7W97999JvuJWhk8h6g8bFB9xElbM6rpxm+oeHhKIu351OEkCFC?= =?utf-8?q?eF4LtQXhjiAG8H+GateN2pnvy8dufQuqymrBVcF6SWK/0X3z1n3NWenZzv6oycNhj?= =?utf-8?q?x5E/dYiyYyDR7gOesvFbQGx4yIZtRaPPX3ptGdIDHHLaKR2vhYe5sK4WBGSFYtcTm?= =?utf-8?q?zqZ7ygosPyaXu8xudfNjRO4cGFityJqrRaFc7eL7ZF8G2TmA5nQ3FvSyZAQCywF/F?= =?utf-8?q?f3LKkDr2gMFh3RIsvF6OeUT74e8IHQ2H/dO4uUbFib4q9gqp9rQ6zpSNHxTHGLEwd?= =?utf-8?q?ooFQk7PhYwtc6iwQ6TuP/pkgWqzJXO5k7KGBAG/oXMsjoaEYevoyfKw=3D?= Content-ID: MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7579553c-357f-405d-dcfd-08dc9a5b29de X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2024 05:52:31.4848 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: MNl8AnIAx7Gj/UX5yrdQ9Jl+wcPIfDBpwftBlHzVOY7F/K8Bs1Gd22uNTBVXxI9gonpw5AzCJIJaaFP7rkkY16AdtuGMGErkMgZBBY60CiOnYUEga7cGcPjpLefoo289 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7080 Received-SPF: pass client-ip=80.78.11.84; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost3.eviden.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: Clément Mathieu--Drif The constant must be unsigned, otherwise the two's complement overrides the other fields when a PASID is present Signed-off-by: Clément Mathieu--Drif Reviewed-by: Yi Liu --- hw/i386/intel_iommu_internal.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/i386/intel_iommu_internal.h b/hw/i386/intel_iommu_internal.h index e8396575eb..b19f14ef63 100644 --- a/hw/i386/intel_iommu_internal.h +++ b/hw/i386/intel_iommu_internal.h @@ -272,7 +272,7 @@ /* For the low 64-bit of 128-bit */ #define VTD_FRCD_FI(val) ((val) & ~0xfffULL) #define VTD_FRCD_PV(val) (((val) & 0xffffULL) << 40) -#define VTD_FRCD_PP(val) (((val) & 0x1) << 31) +#define VTD_FRCD_PP(val) (((val) & 0x1ULL) << 31) #define VTD_FRCD_IR_IDX(val) (((val) & 0xffffULL) << 48) /* DMA Remapping Fault Conditions */ From patchwork Tue Jul 2 05:52:32 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: CLEMENT MATHIEU--DRIF X-Patchwork-Id: 13718994 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 0AABCC3064D for ; Tue, 2 Jul 2024 05:55:18 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sOWRf-00081b-QS; Tue, 02 Jul 2024 01:52:51 -0400 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 1sOWRe-00080W-IO for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:50 -0400 Received: from smarthost2.eviden.com ([80.78.11.83]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOWRS-0006UB-Vj for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:50 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1719899559; x=1751435559; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=Z/2aj7kxHmZQngqgXS2PutUg5PHcoFHQ+gDj2SWJzVI=; b=g3IY6RjBzW6p7cC9pg1Il0PzfARZQX0nhFTNwKljI2tg0tYMBhPYZGvL GrjeljdAoscPs5s3q1AYLZqOREYJYzq59hGT96wCyEb4latDSURpVADG8 OXaGyuq+VjgVqfUxkgl2SU/dSvzCP8LsBSxbTQ/2KXr1bAm/upTGlvqWC 5JfiX0HYLmDuZwlV5tyBeOBKVJ33F+GI4EBtVLidCx5Ifd3rZicPUn3Fg MCYBA2sgAk6432y+0vNk5L3BXf5PD3zhOei4bDJrUhrGHVHB+PRFe/MSy mAJzY7bVy6WHC1vev9lSfvyq6vlFrdOLa3e4hY9BFkKxcrF9enSHfNaNx Q==; X-IronPort-AV: E=Sophos;i="6.09,178,1716242400"; d="scan'208";a="15721512" X-MGA-submission: MDEa/3R0jqSTVNu+oNnuIQyu4JL0tmnsW+0eYxA9LvvrHprt57e98mK9WuMor8PFqDBYmW02aqFrzIZUJSQxMB/6BHO7l5406K863MfLe8O/WvBGyJLnkPxEwfnIeIfxkCFl2BKdY4lHs0cAv9r6PW41BnwH5QIjRO3LV88sWYvZ6A== Received: from mail-am6eur05lp2105.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.105]) by smarthost2.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jul 2024 07:52:33 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lITTMH1pKVLI93ihmUugU3xH0XuNs+RUIwPL21ELBJx/cjY5lN7Zo2y/4rscntciWxK3rKX5lXiPsMrK3/pJgT+xxNAuDW8NOzZQE90RUy6r9+a1nmV9xdxMEyQBtOX0JDkVNtkM7K859mvxsJltTqJ18oDZYrwr1xnwGELP0F0B8ySaY/H6fRIhSQKNeTPFAPpWuOEQ3n38uwvXQqlM2QOhyBnFOZIUkwrWJQE4+BPasyh0yGMdKukwxkHb4TL+mUDqsvhkQcIzsavNg9HSzM7xCT5+pR1m5wlckJEYieXi6i6Uex08nLm8C5zxzedRxFPC+7OtSZrskGrjg8U5cA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=Z/2aj7kxHmZQngqgXS2PutUg5PHcoFHQ+gDj2SWJzVI=; b=ibLdZJsGVu4WGc6a2PWvy65oYOG50ylJcCruVtLqcYwGltrTuHQsLAUhrLuw7m/6prp+lHPZQ02gvmmTjW257mezaIrQrFsFo4F3CCQmk9qcD3mjZj4tD1kA/J8jZa9++KVN6z/f+i1it51kYy/8uLIIwkwxZjw7Org13Wmk3xPPCm4oQLqPT8IaOfMOmu7cajLvdmKABYRxr13apzkTmMwbGHpnzVj5HhUgag2My4Vi/TOwluvBpHbvi2KB1fh0HVj/L5Lh47KamWv62R2qTNoasHgM3RRMPKqc9lwKSeMR0ROO6uUs8TaJ2t8mNI55BN1B2w76d5+47phVvzamgQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Z/2aj7kxHmZQngqgXS2PutUg5PHcoFHQ+gDj2SWJzVI=; b=kzWM7HLZRnIMf+guXcVg93+1UlX+UsSxrRsAixLxh5oSs4bxRFB/kIkL6qxgBCdDhzzKZol9fvHzmvGdoy2mh6rXHT59FqEKZqUDgmwagxFXXNx2ADr2fAuN1SAWSwjYtF0v/+cJPolCADwswv1bpYBAePQixgOCuo0XvYVOJQxBMAtp0CLu5nnLremycxttcsrNFvQSCaaLOaHt+Q1kZ7mfobmxhEI1bUAbZjxRLr+6cAgRmbGF/0z6FOfXROXhEfNq06GAAcCvAGsoo0aWK9wsB94aJ4ixeXrV+Pu0LpouYl2RInGhDLojYyy3KryaLH/Iv7SFWhCroOOMliQPfA== Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7080.eurprd07.prod.outlook.com (2603:10a6:20b:239::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.21; Tue, 2 Jul 2024 05:52:32 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7741.017; Tue, 2 Jul 2024 05:52:32 +0000 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , "mst@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v5 02/22] intel_iommu: make types match Thread-Topic: [PATCH ats_vtd v5 02/22] intel_iommu: make types match Thread-Index: AQHazEQH6yt3QFkvykGEU3nY0I4A8A== Date: Tue, 2 Jul 2024 05:52:32 +0000 Message-ID: <20240702055221.1337035-3-clement.mathieu--drif@eviden.com> References: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AS8PR07MB7080:EE_ x-ms-office365-filtering-correlation-id: 010aa57e-4704-4f45-6ecc-08dc9a5b2a77 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?q?0ggkV0kcJTF2E22uNP/GqLWBMrEnvb8?= =?utf-8?q?2vUD+fZ4l0hySSDQsRMzZX4nWsloqZWo/yOC/Qf4LWc7VFA5l0DQ3wpr0tUETzbws?= =?utf-8?q?SC+syqk4S6a+F3VweWiqERdTVi4AnVndpUjK1MI1ST4O2AdY5fYJiXv10Rhn8rptB?= =?utf-8?q?iY66n9sJmIizFdn7/VtWTzHvZOY267PHq/a4LIV2KOmWQxa7A3eiR6FhgVU04ga1e?= =?utf-8?q?U33kUl2r+G74bGr3HLLznhhV/rJeJITIbRuC5MSQ1KXF6icykE1fsiFEXkGp2bjN1?= =?utf-8?q?6tl47qpfO1yQN392X26EFkRZv7KB8BbcyJdRJuZVvB0FUAfxEPuu2FDq69XVLdQdJ?= =?utf-8?q?L5ohRb1vyDa0W/OC3Ii4szLI+bhLqzFxWgz3RjXLBLE8zjUbWs5hDkEyvYqvOlw3Q?= =?utf-8?q?OpJK3bADnILnqNH0ZPQbglx+gszKUrubEDU71lRiN18roZqsoEU+sfU8wt+fOeuhp?= =?utf-8?q?8VFm0sCiPwIfYN1Fu783u3CkNatxVCgMHBel5NdNdP4K1cRSbnDuyab8+bmDpJ1S4?= =?utf-8?q?5QGG7v/gHTLwo4+EsbR6TnIvQuGZ1Ihxia6zkL817Cty5AC8MexOykjV4ccfEGgUH?= =?utf-8?q?2m52x+3z8yNM7CN+uZcimC4k1PV+N9crnpTvUv5YXQkAX4YiUApphor1HyK52TjQS?= =?utf-8?q?YNg7a+Nd4RpQUF05qy7on7EoQNBB3ySLn2rdE3iZMP/02mbWt9G2lhNFnkyjckXi5?= =?utf-8?q?2ios/HxAq+PinhGfT8mQWihnsy9aR0pouMz1DyUdi1UQ7l0rrBGlSFugBIJEdMQx8?= =?utf-8?q?xGAauSmJgG2S183bpqpJvZT0+fXc4IiykN9NkY7dXr2M4wjHxBEjJwBXiAiXl+qtC?= =?utf-8?q?NTtF78ufaTxTclzR6Qjwr1m9cDNSSbSr+AOUy0k0EZ7I5nJ3wxwSFFLGiHMnTuU/U?= =?utf-8?q?iC01aRLdtSLz6WVu1rtHtlFnakCYRIIzqm3HHyKsFxbD8kNCE/V+VD7TtAW481EbM?= =?utf-8?q?FreE6OyKcvHfokdiTXgmXxyM/poQ7v1mDR+nguM+pwfoQgBrMAnYe6hnDXHXiJ5eo?= =?utf-8?q?YW1NXE6Yd70r2BtWdqptLv1tnMfZXasBXWn2U8jaHLkHLqv2321Hr5uZdnDIas6fl?= =?utf-8?q?e0s8mFk0qBFslzytJR+sDBBYS4GmNs+yPZGP8X0n9maKsuvNmdZMNehSmJ6PlUehf?= =?utf-8?q?8Cf5GGFlRsqT6oAcGLqbICoD3UZ97PTzK6jLyrdbxmrupNS8ESlS1Vfp3ogb735wG?= =?utf-8?q?iFnaUVBBTfbzAJKC+ucPfKkHHM9uwfInZZnw2ldv7GH9p73/Av600V8UcUwR4C+LP?= =?utf-8?q?ERtTSFMaM64+qDI3WQGDgV+uYNhmRJWbKn0oiI7MpKM2apO20in6YnESA/gGH/V3K?= =?utf-8?q?PFpvectQmqgtiE21WszBsC9HIb1FlQZiiw=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?mJfTAwmwtIGox4nNERPrHtXeVy0X?= =?utf-8?q?8tVmy2e7uwEWda/DtHsH33SfrnlD5oGaPaPcRRpBZiKHDxIH+eYEAlRZ4Y0WUZb6K?= =?utf-8?q?BDFePX+QBwXPj4J2t2K+4Tjh7MA6MKyutlwBNtW9ClrHLgUCHs2KzpEn1FeUuurTE?= =?utf-8?q?gT5jP2s9eZpP6dIc9wxjZswHDoO0ZljBmJWdbqYj4Ae4RdYwkzxwxlMq5ZCHuzXdM?= =?utf-8?q?1wPHN/nsKOduaDEAT3PY7BbxcWOFDeMMXF7QwFFqrW5qfcE1VEPSMo2PR4JX/gYYT?= =?utf-8?q?wHnnsZfOlNUrlTWGrbqZtnKvW0eVYJ7jyDaB2bXb6uPdbAi4ZuyfMofych4+ozU5o?= =?utf-8?q?qQ6DfnEIEt9J9Xi9UhqGU0BEOubgvjNVc8NvOufjAP/S2BxKqw4sLNQkcvT4oOWVo?= =?utf-8?q?VDNrYlhR5kO6c/0OPhI1GSXLlijxzg5tVAcKUaehL09tvYl57RJiPCklIYRZt1+o3?= =?utf-8?q?PNC/giBmGP7SC3LQQphBApuGT0nmpftGD6yuBII26yTumDdI4WYk2Mube5oXFRqfq?= =?utf-8?q?+PZD8F9+NxRgaKHJlFFkw752Q+v+yLZh+qIOzMfTR8iwPV7LYMP0tamJgf7WKNUxH?= =?utf-8?q?+Sr1vwuqXC6cd8wTJZ0JJrSjP+q+shT75Pn4SfwvXuqvJHaTeX/O27YHIyEW6MxIP?= =?utf-8?q?r0o8BxoaVurtADr2vxtpDySQQNzdjItNDhx5LDiTWHTmAnR2lGCfO8y/e2a6v9BCZ?= =?utf-8?q?3/ih1qeW+H+puX+0LQvqpLeYtn+NTk3ME73O1eTPUc5PkuWUpH+jCb8LgYkCbKaz/?= =?utf-8?q?MzFFU2qCjGDDRIN/zn5bx+kBcb5n6QMayRNTvLb/HH7YKSjfwlWy76Dd1JZPM9e5G?= =?utf-8?q?Jpy5vj8orDbDa18YzSemL7E7gQbvK4fGmq2/figIEwDWxhpXNCoUEiXqlSyre7Kv3?= =?utf-8?q?J4BJORMeFbfuEIKl4fQvPwJ8ThfI11NbZuzt1kpalqZjW8UNUdCTzd4UKC9Dduoy8?= =?utf-8?q?f1cFZTc25saxgMclbBEGevGqzeoFlSy19CSKOm9m8qj1qo86zk/N8r99JHB88AYdz?= =?utf-8?q?qOw17nrbpJZHn7BC2ebJqfb0/QfdgTU2Wdji3LtUXfh8FS/pMdVTjPDFx0eTfilYa?= =?utf-8?q?nSb0/KW8FeK3Xw59ht7oaiv7PmWdTBvkdXn7ptMI5nGC3q7ZhCwm9YC1w3Gywgy1A?= =?utf-8?q?N62PwQR4yG6de25Z0tbDMEjtuLrkXu+XLglMxZ3oGjbcT1u8nRxKm7NZXaDCw+uAY?= =?utf-8?q?5KYR66WFLWnSoz3RhW/VzEC32cl0ajx4yfHuNSlYVAYHeel3PqbXorVdA/l4uLzCJ?= =?utf-8?q?oGrh5DV3Ax5MDJALXsvTWt8Y+51Rt02q4L5A2fubRMKlIzLkFjUk+js7x+5Vyg4nd?= =?utf-8?q?rk2qk3JDRnvpBgjUdRhaLXfBwOBlIJNg7tfBl7x4ossJK4j3S/aPiNWNx/S0yznr+?= =?utf-8?q?koGFETGeNBlFODlpaKwA0IkG43LNi/xd/g00KFqY6YV5opQPzYF6XfiavQYXeXHpv?= =?utf-8?q?z0Hp5g0vS9MhkdkQyEa5FogPXiyqSqd0BCXggAhdPatMVbrsBxJaVD+jDIVdW6w2l?= =?utf-8?q?GNFLin6oA1KlrEiM7MGzBK/2XpiGrog0m80lBHhKzv/qVOovqKHZqrs=3D?= Content-ID: <923168C4B590A64787C729A3E86744AD@eurprd07.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 010aa57e-4704-4f45-6ecc-08dc9a5b2a77 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2024 05:52:32.4620 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: aoLbBv8h16nLbnIQ/a8QDrOK4AvcGBJIp7Qf3Aj+xKEl0alQaA0FzRGc/lwi2nsQrjvRj/HlIPsyUifQoqHsMEJ0vCd6oQfcNC+9go20XE5VtV7J7n0zrrestirUbAX3 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7080 Received-SPF: pass client-ip=80.78.11.83; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost2.eviden.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: Clément Mathieu--Drif The 'level' field in vtd_iotlb_key is an unsigned integer. We don't need to store level as an int in vtd_lookup_iotlb. VTDIOTLBPageInvInfo.mask is used in binary operations with addresses. Signed-off-by: Clément Mathieu--Drif Reviewed-by: Yi Liu --- hw/i386/intel_iommu.c | 2 +- hw/i386/intel_iommu_internal.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index c3c0ecca71..c6474ae735 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -417,7 +417,7 @@ static VTDIOTLBEntry *vtd_lookup_iotlb(IntelIOMMUState *s, uint16_t source_id, { struct vtd_iotlb_key key; VTDIOTLBEntry *entry; - int level; + unsigned level; for (level = VTD_PT_LEVEL; level < VTD_PML4_LEVEL; level++) { key.gfn = vtd_get_iotlb_gfn(addr, level); diff --git a/hw/i386/intel_iommu_internal.h b/hw/i386/intel_iommu_internal.h index b19f14ef63..bd20746318 100644 --- a/hw/i386/intel_iommu_internal.h +++ b/hw/i386/intel_iommu_internal.h @@ -506,7 +506,7 @@ struct VTDIOTLBPageInvInfo { uint16_t domain_id; uint32_t pasid; uint64_t addr; - uint8_t mask; + uint64_t mask; }; typedef struct VTDIOTLBPageInvInfo VTDIOTLBPageInvInfo; From patchwork Tue Jul 2 05:52:33 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: CLEMENT MATHIEU--DRIF X-Patchwork-Id: 13718982 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 0B482C3065C for ; Tue, 2 Jul 2024 05:53:49 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sOWRZ-0007vV-57; Tue, 02 Jul 2024 01:52:45 -0400 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 1sOWRX-0007uU-3m for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:43 -0400 Received: from smarthost3.eviden.com ([80.78.11.84]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOWRV-0006Tu-18 for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1719899561; x=1751435561; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=ozTIDtEY7hjZ6/CqnUwPAuiGQBOY2pjpxiBUFYZFZZY=; b=lEjzlOLyXTRjZCqTWvzgcf/Q1Q3sughcSTfY11Wkx142ZZaEDgyhCmPZ 6ply84BUNhDSusknCke3EfGRvxp6Z+ALIQBs0NFRLJB1bPLlzW7fUyzWy rmcbC3bKM4WY8gt9CqQKAyXUiG7KdiKSfNEtZeKng0B3s1FkW/6KW8OL5 8INIcCZsgXmR9YuSVa/JVAiIjix45chvxMn0QcAOxDawkV8ZeBPMWVVOS ksj6BBI0ECbQwd0yqKLd9Xw9wL6NtpqeRmAbqvovKX4ypJxa6xcz9KNjK KEQhUgYWc9d9NxivbmHJFLbCyvWfzVenr3MAqUj4+9ay7xgqDYWW6iyGP Q==; X-IronPort-AV: E=Sophos;i="6.09,178,1716242400"; d="scan'208";a="15721576" X-MGA-submission: MDG18OMg4f4xBuh0nzXnnu5iU7EXHK8R6Aqa0ozSm+RP2I5j7bNA7s+GyP8yIxmTHdKMirYqBGX5vRGPWJJRG+mnHrJYScF9R30G1iDMFSYY3R/3H+gnTqzizdertzzZ7Yynp8+g2Trm2g9Si8i8jzsZQgdbjcOnSZLieVydlAkqFw== Received: from mail-am6eur05lp2108.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.108]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jul 2024 07:52:34 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kxHh4J0tB2zi1ormagUMPrLxN7szkgsrJeYQ3Q3dKjsNsVGVZdvbYb657V7SixMSDfwf8lKc9sh0ci8bRmvM03ktpJZTw9QMqNQYxhiaMqkal17xxdq16mivXYndGl17olxzTJ8RrHjT0v/vWiWeQMhPp2JS3n2YClSGwtSNFoGpFk2SfBKN7UkOXp3m145XIX7X8Gy9X5c+hw+172H09PrTxf5YdbLyyXx9fRQosjhMIoUbcSYzNnaRoD06QBiGtwUS0VzX+4zGR2R0n6NVgYJ0/TR+CAokPLYuoT8YGX+AJwHtiSxCcHacvCGwCMrG+YPkK4wnownf2B0xXvVmig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=ozTIDtEY7hjZ6/CqnUwPAuiGQBOY2pjpxiBUFYZFZZY=; b=gPoRgIaZtt/j1/eZ93bW0OkG86ty4CBRqRKHKHeXImX4PGMemQuDQLuJsljkUgGQpAXmxOmwKU4/XNXL9nTAoayk2je0+vF/1aCei+k8sYIj5NuLVelvSu5CprCMwd+K5EAG+juD5+7l4Me6SYEXT3MNFQkpiz4IGbqYEmW5ckXwGLlvUC2m0OeVBj3L7AlYx7EppmhBUfB512Zjk4AQZ0ZwXw1fJZVXCegIZTTxwX8VYP8jOzUvjEjiqr9GQi24gWt9d7AsermFJHNSV1u1HdAaj+zwdMdTMKJSSOfYf/tdpm1uE2WgHuHfXoyqBo8zPSGEKZ9a0Gn7pOUTRID6SQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ozTIDtEY7hjZ6/CqnUwPAuiGQBOY2pjpxiBUFYZFZZY=; b=jkV90/WAZOawAaJp7P7PxHF9fJZGIPVgqrWdLC1JzcAtLAd1J0Gl10h4gOhkZJ/mw/fMrQjm/6jITK4KbuAQIrG1dCLgK47p1DUc6++0VTONtKNvOM4a9+JUyewK0+TRI3JJPS2/6UVIUID/2hZzzfFpfxzlHFA0Gseti6oYhwo0t0DRUSVL8JSomevMECO7s+kBtUujnTG2bZAez+Y9CxD8/E3UIEeHC9LRhluflNzW++Y8xYkjW+3DLqSZl1VSI56FJbzxJ0A/Wwyf0iTYjUOpfoTxSYc04s6+iymUdM2dZ3RCebIyzF3ZqUS5pFvV/pXzFWFoI46lkEcY9unKbA== Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7080.eurprd07.prod.outlook.com (2603:10a6:20b:239::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.21; Tue, 2 Jul 2024 05:52:33 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7741.017; Tue, 2 Jul 2024 05:52:33 +0000 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , "mst@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v5 03/22] intel_iommu: return page walk level even when the translation fails Thread-Topic: [PATCH ats_vtd v5 03/22] intel_iommu: return page walk level even when the translation fails Thread-Index: AQHazEQIX64drBolXUuuM+UyOsesIA== Date: Tue, 2 Jul 2024 05:52:33 +0000 Message-ID: <20240702055221.1337035-4-clement.mathieu--drif@eviden.com> References: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AS8PR07MB7080:EE_ x-ms-office365-filtering-correlation-id: 6740b182-17a7-441c-f0db-08dc9a5b2afc x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?q?BSmHLQKq56UB1THoTn+4RWDHfpoLTBI?= =?utf-8?q?6GEZJRwxsSj9jARtCJE1Hkk8SSR69ETLPOwyNxhBqwTuB59XW6z3WARMacGzaDMg0?= =?utf-8?q?k/WFhK+72EUd/DnPTF+d7OCi4sy32bvdaNhwrn/CPaLvCjk47wqB998khoFvgwL4q?= =?utf-8?q?l06b4ghFOnXkFGVr6ZaWOD60dH/aEnY7fz8SUIE/fXSX7zwbqZwNmGaX10Pjk/7hT?= =?utf-8?q?UhJnGFHF/bKzX1dmlpjxGdwFkfCJgvwlL860bEnq/6Zdgb29rJtE/PNb2NcDQ5GBS?= =?utf-8?q?DQE67Xcj8ABhpEYr7r8DJiSlOO6AvpIGZA2Fde282zxZv4suvzLSfDOt32P7/MCol?= =?utf-8?q?kafQtze5n62ic9ElVdUVWZQtk9LNVCR5bp8oXN6eHhgIjAEelOWqnxMaojRIkpJLY?= =?utf-8?q?QEpUGmK6KV3LHXSnthoCdG/8bsDUhpBvHd47l0OhPj632jfaZM6HFKIyG1A0P5soK?= =?utf-8?q?LoA9qmvj4pTsdu/Ji5ONRopUDClTkhGxS5B9pvfQk8GzPW8ZiMuPI555HIQUNQkLX?= =?utf-8?q?Y6F954nJLSfqKkLmsGCbXCPRz4w3f4oZyv3UNfUcf/ecZQjcND/TIm+SUUEgS73zZ?= =?utf-8?q?w+c5zxGhiLBFox1lEmCyy5mlrBimtrXiBUUN10U2g4Oork92yDQtVyNvPemaHSHgb?= =?utf-8?q?SGDCVQ/FcptX8hYXHEXnAcvxqtTajW54iBa/Giw5zbroT1GE+TN0B2yLD0lgPIw8r?= =?utf-8?q?aoLd3r2zKr39NbZwubL9p+wOEKWEjeTnAEpLcvnW5Ie52BSdZgPZgamcrXe2KKjc0?= =?utf-8?q?529mcq5boU3AQonj/6PQUmSp8+omOl6WW9VzvL0uIMxPs+GHMz5l1idjAE3hdKIiU?= =?utf-8?q?gfhGJmvLy8/Z8VlptNXMcBAbXHr6KSTVJjkR0MOq1XmobWZabwFeXl9ovlwVKE+BH?= =?utf-8?q?dJsPNkX3JWZYPxQlMMVuV323SY8Lik9UcKjv5g0dRwoXY16LeSQIa+wzIET5c2ShK?= =?utf-8?q?0Dh1zzbRgGIn/tj6E612ysR5Vin+fNE2fZVMvHYmwz4xeYPXV1p20WMiw8hTOmOGV?= =?utf-8?q?nCdm6UrwM0rZosWgqx7brkQWpRa1e8SGDe9VHkKgGouNH877MsYt2l8/U0qDEMVeF?= =?utf-8?q?rJpI6A2dDC7aG8ooKHwfu0simV6I+IDu5Bc1t32q+ET7cP80BKvD7BXNS3DCMK5GC?= =?utf-8?q?/+re6djw79gqe5nV2EGtNlkz1mDvdlVFYAUMOQaar/HMNYE7HJQ+Oj0jt1ojVfdNx?= =?utf-8?q?eIxJY4pmPNkBjA4SkwerWGQ4cncsSYpVHVT2QVSsM0EAeuig4y92oEIG67F3D2IpV?= =?utf-8?q?zQ3molWihs/QgyXM1TCTGMRzKdbUqUoe8GT92XsZDf0KRjR4JIpl9HaP0YNcfHqmg?= =?utf-8?q?wUZiE0zJSoYTRU2Exc8oaw+SMB6HW4nXTg=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?Krm9xuhlcIrpB4CVumEe6xy7MNt5?= =?utf-8?q?MSRbIMRJmFH6goE0NzlfCZRcsAR8AGXU7CjO5/7epvbuqXQr7tLeIXIuHAjRwSO+K?= =?utf-8?q?mBgMyk9+qTqvsoXgDr1O+SQGPA4jJcU4gbEEzd+091Ib4Uh1R5YkH4jmj7wxtyFlU?= =?utf-8?q?upOfwXWLESVmOgbUSfZ6t9zZDsDtW6NpSt6n6tom3cmJ0sTNj/c0jVzSVnYggLlIU?= =?utf-8?q?eFTaEQcignhOZNAoGmQK97mifek0QVgsLq+flEqle0UGCSP8a+qFDUpZWwPaVgaQo?= =?utf-8?q?19S1sTGQBEi/9ZYlj1GHZ6MjVUGg1vUi3QMcKHrefXED9TAhjNvMRxzuuSNsFE4wt?= =?utf-8?q?lW7op8nYB1uw5yqyJ71v6C5QQDjSTE/729KAseSD8QcBN9R9GiSs9HA1020GZxFkX?= =?utf-8?q?/KdtPr48ejyyc7fVluRaivFbEtA2wtKDr+dNvBVEHXwbC1Da9/uSMoInE+VNzvjxa?= =?utf-8?q?KfoFBB42kdbun+IkoRY43sY9nmo9oyfmSaBcaw8KzscnNevNgPDiMKd0q6R78T8kl?= =?utf-8?q?USOi/ljWRf/ehS2vtzFOKsyfGqD7Wl2GeQo56z2aR47/pIQuhH75FtnKDlfxwnYLW?= =?utf-8?q?5W4b9Q9RceGm4RXZ0nd2HGH0kyOHvLoPzIqUkYo7S74+V0frqK8D8OYnT0RSUiKZF?= =?utf-8?q?gES48SJeVf3KImMuUAlHLukqZCFGgGDYKu9otQyA/ZksAjCgy70xpO7GQgcy2uLVe?= =?utf-8?q?jw1Kd966egWls+Oo6NYLfTDmsYNVpRiic0DG4OKCPXbRXFi7C9FsGKv5VRHyjX08v?= =?utf-8?q?D00RsmX/u0KmmHC/4sIKaffVxcl+F7wHcE6wnSNGpBaCjlIHNXAM29VIwNwUYFkhY?= =?utf-8?q?DTXpJ47vNqzFjas10FUv+Y7EKFtw0ZpyDMHcUOEaISX2OUpPjERu2/dkmyHXU0Gwe?= =?utf-8?q?fnSw1ckUk5kBFxqD/fgygdqOZe6Pva1OGrNlpfv09WteeWTzT7QZVC1V9qjNBu9jR?= =?utf-8?q?TlaAoX4sbO+q6VkujNmlCKI2iQXHgbP191CLQ9At8ciE2pe+PRTRo4bkq5Rs2xADw?= =?utf-8?q?2SqHdq44lZuAszpQYCBx1vrQdfxJ+mW5MJ6wu70x5JYGf2nv74JZBwI9gVH2Dy0Ix?= =?utf-8?q?XTewkFCDnRXv/BX72loi5IQ4mMsR8ICCDWLD2dq8ZzlTwV7XSerFX0WKRE7JXdVlL?= =?utf-8?q?sgiV+sgwzO8KEMjoez0UvocBcMJ39E6Y3aOIFBk5J46MQuPJscbR0UVrdrRZIMxQD?= =?utf-8?q?fz1Djew4nZyzBnA4C8sas4U24BrMl9/uVRh3O+xTOH0LUZLtjFoh8w7eUNygmlMNx?= =?utf-8?q?VMFnB9iPqlkr2U6y3DeOUzhttr0o0i1EHPL6OChUzqfhopUeA4rhZ431jlLko6d7I?= =?utf-8?q?f5QiACgddqXED6VsFgRNjNHVoqfvv4xsImX2+xxgjhuj64kY6YNTmHQs/f0+7lcTj?= =?utf-8?q?JVOEKKrFwf1g7+7jhPafxL6CSnzyqJTKKUXuevpEPRqUL+7FYikfFEDZUzeZY4vUm?= =?utf-8?q?tk7iF+7VOAbLlzMLtpg5UMf/lmnKVj1TaNxBtKUJbV7yrw6WSn/axFbhqX4KSCo90?= =?utf-8?q?SNRMhrF6ixm2wIkGyU/aE0yiIoqYZCR/ZeZWtK3NqqCYPRDm0+f4fjM=3D?= Content-ID: <8F03BB60A4371545BB01E4B3D59AD471@eurprd07.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6740b182-17a7-441c-f0db-08dc9a5b2afc X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2024 05:52:33.3587 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: JSY0UtuwjBJn4CRdGuoldqUw85aqyFoNJQSqE4vnpFRp1Bxx02utsUO5LO8bXyd0LQSQUAzboqM1A5ct+83+PPcCRybfdBY7Zz+xAYtyJv7+QJX4tDeTh0OX/VXxZnLn X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7080 Received-SPF: pass client-ip=80.78.11.84; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost3.eviden.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: Clément Mathieu--Drif We use this information in vtd_do_iommu_translate to populate the IOMMUTLBEntry and indicate the correct page mask. This prevents ATS devices from sending many useless translation requests when a megapage or gigapage iova is not mapped to a physical address. Signed-off-by: Clément Mathieu--Drif --- hw/i386/intel_iommu.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index c6474ae735..98996ededc 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -2096,9 +2096,9 @@ static int vtd_iova_to_flpte(IntelIOMMUState *s, VTDContextEntry *ce, uint32_t pasid) { dma_addr_t addr = vtd_get_iova_pgtbl_base(s, ce, pasid); - uint32_t level = vtd_get_iova_level(s, ce, pasid); uint32_t offset; uint64_t flpte; + *flpte_level = vtd_get_iova_level(s, ce, pasid); if (!vtd_iova_fl_check_canonical(s, iova, ce, pasid)) { error_report_once("%s: detected non canonical IOVA (iova=0x%" PRIx64 "," @@ -2107,11 +2107,11 @@ static int vtd_iova_to_flpte(IntelIOMMUState *s, VTDContextEntry *ce, } while (true) { - offset = vtd_iova_level_offset(iova, level); + offset = vtd_iova_level_offset(iova, *flpte_level); flpte = vtd_get_pte(addr, offset); if (flpte == (uint64_t)-1) { - if (level == vtd_get_iova_level(s, ce, pasid)) { + if (*flpte_level == vtd_get_iova_level(s, ce, pasid)) { /* Invalid programming of context-entry */ return -VTD_FR_CONTEXT_ENTRY_INV; } else { @@ -2128,11 +2128,11 @@ static int vtd_iova_to_flpte(IntelIOMMUState *s, VTDContextEntry *ce, if (is_write && !(flpte & VTD_FL_RW_MASK)) { return -VTD_FR_WRITE; } - if (vtd_flpte_nonzero_rsvd(flpte, level)) { + if (vtd_flpte_nonzero_rsvd(flpte, *flpte_level)) { error_report_once("%s: detected flpte reserved non-zero " "iova=0x%" PRIx64 ", level=0x%" PRIx32 "flpte=0x%" PRIx64 ", pasid=0x%" PRIX32 ")", - __func__, iova, level, flpte, pasid); + __func__, iova, *flpte_level, flpte, pasid); return -VTD_FR_PAGING_ENTRY_RSVD; } @@ -2140,19 +2140,18 @@ static int vtd_iova_to_flpte(IntelIOMMUState *s, VTDContextEntry *ce, return -VTD_FR_FS_BIT_UPDATE_FAILED; } - if (vtd_is_last_pte(flpte, level)) { + if (vtd_is_last_pte(flpte, *flpte_level)) { if (is_write && (vtd_set_flag_in_pte(addr, offset, flpte, VTD_FL_D) != MEMTX_OK)) { return -VTD_FR_FS_BIT_UPDATE_FAILED; } *flptep = flpte; - *flpte_level = level; return 0; } addr = vtd_get_pte_addr(flpte, aw_bits); - level--; + (*flpte_level)--; } } From patchwork Tue Jul 2 05:52:34 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: CLEMENT MATHIEU--DRIF X-Patchwork-Id: 13718976 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8336DC3064D for ; Tue, 2 Jul 2024 05:53:32 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sOWRa-0007xr-Pj; Tue, 02 Jul 2024 01:52:46 -0400 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 1sOWRY-0007v3-5P for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:44 -0400 Received: from smarthost2.eviden.com ([80.78.11.83]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOWRV-0006Uc-8E for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:43 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1719899561; x=1751435561; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=ypVe/9XWlbiYY67gHDpjPVysJYf8D8Q3GP6UPMoOP6s=; b=qjDPZ0CN7hNJlTneAfhWD6IGtIf6vu2zTXv/iIsurFLVoaab1WdRDZcV OBor1geSgTE2+sduCGRd7Xum29C0RFoWPizB28It0buCGKKNJjaySxUCt LKZgEaSdtyM5+UiaDJk7VnO6RPE7F1u0B6C+fIvocleHxAU58cRmIwrVY NqnR67EHhcNfelpI5mOB3Grvr3HQZA1R+nh/MwvSlF3/iMC8cjaniUlS8 U1cZsky5o982TOgEXcrlQjyp3kJQ3gNXwHXj4iedvziZesAI+zyPNAWJr BrkFl4MMMh+TDavvyFv5QGgZ08vwZsvq/ZAXv2EgFMmFnJMaMagp7F/sY A==; X-IronPort-AV: E=Sophos;i="6.09,178,1716242400"; d="scan'208";a="15721514" X-MGA-submission: MDG1dW4DwTKg5X29Mnzgw2RyST+/lIrN+Prd273oED4kOqyp0zaimp1u2B6tGAvRl3wIC8mo0x+gTNdyOK96utJY8O94gdL8ePPL2XhIc0im1qxsA2bd72nuMWLV9srRfZd78ZCMAWyDarTAecOWz/VZJTjhvr/gmfMsMWiw9DF6ZA== Received: from mail-am6eur05lp2104.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.104]) by smarthost2.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jul 2024 07:52:35 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fLifgvqtK+AkNoVMzhXLSKQ6i/jpQqBsLfgUIS3W7uzYVVBh4W62oSYcXNjqXxcpVKaHHlfsaBaxM1nB16ofw9jpI6ZtP9FtKPtxPyXSiFNgwf18yJpVNPCsbEdEQZWxYo6N1XLc5n2PRd0nUCD8AY02RNg5id+nMNLg6gDLhEMk4X8fe10IpTmMeSvhQTweyJQf5IGn3RUsmF9ZryLHhn3YC07ySlVXvFu8lSCcVbhnByzZFiAKWfYnYRRF3vRMaqW8Yp6QH1aI8tm0RoiSHxo2xiNcOJc/j9IMORbwyEmndnuG8g1shdSDxfm3BsXW2Q61ARWTWhMSbjaKYP4ZKw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=ypVe/9XWlbiYY67gHDpjPVysJYf8D8Q3GP6UPMoOP6s=; b=dGb3YdoIbXyxnzPwgQxHQq7dVKFXdglMgPUZxCd+uHsbJ95h0erTwclU0A7EyIOo9gFmFs/LIUPPjGAiagv5//a2mm8GfGEizkIqUq9qf63m+yTohegbffzgcY3ip/cqH1+32mAxAq94n09r/xP+Vrxs9N508sDZn3gBmH0qXrUyF3KZorXXvZ6ZhYKcKtb+zOuZj0WaA6tBIoyptftPR+FxXbFyNsRUlnxbRMfN9HL8zE0RI8NY8Fp1yf98cM77p5oG0pIFc87/16F4GVOQhBVn6U+Y4tYh9gfw8w+GB68wOfzl5V9E+iH/MZdzKx+7Gpt49rvccH0kXeZWY/9x4A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ypVe/9XWlbiYY67gHDpjPVysJYf8D8Q3GP6UPMoOP6s=; b=NDsi1z542F84ln+w1jla/A+ze1gedTDZ4DuS2vnbNHIP4ncn9ZT1KNm/dgStVNx36/eLndLxJM55hk75L08e5AX8aJmS4Of0dYn5DGjg6WQLAa/3UdckQEEKgkQEREY2c8Ch5II72MKhvj+uLHwEPR54nZqNI5GZERcCt5noNmwEt6aMY2dchARegAc8JcoQ3ORI0orX5fPRbtHmDWDBhQbwvsvePktUJ6VDfCrba1CCF/5BbOUVFRvF2rGGa9NAr5sNeE5cXOfJLNllLSWy/kDFZt39gCBv/5GjdGAR07R2MBeR+SN8ApCsmgA/mlH09rGYpwvrCu+NehFsFCPPow== Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7080.eurprd07.prod.outlook.com (2603:10a6:20b:239::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.21; Tue, 2 Jul 2024 05:52:34 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7741.017; Tue, 2 Jul 2024 05:52:34 +0000 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , "mst@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v5 04/22] intel_iommu: do not consider wait_desc as an invalid descriptor Thread-Topic: [PATCH ats_vtd v5 04/22] intel_iommu: do not consider wait_desc as an invalid descriptor Thread-Index: AQHazEQIBXXzL7bpek6rQxeDAgf6ew== Date: Tue, 2 Jul 2024 05:52:34 +0000 Message-ID: <20240702055221.1337035-5-clement.mathieu--drif@eviden.com> References: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AS8PR07MB7080:EE_ x-ms-office365-filtering-correlation-id: c7d21eea-aa78-43c6-6826-08dc9a5b2b6f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?q?iQ1jSZ2mZBn/JTliwbU4vjYgGHX9vHG?= =?utf-8?q?k5lxXPj75QnkLtUqYjvSPO6xcWVRQgYXiXHPlUrNaIndpKaz0K4GRF1qH6o0PzAHm?= =?utf-8?q?rHB83zP9u8oHuU4WnnDQSr5YJ2GRYWKElTBDQB4+o3RRxgFTg/r42fXCEFa1+ep1q?= =?utf-8?q?UZg543gOxz/njjfCoBWuyptib1KaKFiUnDinhD+e8KQvH2+CQ7TNgh+JVaozZ9iVE?= =?utf-8?q?S1Z6XEQt+hu4b4iRI99i5stureiptAQDRNlTEqDrYc9DZgXeZYG97Hkay40Rp1V50?= =?utf-8?q?JGicq73iRuaXnMArfhc63C7lX6spIOo8wI46fPpoNpMC3Rwoy+Z1zE6Rf2tPcY4RQ?= =?utf-8?q?3JH0tnlyDEDM/eICD3Ks7TgRvfW3k6z7VOFUg0ElLtrQWIyOwHxEcYf3+zLHEaoqi?= =?utf-8?q?f/Jie/4WNgXycO98zH+4aYhfetpjf8iq9P+VUtV0ZIqLfJufjqmT61+vggG/YfCYS?= =?utf-8?q?ijg4sVnCzk4nFmzKffycFjxQ80iC5Jc72tWo1YNI28m40KOckMl377nWXf6cEpKrp?= =?utf-8?q?S/UDurVmE1+KURd09TJO/vaYZxmPuQ+jhZxLxX3OlbSj18Xa1q60X6jN5l/q0wrxB?= =?utf-8?q?7gwM3kVCDmu31jHVTtdjuVD6fZj6wIBlslJEdvvPnLCCQKuiD4Mmpt7anEaXhcxJ8?= =?utf-8?q?pGZrMyFwey3mPUo9CR+aLym/bPsJ8XG4CNl5lIzKftr/27cPzsLnIlP6oFSOjmIqj?= =?utf-8?q?kS/6bOs08G3Wx/9UB/IxO/HuOYLLwqA7P98EB53VAwfLv5ULA/zAcNVhQ5QVCEQiQ?= =?utf-8?q?QTuoaJSA0Pv1+nnq3bRi0e6LE12P/rhXyf8NuX5Xwf3Yj8XgiQO2RqYDTBsbLBMNR?= =?utf-8?q?6juO92HBLryNVsu/2bQNX3goVoLTjV/RHnbdRcCC4ykWtXMj7r2HbAJQzHNxWb1kM?= =?utf-8?q?eS4wv2O/JiEDlBLpZXWj7/qpVQGu279szUQxWEh05+n3cbi/RJNMVAQHZC/6HHNWM?= =?utf-8?q?/ltQlCh+AfjPJH6vi13fZeQk8WNNDDGIbLMKPFOTcxamPiBvJz2S9oRb69fH+Zs/U?= =?utf-8?q?wXJ5yufplq68FaBHNiPUwRgLYfPaD55SHt0dwqSlTlQmpFwREvR3cxbLZEJETjAD9?= =?utf-8?q?NJT/ZUMl/6FRlPGwioDVdl2cp/o5M06DDCNdInisvhw4mZtMz0FQX/sMeLHZM+iot?= =?utf-8?q?o5c0O5aGGI+Tn0o5KOrLeGi0siAdG/rGyawa/xT1uVaRQVakdFAKOjq3ovT7eb6rW?= =?utf-8?q?V9+4Crz/GIFErFf4NDyG/D3YHKdSARLm+gj6N0TA4W/THiNs7AXlpgY84Edy/2OrQ?= =?utf-8?q?fWQaAnsCQyh5RVl9rVGJL0HgKK7AxbRJqh1ARpQOLb8h3VCQX1KsbD+GEydK8MoGL?= =?utf-8?q?k1zyABBlyXZVgpU4mpLjUQz2O/bpv+Rncw=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?nXpcS9otVD4kkBDdyVHM1Hkjcl8V?= =?utf-8?q?NNRZWKnBIRpt+PWgl/gK4LlWQSfX8oBEZozz3cLL4wM0rP68V101hs+Sz85wvG8Al?= =?utf-8?q?peb71WZtzBbf3hDolyBVoSI51buC9KwHJbz2+0mEmVUcmjDVzrLLGTNVzW6mnNUYI?= =?utf-8?q?RKPB3sRh1BzZQUnT9k1VFMRYuy5sBZrxI+QHW3v8TBZzNsYSQr3xyOpNpLTgvx6ww?= =?utf-8?q?N01t1rVqgCMZbTnILocStPzWft48s6gZcQu2QBLR8HHHi8SX9qDdxf6X1ChTlIPcc?= =?utf-8?q?0tj6d/NrFMPWJNmGeOEc3H1sneXQYXmKOc5Tnf3Tg/KErtCat/QRfHaHwwiQzBGMK?= =?utf-8?q?X48oZSUjhYsS9WqhmP49stT3qFXRMbI4SqLlKIy1guP+USsClQZ8Yll9ZzGaRRBMs?= =?utf-8?q?1FQ9/eZwX40i97ZiZB+XgpRlbwSN3r8OyTvOOuwHd38/ELAlR9D2SmlFwrwlnc3/z?= =?utf-8?q?9ibw29jUqEtAFfI2GyMjWjYRjI+4xr/Ugt3trxkZHLBNDr9MoyGtARQxRW+sZUz/A?= =?utf-8?q?aZniAhikRxcQJy5Apuk2ca/YZFfVZ8W91r1qDJo4EaGTRgTAROxjGRTcIlfXeq8s6?= =?utf-8?q?JIxS27yjqDBayB3YkEQSZ6u4NLG/U1eBAcNbBsbFox4bILOq8N1zTpywMDIaqzNSX?= =?utf-8?q?hZn8T0h3MI36j4+31QHokwclKFJ3cRrEvwB5+BHUefwdNIDiwD3nFZZOzae5igJJA?= =?utf-8?q?EaX7MnjLHZ6HEHI0kJpnc5onhCcQ8O45eI8fcZQYI75ePNtxJ8A1zOVQsp5ICNcGX?= =?utf-8?q?wwI5JmGHKx2+q6bFO7xxNHpqP2wU1ab3iyiUU8Pdz6j2nhA4My0H+flN/+fgcSGZJ?= =?utf-8?q?0Q/iaoid+xAcFo1SpLJ5XKetZ0Ep9EEnbn97aiQlBqgH1pHXdCQvtlZgZ3OJC3SfU?= =?utf-8?q?Vm2AHRcfzQbJOYEOS/5h6O4i95HiHeaxiwUeCryhIia2/48BHjszLyVrxxFh8js2U?= =?utf-8?q?QW+8/iIjpOE8ogINJmtrHGau77PDRSJq1p8q/DHQRaKmlAvtc8dHVGesoDZ9wqHlN?= =?utf-8?q?TQl3mjXsssLoxRgvwRUNKXQICF0V7ufKeQvyj7VtvFqi9qfYNa0saLeqRLnsd2s2z?= =?utf-8?q?vqjOWS74D8YfI9YshTL+rvasp93+13/tfAZ59OofsZ7cKuD3iSOTQZ7lMBnVXUHXt?= =?utf-8?q?crfPe0nXHmvPkvEf10up9xO+oczacT6YmtBdUejBTmsPy29k+k0e2+LH+grkwvPWc?= =?utf-8?q?yu0jc6/6GPxNu43KInEamFAPkfC9JBi/kcR9+UHqD2qlvc4HGb3ZdZSxmD5rJKmCq?= =?utf-8?q?tdVcs68BeNmMX1a9kbuQqEnC3X9lss1TX8OkbG8xHbdaZRwf05ODGrgKWs3kl5Qyd?= =?utf-8?q?O1k1wDe9nPDw4SqfTILIGqakR2+8vy/QPjem5HGe4gBUJgB168sMSpsrpL5IcrBpZ?= =?utf-8?q?7ZtnLVyfqy6FwW/C6jTtqTM7U8fzpqHBFVFb1rFD0vNPtRaxm+SLgBMgcpiuMki+y?= =?utf-8?q?4B50Be9TcEtE+m6GQzaA6LG2Rw7z4Q8I2KQ2UMXRpGY2R4qTBT+MypZhjqXVN5Jpn?= =?utf-8?q?nOulOhFvh7b4IhL1PmQlnFcXXtj0pgFHw1pmFIPIf2nCTX7M1mgRiWo=3D?= Content-ID: <70B36C38F22B714284A3C3B1861D21DF@eurprd07.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c7d21eea-aa78-43c6-6826-08dc9a5b2b6f X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2024 05:52:34.0728 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: bzerqBSa0zrt5OVfHLdKsULtrGkWnnYudfzAFi2b4zcnTQN5LtyAHy8IF3+8irtZd2WQLvaAe+khnKWFXTZr1ESEQT2EpkgpD5eRa8ajFOgF0lQ4MFN36LkFtjfNhN3x X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7080 Received-SPF: pass client-ip=80.78.11.83; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost2.eviden.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: Clément Mathieu--Drif Signed-off-by: Clément Mathieu--Drif Reviewed-by: Zhenzhong Duan --- hw/i386/intel_iommu.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 98996ededc..71cebe2fd3 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -3500,6 +3500,11 @@ static bool vtd_process_wait_desc(IntelIOMMUState *s, VTDInvDesc *inv_desc) } else if (inv_desc->lo & VTD_INV_DESC_WAIT_IF) { /* Interrupt flag */ vtd_generate_completion_event(s); + } else if (inv_desc->lo & VTD_INV_DESC_WAIT_FN) { + /* + * SW = 0, IF = 0, FN = 1 + * Nothing to do as we process the events sequentially + */ } else { error_report_once("%s: invalid wait desc: hi=%"PRIx64", lo=%"PRIx64 " (unknown type)", __func__, inv_desc->hi, From patchwork Tue Jul 2 05:52:34 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: CLEMENT MATHIEU--DRIF X-Patchwork-Id: 13718987 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 0F74BC3064D for ; Tue, 2 Jul 2024 05:54:36 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sOWRc-0007yK-4b; Tue, 02 Jul 2024 01:52:48 -0400 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 1sOWRY-0007vD-Lj for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:44 -0400 Received: from smarthost3.eviden.com ([80.78.11.84]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOWRW-0006V4-OR for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:44 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1719899563; x=1751435563; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=xT1iq8H2X9LjoI1WXr5hydii1xUTqbqC9xfPC6Rzqcw=; b=kLabdy3jWzF+oHzSQsX5ubBDqka+h7GXewSRIL7+wLzTHV8uKiiDhgOG MXMMKJrRfbbyUt6YG5g95PYwdIPmfyXgKkbW2uPAowHbDHzS2YV4VtAQl D/k+CCkyldslvJzvLhm7MUljkpQcOQb55bqrK0wmnw8QkRmomYmmqOhAq yYg/vGxq9Di/3JCsa/yaJl3gy6MNUFIkslocqw78Qdygn/IG/oP1vFz9C we7b5I0UVdPlSag/m93EhdIksheDV2F5PuSOEJH9HGsvPPMOcLZoYui7E GtTyVD+ue9qlMrWbSZw5DJS3a8Z4iZhsX/mMh2gT365YK8MzKk1h+5PdM A==; X-IronPort-AV: E=Sophos;i="6.09,178,1716242400"; d="scan'208";a="15721582" X-MGA-submission: MDH+rzUsov1EpOQpXUHmoB8GQuOMoQSVXsL/tND9FjATf7jLcAnYlT1wbn1nKa3gOxg2wcdx5wNuEhEPDCc4vjM/10pXwoJo8m23zNEzWa4l3ST+bjzlZpLXk8HwHD8jvAFH2PhFrUMctM40e7gm7Lz5lnf8JXdz+dpM1qCiC9qEqw== Received: from mail-am6eur05lp2104.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.104]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jul 2024 07:52:36 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YzjB3CIrSp80mMorSbqE7Ds9DwkHIOHU5dHflRnFD3/8QhecrN6CIlRP6m6JU/u+xmAn8HRJdV+ieMHy0IDw+4Y/3I4VzzJTQU9qH3WZspCHzEGTZt4LY29EVhVIK8vwa3yMUSRvKNd7JZsvkaGIJdm8IspEUsqWYxA+1MTKTjeGBd2zm4n5a1TiCcqp5GBC4f7V1r9av2dMhJUMsEqSwzeVR7QPDeDXSfE37isrzbxMeGTF78vDHPWZFDN1ytG1o1EoYSq0fVSbj7/SwGfrUWz6VoeoP4d7eGr0CSQWJjfx7zBoBzi0LhZvLEhmF3CcnT3brl6CzfLoQmEGsuwkZw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=xT1iq8H2X9LjoI1WXr5hydii1xUTqbqC9xfPC6Rzqcw=; b=cYCVxIu38mP87LE4p8gA2b5kl4mAVmcGJYG2oRN8XFquf+B2J8kmZuQvl9nbGkR54b6YeG659Ak9kTsuNN+JtzrkK8v8OVGxiVlwy5Z0sU1VrwseDmWgZ7apZb6lCzlLDRXxkj9Oygj/iGVekpn07ZkZEkVDrUxwuFFlOKh/Ji+XWHSsPC8/bk9N0mQQWN+G6Q49tPZjmTNkMnjB9sOXwSCfXlkGSlbKe8H1+2ZtYK0BNuXBlSeXJqSx/eSe6GKBsvfTAbqkfOkxEuIGKLg0CpCTtxVB879T8pXAvSe3ZBxxG3p7H4CJIu2OMOCHAhrM1CtGGIQ2XF6pyLC8mSx84g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xT1iq8H2X9LjoI1WXr5hydii1xUTqbqC9xfPC6Rzqcw=; b=O1MIF+bwmgZLGAMFPKgfdqpG/GHtBQi3jZS2DQrnnew5B1Zn6jEaKag7pwWZQtNXQHBwOLLjE7K5Dyt8TpjL02TNX+BNOpxRUvSGVTYIN2sKLQdAftVdOQttSoz/9F9JK6hVyC09gLSgnk/SN8nF7h5CyMReA/tRnbWwdhnTc6Ylz0xMyKHRlA8Q5/qZfsR9/F+K7I3CpoGoNUcd6fkuaYliMB3M0YWQPhIFH4qBZvpjeYtb5KR8wKdPOQ2G5WWBVPEbUZKiZ5YtrSYKjpvb/WcwT1NilwXNDdlzaYdOiCgn0OyLDdxsTgGwCVNqysAzg0MlQ5PWyKEYhwfJicNFbA== Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7080.eurprd07.prod.outlook.com (2603:10a6:20b:239::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.21; Tue, 2 Jul 2024 05:52:34 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7741.017; Tue, 2 Jul 2024 05:52:34 +0000 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , "mst@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v5 05/22] memory: add permissions in IOMMUAccessFlags Thread-Topic: [PATCH ats_vtd v5 05/22] memory: add permissions in IOMMUAccessFlags Thread-Index: AQHazEQJr4vF14tba02zG7kBavDB/g== Date: Tue, 2 Jul 2024 05:52:34 +0000 Message-ID: <20240702055221.1337035-6-clement.mathieu--drif@eviden.com> References: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AS8PR07MB7080:EE_ x-ms-office365-filtering-correlation-id: 1c3be23f-6469-4c11-57e9-08dc9a5b2bd8 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?q?C9swtpJeL9K4lm9EK6jCzq2I/04DuNq?= =?utf-8?q?9tAB7LA/5eJqVuzrV3fk/+gQJ5KMVoZ3OzxbuVq3miMc7lxRnxJ0vv+HeXx6hh3NJ?= =?utf-8?q?COvImMpdztsUe1p3tZzBJwV1gCY194HBfMxyI20J/Mg1PE4dj8ICX9Zre9PYt+Bbj?= =?utf-8?q?oM11+6NXLuH2COOXUuR9sQFwlwWK2AzFPMNoo6RZlACF12HA/ygcYiXsn6p6WxYJD?= =?utf-8?q?T2szkGW3EY8djJpTzzVEEuk4c0nn/EUSzi7+pHbjfUedkApt5eHEeLmnRPyPTp3H1?= =?utf-8?q?JkdhM+Ccj6daQWr0/sgD6p2jNIqv8XhBCGil5e4rkR2or70bfcfwfp2vE51aNl6Uj?= =?utf-8?q?eu7rlZE7/5K96fwSoiRN2w2tcHoy3TgMwbO0ScBTyDFDHN1CTtvP4ijFPSJg0B41O?= =?utf-8?q?fyLLI5bprNLuLgCpBKcNi5rgA86crUSk/5Yn6/7tYoRLZFMyv92j78h99+hTrUhc2?= =?utf-8?q?0OT9Xx10YQ6c9OP4hO9zoDGYtv/sUiDFXRYY49NelHu1bY+cZtisGsiWtfzKZhtah?= =?utf-8?q?tDajLJLNm4i/se/RjgtWxgKOgAEN5B11QkBiC5eoGv293pW78SIdqg3dtJ2pChfE7?= =?utf-8?q?lMXeN8cfgwfii12MH795+JjHZyQOUOSZV+QspmXs0DKfdPAo0Pe5cQ5BTXKJSIR8z?= =?utf-8?q?dlrsPxBzPpJRBcmuW7pZoHpW4HpFMUD8Fa5uK1Pi7eq0eKpBocR7mxjgS7BP48E08?= =?utf-8?q?1/bXiLwBXdKKTLpx/2GmVfQv6xFLTEFDVJmI7TPLzay33abINySV0kUDZCd+H8t/n?= =?utf-8?q?0FeNVIa+DdBif4jKeim6YOCWQ10ld+NJdtsI92te3arhUzSuiP5tAAexxr1DnCbEP?= =?utf-8?q?h5qFFzKST9brEOaMPt0Uwf4SAFb90YIz8WDj1UfR+M2D0wfcMS3f2tQBSHE2U5QgC?= =?utf-8?q?KZVQ+W6/PAD8J+0oZTFy3gYRlJx8HsopS2kyvIlHDeGoTFEXstfmu7enPjFiKt/NE?= =?utf-8?q?kmDXgY4+pR+8H+VAZlH1gNAi6dEmwTt2RMNrw+QuoRJkGadvViaJ7Nv88YLgJJTBh?= =?utf-8?q?9Dyg62NkXje6fiVOHSJfT/bdkI2Sl/5BUiG4w4rjHvwUN0Cdsag4js6ScA7wsQlI7?= =?utf-8?q?V7UYJxpyOxerrbpSFh9bQLFGC96E5iHruGLyeESWt3kTaWcfdlRdcZ0xyTi78kfvk?= =?utf-8?q?5ssODNYO66AtiHlh9E0khUJIPoJjRF4ykqJpzyZL+WifcNpJewsmoeNeyt7cFVSui?= =?utf-8?q?/GRuY8lwSCP3/3rmSwqeOOfda0OLPtFR5ms/tFFDKVhGNMLbT/b3ASZRZpFWjSgX2?= =?utf-8?q?F/UnNlCjwggphKAJsDSkX5YPlJnsxH7z3BelYg4+vqhZQ3rDOJH8AFIhDh2pFKgW5?= =?utf-8?q?Qp3IMibR4Mww7Q2AR5q9gSN3pG7okC3gOw=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?Syi5ya1FctxYPyLqbCp/S16MeMPr?= =?utf-8?q?7+DhUoV1oKaTTAX6zOf1oj4ZF5iWOG4RskU5yhITjy5W4UCC6bXthQ44UT0jCqOOl?= =?utf-8?q?GgmQnXu9TVUCD2qjDcuNho4ZdK+AaNXAf2QG+Cm8a0QOQQBH6EdfFUUfQVCcEydDx?= =?utf-8?q?qfZuhcAt473tlxr1gRtj01j8N7U5A8eflN1hQqCbmdjOuhuMQQTu49R7npJc+DpX3?= =?utf-8?q?j4oE1tGCCVC15yymW0vxxQYQ8jwLkH9dcjbPB2SCHANP2k1yPmwFnIRH8lAgoBIB+?= =?utf-8?q?XTz+qtvzPnzKs1/Cbyl8veMBukbc+0EovLDCsFOrfUBLM1lWLC6Vi8mOyGIHDnT8w?= =?utf-8?q?NvlqcxmtNut20KIzm6mQ6kfoMeYDIkEpQuYWwGr3nqXUFd5RPhIyqdUuK1ntiALKU?= =?utf-8?q?WWBqCq2Y9HeetMYU19KOweVlgnCDgsOxr4GnlaqwsvKax9oV5DrdnnrN40HfhO+wo?= =?utf-8?q?l87B+1YjkbSBEL7BIW8moB19D6F3B2mdQt49CGSi6ucfXnA4MyQT/B0/KTYFlcdPk?= =?utf-8?q?1495h/SjO4f3Qn/jhiTWGSIpH89vIfHQeLg4txFws4iRyYIGdKSh1gx/O+NxUbDUv?= =?utf-8?q?iSiar+O6Te55H9oTzc7MKE87aA5Wmw9JUUdejgFly+rc8WnkBLEJjLz/dADPClK7a?= =?utf-8?q?EuRXLhjLDMCvHXXAh3YBKuuXGbIyad7lN4teYVNZocjDIB1L+RJ3rn96SQUy1W/YA?= =?utf-8?q?MmryJ25A6u31OqxCB/owv8dKg9WckWbbzR/n/DV+jNB+QiuHCSNUCQJKvzHcMWTLY?= =?utf-8?q?sYtyExCTR+wjtuV+K2DuefKSuz5TXUxVv852yGSeHajmB6nYFWMME2SN18eJGiDzV?= =?utf-8?q?wRhsBnmHKJQczvE5lGze5iLuYT7qShvLBrcTzeJ6k0BDScAxVQlmiYh0bX1W6KnK7?= =?utf-8?q?HUsmIL9A1stthGUk0/LXGw8Rg+hxKD3PHWFn39rjDgN1iSxD2degy5XabR0rMHbKc?= =?utf-8?q?vkWcJBSfdjaTp/G+bas4z3b4Kdg1Oeu8J3OVHhahg8NXvrmWeiwX63R8nZoGNoSWk?= =?utf-8?q?IcFUHVDB0GfIH2D2ead8wC+iDCyj3gDuV6WeGXkRGro8HLfCDib2GqTtbyRcHcnPG?= =?utf-8?q?JNG/eUAnAes6u2CzgwFltYl+XDkq91pboMgTbHJ42xnzvQb9G/kt+cD3z7KpPXawo?= =?utf-8?q?lthQedIgvOUVcghWYDOwWpwaTj8b7szBGtu8I+sDvAK12aAtLcyXfa6j16pJAeprE?= =?utf-8?q?nNIwZuzagz7unI6x5Qm0PyzhKS2jSJ8xirf9PZirtgP727phjA8HjsPQKkRn7b9IX?= =?utf-8?q?B/8pc7u3Yu0AUISs2D0+K9VAN7Dr3aJpKFDULzWsKy5vJVvUJaughi/DOvvXMKmd9?= =?utf-8?q?9gN7rhxigldmfk8xC7pRHvjxtZ6wbEo6iczE86h2sARiQ/qupFzd/9E1oqEamj2LT?= =?utf-8?q?UFWwiuH+p2JljMBplmRxJ2Arii3Wa6FGF96YMC2g9LAqxtjeDYrPS+IpvhHBjvN+o?= =?utf-8?q?UpmSNyTw5gBX2xMx4a6AWZF4u+3tWzNa2rP/YO552EhzOY0AE3o6RJjnhjFIAroSk?= =?utf-8?q?Pl7fJuXa7oeQs7EPjppIUf4pHnhCP5t+gGKoC4BoL48dkje9ni6AN6A=3D?= Content-ID: MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1c3be23f-6469-4c11-57e9-08dc9a5b2bd8 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2024 05:52:34.7748 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: sHmkaJzkvYgjswybdygVxkJjQzxU+uaePNscyMy1wy1CMzknH2+8qoC8CMdlC6zL98Wgek/Gx/nFbceR/jRuohsaapygXOrZS3GRzmvb/QOgrODcjwueMNfDtYZvsWzL X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7080 Received-SPF: pass client-ip=80.78.11.84; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost3.eviden.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: Clément Mathieu--Drif This will be necessary for devices implementing ATS. We also define a new macro IOMMU_ACCESS_FLAG_FULL in addition to IOMMU_ACCESS_FLAG to support more access flags. IOMMU_ACCESS_FLAG is kept for convenience and backward compatibility. Here are the flags added (defined by the PCIe 5 specification) : - Execute Requested - Privileged Mode Requested - Global - Untranslated Only IOMMU_ACCESS_FLAG sets the additional flags to 0 Signed-off-by: Clément Mathieu--Drif --- include/exec/memory.h | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/include/exec/memory.h b/include/exec/memory.h index 1be58f694c..aa8e114e77 100644 --- a/include/exec/memory.h +++ b/include/exec/memory.h @@ -110,15 +110,34 @@ struct MemoryRegionSection { typedef struct IOMMUTLBEntry IOMMUTLBEntry; -/* See address_space_translate: bit 0 is read, bit 1 is write. */ +/* + * See address_space_translate: + * - bit 0 : read + * - bit 1 : write + * - bit 2 : exec + * - bit 3 : priv + * - bit 4 : global + * - bit 5 : untranslated only + */ typedef enum { IOMMU_NONE = 0, IOMMU_RO = 1, IOMMU_WO = 2, IOMMU_RW = 3, + IOMMU_EXEC = 4, + IOMMU_PRIV = 8, + IOMMU_GLOBAL = 16, + IOMMU_UNTRANSLATED_ONLY = 32, } IOMMUAccessFlags; -#define IOMMU_ACCESS_FLAG(r, w) (((r) ? IOMMU_RO : 0) | ((w) ? IOMMU_WO : 0)) +#define IOMMU_ACCESS_FLAG(r, w) (((r) ? IOMMU_RO : 0) | \ + ((w) ? IOMMU_WO : 0)) +#define IOMMU_ACCESS_FLAG_FULL(r, w, x, p, g, uo) \ + (IOMMU_ACCESS_FLAG(r, w) | \ + ((x) ? IOMMU_EXEC : 0) | \ + ((p) ? IOMMU_PRIV : 0) | \ + ((g) ? IOMMU_GLOBAL : 0) | \ + ((uo) ? IOMMU_UNTRANSLATED_ONLY : 0)) struct IOMMUTLBEntry { AddressSpace *target_as; From patchwork Tue Jul 2 05:52:35 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: CLEMENT MATHIEU--DRIF X-Patchwork-Id: 13718986 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C14E3C41513 for ; Tue, 2 Jul 2024 05:54:33 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sOWRb-0007yA-I3; Tue, 02 Jul 2024 01:52:47 -0400 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 1sOWRZ-0007xh-Sl for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:45 -0400 Received: from smarthost3.eviden.com ([80.78.11.84]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOWRX-0006Tu-FZ for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1719899563; x=1751435563; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=X34qgNpvmNLKL+VXXKfSHCmNzf0ODL2lEPqu6K2/sUk=; b=DnGW/Ib7PTl8KO3qkyP9rYsbzsqc5ZJ4nLOJ/aNlkjB/rYycFp9Df1+w 8Aq0EzA68FtxRpNA/+wQmanFmZLi45k2xGRYjU0tBx6z60HGkjXaERTUW Kkd368hUYicGZ5owsvjQ7/Kp+dEU+Ai1O3PK8lr6sbXXPhLz0dU36Vrdt kXxla6vcU7H1fDmdbhuMzt9IgGr1aJpG5f6gUpjcTgFrbS1uTY1B0ZJ69 N6xOyx1eX9jQZKe3BTeaiSD8IUImZMWVRwCig4XL5QtPRndD5tlG6uQ6o 4aPutnvxyqyxNDjqLf3UeFqKDvW6gEdM7T071BbJKvCAjyzYsK0zbvHdy g==; X-IronPort-AV: E=Sophos;i="6.09,178,1716242400"; d="scan'208";a="15721584" X-MGA-submission: MDGPKMREWgFGgTAMo+3y5D5JyNVVxl2/mN6Qc5509DPEPtB7TwqH82iMT/PLsAbt4GGfSY+5lTLK3NgBPK+ePk3zM7j/5LKXA/wqkPlm2SLgTBe+mPgOVsHM7iM9N5uODf/ey3shMomLMpQ2xbEM8PA0s321GA+v28fplcQ1RGxZNw== Received: from mail-am6eur05lp2111.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.111]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jul 2024 07:52:37 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=co9Z/CYgKHX9RPFwBfrKbD5WC0ggKBy7Wi4y/miFKWxjZi9ffVL+EGzXzWFroprsvdY61NqdSEe1z8CiW6BOhhwJCjAI8juHsGqG/cn+FBKlUgx4yW6xdCp8nsleUUxxEFjI5tZbBLH9uUdvt4D5XnKjIpQRuXmzE3+uMClpyPbL41kyyLJQ+rP7h6kZ2MhWqLsQuYqrMWkpBg7PK0u5zoF9dgdkDuLktveHWO7RrGiUwzW2m4FO3AMj13Ls8Qvy9lzT02Xt/kSGYChJz2cvvBhwmjSjzp5BPfLUF7YK0RR1nDuci+koz7kwdRb4NanjLZHeFq/1il3I1xH3E3ATGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=X34qgNpvmNLKL+VXXKfSHCmNzf0ODL2lEPqu6K2/sUk=; b=IJ1Wn2YTyh7uK8gma+7YJdqnsMm7dOhdGT38HlJQWiVwkAU0qamSw914nkpIghfh6MWS05liWUW3TZcIzt0auH3qVmmo7QlDbgxnR4GU/2nP2aUt0K2R/5vlNVpBRK5wl/SxQ1Dq7hmI44lZM/CUX2fi1xJ/7p6GzLN1LoG1XTSgkaSB5PnGrQbgU+Ut6GV9MjLIvnB821nOOcSe03ktdR6iK/3O06siQGVujQizF/ggeaeKAftZptzkRbMtC7QxcqlL0O2LZThgVHmgaIkonjEXMTMt06VGYYX5PxXONP0TRGvBmMZ020rqFJwM6oQjsTU25AJQsvZaYWxF5YgLxg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=X34qgNpvmNLKL+VXXKfSHCmNzf0ODL2lEPqu6K2/sUk=; b=Me69v9Z/Ek8ag95LIQPXDWv1s25s40NyOooihjpNU/dESGOgw/xpb5XPnn/nj6F3J7N0qgyFaNbjtvhHsPb/qOoTXhS2/AkrMZiRGomQKGngdGRpruxSNiakmcT0m6zEQr31fLG34rMVSjsNwmBUixoEW+201Z3G2Of4k/0dH11/SAJz5pMo2ZbXRo7RuZgnWrjvdXOvr0UiA3TP7W0wXm/KLQ9vYCrE/7VQgKrqHqM8KXwEvCykpN4Wkp/NllWYl0YMKYAuGbkfJrJ52QN8xazP5C3bWhR7qR0DYNbryMhXdsV2AolAtReP7dStJOLC/nXV2f3CLhll276JSJ1yyQ== Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7080.eurprd07.prod.outlook.com (2603:10a6:20b:239::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.21; Tue, 2 Jul 2024 05:52:35 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7741.017; Tue, 2 Jul 2024 05:52:35 +0000 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , "mst@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v5 06/22] pcie: add helper to declare PASID capability for a pcie device Thread-Topic: [PATCH ats_vtd v5 06/22] pcie: add helper to declare PASID capability for a pcie device Thread-Index: AQHazEQJfH+RmlRl2EizMPPk04nn5A== Date: Tue, 2 Jul 2024 05:52:35 +0000 Message-ID: <20240702055221.1337035-7-clement.mathieu--drif@eviden.com> References: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AS8PR07MB7080:EE_ x-ms-office365-filtering-correlation-id: 10ab6147-d96d-4b17-b32e-08dc9a5b2c37 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?q?lvYZiEneL6bFGFMX+6r+UEGadNczpvR?= =?utf-8?q?4fn8yEehX6EgmbBa+8IiJI9Bzxfcw+u8bl+mUzXqr/NHJOa9v0wuw43XuDQ6JwJ1P?= =?utf-8?q?QGdeQ0/16uILAJxgXPs9Myi3Eo/RcQTdNC+EC977w8fenDrChD3Y7Y0rrWfzdAZXn?= =?utf-8?q?rnJ/7rNXnK+PbUtOA6MzZnEoSo2WdOr6qzX5d4COsw2d2jV9wsSuS2fpfVLmsTcx0?= =?utf-8?q?PYECoe87BvK9kbsdt7+OKgxYi664lRnjneu5uep+TxV8qJvaT3vS1O9um1gR6jD8H?= =?utf-8?q?tBCB/F3GjqWniS/4JboUe3WAGHXS5I1V1O+w3AU5YIPZ3CUy24V0a4Di20NtM3SE/?= =?utf-8?q?X1BEbVNPzAF+P56ekOtVOkPRKZ3/0Ce8ayjqQqz3ZI4RZIde6e45f7bxo2ss31L7I?= =?utf-8?q?ec0Uqb9U5k5sA4VfzIbqyCOocScI3EnhwboeeZiPJeR8KpL7EdAcEWF/OFL0fodVD?= =?utf-8?q?Y9ASZ4BBgkIacU81kzNbuGYAFHYavNgYTcayB2mCfOdZd8QH0+NxqgK6cUvm4/Ey4?= =?utf-8?q?aCVkcN6sas49kwFvNPitVXZWnWj0zDtSFr4r8fF79zuTN5nLPdAXaKdWfy03p08gH?= =?utf-8?q?GAm3BLYuNfUKk1A+aZ1K5XqS6GgJoIBHkxNRl52yKseknoxz50CVSxjDeGbcyLM9K?= =?utf-8?q?iD6ilIQheKPSD3pEld8oEzRbrGIyVC4oxNUof38vczUrlBNCNSsBBkmxrdWggd477?= =?utf-8?q?aIO9Tejk0kEfUOn6vQspkBdxeVoqD/AvU5iTrND6sSQgjpkL+ONvOqQmRz0NWyGaF?= =?utf-8?q?fXT8CBfy9YXYx8tQ9bSNrQMP+lud7A7o6RSqSzVFDJL6O2+D4u731xPX46pU7y/CG?= =?utf-8?q?Lmf0zv9nflABuMl7Nm2Wqj7e4Y1iQu4vI0wsdR3+539tV0ws5CLaY0UUEctfBVRb1?= =?utf-8?q?8hH40yfEy7Sm3oDdYVwxxDBPlmTG3hoAWkcnelt8+6a8I2NAeZHnc+tCuWFCJB9AY?= =?utf-8?q?6wVy5Yp0DxFnroRMdCHzuGY7m5l1XgBbWd2zk3SKNCen2PIuv6/h1J/G3weBpObqf?= =?utf-8?q?lBjtYIs23FUgxpec8KNHNQSu30+OVrMlmle9Oljn/4qdE8ESA7RbhsnjwmtGlOjF7?= =?utf-8?q?61XrafXLMBeMxLVvBaql+VzHvYGrzd9TVkwuzEI406eo2W3AVb4e2CcDcQCBJffr7?= =?utf-8?q?xMWRRAteyPEltOlz+xOllhwgTQmowwjp7DuaYo/KZzfWv90CjU3u4XfrqASFGxrLf?= =?utf-8?q?kRmhRGbaI5H7G+yEBLszwly04ry4cuhN2mqCU4fWuzqaFA/7OI4igWrxh1UwgiLFg?= =?utf-8?q?lfXiAE4ERNV4jv19qK3IrlnsSKzTs1ogm/xyd8oKIj0Cq+iSjvijy8ZsC2hMCe2mN?= =?utf-8?q?HKdzhhX9+w5/n+eY39/BD3K51ZeaFpOTCw=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?sQHjKWuy3rxcCMJCHLnPs77+b7HR?= =?utf-8?q?dkOknB6oVrSviXjQ7wv7r3YdqWJGU+iRPDubE1hGUKWR+40g0Mqs7FticfxIaFplF?= =?utf-8?q?N0s+nU54RkUeg/SGMv3XXpm0O8X189MZghM69oIOAaCX+uFYxnrMaEZDqOM4jgPlh?= =?utf-8?q?XJiJ1jbVQJE5gj/xiPXvqH2XPqdcAgmExumVfowHzTcoR6e/g+y7opV+g1HnnoVU0?= =?utf-8?q?BIZOjO1X9Anw0bt1pgTEHNEUukbXLHP91eGD4dsG0SIfsCP2aqkzKxcZjVrljDus5?= =?utf-8?q?85MSfAW6yr6CqN1OKtuW/DkBBO0j5ZVnNdtGGesHJe4suFRrSEw5jzZOLJrSEnafK?= =?utf-8?q?a3B3Pp6tMgTT8wMlDYmtilSOer4UotqqF0VrhJ1VxpKJAvhJqY2z4XW27zhmoyIAJ?= =?utf-8?q?5J1IJNP5Pc6hKOjufLrX9LoeL4ON3EzHX29AmQvKynNeCJjoL8YK0R+NA7jPnKtpA?= =?utf-8?q?HCrSOC49Q1633b/msSonHaS6t6Ai9ZVZNHVtZZHGGsAqoX2yePA6OBsh/zGYTgJyW?= =?utf-8?q?Wd5KQcE5bPkLooqMeyJGqiOxbixFvGe9zR8BoHYOmZa26MvKID3teVflCw5vnCoei?= =?utf-8?q?PoO5B9qePFhwsBeQXU84NnmZpvgUOj0rPq/S7x9xg3pFjCrcvhG8gcdp4fqDWQVFh?= =?utf-8?q?w97l7wwe/3kyxdRN7rKNU1U9SpdS7lwoF89kDkAg1aejmaLTnTWm1y1kAnmrPI8fL?= =?utf-8?q?qPWF8tT+XgEJUg/RYQp18/AA7QdGpKC9KN0JrSDnETabpCN3QRswLB0amHNKQKbOS?= =?utf-8?q?EF2Rx8o77hK2tYUsk+D9teJT91YINA9U69S6qsIbKUhzf7WQWU8k60cAeIttsTf9R?= =?utf-8?q?OKb9O+Iw5zaY7pA3ataE42s5x7A5/YE3cYyHkn2JBTjkAU0057yDBofVMLmDOZCWh?= =?utf-8?q?vqqMKyGonJjum+6ksfoLLisGSQS2jrvRYs4k/a18ktz/S5DlqZG+v/8DVRFS+xslA?= =?utf-8?q?49y91k8DRCwH2ic9QNTfjHD0mWzoSR4eB0Pv75DscU6/UUGyqP9RuzUPORMCNaGoI?= =?utf-8?q?p/L2jdgeIyHYQQnGIFkpEhKclpku4A3Z6amkNV2sNarT2axRRgfoJeH5LWiW/a5Z9?= =?utf-8?q?0bUPi22TNHg8Oyq3VmRDfbdIbFB9aUBr89VK1BnI0L4F/kH4rfUEU9RSEgvJbv9fV?= =?utf-8?q?Pisys1GDFvG9l7blO1Yrz69Q8XXP2SY+RAe5gbofDstyTP0OFOTrf7nHUeFL4Ozxc?= =?utf-8?q?9+yobKiGxXv3M3DwSS2g4UHzP7nseNwj8DEeM+YnFnF83gxlxjxSl9joNwcgbPe8Q?= =?utf-8?q?+AqHVj9NpcQ1YYaa0pnAoKJ38agyaMDjo3N/hUCRaKv0NsWZ/tpsnuvtr+w2v8Euw?= =?utf-8?q?6nFHj+iRdwjk/pHQe3bZjbQOSJNgTQC1nQBaiiUWKO5A4TR3LTXBGWVJT2RGcjyxF?= =?utf-8?q?iFzFKJ7vVzlPoi5xrPiXo4+5iGqCeNabjTpmetg8eQyNN0DLZhD/DxIkRBuVBa/hZ?= =?utf-8?q?gFBQA+uSV6cSq5c8C5lQ6m1Z+vNU/ATNXAdC6GKv34VRKkB6ofEklf2pvb8Jldc9G?= =?utf-8?q?CqTnk8MGlRgjSmZw1cKPFAWbPyZ5YHGTzSkJG5Et+XpC0VfEikn6o1A=3D?= Content-ID: <2A9D09EE5E89594782C8E2DC41846900@eurprd07.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 10ab6147-d96d-4b17-b32e-08dc9a5b2c37 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2024 05:52:35.3912 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: CdMD2deWace6gzGOXKczNCCmjfzcgav52kHnsvXKM1Zt+mQAd4+yznjoGv6lRXw2UXO8RuIDHvaYBhJMeN7KChXftgYnL0UuRSGFY6MSC8cpSSZlgIxjQHEJvg9F8Ryj X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7080 Received-SPF: pass client-ip=80.78.11.84; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost3.eviden.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: Clément Mathieu--Drif Signed-off-by: Clément Mathieu--Drif --- hw/pci/pcie.c | 24 +++++++++++++++++++++++ include/hw/pci/pcie.h | 6 +++++- include/hw/pci/pcie_regs.h | 3 +++ include/standard-headers/linux/pci_regs.h | 1 + 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/hw/pci/pcie.c b/hw/pci/pcie.c index 4b2f0805c6..d6a052b616 100644 --- a/hw/pci/pcie.c +++ b/hw/pci/pcie.c @@ -1177,3 +1177,27 @@ void pcie_acs_reset(PCIDevice *dev) pci_set_word(dev->config + dev->exp.acs_cap + PCI_ACS_CTRL, 0); } } + +/* PASID */ +void pcie_pasid_init(PCIDevice *dev, uint16_t offset, uint8_t pasid_width, + bool exec_perm, bool priv_mod) +{ + assert(pasid_width <= PCI_EXT_CAP_PASID_MAX_WIDTH); + static const uint16_t control_reg_rw_mask = 0x07; + uint16_t capability_reg = pasid_width; + + pcie_add_capability(dev, PCI_EXT_CAP_ID_PASID, PCI_PASID_VER, offset, + PCI_EXT_CAP_PASID_SIZEOF); + + capability_reg <<= PCI_PASID_CAP_WIDTH_SHIFT; + capability_reg |= exec_perm ? PCI_PASID_CAP_EXEC : 0; + capability_reg |= priv_mod ? PCI_PASID_CAP_PRIV : 0; + pci_set_word(dev->config + offset + PCI_PASID_CAP, capability_reg); + + /* Everything is disabled by default */ + pci_set_word(dev->config + offset + PCI_PASID_CTRL, 0); + + pci_set_word(dev->wmask + offset + PCI_PASID_CTRL, control_reg_rw_mask); + + dev->exp.pasid_cap = offset; +} diff --git a/include/hw/pci/pcie.h b/include/hw/pci/pcie.h index 5eddb90976..b870958c99 100644 --- a/include/hw/pci/pcie.h +++ b/include/hw/pci/pcie.h @@ -72,8 +72,9 @@ struct PCIExpressDevice { uint16_t aer_cap; PCIEAERLog aer_log; - /* Offset of ATS capability in config space */ + /* Offset of ATS and PASID capabilities in config space */ uint16_t ats_cap; + uint16_t pasid_cap; /* ACS */ uint16_t acs_cap; @@ -150,4 +151,7 @@ void pcie_cap_slot_unplug_cb(HotplugHandler *hotplug_dev, DeviceState *dev, Error **errp); void pcie_cap_slot_unplug_request_cb(HotplugHandler *hotplug_dev, DeviceState *dev, Error **errp); + +void pcie_pasid_init(PCIDevice *dev, uint16_t offset, uint8_t pasid_width, + bool exec_perm, bool priv_mod); #endif /* QEMU_PCIE_H */ diff --git a/include/hw/pci/pcie_regs.h b/include/hw/pci/pcie_regs.h index 9d3b6868dc..0a86598f80 100644 --- a/include/hw/pci/pcie_regs.h +++ b/include/hw/pci/pcie_regs.h @@ -86,6 +86,9 @@ typedef enum PCIExpLinkWidth { #define PCI_ARI_VER 1 #define PCI_ARI_SIZEOF 8 +/* PASID */ +#define PCI_PASID_VER 1 +#define PCI_EXT_CAP_PASID_MAX_WIDTH 20 /* AER */ #define PCI_ERR_VER 2 #define PCI_ERR_SIZEOF 0x48 diff --git a/include/standard-headers/linux/pci_regs.h b/include/standard-headers/linux/pci_regs.h index a39193213f..406dce8e82 100644 --- a/include/standard-headers/linux/pci_regs.h +++ b/include/standard-headers/linux/pci_regs.h @@ -935,6 +935,7 @@ #define PCI_PASID_CAP_EXEC 0x0002 /* Exec permissions Supported */ #define PCI_PASID_CAP_PRIV 0x0004 /* Privilege Mode Supported */ #define PCI_PASID_CAP_WIDTH 0x1f00 +#define PCI_PASID_CAP_WIDTH_SHIFT 8 #define PCI_PASID_CTRL 0x06 /* PASID control register */ #define PCI_PASID_CTRL_ENABLE 0x0001 /* Enable bit */ #define PCI_PASID_CTRL_EXEC 0x0002 /* Exec permissions Enable */ From patchwork Tue Jul 2 05:52:36 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: CLEMENT MATHIEU--DRIF X-Patchwork-Id: 13718996 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 18421C3064D for ; Tue, 2 Jul 2024 05:55:44 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sOWRo-00084O-BD; Tue, 02 Jul 2024 01:53:00 -0400 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 1sOWRg-000820-D6 for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:52 -0400 Received: from smarthost1.eviden.com ([80.78.11.82]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOWRS-0006UP-Vm for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:52 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1719899560; x=1751435560; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=CXL1syQpKOIad9/fXMROpkmvZULd+ix6vGmRY6x+ttU=; b=rNnfOtnE4i65sHTDqnc5Dt2Hp/bI88w9EJxsNTaoHE+1OkKowfsHHx5c yLyj9m/waemxHvmV2aBJMcdCWULJTt7WOek+aT+lu3ASxYD6J1igYVPXd zSCqrFgAUIitfidKV7VCRxheOeuQBHo1W0/A1/ej9UatL/ChnL1Y3fW90 UMkSrIRaGnZVglQYwbe5qhADzm3l7Y1cgknQaOelD0sd8R/vMHcJI7xHB Gbhj/FlpozgDVTBERGdFxrWL5Jbz4tLys+JkwzmZBB4KMXyCQF+RqPEEi vmFW3Ub5+czk4706BThASBQnheJdydwMKJvFb58gvt1GImLBFrysWmfeg A==; X-IronPort-AV: E=Sophos;i="6.09,178,1716242400"; d="scan'208";a="15715672" X-MGA-submission: MDGkg2cqgdHq59Re+sCAHUnnCmc+77mfBZ9YWHJDTnyBitPCAvJnE23kgVZPjD8btm0VOVSEQZtHFKJzuXpl/cKojkC0Fn0iK2WzQUe415277MCV7YCDybbyAzJ30/f6HJHKBlllijBuTtyv+s35z6jXgEp/VnqDPdhJXmChRPj1Gg== Received: from mail-am6eur05lp2109.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.109]) by smarthost1.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jul 2024 07:52:39 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OGSdBEojPiOsMRwQkUcYv1kqHvk/C7ftLcUMadHK44oZxoN6uhr4Y4nk/0o2M49ZA8YKAwZHk+eyK6kS4qnLBlzXSBcZnb3oqDfEER47IEd7ay+VIG5JvXt0CabC+GmaKxlQO5t/b/7PiQoiwf3/prPCXHvq0m/77XrclJard6jSlZSe3Qw9L6Nbhk4RL31JJXktcUp0cBC+z0wUPLI9g0IAYqw+JaHrLbRmt5E21WV38B+mIBJ4810eHphxpgOTOrg2N9EyZXv6sv+KXizDt+SEjIgRdp1L7cTPsTOVCYoSvA/op6rteGgqv1MlAdu6Vdmu7dIai9tL5i7R1A1ymQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=CXL1syQpKOIad9/fXMROpkmvZULd+ix6vGmRY6x+ttU=; b=e0naovyCDPZjV5K+m9faC/l7OlXrNJm2lMGMUjEYXx3sH5egfWBFygA9AcMaHGYQyC7aAKOEk2gvxKGMbezV5wTfSpJDV+YFz6QuZ4bJ6J4M2A+e0fLxAqaefXBY6YkcpqEKGwqTBILuPEY4BCs/deZ/ZOFC2e2qdfzLi45Qjo9Qh8ysy2d+VLlcDphRkBqihowxHK5hXvp1F/9TFWAoScUTX41DkbEZS8fwtYXieaKZXpMmFJH0Qs9Qk14WyP15r/bONu6ipjzEOnW1YnvxcbNvlZTnq2hnSbc3HIX2Vzww/+tUZWfU65Wi+woWjKCmRkS8pczFaP0PAAQzZ+o6OQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CXL1syQpKOIad9/fXMROpkmvZULd+ix6vGmRY6x+ttU=; b=bHI+vJQ2R9kqxE5f21vOwWGB7Y7/j14To3ECzeRnJsX4R1YWpifI4Rbyi0oikn62Y6iCKJ9GPp+9XGRYM2pEla2drn1s8RyKWNo7uGCdK/MdpoImZ8NfKywav+4RtcEDGv6dhfceXOyTZXBkjRP4fhPKNR97fA8PZICDAJY1S45RShrKugqa1zCfwv8wONjtRNnYhVsh41/ECww2k4X+TPaEOyJ+PpbIVWjod3GreHw0pbklgf+6BWyEV8NCVSKTfuzBfvjgGbeAJcWxQDjETvZXIMKLr/LqfLrP9RZEfu8BrkaCIcA2Lc/JK8rGfkNp9nSwQahUjY+YIyVigliU1A== Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7080.eurprd07.prod.outlook.com (2603:10a6:20b:239::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.21; Tue, 2 Jul 2024 05:52:36 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7741.017; Tue, 2 Jul 2024 05:52:36 +0000 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , "mst@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v5 07/22] pcie: helper functions to check if PASID and ATS are enabled Thread-Topic: [PATCH ats_vtd v5 07/22] pcie: helper functions to check if PASID and ATS are enabled Thread-Index: AQHazEQKtD49ORo8dkSF9/Zy0QCSqQ== Date: Tue, 2 Jul 2024 05:52:36 +0000 Message-ID: <20240702055221.1337035-8-clement.mathieu--drif@eviden.com> References: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AS8PR07MB7080:EE_ x-ms-office365-filtering-correlation-id: 53cc36f9-7238-4bd9-9c2e-08dc9a5b2ca0 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?q?HAoLkbZnyTRmIrgLT02+dNcpkyhzcFp?= =?utf-8?q?CI8f96jCBTOQvfWhB0WXhkpVxAyC+ibZlQ7Iqkj/bbF/+MFUZBQVwTV0bbVxhUkYo?= =?utf-8?q?yySO2GDjllHqSnZ6NBNBZzRh4fKdJSk3+h9EhPa9pni8lNX1qklmFJ1bwqLXDEoES?= =?utf-8?q?OJueM3z4aDqYlHfUJqgxkVYzSSLzqzO1yljoQSjJBZk9O/VBWmC6eSBfS/RRmpm+E?= =?utf-8?q?uIYSq4klcUhUGPmzHcUITQ7Mh2UzTeR+DjGg//QcAtFTvYoYiadT3h2FNcsEKMY2n?= =?utf-8?q?rZumHayo9EUAfTj3pvmwoA1JmMfZOYopAy0RJqR6ZK1XvAbfh8ogHywbbVYK8Qolv?= =?utf-8?q?IevSuNtxvkZk7EQ1TUeLs78REksi476zdC66dtPjnWH4qbH2q42koWrFhGAg8Uw1o?= =?utf-8?q?rEB+OHJ9E1zM6/+7OLQjouOtlTajHm5lewZcJO4lj4Z1evKoewhGs+WTVAqS6CrUa?= =?utf-8?q?jiJKCxcEYT6tr6JikrwkU/N5xCFxulcKn73SYmj+jrNBG7JzbzL3P5yfdy+10xtL6?= =?utf-8?q?lPYfF+PyLDJNQIJGNPxa16BkoWoIRobLPiZF5IUzHRfU9/Zk6eHMptwM2v9iR/Cq6?= =?utf-8?q?CJzURv+y277zkZ6zGBIzdI0juYcRt4meDm56cEDJPnHfjwsWR499ciItPMA5BTLTp?= =?utf-8?q?ntoBUtzADR/C/2b0N7dViSUkjPsJFv9B67wD+2YGA0bvc79GM5iY+TEtq+BSrsprd?= =?utf-8?q?vTG4hEDMH2UwBl6ishg1VID/kriPyGED8DS0UnqGPuOHG8EUvah2Xv5K3NZku8m9A?= =?utf-8?q?Xyyygdvd/ETkBZ4TyTpf0ZnvYAms6pR5UqqT0C6IN0WWjnfeMI9sRBjRkV7Emj2/q?= =?utf-8?q?p+WvAOciR3j8zAVuL2raB4E38pIu+HKXb0H0pkrsa4DfMcavgC7p8330noe4OqJNs?= =?utf-8?q?KuEsJ1yq/OY8onm4fKEHTyKVRUq+5xJgPahD6MEZ1neI1AnPFghOh48ej47SF2dbl?= =?utf-8?q?KF5AWNufs6f39lzW9OnZz6af8Jk4t6T9kQlgVypjnH7FWzWHN8T6wwnJj0AQynU6q?= =?utf-8?q?OpM258gHleVVqWMpoWlHOL8OMcxy88DF+jLo+dYI7k24wx4jPQqu5heZso/lQkABZ?= =?utf-8?q?m6wZVjSVPilFlpGK+QaUrhdK0RAGG+w48t84kPiDm3rhzVfGh3xW3DWnPZczkmFFw?= =?utf-8?q?qLm9avGLlF/VlLeStRVuITpasmPqErxP3rNFn+4V3NzEmRFRSk4Aq/ZE7jBbvlano?= =?utf-8?q?0JfGL0VvTVPLH8fuEMFf2XHuN/IR9nE9PLAQenKBIPJ/mCJeg3HbE5B+LcOVxrM1D?= =?utf-8?q?4NE/2dD/GuBReftSCK7Wh1hwKsTthps0O4CrEngdBgaDgDfrvfEvm0t4dBg8jfc0A?= =?utf-8?q?BLuAU+kO9kQgkwZxcAYL05+HkNR+7jx83w=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?rwpLfOk4A4T4DFJ4Y91ZBb4MY89V?= =?utf-8?q?xq1yWfX3ZeaO0OuGcBtvz+fNJSAR+EeLh/2LX+Dlph13Z/wG2yjcBLIv1ryhCh/p+?= =?utf-8?q?AvJ3omVDywin3S9NwABmikcXaacQysDaVcVlLKxFZNjWD8j+Ex9kYSPVIi/qhfwa3?= =?utf-8?q?g3rUnPJLYFdX40OV0SmDZrMPeXJeViWuioNUdYLuEmt8zjLlJO5nbN6TSDRhRSt2o?= =?utf-8?q?VAWXfZJ+TqKm9f+2jid5Zp3+c/q23PoTaj0V2ldG5AZJrXdWA/Hk0WN1ImsG0ujKO?= =?utf-8?q?RUkMto8jkSv1bDGBBnT/8GxyJIA2R4LW5utJ8DUjdnEfpPXI/u9g0BLci50cLdTeb?= =?utf-8?q?gYxI9LEEwP0gnGn/ii82T/G7iFPZkaeg6D7AzHukGF832uBgZKxw3/5f2wlQ7WeaB?= =?utf-8?q?M1gX0ioDCaUXsG3+Gn3cdbTjvQo7lTcFaSFf1v4YyFsVKzu7VGo0/4i62+Jp1uzDC?= =?utf-8?q?16DIQVYMdWC+9uYZyIAiBBGdZrN0DuILIkZURLvV5wlCYtgJ1uGrYWQZSkC/4/b3v?= =?utf-8?q?/aQW53x03i8tVemWpwQbDR5EfPMrzYvi7uD+uj/Oz1QsVnlR/eDzLE3lDSmQ6j7QY?= =?utf-8?q?UfelKZHe5i9aPiV/2BjIPqlyZI9L6xe3EjB4D50E5wWF6WUY/mUo/RZe/mIJARGwW?= =?utf-8?q?AdC11oMmJkSjeytHkW1JugJuVCiuwIhxpuTPSiBObPlMGXOaocgQN5vHMvkAV5sk5?= =?utf-8?q?b6UwcEZY4+27jWmXssIT5+qufWLm9YIadlUZLIH41RmseFX3etgXuufvZRukG5KJ0?= =?utf-8?q?aOeI0mV8hhvG8PZSd9E+bkWCrY6fjOlZDGSQL6mGFYICmz0KXWaRSoRvuGBoVfpFh?= =?utf-8?q?DAmpMC3ha/o5JnhqNJTnFM9+NpkK4VB7ovhk/nVJ87hvtWEuIgd3j03lGiStsPzK1?= =?utf-8?q?ZPClEpETjMrbtcsg5mH2K4rk1Ma9NwR11DxRguv2WyFbfILulrBB/8mYxGAt38AZB?= =?utf-8?q?Qgf98DYHqEQWMbiuWqpn5b9n1vLOfJWIJUbMJJeV6KxR9bme9T2qlloZnfk0Aymi9?= =?utf-8?q?DN6gG1EMC1MhpLBU0V2jrj2BjoCRAsTJvP5wY6DEW8WzTgVFEwToKe9ht7dNvdEFi?= =?utf-8?q?M7X78yRbFK5I0R4rPGM1Iz405tJS8F3y4Pzx15U6pZXHFjMM5UsTFnAhsDYw9EgCZ?= =?utf-8?q?kUFZ13eG/C9Rd2G2ji2sYZ9E+XetVdijcCg+vYy+l5pKqYXaXr+SgTzZ3JdphJRbM?= =?utf-8?q?ll7BwsAJ5inlSzsdfEct285gh3Cb9qwbFlmc2WEpqxL6P8FGm48Uukk0T2KkKFLrD?= =?utf-8?q?zwmhZ8NWdn1vPBaztffEiYOs2GNld7XGwP300dCSYczU9VruPc9gvBV7VKmXUnRcK?= =?utf-8?q?Ldiybi5zKpSzEUuTaQCcv/RcU8u2ABj3YJAcJBm3kVx/oNOCFpQRmMbDP1zGnH+36?= =?utf-8?q?vQht8PYfifXEck/CfMsGk4ses3l/Egg0AoFHfRtvCtWA8RObhRWE5SR0NyLgy7IT9?= =?utf-8?q?joiDBUM56gWttgCZp/f41RpxT34jo3xKlMd8jPOh5cNiazxAHmyf5HPQfE7XaOsgQ?= =?utf-8?q?ATXsAYP3EXKSC74LFW0kjT8XBJBomNp+woAgM9aCy/2v6Gk7iW3GLII=3D?= Content-ID: <88132E1221348340876F34DEDBC6DB7C@eurprd07.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 53cc36f9-7238-4bd9-9c2e-08dc9a5b2ca0 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2024 05:52:36.0903 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: B7k03/iX6QVjtNenPtDjjtH4XmYS0cS6U9y33HFE3LozuaEmmG9uorY8Xj0MWzp9HRIYAJyciHf819AgRa55LB1jeagC0t0UjYGMT0ZbQghH6mnLGdkHG9Fhz9dWdF5G X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7080 Received-SPF: pass client-ip=80.78.11.82; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost1.eviden.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: Clément Mathieu--Drif ats_enabled and pasid_enabled check whether the capabilities are present or not. If so, we read the configuration space to get the status of the feature (enabled or not). Signed-off-by: Clément Mathieu--Drif --- hw/pci/pcie.c | 18 ++++++++++++++++++ include/hw/pci/pcie.h | 3 +++ 2 files changed, 21 insertions(+) diff --git a/hw/pci/pcie.c b/hw/pci/pcie.c index d6a052b616..4efd84fed5 100644 --- a/hw/pci/pcie.c +++ b/hw/pci/pcie.c @@ -1201,3 +1201,21 @@ void pcie_pasid_init(PCIDevice *dev, uint16_t offset, uint8_t pasid_width, dev->exp.pasid_cap = offset; } + +bool pcie_pasid_enabled(const PCIDevice *dev) +{ + if (!pci_is_express(dev) || !dev->exp.pasid_cap) { + return false; + } + return (pci_get_word(dev->config + dev->exp.pasid_cap + PCI_PASID_CTRL) & + PCI_PASID_CTRL_ENABLE) != 0; +} + +bool pcie_ats_enabled(const PCIDevice *dev) +{ + if (!pci_is_express(dev) || !dev->exp.ats_cap) { + return false; + } + return (pci_get_word(dev->config + dev->exp.ats_cap + PCI_ATS_CTRL) & + PCI_ATS_CTRL_ENABLE) != 0; +} diff --git a/include/hw/pci/pcie.h b/include/hw/pci/pcie.h index b870958c99..0c127b29dc 100644 --- a/include/hw/pci/pcie.h +++ b/include/hw/pci/pcie.h @@ -154,4 +154,7 @@ void pcie_cap_slot_unplug_request_cb(HotplugHandler *hotplug_dev, void pcie_pasid_init(PCIDevice *dev, uint16_t offset, uint8_t pasid_width, bool exec_perm, bool priv_mod); + +bool pcie_pasid_enabled(const PCIDevice *dev); +bool pcie_ats_enabled(const PCIDevice *dev); #endif /* QEMU_PCIE_H */ From patchwork Tue Jul 2 05:52:36 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: CLEMENT MATHIEU--DRIF X-Patchwork-Id: 13718978 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 912C1C30658 for ; Tue, 2 Jul 2024 05:53:32 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sOWRY-0007vE-NT; Tue, 02 Jul 2024 01:52:44 -0400 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 1sOWRX-0007uT-3D for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:43 -0400 Received: from smarthost1.eviden.com ([80.78.11.82]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOWRV-0006TL-1Z for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1719899562; x=1751435562; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=tCY2NdsV8FgpVvvkIkKruBVxFFeDxZcEieTETr17l/M=; b=SouFc/UvLQ0KM0/FufwgxrG47IUdPmlewOsINjhHEllpUh6FIbU1mcEZ 8EWATvNM7V0Rg0FuB3bl+iYWfKRxvam3c3C8kRTX8gj6mlnCRVkjbHI4M nkMc5ho3E0uUBYuPNtj/0m0ZrB/3hxLput2zvQ3ewJ4JBwYAapweVJvDH GpwPW0Mp+GLn+hSZvYth3P5M4h62UXjJ+0hW37lm14ZVtDiYf+l1pN7Tj WtmS5NVb/uqyW+R2CjLmabPVQwwilYyvjxRUBhJy/fwGmncqfPjmWreEs Ha/IObdWIpl17/8Fxf7Zc7nYJwAVYGY1XmxicsCocsU11lPRncX+rXALx Q==; X-IronPort-AV: E=Sophos;i="6.09,178,1716242400"; d="scan'208";a="15715676" X-MGA-submission: MDHtOmzfwSvXI4JG+pWR59a5WhZG2P2g3lvumXr72PAQb00I80NigTjj5WWL7zdojv7YjxZ5SP+ia+Vm5eIO4Onl+5yBNnj+AV+mYqdM2pXpIZa+IYylbKhLcFZDJKIta7G1jKKoUyee8KgaE0BRpxj4182Y4hy4LtiuV9XWoO4g5g== Received: from mail-am6eur05lp2105.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.105]) by smarthost1.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jul 2024 07:52:39 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=juU7P/IX6Na8zo0nG/bdQw1k+0Ub3nwdm2fRiVcvsizCBkZ4gsMC14vHVWDcFVTgVGjqqeh0ldxUfPfsCCr9Z83yo9zZ2vokpdY2r73w9IuEQidCfhIocBIDrpcbUlN/BUSHk0E13MPkyapHnyW0AJ6g9KAz1eGfTEGv1+3cdheO55UBjke14xeYZ55ZrYmiTEIrBb4BCWv09x1YsD4Z8oJ9yKovnLy0ZLmSZjTCXjAS4U2NXPKDYVUajggKaaHg3XHZvtLS0OYjt4wVWi5fDsoMC5qinMIS+ukA+QtStlrdwcG5CadcnzHsNKX+LAPqllvNpOc3ekkKRQpdRLoh2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=tCY2NdsV8FgpVvvkIkKruBVxFFeDxZcEieTETr17l/M=; b=E39W9ngEyvNHy2oFEZUwfDwbDs58b5MJcTodN+LKugltbBvby9muqvG7nRuFZ7b5V9cCpLJmjmGkBCIGqacOBRC6pNpQZ+MzFaXjmXb4MBg0iTLWDfQY3cJ7uEYVDT7TjsSoasvxj1SamwetUq2eZvQPUQ8O8qQ8+hDgrVGYQKceDk0ZFM5Ncx9zYlFaSo94IGB3dIikW0nJGUSc7lN4J6dvy4TwpDcUly98aX1dkDYTAbtw6wBPqMO6VwdjLvCChFiv5bZOzADj3bvVvE8d/eloKfzBKFpRzxwWlnOxDPUoZbLIr7FakLA2IZTM1C0iSsBBWaXa48kr8++Fde9xuw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tCY2NdsV8FgpVvvkIkKruBVxFFeDxZcEieTETr17l/M=; b=Gqub4UZJS8gSESLSQVFxZhJ0UbU3KMhWYKpEPLzU2RsPbid4wdZgXMioQYrskKSoFvybZ8krnDmmvUqnxPf7L4Xviqa8La4qK0BL3j9R8xTnXT2tcMgkJhNu7ylwITFL//+Z9jQWnTM9gMGC1kegSnbVyxGP81FbAxmR1SXXusz2XUKlR8R4Vd6aYZ5YWZ1EZvc87xDqoAMVu7+ecXHOFmZBPWWcVWXD1H/cOsUiSGX+JNB0E+tOMWhtsaHZpnKpfH2ALnICNxRpmYYZ8EWUYiOUA6lC6nTyuxHEzRgkYW/cip1gNrG0Epv0BZjms6vnTtMhTP+8C5eafMi1B9GSjg== Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7080.eurprd07.prod.outlook.com (2603:10a6:20b:239::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.21; Tue, 2 Jul 2024 05:52:36 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7741.017; Tue, 2 Jul 2024 05:52:36 +0000 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , "mst@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v5 08/22] intel_iommu: declare supported PASID size Thread-Topic: [PATCH ats_vtd v5 08/22] intel_iommu: declare supported PASID size Thread-Index: AQHazEQKCL6APuAIA0yeft7aOMEPog== Date: Tue, 2 Jul 2024 05:52:36 +0000 Message-ID: <20240702055221.1337035-9-clement.mathieu--drif@eviden.com> References: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AS8PR07MB7080:EE_ x-ms-office365-filtering-correlation-id: c026e771-9bab-440d-7cd9-08dc9a5b2d09 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?q?gCe5i5vPmOTxElr0OTVYB7Cs+8xAQx6?= =?utf-8?q?WKDIVfVM8H8JQBZEf7SybDwK2cWMCiEwwcOCKFzco1EDv62mWfZHiLcOV+MvNIYkf?= =?utf-8?q?qTxxRWDsxBvCerw/GwcUylKCACRi7YYXlX21+FozZrQdhyNiUFh+LxK/y5QF4IyCz?= =?utf-8?q?CDuRkMaD7n2YkDPeKxc+u+un3LdRkL38RLvxy+zHY68+xyoyX2I9c6gLugE+H8Gki?= =?utf-8?q?taUwb7El9E65t2SzOPe9d4cZNVeakK+lDBWGcuhpq6EKbgKJYGkc6uSQRB8ffsgto?= =?utf-8?q?xyl+/j8D+ORcQLYGSiESMYJn9qJ3DlaOCwsHstt7CF8pQurdTxQNEbgbw9r5D/6u8?= =?utf-8?q?OczGLCQdw3g8QnwJLmKDVVupBShIwX8GH06XKlO1kCHw3w/ZiHTzqfX/lA95kg36T?= =?utf-8?q?HQ8BPXDpHwazimhMIZmX42M4y960L/id9GN6DPwRt0hLMoVeenA9IvXobeNjYb7Gg?= =?utf-8?q?yNVrWStnZ1a3eJPtfFzvhx1f/ZIlmpTNCCRqmwX9sQLdNEaftUcLIP/pCbH/HCzj0?= =?utf-8?q?+TDXlksQh2Xtc+bbZnVFkS0ouseBXP0NtQ810Heo1+6lbE927kt6qG5SKjP1Ja9Wp?= =?utf-8?q?cumoifeiRihqLvrJtrHYfjHlUnIORAh4jfA8/uK9oW0zK6mH+n/99FEILN02I/cwl?= =?utf-8?q?DzHn0reBeYemcZEhkvmaug1o6NMfoBuJmk/ll4u93ob4JOrR14qDsQBPk3G1z1t4D?= =?utf-8?q?ftE595TewaprXKi+JIIYF1LMi8XbVP83+FG+kMYv2FQgWUmag5a+KiIGs8I7odXAY?= =?utf-8?q?nSPAnBcGTaoSf0Gc8WaKVmcrlx9C+DpZF8FY38Ppy3iTC3+ow7nqvxie2ZwteZdUf?= =?utf-8?q?mrSLYFEXQ7BSITsSnxZLIPBHiCoE4+Xp38rTvhG7hm11oCtZEUIjhBAwtxDpYXYU8?= =?utf-8?q?IBTuRuKVURjV40VzFxHxSDFiuBS9+DpC6+lDWrlWpTu4f1D9KeSRSY2lHHs8kzz1H?= =?utf-8?q?DgKKhWIHx65p2RO/xUhrZym5YbNEOaSHOdcFpwIXJSZ4AaDroTM3umcMvqWF47agN?= =?utf-8?q?KSiZrdGJQ5yJx1vhWyvNE84T3gbK8JCMtF4Ua7Oq5QRiv0uqPGZxBqx9Uv6sZFxTQ?= =?utf-8?q?EbfjjfGfZc98HYWsE3oJ2IPnOiZwHJVHzBgDplLw/85blNBqkIa/zbvr+UuVabgtM?= =?utf-8?q?BGn94ioOKQL81PVzkuVxDg3naFe7f013Kzo16dwYzfWckhCXCyXy4kOLcGyn4c0xv?= =?utf-8?q?GAHco7nmwMd4k8xpA5442XUiDC6SsBIpUTZoDPhz16e/rofAMR3j5OaStKL8mLWDI?= =?utf-8?q?PB57L+ISExydKybWbt80JZkP1WJfkPq5sB1tQE8ezs5g68E1V2LPObNvnNCnzaY3f?= =?utf-8?q?ysdi4EL7Vaq0LO3kd1yf6F72BwoaIZZ8iQ=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?utO0pZ2VgbH2Af9B1yXYljnSlkFO?= =?utf-8?q?fVpAkh70FPdV+Hu9IgMyGZySE0YBjftCZDmx67+SY9HGObAw9FLh5zd+SG3tCUSw5?= =?utf-8?q?uFSoCVBrjDR90Idu0e76bkQZCSE3Q2CmxXxIgCYjK9bft5VTBDnGV23dPxCCcX+Fz?= =?utf-8?q?BHLGKM23Hsywb2CVEA9A04S4g9fjqp8PmlvaAFfgrxrKrC0LfgLAMjM3AoFsNfXBy?= =?utf-8?q?CCb4a0URqfwmypUO0clF8ER4qQRHCBPQT9OfY/2Ytnn6wKafve0IEcQWIPX4HYkHZ?= =?utf-8?q?Ge/ZhqB8lj48qK/Z7Z+Z/0XAnKoQ31wpCYEFL2ZgKeiJwDwGhlnexp/eFMKZp0ZgI?= =?utf-8?q?3Ti2KAaFjpu48M9sShTWbjpGaEkGDNEZ64Zuwnq0K/9i4u3TpmGgVo/YjIsuOwWyv?= =?utf-8?q?Fh4YXhrYKWNf2mZD529bfExkZdR8rDPVXjxVu9z2ABzfXQZe/Ru9X8G4/Hg2lUi+X?= =?utf-8?q?lmQUdzPFDG58WpybnI5Y8uDSViNIXGNle7E4iMuE8wuCJLSqdbDENWf3CEv5WtY+j?= =?utf-8?q?HatIpaLjpdnb/yr3mBnP6ne7BNhr8HhImJ+nGSelfbUTkY1vFJ776XdddnOP/gjvI?= =?utf-8?q?cohbg7aB13Ow0VTN3UwBtS1aFAHdv1FDZ/xj52HsYS46JXu3++xq1bTasLrE7fnaJ?= =?utf-8?q?+rsJfXPCRGduyvjfliv5hQ7gAm5jE6XNBP21Y4UwlXFYde/aFa7DuqoDjaQC5N8tn?= =?utf-8?q?qf4z13wJ4hT9yYc2R/wJcQUjFuOgxyRwAdkPEDnVOEx7QmPBt+Usg+JTDWIKxYMjt?= =?utf-8?q?3vjhfe8pbRBaJg6cw2a0r0+FLivNzqOPo9jJSd3Lk3gTb8CNnePxWIWj24qyD7y2e?= =?utf-8?q?xfa3kK3LUpkFHRa1sj891wvJfFv3Tr/r+EpAjZTh9ZjMO91If+sY8EaNrYLMjPM/b?= =?utf-8?q?anGe+QUTwW9qSDZ+2vDXOzQ9pb8KRc0xSHydhq9FI8LyO1A4YaeaXf2oRZxRuBV5i?= =?utf-8?q?f9Ur0fZeLZUdtK6lOlkb4WBKfTDBbAmrZnxHQVqjOVQMk3ytPDEP2CCJcjk5F19xv?= =?utf-8?q?xSIj86p+AFKRwNT/Niljp9AkeVdDTR8jMW56388rJ0eVYdTBnLwHxpLWYThYhs3FF?= =?utf-8?q?pQA/63K7lKFqEfQ+GvZh01l+j7B8hhJZUmVUvji7+Qx5kzLWi99X+kJKhbKq/kaDo?= =?utf-8?q?998KdUlCLpYxaUiesWbXVAchwqcp+DWaNnDd4z94PxxhtmKbfX95qYe8Tteud0xS8?= =?utf-8?q?g/yFvdzEp9Xzl41iqfqxem+aJoLXZXFKxAlbij4bgjjcFnSepMfdVrGNIbNG5pUrb?= =?utf-8?q?jILV68zihd/W6DWkQWNn145tAUqnpXqi4R0R/pv0A6CB2pxHr69kpUe1MkRcsuihx?= =?utf-8?q?0dOLqmpNM0/npGENL8b3z2eWY4LTRsgITFXZPmsm1NwksaOTCiBsHlWq4o3xsMZms?= =?utf-8?q?21INXjdRce2DcwQvLIHeyy2jcpN0BJCYDTAOOvQDrSpe0lTdgGB+sovN6rEtC97Ge?= =?utf-8?q?OJTfbxwfHeFs1WYeXd5acuBTeGcVFHbfhUmE/WsytpVShBRZiie/oMjRjsSW7G1sT?= =?utf-8?q?xPNZyW8WGCGeHKD8kQHDmx7EoO3BqPYv3mrG+9UHymNmWIzM9a+zrR0=3D?= Content-ID: MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c026e771-9bab-440d-7cd9-08dc9a5b2d09 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2024 05:52:36.7892 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: jwbO+WzJBMsRHTBrVHVLVJ+EcJ3emH7xA3P2b9hatRwKZ9nXEMcGTFEGr4wm0b5RmPQ4YIVZd1gE7fTWjT8fC1bTUHMYAqVoprGgwMqby1Dcr8dpNV86ggvrurT9NhMm X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7080 Received-SPF: pass client-ip=80.78.11.82; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost1.eviden.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: Clément Mathieu--Drif Signed-off-by: Clément Mathieu--Drif --- hw/i386/intel_iommu.c | 2 +- hw/i386/intel_iommu_internal.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 71cebe2fd3..2a78fc823f 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -5860,7 +5860,7 @@ static void vtd_cap_init(IntelIOMMUState *s) } if (s->pasid) { - s->ecap |= VTD_ECAP_PASID; + s->ecap |= VTD_ECAP_PASID | VTD_ECAP_PSS; } } diff --git a/hw/i386/intel_iommu_internal.h b/hw/i386/intel_iommu_internal.h index bd20746318..117dc96d22 100644 --- a/hw/i386/intel_iommu_internal.h +++ b/hw/i386/intel_iommu_internal.h @@ -194,6 +194,7 @@ #define VTD_ECAP_MHMV (15ULL << 20) #define VTD_ECAP_NEST (1ULL << 26) #define VTD_ECAP_SRS (1ULL << 31) +#define VTD_ECAP_PSS (19ULL << 35) #define VTD_ECAP_PASID (1ULL << 40) #define VTD_ECAP_SMTS (1ULL << 43) #define VTD_ECAP_SLTS (1ULL << 46) From patchwork Tue Jul 2 05:52:37 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: CLEMENT MATHIEU--DRIF X-Patchwork-Id: 13718992 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 894C8C3064D for ; Tue, 2 Jul 2024 05:55:00 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sOWRb-0007y9-Cz; Tue, 02 Jul 2024 01:52:47 -0400 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 1sOWRY-0007vC-LC for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:44 -0400 Received: from smarthost2.eviden.com ([80.78.11.83]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOWRV-0006Un-EX for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:44 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1719899561; x=1751435561; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=xaxAGyD4o2O8sCWULUZmUAxQhty2kaey6TC3HEo4ugw=; b=BoIjCKwmxYWeEl1Mh+YGloGufo7COqD1eHD98+pIuzZZF1AGk6gE/1ie bg2Icq5ut+Gg49LQj1zXIKD+oGdwXMkrPHhFWLOMEnsRejO+buJJH/4lP Vl+3IbmCR2a7OF8vKg8gIxt1n9DmaqMF18LBuWaDts1+xaHykkTVNntum g9nSADwJhTSUvUf8yD93ECgk5Lz7fyHZvndljmyKjsNf/Ozd68eYrAQix RayPlPThmU/pn6EkQokCU7SpfXDHtrBuE94OJ7Ga9pNwTh4HPKMridnON +GXihuVfSgb7AoF6qqQe2vvY4wvKECsGeCYZRqKQWpZUpAYqvjCSY5HQ9 A==; X-IronPort-AV: E=Sophos;i="6.09,178,1716242400"; d="scan'208";a="15721521" X-MGA-submission: MDFYoE9tbcJ6B2npvCda6XPRaKqmw+1lDiukpcLyiA4H/T/XBKq82twj3YCKmV7NOY31yxKfJ/y4dz0cWrU7MgdXuibeoCNSBzuJLdpne1bF8uiZlp5XD4NVyJrQA/NNU0585dMv3hZ+zu8KSwH+L87O3hlzgoF2DRQU0ksVbOVlLA== Received: from mail-am6eur05lp2110.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.110]) by smarthost2.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jul 2024 07:52:39 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XpHXm1lTY8/8TeYs7XpMG7Z3sWjOy3iVyEPZR1caXOTaJt0efizzRBmi0/Q5KyyKdMbSWgxUpSavCPp1kDyOf6XdU9LOtd98GhJy5pmvY0J1IfZhPlKzey37Zb0unRa3s5p7+TAwoGW093y5WyrqgCsAGN8qcMUtITiLtJbfSkeCoriGFtgQSwJzIvdjkDz5AJpFb161Wq3RI4Ne62gLlbfpM+57HaDCLnzR4K617ukWAgnjP4ffDdmBsZfvfjnuvOsu+p1HompvVrO3KcyIGPrN6s5NuEVy07N66v7zDdM3i/X6PmGdvQVHYTcLNDXnKuo1zHazgwETD3h93wMtwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=xaxAGyD4o2O8sCWULUZmUAxQhty2kaey6TC3HEo4ugw=; b=D+w+tC+Es6ZSuWvazmveG4yHm/Y4GbBwOMdZpUCCSOu4fQokIPRuv8+Vs6252SByuMP/MD9TXcKBVVYK3KpeXUAEfolXXsrgWWJm/GKnyY2wmQdTo8KEVULzWo4iM34POk/TtjwDIzFAGlO2+nulrgxpscP0thqNfwVBmxdduvAi84dmtwwMMseQtFvbW17sLhfyN4If4o777h5YHqVVefacr5jDcE4Nn1bFug2iBfjnPkLP4bZ61MEPp/VfK+hozMMRx/5jZbB826WXYu80vE+cUKUXLUi9QOPdjzRpbsY64XDSnhMVg379+zPnnE1KzVFlfiYQSMexJJioW4DBaQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xaxAGyD4o2O8sCWULUZmUAxQhty2kaey6TC3HEo4ugw=; b=pZBAFwxnVvpw7+QEnGgMpqp7QhUYdlHsKdWT8iTCFDe1nNK86yLdcvpGDwzAcEP23ksdJLbQCgBb5dQHzyGLRxowArcXD5LjK9lx8HVzXemLg7/64PGqpXO005WbsrvEoCJ1KdyFsj2PmkS6RQrvK5aKDtUuVlH+GFNBK86ZbDC11/rtA8wSfJnzyTFP/e4u2HCcbgKDidjylQQ/2fh17vXst8VQ3V2EYxdtoQbyC7Nb4vh5GZi5WkjbZ1X1txJgOeBdWMNTCyvDtasxl3h8mgBsC5MwiaSyWFWZFsBjxCTgYCMMHHk4Zho0glI1oUpSMeWGbhsBsL6lZDr5lg6HOg== Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7080.eurprd07.prod.outlook.com (2603:10a6:20b:239::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.21; Tue, 2 Jul 2024 05:52:37 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7741.017; Tue, 2 Jul 2024 05:52:37 +0000 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , "mst@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v5 09/22] pci: cache the bus mastering status in the device Thread-Topic: [PATCH ats_vtd v5 09/22] pci: cache the bus mastering status in the device Thread-Index: AQHazEQKdi6Jv3RtX0yfGUZA/khw1A== Date: Tue, 2 Jul 2024 05:52:37 +0000 Message-ID: <20240702055221.1337035-10-clement.mathieu--drif@eviden.com> References: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AS8PR07MB7080:EE_ x-ms-office365-filtering-correlation-id: a4f7b8c4-a2c2-4606-eeb6-08dc9a5b2d7b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?q?0JmqRQbqvr0Bw/Xg9tacO5n+nqSHtxJ?= =?utf-8?q?JxM8HBCmrT9l2i4NL7nA/B0qCLZyMAkeAbLftWsBHDTa+o1sWD3UFedUJ4AWJmDLU?= =?utf-8?q?01WzwkLosmxjTsLRt3Jm9Qu/Uh/oqjppavU4vggUGvqHuiVzsK7P5t9UClO9R7hUY?= =?utf-8?q?Ay/u05vhSmYZFO5x6mT5xiaScKvV5Z+04jdfXFVNGE5EbNX94xblI1zidtgVVPipV?= =?utf-8?q?HEURO+aBgbf8fIkqQ/ogM44Ntr0O9frxUkQVDwCLbXx/T1KovPzQWY8W8HILIbCDi?= =?utf-8?q?bYTbwjdJVJFqQiOaUwrGntfh2BjVyNExKwDB3LNLR2JEMMb/gBI6vS1jnSwEyXP0s?= =?utf-8?q?+qiDbLYWWGpQcvIRBx+My4/oCFZ0A3KdBXjjwOqxw9zbRD08KJ/2QDeNJw0OR2Vdx?= =?utf-8?q?YLSFovQ3tBUN8CVLr+L250fIJJz7tBmVYIxIUH8q51EsMWCN0xGZWgkqwCbyDK/zj?= =?utf-8?q?84aAC3iqVrhzDwhq2jEpk9F7HVQlQ/mFLbPtRzLISbUnXq56FLwcn0ClD/jqza9T6?= =?utf-8?q?R4TDixhX9xDjVY+lzGgJPjCwe2fW9z2S4grGZVO4Xx8SabSZfK7VtRL7ldpWqaPF4?= =?utf-8?q?F6+HZYY3Hc+04ShXYCNKRuvJlXFcO5s+LoerQzTXzcF1rrBgDFLJz1GeXcW2mLnHx?= =?utf-8?q?PP7Z6kR5hiiaeud3590HCPI8CuCP/EyhzNbDAFAiA9y3W7BhsILMQ+b8viUWWhCN1?= =?utf-8?q?UwuRtMu6peB2DsEM2VUfLX9e2C64xDmqGFJTASLND5oALqS+6eltV6jTT/TkSr2tb?= =?utf-8?q?UEYNpaqPkDVf/Qad4rX5kf9KOxYBnyrle+Nqh7qMdy/3CO/g2iMV2L33VbHoLprgO?= =?utf-8?q?dbn6QW2kgHHVwv4ZyiqmJP1Iemow3p9zWX9FWp3D5Ll/3ktGE+oIFaOz+q4PQsS2/?= =?utf-8?q?SxcGonm0m6818/a93DX81H4oogyF6UuBo+1CS73prUVHgyskDGrWmDGW1wQ3YxU0R?= =?utf-8?q?kby0/nSVMQZmE1PU8H5gh23ptlr4APY+ZEntIqUXa8Nha3G75zOvc8uulsx1/LDrq?= =?utf-8?q?KLFNp4yVQA9OCo1XKH2gjFwCCvVoGfLpRraTNz/kIhG3r82S44dYWLSyIXjcquQjF?= =?utf-8?q?bsK+ILLhUOED7IAYoNX2dAy7O5L4g0ga+aRNfMG3/Bstqlg7I36ie/rQSDvWPFB0h?= =?utf-8?q?10vosS/0Noi2I8v6MKN6nFNrkYYKkZB0PW0PTnPPyuUO4HwVWBFvofr52egixoqhS?= =?utf-8?q?PwNx6W5W5EKdZNIsZBYDvHyrOuvi+gnfOSUEsBN36QDd485f0BvEad8xq85Rz1bJ2?= =?utf-8?q?iSD5TD1jahJ0QxQwmvwnHIaAOjtcY188Ly5BAXoIUNN2l9hXMSlkunJ00MZISgo3j?= =?utf-8?q?1mHBwWHSGDrSSb+T3GX/7QUTwVQ9SYvETA=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?TgTvZMZzOOWxacf0ixwukwUkq+KH?= =?utf-8?q?68d39zHCkQHPynLbeKYEbrOTqjHXe2g1wgOG5EmJgN1M0dV38hpeOfJyuXM9D4S8e?= =?utf-8?q?uBolV5/6anjs5NDwJWIGf8yOxdZ+QDtKo+QGY0ilY9MGAiRQ+hghmMoAguX3tztXP?= =?utf-8?q?31LREkxrf85KS9xhgP9gYmKMbDX3p/dfrZ7frm+ThVaq2+vtT56UwTcvS3eSdQHq+?= =?utf-8?q?k/BA3knYEl77e7UUkSnCTJE+0CqPzLfNbAV95gFUxQcQagCL965d/MWMvDxoNjnlX?= =?utf-8?q?IvUWDZHtoD+hRYK0Ma/oQSpFDcEP+qqCoqoCrG5zkPQiB833lT0Hhwh2Ob6gYGfL6?= =?utf-8?q?OeKA4EkliecOBxR6Zxc70M+SbEvvENaBl5VTXk3Qv6cF0aVcn7geOo2jmr9OlaTS+?= =?utf-8?q?abFXm/v7/Tt94XVlqjahMQqk4gtakjP07mSRBMXiCow00O0HZT/JL+Y2PLW8qy7Lo?= =?utf-8?q?mMXD14W6kju/p+3hCQ3bIeVwE0B9R5+06/H4oZcuUWswpJNRj4nTpnpSdnXSWQ7gz?= =?utf-8?q?g8YID19SLV4NnvzpIUgGIpVvy1KsdgUN/Ra9Y2H7xIiU6m/C4e1iBWEGjKLTmBykv?= =?utf-8?q?8OFmE2OuYtf+SDG8fm7BIceLFY0OebUQf3ninUzYWU+BE4mq3k+pNi0PP9P1AsUO2?= =?utf-8?q?gAI19r4kSBVaeEW33J111GJlQpvXstYXXg9M3S543ViutvE0v5A1z6rPbXvUxKkN2?= =?utf-8?q?9IvR4BV2YzG2vzrksBfQdq4cNzDGx4zrrxKB7nxzw2D1KG4y/H/8UdNa2PT8rmsMR?= =?utf-8?q?k6F7hW9Loh6qbtHxjKypnq1rfnZ0dbvPuJd681k2u+g1Khxkpfc+LEqXz00sEZ87j?= =?utf-8?q?R4vmz6LPP9GoNGb573VGE1vvm8EVJw+yTE+zg+NFW9bTjuBFcJOnOMXen+xQiWEUd?= =?utf-8?q?gS2FvWSIk6LdkAYqsjF9S/bpHjL+5Tp0OcD9UEkzB2SG3nPXc6tk3uWKOCHdK/iXi?= =?utf-8?q?Wvnlgfm/6Hf22ojO8DZeDxD6AGd3eMoX+84iTnqTZY+xZRz/G8qU6hhT1c5eJnzbS?= =?utf-8?q?n4+iN6bRSsylVKzbXVlxDIWdbBnBprXOralkA5ZgUEJUkXSZjGrxQeh7kWet5wty4?= =?utf-8?q?9yxUBHFHuNn7LoaXFLwJxdz849LUtkvyLtndJyrjARph2KS/OiDyjBG5D5TY5lnHp?= =?utf-8?q?Q8+3ZieMlkhiY9hB+QpXZT+flCjJD0HAu7IIR3ZphDoXPAFXXzGeWw8VO356Ky3la?= =?utf-8?q?WpY9Z4z+fSNbcn3PH/+oePz2qVpe4CiV847X0aasayj7JON19fQ8uw3Wc5nMxVXcI?= =?utf-8?q?R0C1kzmvdWgdcVwd3PMXlHBslHnTebTJrucHUevUBi98BTVB8bG4y6IuY+ER/xAsT?= =?utf-8?q?RVtCXhtO5Xrnd3aDDhAXJtI/WP9Msp+MbrUFZKqExphY/bXbMAvibXgdprPArtDES?= =?utf-8?q?ymQCNoEeheMacIZVCnKI+d3WGP6Wc0bJcvqPdfTWBncc6lE6vAtLIduCSmDlS+m5p?= =?utf-8?q?6OjdK6numZbYSEndpi+jiSD2LHQhgmcidzXN2TJ8dpDtxAueNm5ItIxkXGrQELO34?= =?utf-8?q?rh7lkyA7GU0ozOgMAGwskcMf/Sk8o/eits2O3k0miPNo37YUh2h9KR8=3D?= Content-ID: <9F1B17DE31F2584CB2DDCC2E5C7D9DBB@eurprd07.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a4f7b8c4-a2c2-4606-eeb6-08dc9a5b2d7b X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2024 05:52:37.5268 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 05dRWd4oLmFAFJ0ocYmjjfvcWa5Y4Iq8dx7SWaXv7NrV1MmSaehrNRGo+6rJrrYBRKzQCuD8bNysFY/cvvkSsJGM349ZUiVtrDTLnNBEhL3BXdWPalF4+nHAAmgWdtFd X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7080 Received-SPF: pass client-ip=80.78.11.83; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost2.eviden.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: Clément Mathieu--Drif Signed-off-by: Clément Mathieu--Drif --- hw/pci/pci.c | 24 ++++++++++++++---------- include/hw/pci/pci_device.h | 1 + 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/hw/pci/pci.c b/hw/pci/pci.c index c8a8aab306..51feede3cf 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -116,6 +116,12 @@ static GSequence *pci_acpi_index_list(void) return used_acpi_index_list; } +static void pci_set_master(PCIDevice *d, bool enable) +{ + memory_region_set_enabled(&d->bus_master_enable_region, enable); + d->is_master = enable; /* cache the status */ +} + static void pci_init_bus_master(PCIDevice *pci_dev) { AddressSpace *dma_as = pci_device_iommu_address_space(pci_dev); @@ -123,7 +129,7 @@ static void pci_init_bus_master(PCIDevice *pci_dev) memory_region_init_alias(&pci_dev->bus_master_enable_region, OBJECT(pci_dev), "bus master", dma_as->root, 0, memory_region_size(dma_as->root)); - memory_region_set_enabled(&pci_dev->bus_master_enable_region, false); + pci_set_master(pci_dev, false); memory_region_add_subregion(&pci_dev->bus_master_container_region, 0, &pci_dev->bus_master_enable_region); } @@ -657,9 +663,8 @@ static int get_pci_config_device(QEMUFile *f, void *pv, size_t size, pci_bridge_update_mappings(PCI_BRIDGE(s)); } - memory_region_set_enabled(&s->bus_master_enable_region, - pci_get_word(s->config + PCI_COMMAND) - & PCI_COMMAND_MASTER); + pci_set_master(s, + pci_get_word(s->config + PCI_COMMAND) & PCI_COMMAND_MASTER); g_free(config); return 0; @@ -1611,9 +1616,9 @@ void pci_default_write_config(PCIDevice *d, uint32_t addr, uint32_t val_in, int if (ranges_overlap(addr, l, PCI_COMMAND, 2)) { pci_update_irq_disabled(d, was_irq_disabled); - memory_region_set_enabled(&d->bus_master_enable_region, - (pci_get_word(d->config + PCI_COMMAND) - & PCI_COMMAND_MASTER) && d->has_power); + pci_set_master(d, + (pci_get_word(d->config + PCI_COMMAND) & + PCI_COMMAND_MASTER) && d->has_power); } msi_write_config(d, addr, val_in, l); @@ -2888,9 +2893,8 @@ void pci_set_power(PCIDevice *d, bool state) d->has_power = state; pci_update_mappings(d); - memory_region_set_enabled(&d->bus_master_enable_region, - (pci_get_word(d->config + PCI_COMMAND) - & PCI_COMMAND_MASTER) && d->has_power); + pci_set_master(d, (pci_get_word(d->config + PCI_COMMAND) + & PCI_COMMAND_MASTER) && d->has_power); if (!d->has_power) { pci_device_reset(d); } diff --git a/include/hw/pci/pci_device.h b/include/hw/pci/pci_device.h index d3dd0f64b2..7fa501569a 100644 --- a/include/hw/pci/pci_device.h +++ b/include/hw/pci/pci_device.h @@ -87,6 +87,7 @@ struct PCIDevice { char name[64]; PCIIORegion io_regions[PCI_NUM_REGIONS]; AddressSpace bus_master_as; + bool is_master; MemoryRegion bus_master_container_region; MemoryRegion bus_master_enable_region; From patchwork Tue Jul 2 05:52:38 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: CLEMENT MATHIEU--DRIF X-Patchwork-Id: 13718990 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 54A05C3064D for ; Tue, 2 Jul 2024 05:54:57 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sOWRd-0007zX-8K; Tue, 02 Jul 2024 01:52:49 -0400 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 1sOWRb-0007xz-2A for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:47 -0400 Received: from smarthost4.eviden.com ([80.78.11.85]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOWRW-0006Ul-Tk for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1719899563; x=1751435563; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=zkJMhn6Ml9XGShA6gJ/fp2L2yFf66JtkXA9Arp7muWQ=; b=mDzDwKNcf4OrkP7692aNIlIIHgaIAeIYmVab1pZycJ2fJoB/mKdm5MhB Gn0gpdB9Akik2glCUbeTnyOS/6whym7LuFV4vgL+ImucKBP9kkcqcPfXA CSG5XFPkR2MX11Bu7f24EbfnIXnX8KD8u21jxhB4I+Auj26bfsEKInk9l v/ViV8C3v/tgjWtYfp89dnAXhJf/jEXbpyAhuLiy75MISByLylJaUkDtt 8Dmk7p6lsDmAerdIA0+dm68QudLKFYjXdwK/HBlXFMZrIDrleun6/B2TQ vxymLPnljEOoP77PipQnfWu/09DnFGRMWOi1UU39X+a241ukAz1cW1nwl Q==; X-IronPort-AV: E=Sophos;i="6.09,178,1716242400"; d="scan'208";a="15813261" X-MGA-submission: MDHhY7anJcmo5OK/qn8qVgNTqarJdUYnIcuCAimnxmaqPmm+vu5l0CNJ3vwygVe8W13B9V3M8ZZwAOCdGD17FVTLxFufwJ2cmhSYiXgHwiwqZkdKgQxCl4pJ267H57F1gTlbNWP6av0PCAU31r21KIWH2A5kzam70QYp2mP+MlVqxQ== Received: from mail-am6eur05lp2104.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.104]) by smarthost4.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jul 2024 07:52:39 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Bph7u7PLUJgHgTtDcQeROqT9uJOj2Ge9lg2XHhyWNew4n2bJjMex3Vsjkw78UwR4vVCv3pcENf+ZNeaz1mZGrZe62nKqdxWKZbjpvHUzto8jQSybItiDQxGgmi80U8Yd5iAjhEE1kU7qu9HDfy+/F7PbJwS4XY3xMxSjjqjvLG6MiBTG41yMqQOF4nhWTXBpFDHiEGRi6DUqpYdtGbWKbED4fxjNqo37uaQtXJxQihIaBDcf55SJ2rVWXqGAvFGIYzTEqlUOdqiz3pYaQgoIlya/rLwe57HTX17iY3z+y+d76t3kKaO08XbgRMDTKCM/0RKCAWfcXRkcBqSsCkV79w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=zkJMhn6Ml9XGShA6gJ/fp2L2yFf66JtkXA9Arp7muWQ=; b=Oijsr3KA+JeR/E138Wi8F/dJ5YaitbfFoZGI7yF34Mz+zi4UX5X7+tU4kYQxkmIWyZiGqmtaRVy7/XnhterFzOBnlOYLQxoxeB1IKzdoR9wB7JAlLU0rGjMrqMGPkU9jgMv2eRV8ewhJ/akV2bGSo7muaLuRN8ys4PaVq1eQmToDqtELIg2MJstxr2jG+Qm1PXo8IFLb9pCCR7rgX6kmr8AYcIQp1hYbiqNoLsSo2MtiZWJh0+M4FdIl9+dB8s0o6RP4uLgJQfNfcJnidIj1Eu6HG84CihdEZz8rCSEAk54ErOeuTBau7Xf38ream0/cBUa3jO1x3JA3MVDPeS6gbQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zkJMhn6Ml9XGShA6gJ/fp2L2yFf66JtkXA9Arp7muWQ=; b=Trcd7FWltE0pwvccyGdQ2/5xGOfX9935uqpdGlpmxUVuO3Vf1OmNruR2dZHCeV3zWCGaKxBycaql8idv+R1KT165xau21vBEGfc0Rn+v/aaIOtvLKQQvAjcb3qsA0gWjKlQWnln7z86DNT3bhSGF72hZUbQmjFzgTN+fjTolQW3fDh8xidrRGtDelZw5b8Fp4fdOT4Fdig7lzlKwO1LaudfAvx5d8Y8o9JpxWKlpxB3rPOUj3avPuMNcAC+aoDBKjc5ciUxe5mF8+la42dC7XEXi4Fklk/hrRobENuuu8SJ3ibLwwQ3IRvIchYzO/xWdRhgmWKx87rO5D4sRdDLn3A== Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7080.eurprd07.prod.outlook.com (2603:10a6:20b:239::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.21; Tue, 2 Jul 2024 05:52:38 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7741.017; Tue, 2 Jul 2024 05:52:38 +0000 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , "mst@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v5 10/22] pci: add IOMMU operations to get address spaces and memory regions with PASID Thread-Topic: [PATCH ats_vtd v5 10/22] pci: add IOMMU operations to get address spaces and memory regions with PASID Thread-Index: AQHazEQLkXBRqmEjB0WGDgHUwGi0UQ== Date: Tue, 2 Jul 2024 05:52:38 +0000 Message-ID: <20240702055221.1337035-11-clement.mathieu--drif@eviden.com> References: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AS8PR07MB7080:EE_ x-ms-office365-filtering-correlation-id: 51228d4c-2914-45ac-390e-08dc9a5b2de7 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?q?/FKUGYwuPxbTL7dDN1WwsonFpzgR8WL?= =?utf-8?q?piK9Oa/kpupFQylUcA7suABPtf6aoqfYRjFiT7eHdvhorb/bO2/PRnTW8gqBlapce?= =?utf-8?q?g99hExEv1v3lzVR+LTeHRbrA764ITOI1gzyytUBLDYb8B35TyMZzB+bGhfHyOnkl9?= =?utf-8?q?YjP6NanMWjc0TYovyZr54NKvjQYiXfljMiFR4gDmgM097WB/rHRDxmJWP4OBxkeNp?= =?utf-8?q?GbzQzPEg9dVdXP31JF2eteqMAI4h2UQ7IkwuZX3rVC6+le6eRgKGLJONBrPAc571n?= =?utf-8?q?3rQBy6xgobziRvPLDHisaiFoD9u4X+jIzYJ+7esQ9rOdN4OBqSNkiGzQbxs1T18ip?= =?utf-8?q?C10aAfdQ1Ltetl+IbC7vVObFj7qun3xod58JvfnetwGJ11e4vKuiSgVgHkE2R+Dqh?= =?utf-8?q?tL5zD0W8D3Sg7UMUYM6VHTD+qp2fMfkTg3dj7ZYyPKQdsgm2DQnHrEQcz44SA1kUM?= =?utf-8?q?qTskgxQyHw52Pfb18LGZHhUISbRnQ2Zv0aDJn33xh5gitt3X8s/usmn4DHeNPauUw?= =?utf-8?q?v9l8alG+8FEB7xXMxi/HL40FBb16wk/oiKAeJbFH2wxxRNdvE+YD3lt/t9EdxLuCI?= =?utf-8?q?6IU6uPOQJI7Bqw3iuTB6TKDIQTwr8B04naKP5q5ldE0UCXCfbntXWz4X1Ec302uNi?= =?utf-8?q?mqoIo2g2Vn/5SY39NywdzGxBg772/B9veI/83mwpQaLimliEnMhB6vlSDVjilgdGp?= =?utf-8?q?yPBstkz7uM4+lvlh3LWepyL04S2q6wixnp3AkiJb05DZXma+WRfEtN0tjICBVwp1P?= =?utf-8?q?Zq0DKlkB3WRM12BzPpde9JdvHaFp0u6x/5nHWJOENwhjRMdAMzCQJJJMxyGh9i+JF?= =?utf-8?q?HT5tQI5xtBGBBsLEPSkYomC7g/mGJ6F4MCNlsNd1P+3nvm4FlEPirnBP97AuC591x?= =?utf-8?q?OlZ+gOjAm+5RNfKtfd5Miu6ilAzQgVuUro/PXZebNUp/i8n98Kq/osEUnVeB/g52H?= =?utf-8?q?+elxMeIce7kf5Z7xMbE/nN2yYsFu1iUtFj/5kijanVAN7bcmmDziei5hGQxJN7g8c?= =?utf-8?q?H6nRXc3KYvblePFKZLG3lmqfmI3Irg6NechVm1U4W7BmCiwTZbukFv3Xe5NwIqr+b?= =?utf-8?q?Pkn8Pyx4tcLH+vcSwEmx09u0ZW9VTFRsfng6+hNdIWIvKlF8unXeP+4O5YiEYZkNy?= =?utf-8?q?DE7fSgESNJ0/o6gc9TQ6ovYcQhEX7xJskkCkyqHg1k2KuXQxnCQuZaouvUBdQO5eg?= =?utf-8?q?nTwJWS20ToePgjCNTkRLalPExhcN61ZssNXMy/0foztPuHkRL7SVKs7NnoRDkuBxI?= =?utf-8?q?sL+azTarRtYcLO142e9HNUdBop1ibTOsyuabGVcOHLbKgzOlhvllG0+9KHCuOHRvB?= =?utf-8?q?5JZJ/NeV2CeZmEQAlFCQey0i0AsDULpTvg=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?HHssSubIY+7TP8i06MkczGDuytB0?= =?utf-8?q?wo3TxR7SMACibGObpiLFLdPw4p6Z8RYY2p+m1Dw5TnwwurS84ei5fjm+OAem3payp?= =?utf-8?q?0hXw2XLzBgJwDcnkO/AiP9a+qnlMfXFW+TsFuf7KmSiAt0rZXGNiwjQHdhnlBrt0w?= =?utf-8?q?j7IH/sVh/IK/PfACsp0tvENPsgsvYB7mHn416ADiu0yJN4gCG8wGyg0KZcb/kTiH5?= =?utf-8?q?VkE/g2BQR9wzAF2ISEThyz04QH3335AQnvf369bQdZ6F4Bp+4Iox8vzvfCCmWSxSY?= =?utf-8?q?e5VZbf9krpE2HJlptq4JV89KHb94p29U/fjETkgYHMY4m/GSLz2P+MW1OTGYchpHB?= =?utf-8?q?JHwEw9Ivtn2MlqjTXlTAD7TD/ifA1OxJAHOiiHfYL47utdD2W75Mu4yRBxfWOKXrx?= =?utf-8?q?1KiwGp5Sm3OKWhYK3BiQzdbcnj9dOcw/PiWCyBGKWSZ6TpiLMo1U+wIfc2rvW+QuH?= =?utf-8?q?odXVtoI0dAnQkJ/pFzK/kZpey3dayk6qXSuMLEOaNAOHcx/Y/XdNOopfKVb9vRP6/?= =?utf-8?q?wT+lcBtCpqN6V6fro8QC5uTpPrA1UisnbkJ0Nwo/KNcC3M2DzOQCiHoCnATO4CXzz?= =?utf-8?q?iC3wIi627Ds92ejjn5iDQCRaCcZz/F10J+RQF7E7QM8DQX1UUu7DS/FZHPUFSq/4E?= =?utf-8?q?JsFmUEwMJpBIFrnJvyt1SdwZDByqgWaZjS7EzYtaObF8Ntv9oBoIly0GMPufxXEw0?= =?utf-8?q?EbSuy4ThlxLV/AMJZ5/SKV4U2wAVb6vSEitL5A3Jo+MdoS00tCvcduU8RgAkMwoF8?= =?utf-8?q?EV1GBoLTf4OhODfzykHYRy4TPTlfGQQe0RVEwGTxKgP+XeafQSU8SMe5g4Q6aKWLt?= =?utf-8?q?Sr8oAm2Lx8PJ2jkLfSudlL8n45LDhmj+rcklCpRwQRfxD/87h6emve+ZH1B6gPY2e?= =?utf-8?q?mvKJ0CKnv8OuXDb9bQBYG9pNE+Wv4JCPbRaeGGD4JVpyUvN+wG0O5NtB10+vSbVrf?= =?utf-8?q?MqIzHgEvP4lrQkGT/3IVuN/BzSFBvpTlhwJl1MyXn2SgChAn/gfmOVi0PJi75Wmy4?= =?utf-8?q?1uS4KYLH1kiNtODNOB4B39ykI5QSMhzOifbOvQagMYu9Kgx2J8rl4bJhdVql+7TFq?= =?utf-8?q?/4weg9iX7VcWJfJohoJYZcCeVDl2HSVcAvH0fLgrEv4Lmcn4b1NDBBV8pd89uoKvA?= =?utf-8?q?aGhN1MLdU8HySNHMo0rBvbQXrHRMKC8Nvx/Wrvc+qOnPaTtf1ImDyXItDB6yqS8EI?= =?utf-8?q?WgDZ9U2iAp54iZynImU83wzWV2E98UIgkHTBFBv8/JSEB+4nVvxePrHTTbPAmE3cT?= =?utf-8?q?224sQ+vFPkmhvrdNBgnbkwTd9wVd8YPi9rYHk9mMygr+VvmK5OVblPprWjqEuiImf?= =?utf-8?q?BIEoG4OYxW513v9O0PwQfWnBUkKbvrUbn0AC0CPyAPPhM9YfGgZjXiQhXgmKE35OJ?= =?utf-8?q?VxaTDxYgCZEOpkFrHNBMR2vODcM9UuOpNU2f7dwip6k0zzgHXIkl9Kmbosju/t1GD?= =?utf-8?q?bUQuLcBY4t4j0nVAjDTTV5M84o9WJ3KwgEgH6Jd9A0z1uJ1W2WGsSzG90EX5LTNvi?= =?utf-8?q?kJ1g8CklIhR6zHxSnOnXEvK70Wglay9j9ZrP+VVjkYVVSN0itBfFOwk=3D?= Content-ID: <1D60804810805E4A842D5B7FB3914E87@eurprd07.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 51228d4c-2914-45ac-390e-08dc9a5b2de7 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2024 05:52:38.2540 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: WQi6M1npZ/wGHKBukoSa7cz8gBLe4aE5Ysap9vhZ9a6n37vqrolx6rOQWtL1hcgtjwK+AqI0MU5Be3RCzZJ815LI0TRAtIHjdKh5QvzJqjFCXQlGoePrT4/YYw63ZBh2 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7080 Received-SPF: pass client-ip=80.78.11.85; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost4.eviden.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: Clément Mathieu--Drif Signed-off-by: Clément Mathieu--Drif --- hw/pci/pci.c | 19 +++++++++++++++++++ include/hw/pci/pci.h | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) diff --git a/hw/pci/pci.c b/hw/pci/pci.c index 51feede3cf..3fe47d4002 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -2747,6 +2747,25 @@ AddressSpace *pci_device_iommu_address_space(PCIDevice *dev) return &address_space_memory; } +AddressSpace *pci_device_iommu_address_space_pasid(PCIDevice *dev, + uint32_t pasid) +{ + PCIBus *bus; + PCIBus *iommu_bus; + int devfn; + + if (!dev->is_master || !pcie_pasid_enabled(dev) || pasid == PCI_NO_PASID) { + return NULL; + } + + pci_device_get_iommu_bus_devfn(dev, &bus, &iommu_bus, &devfn); + if (iommu_bus && iommu_bus->iommu_ops->get_address_space_pasid) { + return iommu_bus->iommu_ops->get_address_space_pasid(bus, + iommu_bus->iommu_opaque, devfn, pasid); + } + return NULL; +} + bool pci_device_set_iommu_device(PCIDevice *dev, HostIOMMUDevice *hiod, Error **errp) { diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h index eb26cac810..ad7bd2ade5 100644 --- a/include/hw/pci/pci.h +++ b/include/hw/pci/pci.h @@ -385,6 +385,38 @@ typedef struct PCIIOMMUOps { * @devfn: device and function number */ AddressSpace * (*get_address_space)(PCIBus *bus, void *opaque, int devfn); + /** + * @get_address_space_pasid: same as get_address_space but returns an + * address space with the requested PASID + * + * This callback is required for PASID-based operations + * + * @bus: the #PCIBus being accessed. + * + * @opaque: the data passed to pci_setup_iommu(). + * + * @devfn: device and function number + * + * @pasid: the pasid associated with the requested memory region + */ + AddressSpace * (*get_address_space_pasid)(PCIBus *bus, void *opaque, + int devfn, uint32_t pasid); + /** + * @get_memory_region_pasid: get the iommu memory region for a given + * device and pasid + * + * @bus: the #PCIBus being accessed. + * + * @opaque: the data passed to pci_setup_iommu(). + * + * @devfn: device and function number + * + * @pasid: the pasid associated with the requested memory region + */ + IOMMUMemoryRegion * (*get_memory_region_pasid)(PCIBus *bus, + void *opaque, + int devfn, + uint32_t pasid); /** * @set_iommu_device: attach a HostIOMMUDevice to a vIOMMU * @@ -420,6 +452,8 @@ typedef struct PCIIOMMUOps { } PCIIOMMUOps; AddressSpace *pci_device_iommu_address_space(PCIDevice *dev); +AddressSpace *pci_device_iommu_address_space_pasid(PCIDevice *dev, + uint32_t pasid); bool pci_device_set_iommu_device(PCIDevice *dev, HostIOMMUDevice *hiod, Error **errp); void pci_device_unset_iommu_device(PCIDevice *dev); From patchwork Tue Jul 2 05:52:38 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: CLEMENT MATHIEU--DRIF X-Patchwork-Id: 13718989 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E2FABC30658 for ; Tue, 2 Jul 2024 05:54:54 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sOWRf-000815-1m; Tue, 02 Jul 2024 01:52:51 -0400 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 1sOWRc-0007yM-3y for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:48 -0400 Received: from smarthost2.eviden.com ([80.78.11.83]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOWRY-0006Uc-GE for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:47 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1719899564; x=1751435564; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=Hc5l9iMS0hIGeK1Yyp7kRyUFTRfoq0lTUk/Ikx1qcEk=; b=uDEp6owyrXyG5/dBrUxflW0OIFhzmXrhET8vMHzqYJt4/PTXFtxBNGEC LfIzgeHPLkSfU+lSDm4WKLNp1cgDUgs2WbqDCBAQO8odTXknzNWi2S2sN ScySxz3iDsbrksu6isrqSi0KDS2moLhx7tvR+HS3+i2paFr2q1LZIGcu9 N8RVi2dze7ixH5t94BOBdQdBTORVBehM5pc9khPkV1K8eps6ZtujgmAD9 lyMt9iEaEf34vn/SnDvR8s4C0rUihDolrnob1uO97Ja4HoTf2MArZz2pk zuIVKmvizgnePGAwF05YHe+bAWbyEn3YbueIMLATHhXRbviYhLHHTSjWt Q==; X-IronPort-AV: E=Sophos;i="6.09,178,1716242400"; d="scan'208";a="15721523" X-MGA-submission: MDHunFQvuKlY5IMC5+XIvZjU2JALoYqSx/h1PGdLHYYiTj9XkbnKuwVKQk5RNF4MR2xFQbTuwkCrOMlsNCF6F/50supxmnQOmIJLxZysBXEQyyjTUdxOMr1uhx8TyB2a8d1mBURuiNpmusnBAnJYRpDWagwSy7rdrzJgmQdGkbYDIg== Received: from mail-am6eur05lp2104.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.104]) by smarthost2.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jul 2024 07:52:40 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=by98qBR8l2/abxeYVmlgroLV7sGBsrz8xSPy30pMwq+kFsRm7Z9kKjwh0YNZBsV4F8CW5buSoQ7DbWplRETUYDqsyfvGlNKtK4v+kVnmYqkrK7vgRWWG6REOKg2+g1CAZeJD7lqF1hZrNtUii80l4Ida6v2KlnjZC6jvjR1VmuWQMEm5kkAFK2zefILUqUQOeBFHHANV2dubFcHAP++KdNx9cNcPPmwwoD1KSePTML7Ss54oYtF/WMQSQDoGiVraTEepm3TZ6hhZxfGKnZyY90M+2EyXkSk8bQu2xcff8GIAk8uB7rWHm6ddsfuHBugxD2Bzur1M9i+4x8Qxp3dLFQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=Hc5l9iMS0hIGeK1Yyp7kRyUFTRfoq0lTUk/Ikx1qcEk=; b=NVFL8dAg4/siA4/0vu7H5j6ZZz+yBHJsN3l/s7529qeN4XNYBHHtEntpfoZ7xAQ5PSpJl7uBkMQ9/GGv9Ayq0YY/pFdVvKeaCpNiXNGh5dSdYqQFz9vs+TejFj8fzoA7RPkQRcVi0cP1xeRypW3JD+Z+N/Zi7LW8JAfDFrIjsHeRClkrsy+hU1pgqWF+9rrFSKKvhEXi5FEaBPDV3ud0iZsAGEw11R4cJ5J4JKcofkbgLP2o0/7p6vDLFqH11B4XzHjr9C/Qbt1Q46MPkoaFXtl+vgeSyTrnTnWzS4S3GRg2mq3q23RMtNILG3Pp8v5Tq+0bJ2w5NPIAjGaHKXq7rQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Hc5l9iMS0hIGeK1Yyp7kRyUFTRfoq0lTUk/Ikx1qcEk=; b=U98AoJY3TQQ85syHWVy8+d2ktrh8nOFki9Gnt6myccm0RYI1uDaPOHiy6NC3Qgeq/8qtidARSnZhk09akD3Lm5TcR/c2BRIbV3QwlNeSG9uJ65HpM5jEsPrdcGY/0cGDE+vTJf08ucLXqmoK5JUkCfnpk0I183K/geeJKWbkvKNmo5qaU0RbnofYs8M6v10oyka/AGEz9zQJ12noYX6wWDsqmw1WafnTCrADpnGPl9K08E1Y/I9y0y64IvhRwZngn29D4uEz9qdzVps4Z4kA25zCxF23TPOEMTxQk8mIx2a+H3yviu485xA0CG1SS8Kz9bJ2IGkSpTF0xFjihNhgow== Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7080.eurprd07.prod.outlook.com (2603:10a6:20b:239::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.21; Tue, 2 Jul 2024 05:52:39 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7741.017; Tue, 2 Jul 2024 05:52:39 +0000 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , "mst@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v5 11/22] memory: store user data pointer in the IOMMU notifiers Thread-Topic: [PATCH ats_vtd v5 11/22] memory: store user data pointer in the IOMMU notifiers Thread-Index: AQHazEQLU37p2/DTDEm/CBKcsLSUAw== Date: Tue, 2 Jul 2024 05:52:38 +0000 Message-ID: <20240702055221.1337035-12-clement.mathieu--drif@eviden.com> References: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AS8PR07MB7080:EE_ x-ms-office365-filtering-correlation-id: ab6001f5-e86c-4024-a3bd-08dc9a5b2e59 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?q?k82pXv1c4GdYkni0bI0CwmClzCgMcBZ?= =?utf-8?q?I/SijbnbpXz5LPPfP6n5+9BJpsiA47SSWbDcEi8O+z32hj3RQKeOne2RyH/H0ec6t?= =?utf-8?q?yiao1CoF6orIB5/a7X3h2FNs+Ym3j6yiEGhRu/GyiwtTYnNU9Suj2yL2zR8KTzVyI?= =?utf-8?q?2XlxHtlIvU7H3KNLdEhCqkEmkbQhb0hmTaPQqkG5mqd/pK4H2AZXcTquuEqP3D58Z?= =?utf-8?q?1qPj25U/8wUZekWHkmA8Khz2MjwQ59moE1t9YtRcfAvD3cCoVwQbtqpzEgOH+wCtU?= =?utf-8?q?XPMdOmJFivSMpFN5ZBaUcu07c6HGzSjsl0jghmJrdrKfLBCLdd8rZsOgO1bsfpqAr?= =?utf-8?q?Ot0QLK9h39LSjLu6phGoFZa1E0panR2ZSMsER5bk8Z2U7EQrFxwosG/zp8hAT1TqL?= =?utf-8?q?A2CIT467Zs0RcluuAVxD98At3oFT9glsvDEveuIzBSlmHjJFmdq0sGxE5QnLdTAdp?= =?utf-8?q?0AR7gEgkKwIbJNBT2MM6jXhVLxrSl9OmBAVqsVdSsNaX8xEwiPSaaBTA5fQaz4Vhm?= =?utf-8?q?OPOOMd4WRarqRm8JXud9BiPrgAEw1xwRxE78WByy7UBTj8rRGP3wqZ7eC+ROPlyjp?= =?utf-8?q?NmmIo+MSaQum4uimeViS7mP1n/YyrqpT9pxR99WWdeZjZYWV2KBEvyudr6IKKWlNV?= =?utf-8?q?xAB6PG3g/uvz/HUa4k/lt/uLQdpMMIZItzz7lfFZpC5shqi3wLF0V6NWunsgALNPX?= =?utf-8?q?t3ZNlKt+2eEy3MCun/3BdKmk9WMm896IHNQfksYFT7xEc2ebkvtludFwvDGwnJLCD?= =?utf-8?q?S5jsbMavSZOc3qjJLQoZrsJVsmnox0+MMKVVFC3v5yYqo2EkJaYeSrs7Kum0Cdki4?= =?utf-8?q?DfWc8/3dRcOFOerkEG2h79kt+6F1lCXDLvZji7sYl9zXUImYxXlyNQn3vlqQZ9PfU?= =?utf-8?q?75aF0dLV6Of77Mok7Fmhv9GoEfWDoXxjZ3lsA6D24YjUAw3l580U7P9L5Ukd8Ys4a?= =?utf-8?q?rNOBNi4aOh9aHD8Mgz6OWhGhWCxqqf+eDAGiRC45qNppTKMX59IoGa8EmBKI9ryCM?= =?utf-8?q?W368T6sE5xBUFUQe6gH6kb9yC3nd4HJyfu6M8zAxqj/O/ufsnCVEFgj5Y/FsCd76n?= =?utf-8?q?q++iqcc18FYA2eabyLoTimkaut7wcBl6jAcpX48/Wxj8t3Mnu9fusXI1zaJy3mTi8?= =?utf-8?q?JBegmAg8LUF/jgwhPWmSFYKBAEST7O97tDZO2Nhp1qOEbPT0NKNfDShsvqkKbyjGk?= =?utf-8?q?1Gg/pEEJyWRDlBZW+lkTQr4JrenHRL/bqHKcOW3/qJvSnUVeq6vKxh1lgTs3dzjz9?= =?utf-8?q?Xrv19iB7+ZqQSe/foX/rKJDLMDIsjTMW9q6oXSHKnUvEiUcMnqU9vHfuZifGxId3F?= =?utf-8?q?zwV+KRM2F2/AXrpkM+i070bmZNkGpqY9Pw=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?1MlS1zydxKubU+mMLc4RbwmipZpM?= =?utf-8?q?P6JurRxSSI/YA870Bw8ees/Hw+DpbbWRDGepNCWmU7IGez7MNZcOidCya92emMXXb?= =?utf-8?q?hG2pM8Qg98jhFDbi0HtLKgNGmruxPzLfGvu0ZlSx+PK1F2+j2HdksONvLK1tunbAr?= =?utf-8?q?YbUTcebMLAHTHMgeJyfLO/PRDtp5mmPtSjMM4Fm0l+fkX29F+alsMn1LIJX8Dfl4R?= =?utf-8?q?5LZ6+JdWfM40SnJYeAzSVUtkHSJ5gAshgG1iY+qitvC/CzbDQCBfLJCpX6ohIEFJ5?= =?utf-8?q?eM9t3PdfUGtuFdX50r36sowSFQ7InSqsTlK1iEa/x2ZX2H5S6bZgcZkUIPyYmcE1H?= =?utf-8?q?d2yewM3fJs8sGBKBinxzuAVWIftVyXjtXMAgtgJoIk0cmytRbBgsdKKLdrL+DW7bz?= =?utf-8?q?m/hLd+K7zbMW7S7gW4Ns25lErj/DCDpGRuLD/dryXDMF3Iwoyz2lD9XlD3osa0zW2?= =?utf-8?q?wJYePL7AYrauS/S/8wtauw8Jwtit2xqza6ZOwsTTcpDBDtjLsWok80ofLj5WM1p9X?= =?utf-8?q?C4ILwbM91lejN8xVBn6FisONyR6TkoscX2jHVyzXFj2jQKUAUyjYC4xhtxIjpWkhD?= =?utf-8?q?lMRFpyXFVYMzwBl5ttU/Uo+JuHijd0WCYl4r2XDZx42zzxdsgN3Jfk5bE0WHVYA9S?= =?utf-8?q?CdzYh5xcMy3w/8CAkcLsmkVgijBPG7yBoe38Uzr5fZkyXjBLwewAE1yXaQYgERSiG?= =?utf-8?q?vNZ6l3xr9kpRZleJVC33XfpxwQ8jUIEni+wyv2Ep4t42SBBqHDstulJVQjo1oUEQx?= =?utf-8?q?1iNI8mKcOFBfLPwjD1Xw2tmniJQ1SLxnSpzm67+iYA4NG53JdvW2HUgBO/lNFxyGV?= =?utf-8?q?XJTVmb/zrpb1VXStO92ZbW7JQ6dy9e/RvGmiT42iZ0GR0S0fnHznIRRw15TD4Mrm4?= =?utf-8?q?bnvw6B0E3FQlD1/fzwtzRzIJV+J5v8t3tH/55EasltVvjVkNWmuxTkAoI/TEFO47c?= =?utf-8?q?idp/qVgVeojYjhMO8K+luZUvBpyQw7x0U2Zmld1uRSX+W0MlMx3Cg2r0XAUKENHIx?= =?utf-8?q?SNrW6HxTyucydZDYW41HMi1UzRGFrccjuiA1voFVTOfhX8SC190E3tLddlnGtiPQb?= =?utf-8?q?MOLgq57AEh+DvdhElHILqkL3yt8FguP+JgeQkGazPrMgNUUmcDKWBSoRcmitL1AD6?= =?utf-8?q?XHmDzHd5SNXqYYPD3APxrfEPRjMLugTT4CMGfMt0o6K0sna675a2iWlVxdtvWNkoF?= =?utf-8?q?u1FbzfAzbXJH9VuqYBhfY+BLD6i0a3FMV1NDDf/i2JQuvgRVrF8guzttdOyUNogrI?= =?utf-8?q?QgtdgRnrQf2T+YndDOT0evL7HCEisjsoyrkZzdfHR7OQq2+jbW9xA9r1VG3XJpGju?= =?utf-8?q?RCaOAoopNBHPyUDFpQmVn12cYldA5ZjbzbB5sKXB3Z1ZvVKm7wxvc0zB+LL85yBja?= =?utf-8?q?nggM1OVRppBpDkIGwSBeuv6EDM8+luox/Hjp43b+PBn7s4mBq4ApR3dnVBCiizO7c?= =?utf-8?q?bwkeNiLNmXkLjfhU60wYA5c9qxNAkVdHu84gms6IZrKEvhhtu/3DPUjcDE1TyTZeQ?= =?utf-8?q?65n8oZ/LgdCxslrw39iyZaE8ehzfhb9vxuE1cRC5iNeJCmJ3ZU60Mfc=3D?= Content-ID: <3E0C635EF0AAA4499BEC000EC77CEDC1@eurprd07.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ab6001f5-e86c-4024-a3bd-08dc9a5b2e59 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2024 05:52:39.0001 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: +eQstc+CG2EtDg3wfoSkSyGXj1KZ5icQR+LCQ34pDfHX7+biGTTKUAHIr+V1Tf2NxH3ibwH6knSTaQfnpXS9CcOhsaRmlK8chXc1jRFGUr2qfsWGFXrJ4MAvNTM0LKDD X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7080 Received-SPF: pass client-ip=80.78.11.83; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost2.eviden.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: Clément Mathieu--Drif This will help developers of svm devices to track a state Signed-off-by: Clément Mathieu--Drif --- include/exec/memory.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/exec/memory.h b/include/exec/memory.h index aa8e114e77..bf91c4bed7 100644 --- a/include/exec/memory.h +++ b/include/exec/memory.h @@ -203,6 +203,7 @@ struct IOMMUNotifier { hwaddr start; hwaddr end; int iommu_idx; + void *opaque; QLIST_ENTRY(IOMMUNotifier) node; }; typedef struct IOMMUNotifier IOMMUNotifier; From patchwork Tue Jul 2 05:52:39 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: CLEMENT MATHIEU--DRIF X-Patchwork-Id: 13718991 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6F208C3065C for ; Tue, 2 Jul 2024 05:54:58 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sOWRf-00080y-1S; Tue, 02 Jul 2024 01:52:51 -0400 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 1sOWRb-0007y8-Ay for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:47 -0400 Received: from smarthost4.eviden.com ([80.78.11.85]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOWRX-0006Wb-SZ for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:47 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1719899564; x=1751435564; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=UPXNbvJectvGQKlGoawzXgwED5aGbpHuXdk4PTl86rE=; b=CeNkmiMVkhtPkR9y+zRbbz7aA6GqU7H/uRupWdSdHDCBqfyFGWddicmL wOZx/h49ir8jEmG3oyc1Zdu3JQYVAVsC1U64sVZsl4pLqPUOv0/9A8mJW ryzn9ruSP//YMG8MWq2mjCZFtdxlOJTkgO7Ta8XnsesOBxsVS8yvDVSsW c8yyl3+sj4OZ3l3ersG1sTZbkiioyjiLyz/BmT4ExwRdgf64/FKOHUcsw DjWLNaIgKUX+rDio4b2P1K3xwZKm6k1AmAE+h52e1bKFkTb6eJyHKLtp7 u3n315ZqwmbUf+cyX/jnG4ASdZ+/hOzFQu2HxGOjpoReoCLuAeyykGhcG g==; X-IronPort-AV: E=Sophos;i="6.09,178,1716242400"; d="scan'208";a="15813266" X-MGA-submission: MDEz8PKJaPOgY7sLHl2EKbeeinh62r/k2Tacy6uTpaf7Q9b0euuXvL9lndXmbu/aeCRh6wPOqFnVAO0Xy3PLEQTkdmdIyC9y05jpLLzgn3MmezEuYSKEOxF5d3NbG8a3UQ5EH58fM0aMP2/Prqt0j1Zcmt25gj0rDqomocK/nfs7LQ== Received: from mail-am6eur05lp2104.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.104]) by smarthost4.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jul 2024 07:52:41 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IHTn6ytoGboyRMebD6vVnAeLT1nFaBLg6Pa9vNbdIcerhNw6CXdBdKTXp+mAzMJysRusWcxu4eV8ViP6v9R0qTDKC/B0M+FO48cAw6zUj4hCPYUf5wU6sGARk/ckT+Sf9zxvwdcArgAxys2W0nefN4Bh3VpiCtu096fJNznm8DLVwxwwx/sTh4NSlvr6Iy247AD4g0/7r37VOTgrjaZklvg6AS4uhYzoVtalclk3kl3txWgysowvOyf7rlllWgsHn+DS8O8buOewwfv9U3H9zz/OIeovBKO/hp61++8PFUyox44s5z90h41VuT7jjHisngtMmd6FrmEHNpIpmyZsJg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=UPXNbvJectvGQKlGoawzXgwED5aGbpHuXdk4PTl86rE=; b=eDLZm/9ERuQaF2TSN6c7Kb27CK0BkyZ/+ikDSPgrbBUDY4Wwv+CsinASG1QHXrFbXj+kcho6bfFsPiKaG3O9fPH1QgtEPO6usUTXWuFOyFIkseGFTEjHzrz6AcLP3nGwiDU3lmFx6Sx/Pt3+cnB31L6XRLAs/QnIoRpYId15OvUx+omHIaULPrJjt0JvAUUZV27kWrEkEzmqnCjaaIWp8nPNBvsh5vuSXc2PJadPFUCP5lke8+fchVTWZp9V2UCL0n7mmVLg4Mf//6P02ug4S5/t3rJAhCUUoev6WQiF59xzhYohu+rFNL3UhGRU7qKQgJupKmhnDVOIMb1t+jLSiw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UPXNbvJectvGQKlGoawzXgwED5aGbpHuXdk4PTl86rE=; b=EeMIEYPZpz3sIUeStS1kdi599lNClS1EyxyfZ+g1TwkwZRFId2wRiyfWIQorA3NtBre9P0TksCrysC/tWdDTJKbnqDIX32/5qwTHlC81K6yXBqdsI+bxvln6brhObothNa27XrH0/SgStwqlFphsWUd4f/juDiTnPlbutdZ/EcB/wppfDg/vejb87CE9L+ZeGplib5vrEiO1CttMxi+EczAyr3LC6tuQR7QBoNGbAZO7CvvHbHapoNhnEr8EQtUIo9Yc4AskgrKtnsAF/KDLmWL5EHDhhgjcFFLxnbqFZjv979giT/kW1yGiLbJ5Lvyb63uBuj/32f7IX3ZQ35SBsQ== Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7080.eurprd07.prod.outlook.com (2603:10a6:20b:239::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.21; Tue, 2 Jul 2024 05:52:39 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7741.017; Tue, 2 Jul 2024 05:52:39 +0000 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , "mst@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v5 12/22] pci: add a pci-level initialization function for iommu notifiers Thread-Topic: [PATCH ats_vtd v5 12/22] pci: add a pci-level initialization function for iommu notifiers Thread-Index: AQHazEQMy99nBSA6kkCk1O0SVH9NAQ== Date: Tue, 2 Jul 2024 05:52:39 +0000 Message-ID: <20240702055221.1337035-13-clement.mathieu--drif@eviden.com> References: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AS8PR07MB7080:EE_ x-ms-office365-filtering-correlation-id: e2bc0892-3e8e-4c26-8fad-08dc9a5b2ec2 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?q?H3gwbjq63TJ6fr9jWsfotZCkYL7Cwii?= =?utf-8?q?bDndiCJB4RWz5NdWIRrL61G8m/qO9i91FoRiu7tFOMA0c8DVC+iHz7cjg8nS1592T?= =?utf-8?q?xc8lInj2lcMRWWTbkKhNpj0YK7zczQ67Tp+MadKlyNSqoiEaNRUWYW488PX03LxOZ?= =?utf-8?q?xvSjGdykt4xH0563kCufGY/VJ5p7MhNKDWE0pVcA8PqpG9+Emy10bz/uUdGJ5AK4I?= =?utf-8?q?ZcrMt7Yfr32QwTnf4qOqTTjGGFd/1RyAqHSbHR5bE2qEUi+TzNYM8gtX85/6iKIpR?= =?utf-8?q?J75/ZFEhzr7zqYHfy/Ga/4qTxhHQPfRLRg+bJDudYgBZdF6sihDimxBTyqfL1jplx?= =?utf-8?q?FE1TMHM+HN2/08qUN7vSXz8kUTTNsiFszbaWVWy0afmDX27EAxI3+YkUu0xxav6OS?= =?utf-8?q?8fyjFQYn7dQj/1y8fOofsg2eIbHFaJ6dEM9nqOIfKuanIbu9AlZ7TCr4RWie6tmMN?= =?utf-8?q?8UV80oCIXXhGZmtZPV5LgYe1ND4kqsM+Wu3C278W9tA1BC9zpcrWJGQDWLT/6q6fF?= =?utf-8?q?OE5mFd6087c0JUMCG0X11IcWvcFJvobH+XwRenssl5uaX357laXe9ehhzrvEuiYm1?= =?utf-8?q?A5KIvyDusmaYedEhX+5q1TUTL0SKMumMQfq1Bj7AwOKkzJAOPJYSmubQprWH8I1Ap?= =?utf-8?q?0PxlOXX2eHpKsj2NHiPieF0fhFyTvtBPZ8pLohabyUx40dI86OpS22kYUzLu+3U1R?= =?utf-8?q?IIxV4CErc9tLLIYlYMq8M1FII9rewRVYis8Ph9NaSxPC7UuaPKEfBFDyMCGuvXfpY?= =?utf-8?q?Al0JH24FgvERA5ShaXlah1zEfOEwZd3hAkvqY1Z75lIJP7EvcZ1oGNDrpAVUdtuKd?= =?utf-8?q?4YyAvsOyUyWgGx7ggONbXju3Vw/dtol1ADt16dZby6jpiVNnj4c1oeVhxSEa2nisE?= =?utf-8?q?6993ndSQ+x6MkyHr87xj9br8j9Is3d2DfVFB7fkB/jHzSDBkc/LsORtUMqEGVssb7?= =?utf-8?q?YmSsD3jmHkcJlaPowfvfsgXvghdwK1zl+moLv0HL20n9shkaZXWZrruk8RPa9lZVg?= =?utf-8?q?9iw3D3xxhDwEirIhJ06qkkBmLHbtCSDLkX4af2nnZf2tiPSuT6A31Hwekz9TTQnMJ?= =?utf-8?q?Ylsv6+zyXyFD7nwjIunXOGTlxWnayRZxwQvN9A0yFGJJNdlj0UcJAenPKbuo40Ezn?= =?utf-8?q?4DjaUcg7m4c/hMgtICMdBkQt560iElQKW3klKbhKVkHfVSZkPyKNlPzLqiI7q8xN+?= =?utf-8?q?kQ66Xjjuh99bbqWIs+jsJ6WJqzNLBwVaBsuFFpM2a9je8i7qCl6yNc1jBdqFBxwrf?= =?utf-8?q?6q1H2YKzBJoMCwvLz+2auz9NczppAikYkMRFJ7YqnzmHp0BWP/CTxaBz0bsAhezyu?= =?utf-8?q?1n4LsvbZOXZ1pfCEe0cY/uoKo/4jG1e7lw=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?16azKUWn1YeUUWcAgomxbGO6YUww?= =?utf-8?q?J1cvEC+DrMvBWrP+25kNdJLkUkK6n/6/JbpTiJ/x59lX//EPLGy8qEpsrugK5PQdz?= =?utf-8?q?wNx1jjB6hzC9NtOXVoE6pqw3a3ZTNRXPrpMVfyusCYMHnV3TGUsBwfexnF/s1W1Du?= =?utf-8?q?TlhtvfFZmcZKQ7JS7uLExuezcHxim/why7dUcziANOyoftB6NeBx5r/Nii2L4yWkA?= =?utf-8?q?qUvweoVkAPBsZW6rM0EQ/foDjulOp6j2ltq+2Qs+04l8syhy3jnwNNmTqiSS2pCAy?= =?utf-8?q?d8OQ/wZPdMvlewI9rdz24dqG4zoDD8Ry/PowyWVckDxCpfpXnT8UEM2XfnzOJsdr7?= =?utf-8?q?0TU71eIcK4TkARcuKkUJwRe073Ff5f3LO4rVv7f3Ct0h55asE9yGYPEeqT+Sc5vqS?= =?utf-8?q?wvaFGg38X9foCInJHniT2OFlaDaGV0LF5DfuqB4D6yeEPFZKpAhB5FnFO9RS38fJM?= =?utf-8?q?SaQbCWqdi056z4wjCX07oMb3HSzoyasidRk/G8sG3TG7DhUCtYUayGTKCrycoXm8k?= =?utf-8?q?jZgYW0azu1HHGsY1A75ee0Q1ev0KnBaEEiJXKxfX4rO6n+skr2AcZTg64FZ0K5edk?= =?utf-8?q?IKS66vofYwHwPfdKpRbjEJ8KjI2W4iUKR5+YTvtOM36xzVptVQZLMHp/e1slzfMpk?= =?utf-8?q?sDyKj3hHerCuNmd+c5bXivCLyn9zij3Ur+sp9oskT/OIF5Oy09tHNVFIs5Jtp3VSl?= =?utf-8?q?KwIt+sBz0TMTJCkL5c2tStVI+H9Hn6yB8DsUx9F4a7718gnNoPUx1jrjP5Ljt77/M?= =?utf-8?q?EP0BI+uJR05u2FejnutZyIsMSETF8Y8oxGvDKI2sCuUaAsRJxG3gqYe+n+kmuMRKO?= =?utf-8?q?tvsfHcFSvJHXjON4LCmFhRWuDulpHYWM7umhcCa17XOei/v5M6owDFIFzodB+9QAG?= =?utf-8?q?Uh2yOon/zWIAb4LjE1TGXJkm9dJoEmbCATrQiDsexDyIrr66I/WPNmTZ0cWXi/wd2?= =?utf-8?q?meWhaQQrsmmZql1nM01iaYt9/56QBmh+6bNXPNlO0/lZGdxg/e/6Pab/LNthRCsMa?= =?utf-8?q?sWhi/M1SRyqgTiuEphZOw61uZCWtoncajNoGa2wAbcWFwmpKT29wcgzLZjNzvayMR?= =?utf-8?q?XCiUzST+AVyEfEtChXGJ2TleNvSLmW6yn0moahEOSGk6eeo1sJmqa1+BMf3cSXs+I?= =?utf-8?q?cBfYbn8ysilViyJ1Xf0og+q1Wstuycu6lEsONo32rHjF+GqOk8v2x32eMrryGk1VH?= =?utf-8?q?KvF82Ditqp/JXox3yVUlRjlMy4Pj7Tv048dHGoIe0VZ4gwagZOT2slCtk2lG08Vrs?= =?utf-8?q?PtNlsWaFiCiniAFS49V7wVf/MzsS4rD1jMD9CLqXbCN4j2awajhce1db/fSmTiweD?= =?utf-8?q?lnwBIdnA9YSWpgNKrQssISVNnxDinZsv9nRjzcqZ5FI7dTy9sAH1BNZ4Pqgn04t0S?= =?utf-8?q?DTC6fHFpK1y6zfk2vSqBDsTc+DnpT2b8pohAb2YYRoNFxvy9ynrXorQDWaOB1WVz8?= =?utf-8?q?UeZXaZRQ/ABExu382eX/FvdbfKW2j9yo9O23GxRuHWsYOUJ0/l4ynboDPGso5SgM2?= =?utf-8?q?pba6Y78Sxwn9nqX7/5WQREYG7PzjJhBF1TIKYM9+rpM24qwUV9iNPt4=3D?= Content-ID: <2BE87F94565FFF49A948C8539823297B@eurprd07.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e2bc0892-3e8e-4c26-8fad-08dc9a5b2ec2 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2024 05:52:39.6479 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: uhg09Kd2X6ywVl7YoQ+6z71SamWDz3un5KD480oBODLKf7OfwyJFVnGwJ8wwIVHe6E86KfNS25QWkp/rg02OOHi9xQJBbtyWit87lakDFLOebjH2xABw9WecUkocurS6 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7080 Received-SPF: pass client-ip=80.78.11.85; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost4.eviden.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: Clément Mathieu--Drif We add a convenient way to initialize an device-iotlb notifier. This is meant to be used by ATS-capable devices. pci_device_iommu_memory_region_pasid is introduces in this commit and will be used in several other SVM-related functions exposed in the PCI API. Signed-off-by: Clément Mathieu--Drif --- hw/pci/pci.c | 40 ++++++++++++++++++++++++++++++++++++++++ include/hw/pci/pci.h | 15 +++++++++++++++ 2 files changed, 55 insertions(+) diff --git a/hw/pci/pci.c b/hw/pci/pci.c index 3fe47d4002..7a483dd05d 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -2747,6 +2747,46 @@ AddressSpace *pci_device_iommu_address_space(PCIDevice *dev) return &address_space_memory; } +static IOMMUMemoryRegion *pci_device_iommu_memory_region_pasid(PCIDevice *dev, + uint32_t pasid) +{ + PCIBus *bus; + PCIBus *iommu_bus; + int devfn; + + /* + * This function is for internal use in the module, + * we can call it with PCI_NO_PASID + */ + if (!dev->is_master || + ((pasid != PCI_NO_PASID) && !pcie_pasid_enabled(dev))) { + return NULL; + } + + pci_device_get_iommu_bus_devfn(dev, &bus, &iommu_bus, &devfn); + if (iommu_bus && iommu_bus->iommu_ops->get_memory_region_pasid) { + return iommu_bus->iommu_ops->get_memory_region_pasid(bus, + iommu_bus->iommu_opaque, devfn, pasid); + } + return NULL; +} + +bool pci_iommu_init_iotlb_notifier(PCIDevice *dev, uint32_t pasid, + IOMMUNotifier *n, IOMMUNotify fn, + void *opaque) +{ + IOMMUMemoryRegion *iommu_mr = pci_device_iommu_memory_region_pasid(dev, + pasid); + if (!iommu_mr) { + return false; + } + iommu_notifier_init(n, fn, IOMMU_NOTIFIER_DEVIOTLB_EVENTS, 0, HWADDR_MAX, + memory_region_iommu_attrs_to_index(iommu_mr, + MEMTXATTRS_UNSPECIFIED)); + n->opaque = opaque; + return true; +} + AddressSpace *pci_device_iommu_address_space_pasid(PCIDevice *dev, uint32_t pasid) { diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h index ad7bd2ade5..b2a9ed7782 100644 --- a/include/hw/pci/pci.h +++ b/include/hw/pci/pci.h @@ -458,6 +458,21 @@ bool pci_device_set_iommu_device(PCIDevice *dev, HostIOMMUDevice *hiod, Error **errp); void pci_device_unset_iommu_device(PCIDevice *dev); +/** + * pci_iommu_init_iotlb_notifier: initialize an IOMMU notifier + * + * This function is used by devices before registering an IOTLB notifier + * + * @dev: the device + * @pasid: the pasid of the address space to watch + * @n: the notifier to initialize + * @fn: the callback to be installed + * @opaque: user pointer that can be used to store a state + */ +bool pci_iommu_init_iotlb_notifier(PCIDevice *dev, uint32_t pasid, + IOMMUNotifier *n, IOMMUNotify fn, + void *opaque); + /** * pci_setup_iommu: Initialize specific IOMMU handlers for a PCIBus * From patchwork Tue Jul 2 05:52:40 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: CLEMENT MATHIEU--DRIF X-Patchwork-Id: 13718993 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 71A4AC30658 for ; Tue, 2 Jul 2024 05:55:15 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sOWRb-0007y7-Br; Tue, 02 Jul 2024 01:52:47 -0400 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 1sOWRZ-0007wF-Ho for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:45 -0400 Received: from smarthost1.eviden.com ([80.78.11.82]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOWRW-0006W6-VD for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1719899564; x=1751435564; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=gndVGnQ0yhI7Q6zNslmfKh73Db8IPGJBxr+71XFsimc=; b=flHO/P4GhcdGYbrDtgII5OxTIjMlxP1lm4/Zn8NExTWu3k/f9gDbwcSv FKBQJM0nn25nwhZDt3/rIPpaSZVaAdgaNvFueHpAIVuGYUhUB/39O+Gn5 EQXAXEmydioAt7MvUrs4mLTCyppasvgDsVcNWWTYUHoFI2IIlnzE/Uo5q dofCIv8WNmvxhQs94W8+/rSgJvFoxksoiNTmGBCFQRyKgp1GudQO7plfz EhqHW2JBnHLPr7uQ4g/x18OLVvN2zl9HJ2zjOIWlZ07z3uWOGb1nDgLyp flPUT7AijTXNwlOc64lC81KN0oJMEw8UCd3A5aE+3LqiCMSs+yGLTspZH w==; X-IronPort-AV: E=Sophos;i="6.09,178,1716242400"; d="scan'208";a="15715677" X-MGA-submission: MDHup0X8tWdU1qT9C+wqgxCh8K+jzmetLyw+LIiuawvrTde+WxcMDv1367XYaB70knAaUiyMAnMCKZC6CYDiNkimt7ru9xoPtaVjB5Duyw6Ol2cCsnaZfjYFqMr0P2VLTOgzBAP1Jy6juyiW1lGje9Mhx8XPeN/zsiLtlMWCqHZNzA== Received: from mail-am6eur05lp2104.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.104]) by smarthost1.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jul 2024 07:52:43 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=asq0WtvkEMsA/989SPjszR68rB0COqx+26HVQkUvAzq33A+3785G7BaRqPppCZJKex9T9tWluAT+U0thgMFBYUo47AHanhTHf0DO+cCC8J22HNH/QCXqcJg4QVpE2hzD0qlt1fbm8z3PsHLEOqwonKKLoO2wOEU/IQpImm00R0izhJrAVXG7SOWJ3b5h8OWbwUYYYJjJN/X8P4VDE2ijjAzZuN4PwvmKQ/5VXI+n2W+HjpkUUf8W/frqenJwfa3ZomTpiNv8qNcPO0jIcEVyOCRSkTbTQye5tvczkuehlExFvBTvl7KPOqSjdGxFWpEH5rwAEsv27gKy6WJVrp36Fw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=gndVGnQ0yhI7Q6zNslmfKh73Db8IPGJBxr+71XFsimc=; b=asaXQYDa+NXMZ0W/0sXxKkWdB0c+Eu7HVHtyDc1MBFmYk8iDlgkKE/tvw4EL18xEZt/OSqEfsK1w8YkqOTrMsYuiX3SVCnYnJco7+PWHmJ9xWqu/pzWaILy8NMsEVOV2Ryeb5atDZp/TzZneTdKzKh0nM+z9+7uIekabEpIb4bGzBJuACwjO9yOFB5qfl7qB72n+mxqLRKhK3AoJrdXQtKeYY51Jt95pUFWjKkfWVpqfGtwSihehQiLoHCUjc6C29OTqUbIOFN1qm3AX8KQCevbRoOHM+qQBQzgVdSrXN2IddIdgnH7XnlvmdG6G3Vay35FUw4hxJShZCjLlUrGYiQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gndVGnQ0yhI7Q6zNslmfKh73Db8IPGJBxr+71XFsimc=; b=PB3FrS0BmEcsvNKZbYb9rsl/YhOlqUQ8ZilsSqnrjqlLrP2+fK8WfPmy0yJLN0jLOrkU/hBqeN3BTdv9w8oLw8pmcgK0ZdiSQouBEq4XCbNFS5vSOIUAVqGgV80HmQfiAjlmbTCFlZOQ5rpPEgiLpf/iBADegYBk8d77XXKz3sJ1E+17hyY3A6UJbKefgHZiRH2IYCS4qE7dvWSL7ZE7eb6M9BYTaidSU1bE3PNWcyHQixmkqVCPUTXQFdxyOI1AnbOmfPZE6NjZCJSBxt/rs7H15306F4TdPk8zoKGosurehjNDH8acGr5y9gInnIgcvQC53iBSIKS9m0Jk0bZPog== Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7080.eurprd07.prod.outlook.com (2603:10a6:20b:239::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.21; Tue, 2 Jul 2024 05:52:40 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7741.017; Tue, 2 Jul 2024 05:52:40 +0000 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , "mst@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v5 13/22] intel_iommu: implement the get_address_space_pasid iommu operation Thread-Topic: [PATCH ats_vtd v5 13/22] intel_iommu: implement the get_address_space_pasid iommu operation Thread-Index: AQHazEQMtbnEG0JMpEOyFP0rSHT39A== Date: Tue, 2 Jul 2024 05:52:40 +0000 Message-ID: <20240702055221.1337035-14-clement.mathieu--drif@eviden.com> References: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AS8PR07MB7080:EE_ x-ms-office365-filtering-correlation-id: 4fb6b0d6-efec-4c19-8692-08dc9a5b2f2b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?q?WWDkIuHViioo/1nI/DzoIPE5nVPB9is?= =?utf-8?q?gsGtyzJNbJ1QDjK8TUcww/MZvRqqWbQ9MdiCS9yiIV+ky74bfEW6bQTk0q+oBgkgA?= =?utf-8?q?ecu/FgC3yV5xNuz0t9Y7Dtu6cCrg7Ish8E7SU8r9rax6u0M+vrxzzQ605j//RuGhE?= =?utf-8?q?8KdGMLJXyrxnOabrhj0XN5D+1E760ZxKvPMmKOVbni66QRrRvxZVnTThzmNxiK54L?= =?utf-8?q?czib574JsWWQj8sdQZ4wXWjwCW5n90/YFakKYQZ75Teohbsza5YXqfMxL2D+gReK8?= =?utf-8?q?TRQ7tMOpnY2kzvY3QgDdL5PFwRl7c3Rk4LTDrPnS1Dc1wFb3tTeIFsKVtHqLb2eFL?= =?utf-8?q?ef6la9OQo3eXnqLIiLojECP0SU/ewLqHx0dSkCeigL8D9opxSeVJT5DZ/pHzqHIWV?= =?utf-8?q?prwpVBAz7aVBH2KX2MANEiAhqAx8FgbRy2Mbs9I5H1ZdHFoWqpP382p2ZsZTOEDHw?= =?utf-8?q?aoFQjth2tlCWKhbWxEBhTY3egRXrMKNqqQLU98F4TEpM5mlsTfWjW2wRh61Fy5u2i?= =?utf-8?q?GDzLkbCHUryB9EJZnxAaxdVA3qcdmisK5xPLlrnXVCQt6KCVlofRjCkol/UN7DWZe?= =?utf-8?q?tO/BqSDju6m3oUjdD3HZ/JcIkd6XMj1xe4cqLme9rlCAiO4Lz1GcxXfihPH2C8S1R?= =?utf-8?q?VMIpZLdmGsTtcrQB2vFFdEbFY6/CHyLIeg71B9543hUGdLJlDxH2slv+TrdmdweCI?= =?utf-8?q?wUy3pE+eN84sYmZRxkYZDA/mklHwxyYQLuDuabSMnahOYmTm+qJTrsxtoKZgG9rIP?= =?utf-8?q?DYYoP2xYw9ljhuH60TSaqzk6Fg3kz8FlUa92mD82z0a3c75X9/wcRxdphGjTd5MYT?= =?utf-8?q?WvfalWYMAFif+XEQXMOw5e5SoF3p5MDebdUBsIe8IyWFHqNxHvnt2/PSSmoxdD+36?= =?utf-8?q?4yZFxp2NTMiMJrNOZ5/Rl+Fl3OAy5u9ODngI3QYZIv6HmUglxzl9xRMfRL/s4LAxj?= =?utf-8?q?SGGMpMxUOE8/CCE6cWNpk84P6gLWFE/RPziSYtBEkbU2BPNJihNgYS/1VMiq/zleF?= =?utf-8?q?1BhKfgTyOxCOlx0+J7uG9BIefN0aABUW9b/rkoDedpWAx+8nwwotdRsrCM1FXnGoc?= =?utf-8?q?mBhJCDX0x+RoDdr0eAdhfckWybZjS8lINQ14NePRFxzog04yd5WbogwkPimRzvE/P?= =?utf-8?q?pk13i/pdSiKtyb8X27QcxxvfGIHeupjo8MD8IbQIh0zSTxxKoML1jPTWnTJOC/JiQ?= =?utf-8?q?iT0oGErap1KojUkRDuuZZv5dAWFIRM7smY/B7qzs0lxqh+K2MN+gwYeKEG2GrEqci?= =?utf-8?q?D8/yp5v6TzBY0fg+pTMfV3CwdQbglNyv+MT3f7SjuozNQfDCIvykZ17h/shYHlElt?= =?utf-8?q?oK7lXTiIMVEMy7D3Cu+esqdSTG7u2yLXvw=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?3m7ezTYrrhBv3E9njTo1piI4PMXv?= =?utf-8?q?C5U1Lx4QbJgQHmmCpC83USsZPnSr1mwuYWD0/nObKQ1Z5gbpn8d6ahjHuzONnEqoD?= =?utf-8?q?Pmgjc+PFKY9hZ29c1F+MNA4nQEIs1Bwjc3lzQjSoOSWVgGpGq5J/5duO1Jurc5zkm?= =?utf-8?q?52LOA3JdTmUZeS8RKXqxTdTFPASlW9YLL5gZuE/6uBQIFBi6Y6MGffpyszxj2oqTJ?= =?utf-8?q?UEmBVhO7ZbuuWnuIbRp3krUzI/oFz8I6tgslpRzU7gi+76o/dI2Bc7R29RtUJt9Be?= =?utf-8?q?2DpSEzLSGaVgEGrpnbVWRsQM0UuHZabnCYN7aYIDIcNkV8bYRsRiFOHJ1tb5yWylq?= =?utf-8?q?XdtxIdbFKKrv3XxcSV875LgmEdo/JdyYQ4uD3H44FiJZ5L+oN2xcmxcruRLtxkosL?= =?utf-8?q?DHpPAIBVW2TS4A/dPSJ1dHQgoumKgwLIhfscSS6e5PEMzN2repwSBZMiwUT2BeCXj?= =?utf-8?q?OAOUmQWfpWmFayfn3/9pqgZK8thXOpRkI3iwsgGfgOoPnGEC88lksfsouGq78f7vb?= =?utf-8?q?1GoqFLE/pfnFW3EuVoe0x7Bu31Xwbk5mHhKgbKPYw0LjEF16Hn1fQDUorQQ2hpiIq?= =?utf-8?q?i05ZBaLLDHO5KNji9Xq2nR1GXCzK1dEh99ZwHkOlJc47gxy/9gyKZHow9lOWCQOXg?= =?utf-8?q?gbRXgluPcrIn9kF5Jp3wtCms3AYKKnWwmnn1ezM5YfY9ObvoQOrl/h9/JensOALJG?= =?utf-8?q?b+E+XNDMlAMy7uQ6ZMJk25DhL8gS3pdFyqqnsXwrdKk7pW5FQJbwkPd31ZNjvkzNn?= =?utf-8?q?1FjSzzMLc3OmoRKUoExr3JrQVu9ciA84USQ+KqBCCCmlyilyjS/+UEqqpBtvqKzFj?= =?utf-8?q?feNIXSeW5FSckXZcTHzGgqSHJKNscUifACWT751OTIR0zWZMdjNEQOlrv/TZamS1S?= =?utf-8?q?im8TuTyIc/ur6vXfUlwlmUqmWHXrDGFkeufmZBgqyffWdPq1Ld2Ue4UmDPShi7P+n?= =?utf-8?q?NW6LOQ2jnjiWP6sX1jk4s+t+a/SVD1/1GTGdvh/S+HjNAogIxIOkfE1iyM0TH+mBS?= =?utf-8?q?e+MBG6z5Yz9ZLwauax1qgqTQhd/OXthmHaTd2g4PWly6chpn92o63mX5nkfauDcDl?= =?utf-8?q?bSwLZm1xYMcXKpQRcENSDkTLksWWzqQTKay3chw2WMVVV++7BmjRjMn9o16TABloj?= =?utf-8?q?Vqur7bAFcS5SDSSAPNNYKWZJqqJ99z9btj8lmLI3easEk/wCRTrpyQki2afZhcgDK?= =?utf-8?q?/kvn8PYQHSrokI3l+mD6H7YcVayYjWrTtV7LGfknF+SESDaf4NTeuAsZLklMY3DM2?= =?utf-8?q?2hA93Ie2WgwsNl/gRfVB4q39a4kS51QqLwDSRuSy9LvjBzrMWSozhEKb5jFpEVWw3?= =?utf-8?q?DmyuPTyp3phd5kcVjgMnJDp9acXA551kUHqGQIZgaMpREfhH70ns3U4ZRbU67qasH?= =?utf-8?q?oFLwQwiXsQzKXFkhvi0LHxUZWmZ/yeIKjeZFw6we/vLhQq/IxS9CR3r4aYjhMnkXw?= =?utf-8?q?0pBoy01mP3Ee/Jj6fNhv3dIUdM3qHizgUUua/Hkw4WC+dS6Sw3sjdbkv8+2NGGUAD?= =?utf-8?q?VDEKe2Mc2rebRCfSYvQLff8Vp+NFEkB4SrutrhulPcPNF5xPo5VPTAc=3D?= Content-ID: <9CEE5A1D32E9BB4AA6BB177C4E8FD4B8@eurprd07.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4fb6b0d6-efec-4c19-8692-08dc9a5b2f2b X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2024 05:52:40.3276 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: pQAyR47ixP0QIGn1Ki/ThVxipmk9RHFCSdv5JcapuyNroH0JdHNMFMWh9oQ5hcstDHVg/joDwx3PI68/IjPMV1IsvTgsUS0VbeZkYxeLqQgFzGgT00RnZbsU+Q1OvQqf X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7080 Received-SPF: pass client-ip=80.78.11.82; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost1.eviden.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: Clément Mathieu--Drif Signed-off-by: Clément Mathieu--Drif --- hw/i386/intel_iommu.c | 13 ++++++++++--- include/hw/i386/intel_iommu.h | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 2a78fc823f..e047d2ca83 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -5438,7 +5438,7 @@ static const MemoryRegionOps vtd_mem_ir_fault_ops = { }; VTDAddressSpace *vtd_find_add_as(IntelIOMMUState *s, PCIBus *bus, - int devfn, unsigned int pasid) + int devfn, uint32_t pasid) { /* * We can't simply use sid here since the bus number might not be @@ -5995,19 +5995,26 @@ static void vtd_reset(DeviceState *dev) vtd_refresh_pasid_bind(s); } -static AddressSpace *vtd_host_dma_iommu(PCIBus *bus, void *opaque, int devfn) +static AddressSpace *vtd_host_dma_iommu_pasid(PCIBus *bus, void *opaque, + int devfn, uint32_t pasid) { IntelIOMMUState *s = opaque; VTDAddressSpace *vtd_as; assert(0 <= devfn && devfn < PCI_DEVFN_MAX); - vtd_as = vtd_find_add_as(s, bus, devfn, PCI_NO_PASID); + vtd_as = vtd_find_add_as(s, bus, devfn, pasid); return &vtd_as->as; } +static AddressSpace *vtd_host_dma_iommu(PCIBus *bus, void *opaque, int devfn) +{ + return vtd_host_dma_iommu_pasid(bus, opaque, devfn, PCI_NO_PASID); +} + static PCIIOMMUOps vtd_iommu_ops = { .get_address_space = vtd_host_dma_iommu, + .get_address_space_pasid = vtd_host_dma_iommu_pasid, .set_iommu_device = vtd_dev_set_iommu_device, .unset_iommu_device = vtd_dev_unset_iommu_device, }; diff --git a/include/hw/i386/intel_iommu.h b/include/hw/i386/intel_iommu.h index b32d711802..e334a3de6d 100644 --- a/include/hw/i386/intel_iommu.h +++ b/include/hw/i386/intel_iommu.h @@ -325,6 +325,6 @@ struct IntelIOMMUState { * create a new one if none exists */ VTDAddressSpace *vtd_find_add_as(IntelIOMMUState *s, PCIBus *bus, - int devfn, unsigned int pasid); + int devfn, uint32_t pasid); #endif From patchwork Tue Jul 2 05:52:41 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: CLEMENT MATHIEU--DRIF X-Patchwork-Id: 13718995 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 2575FC3064D for ; Tue, 2 Jul 2024 05:55:26 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sOWRf-00081U-Bi; Tue, 02 Jul 2024 01:52:51 -0400 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 1sOWRd-0007zq-FY for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:49 -0400 Received: from smarthost4.eviden.com ([80.78.11.85]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOWRb-0006Ul-Dj for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:49 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1719899567; x=1751435567; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=iQZ8LUYTZUklKaeRuFrltuVPELET5rAe9WchMbRYKbc=; b=p30yJ1oOxoyX7O3IUUQLY3MrQR/J+FJ82CtmkzR+mRP4IGkSYc59kLTD M02C4YkTpwjlXSoTn3OJ/OI5t/oKKXySRESpLthN5KlL5h8mQii5IjFwR f49ViQF+9mz9YocsSCK/bfqfyo2va/3F45STRUzjjbeeQ8iMnAZBMWfLA EdCGiS2fNdnE/JXErqcZ9xdmayuKE4YBz5DL3jKpFdezd5TEj+Gi3paNr WL0poavZLL3r6r482xuPskrbxs7DIYZ3kSlNqOl9n1JTB+c79pHX8sn42 +a7EgElHvs08W7bQXfWFMbHyqO/K6lVvrYPA9MdgLjvdn0VBvpMKVeFz7 Q==; X-IronPort-AV: E=Sophos;i="6.09,178,1716242400"; d="scan'208";a="15813268" X-MGA-submission: MDFw91toBX7UOyo149xQV8DoBLZdIXyMn2rKy3NVwESrMKn9UjGlA6xYP3YYrwVQKErlMKIrFtxLuv5JB42pJ5ukAJ47YmErl4h+tE7Jf36tc6o4SJzcU9s953N/+lh3w3YjbFDQzCvQV1NiJv7sqtWb2vlUI8qHqKizuIUKMmPyKw== Received: from mail-am6eur05lp2113.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.113]) by smarthost4.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jul 2024 07:52:42 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jKMGFd+sddORh9r7yOvN5bIP36I33pPm2ZrShhbEvNeS2zj1ubWTNi+oQppGFGaPb1JpkBhW2LNpXXCTa2DSsfEsmVZFojsj8MTxbpxB/dw6sXKI3M+ymYcFx5JIl+Iekle+ifUzh9o2U3YjVg9Wer3sVbJ6YLgbsceiA4mdU/b5GUM6ch+1g246FN/XVwsvA/5LXI/GtVLa//e3xVhweUnuTLQYlmXb9uBZHSklt8EnMVgEqHAP36750OQeIoYYGvu+Cmp3PM8l5LRCO54ueNdC9CjR2jJVFxQFaNeRUYUkel8B6eskKhooz1VloK8dF09spc+ee083g5dnGMOBLQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=iQZ8LUYTZUklKaeRuFrltuVPELET5rAe9WchMbRYKbc=; b=grVxYb5wNQX7vTLBvvA+aW86JqVZpk2AqL7aDjqjEi4lsFrTP8eQgztEoyJSJngaTRfCx2iUG+5X4A5gISKvSIFOats1pcNqoyGP6JDuSbmcjkgYp3yTOrWRyHn/53Xmc184w8eEeiWfn+ladtG3eWQ20Cnc1fvmoM1ggRoYUFxcoieFTQBTs3tcCA0LvmCtwloTuMaIl67vNvGmEq/jIJ2pQ8ypXr+zutg6hATMx/TGdtI25MUO8Q4iykkSlCplph4Gnre80pGQg9lCaYYJASq5WKpzZcRoJjENd8u+ZZi7/Nr83rC6DhmQSps6XCuFZgIgjKWqGnqtI2IsI5wJQg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iQZ8LUYTZUklKaeRuFrltuVPELET5rAe9WchMbRYKbc=; b=jBaKtcaaFpzETPEW5rGWGTujnHKhlxdrEvcEc9KSC6A/AAqvA8pNLQwQgmmv3reK2ICnwmTH0S/+nuDmHHpBTrsWNR+S3VI3uPD1yHNBLVxjomXUk3HZfY+MKC2Hsb7BP6ymvZJLuY+qbbspyM70izkjGt00FKkUr24WzWDlNvr+LONdFYaQsG45JwHzJlhWEyemzOS38VfWxenIQq7Yr3FOCUBzhA9w/fUXfWF5zNL78pL6FoHwMnjd/E/zNo1CeH/H+oKvUcewxMKgG7lnsXhipMEv4R6/Dc6VzFgIDGgqmU8eVeoJUnAM1bFctQAYbvl9OttCw+i2UYOivvuChg== Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7080.eurprd07.prod.outlook.com (2603:10a6:20b:239::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.21; Tue, 2 Jul 2024 05:52:41 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7741.017; Tue, 2 Jul 2024 05:52:41 +0000 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , "mst@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v5 14/22] intel_iommu: implement the get_memory_region_pasid iommu operation Thread-Topic: [PATCH ats_vtd v5 14/22] intel_iommu: implement the get_memory_region_pasid iommu operation Thread-Index: AQHazEQNLMlXcNcNXEOjFPH7XeKvtA== Date: Tue, 2 Jul 2024 05:52:41 +0000 Message-ID: <20240702055221.1337035-15-clement.mathieu--drif@eviden.com> References: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AS8PR07MB7080:EE_ x-ms-office365-filtering-correlation-id: 70656887-d168-4284-65b5-08dc9a5b2f94 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?q?W3zhacq+DcMlWwWvijB1b7SyT1oC/7m?= =?utf-8?q?BOTVfrsR4B/KIJfVKPyM0g9BQdX61xrVBmT70AtxsBxlFp4cPoHxVzi6nv0GLDdZD?= =?utf-8?q?vFJEq/DLXvJWvbUNJx742Euxhksfh0RfV8Kc+OAXA+TuGP5c+U76bV0+zULTdVgmY?= =?utf-8?q?CwvamcHz5hK+jm1TvMYWcLLQ21bVl/ZZVI+Pb6gM7miPuUvddzUbfArz/GIum8+Za?= =?utf-8?q?g5s2sf5jg1JQuL3oebVT13tXLJlg2AVN2tIfcDC7fa2esr5KkRcdln7pTgRcYuWBX?= =?utf-8?q?42lQHZSNbkjI4933OCS0aN0kW4Thn5F4z+60rjtjHOy9P+aVew0YoNt9FfhBNIecx?= =?utf-8?q?pg3W0waBxxbPr2kY8OW0zu6uYTkB+FLxTgSJa8NEE9yZDLF0+IKDl5Gg9G/ctdKb9?= =?utf-8?q?RMu//xykQ4e6QZMQB25B0bFruFgYfpcLtVj8cZs2GV0PHb63Ywxf9GXqfG/VZIH74?= =?utf-8?q?ba1JJIJONq05hZD4viZ+zQIF3uM4VFOLs1SV8obKeqSWkd1+PDu80VJymvovxMhe0?= =?utf-8?q?Vm+hJlXgUanj45KX9znuDWoFzeCHFyOKiwDUrFsz6iWVex5Xvb8dGf1Z9fiB4b1j+?= =?utf-8?q?+uTtMYbHI+YQisR79A7AlEYt4lLB0hals59i9Ydl7bL4glt/S2sQeOo4gUKvoPfSo?= =?utf-8?q?MIDuVKLnAybaR7Vzx8fPn2EyQk2H7k8QO4m+MCdJBbOTgDffbLwJTSBc3vNrTvUdU?= =?utf-8?q?cL74gn6ycDr0M4Q8nKgs5dv+GqnrOWGOs/5M173j8nALfpIqJcx+hJxWXPQD0yX++?= =?utf-8?q?Dts+P3+NfxmuNktjZTsfyivq7FwfS6+k0Vd9OyMW3oFNXI4NGpSExhd5KvSIXZ0dK?= =?utf-8?q?7FMIyctYNVz9EIV4iJ1WrSaIO1+d8EnGUA/mpn0GhF+t1CD1gxXSV9hi494b4EdgV?= =?utf-8?q?HWG4u4El6IDsm/XWxEwGTTawp1rc7tBBq7znykEc3qr97P2tKyGDHsLNoTniLEar0?= =?utf-8?q?IYtGwSrX0zbFF/sxUci++tDfBt61ZKprb/rlGSBAg5ygZMvtpz6XGLXVakPz3hiqm?= =?utf-8?q?1xlb2vKImtb803drQce+LniE2L/eZDTCOTV9KOlUHHD9WoqgrLqUUhu4huV+n3x8m?= =?utf-8?q?VbddPbSlgJ3ZlvgUSlGttwBuKrZQdkVdnAmpqsizNrpU696Zl5QLXxogA3Rkwq7DM?= =?utf-8?q?rW53bCGjl3sk+89iF8iI7zuq6f7wpIclHLs1w7Nl/8mYla+yUhY22e1VbHlUWOHi0?= =?utf-8?q?f2H4PM9/1/0ixJhApCxz9kNW6IMDZqoYbZ42mnrQqz599sAcJSqixxMbdsmMMWTH9?= =?utf-8?q?EFDV4y4x7uCx8UdtC8A7z82qbP0f8p+kGsjlqHF0tK5H3+TJ7iPFj5LEyfg87N5OL?= =?utf-8?q?mJni838QY6Lkb+d+4+2iuf+Mt4pwKTs/Mw=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?II3p0svfWU/rAfetRrG2EoOUS/4Q?= =?utf-8?q?Jq5QYBCuw1f44xZWrTaa/WyzD8X7o/oIU6xrAlIx4x+mm33XfEUa115YALStASeyb?= =?utf-8?q?l0mjl81z5NrTJ4heHLLhI6Tg/ZpUyUR1hyaVNITO255SipcbUzCSeGpPcQcTCV8di?= =?utf-8?q?S0iIECPe5rH9e852vw2aw7pf/+pZC2z62mkPrlowKyrveX5Evr7cWa58wIs5C0s4E?= =?utf-8?q?hlhyDQUx54j76Glws2vwmqpnWHX6jcHvqpcAwS1dkF7wL/5+rcTbnrX/4f+Yoicat?= =?utf-8?q?hXr8ulkmI7sFzH+YBS1q11OpKxp2cVGZEbNReA/uj5IqaBka/Z3CsdOdS9+aXNYmN?= =?utf-8?q?q1Nq0QRnzUGn92qIzrpkYSDBIOrws/+0xAj1dtDx0aWpgfmTAkDfDi0hNFSlr7QYf?= =?utf-8?q?bZEU2EAp6Vd837DUac83KtOxHxo32VBSXoPXAw5aadvpFyIJTpscNxZuh5Dh7K5xz?= =?utf-8?q?EpYKDI6wrYJWM3u11lGgYustVgecfgj9B5lTVW1JrV2qyA2XicxXK3qh/4rtsr7WT?= =?utf-8?q?9XkRhDU9SRUuUIzkG6+foLAgzCdR34bQ2JQYhOnt0h7hmKcImUSg7JZ5tKdLvr2wd?= =?utf-8?q?fkFAWHOhffBHVP5Lu8t8I2S+Kwa70aej+xceSlnT7w9vJllMtnLsPpL7IB5IVIIyI?= =?utf-8?q?i9cJZyOPI4gpU0MiKJ0dHopl9WSlHW+aseH1ZSfKwQiLg0Ld3Wke5LBEhM4mnen83?= =?utf-8?q?zNGeh4Y57k1uiiy9CC2O3/pcpRD/d24rSVgLrO6yYDIh6DlF3Mi9xYcarvvq1l87d?= =?utf-8?q?bofc2mdtm2di7nNoxOnU/1oNvrv+SwB8pip3SKzCSor49YkoSPPFe/qKzVrwIqC4+?= =?utf-8?q?DCwNspTu8bzcl/YQophNHRjQvX+Xn2ZcYzldg6Qt9AQr0p2qLls9/Apcj/00kQxPw?= =?utf-8?q?W4ndbhWpJlG9beYKyixU8lNcsDilLB0X/i2Dad6vZKsUl6Q+rj8cmh7PnKIoPOZp9?= =?utf-8?q?/iWQjrJbnLzzPy3+65xx0OFNfvSFZx+tnKWUbUt3OjSAdDiQ48M5cNslVbj8TbaOB?= =?utf-8?q?BBUJdx2NkMTZulYONuczGD6n7q+8c3QDlEsrAXh5iTGm5MFZkc5g14Ho7tcOlYO8w?= =?utf-8?q?RGZttlhnlgrgMc9VklDdOLGL4UxIqPf3TguKIvEc1hvCwyYPO+29FSyrkhQzlBwp8?= =?utf-8?q?r07eoZeegReAWNXgGvVyKTjfQnjBY6M38XrZjPgm8NKcdckaLHUt8K9ZiBbHliD7Z?= =?utf-8?q?aE4kO8NwP5kpIg1QGBRRAtXTlvHIIa3bD6qmlg0xgR+rBWL0kPPOdqe64xS627SDT?= =?utf-8?q?vHrwANxdiSUBUIQxWnD7aU8V2b++4LP0DkepUcOsft9ez+XiuOWhsgBkgTx8vO/vU?= =?utf-8?q?RHryYpp0sSBgLSlhNrG9eY7fjKdPkAa5CFokM27JeqC54luA7SZ5Nk9VVOclWeSth?= =?utf-8?q?yCHIoe5yA1EdWmmZWEhlfNH0jyaNY0IDVJpyxurDKPsbSj6vWOKcwSPqqayDq2x6X?= =?utf-8?q?OVVSnQaXW5fjWv3U9LG508v9jnU6QeUjC/z715oI8b2/cwevEtefEckOYjDcc8Mos?= =?utf-8?q?dg+13UQ1/J8+7gSuXf6U4aCfCz9A8d9j68VPuYtvUiTvkE+LkNeY+kE=3D?= Content-ID: <166F1D4FA61437468282F07BE24DE5C8@eurprd07.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 70656887-d168-4284-65b5-08dc9a5b2f94 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2024 05:52:41.0137 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 4+HgNqCYUAXD/5XPXwF0mHIvQc4ruiYpSnP7cjNcbmE2Z6B79dPk5W0sQ8HDDoT+tB6b4WdKJ/mYV8+BnP2LluXuXERoP8uwYj56bdV3uvu682eN1IK2rZJzNX0i/Ym7 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7080 Received-SPF: pass client-ip=80.78.11.85; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost4.eviden.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: Clément Mathieu--Drif Signed-off-by: Clément Mathieu--Drif --- hw/i386/intel_iommu.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index e047d2ca83..2e4f535dd1 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -6012,9 +6012,24 @@ static AddressSpace *vtd_host_dma_iommu(PCIBus *bus, void *opaque, int devfn) return vtd_host_dma_iommu_pasid(bus, opaque, devfn, PCI_NO_PASID); } +static IOMMUMemoryRegion *vtd_get_memory_region_pasid(PCIBus *bus, + void *opaque, + int devfn, + uint32_t pasid) +{ + IntelIOMMUState *s = opaque; + VTDAddressSpace *vtd_as; + + assert(0 <= devfn && devfn < PCI_DEVFN_MAX); + + vtd_as = vtd_find_add_as(s, bus, devfn, pasid); + return &vtd_as->iommu; +} + static PCIIOMMUOps vtd_iommu_ops = { .get_address_space = vtd_host_dma_iommu, .get_address_space_pasid = vtd_host_dma_iommu_pasid, + .get_memory_region_pasid = vtd_get_memory_region_pasid, .set_iommu_device = vtd_dev_set_iommu_device, .unset_iommu_device = vtd_dev_unset_iommu_device, }; From patchwork Tue Jul 2 05:52:41 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: CLEMENT MATHIEU--DRIF X-Patchwork-Id: 13718981 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 18072C41513 for ; Tue, 2 Jul 2024 05:53:48 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sOWRc-0007yL-4p; Tue, 02 Jul 2024 01:52:48 -0400 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 1sOWRa-0007xs-PG for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:46 -0400 Received: from smarthost1.eviden.com ([80.78.11.82]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOWRX-0006TL-KH for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1719899565; x=1751435565; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=K6mzCmicblBSrH+FNCrs3vX9tZhbIalc3GmnTb6vzms=; b=kaP9EHUfPELJrIW/+6Z2m44M2UwMQHqRLe6/MIAFuqOOwsupJHI/PH7U F/PLVZQu0Dx37E2E2FcJlYLvziDYM+2RgNT3Lv1UmX8HnHrRPXAy3AvFX Bktx4ju5tAh2ft1eV9e/iRyII6jJlD+TqsRfZ8iWbH2zTyGkVzbaAvQZz OSWqwPQFrErRxn9WXiIbHiYSgg0OSqPz8tJ2AKiFO4nU05YbJ8s/7oneb UXnxHicGIvRY5SY4pMipDxmQJ5x0f561L9Qe6BzXztFn229DBsXjN3shH Txnv92Lt8f42pkYyizdPTcCNGJS5qMgqjD/GMBz6Ib9s09WPFZ/dG8jXR g==; X-IronPort-AV: E=Sophos;i="6.09,178,1716242400"; d="scan'208";a="15715678" X-MGA-submission: MDHgLr/retlpPHDf5X6gpbxnJbSyBiK4I7cQdp1t68ZPrrC2xFpC3SOEfGn7D9O2CfA/ad1u+m/SjQTDK40uAlOzEzA4SzoOP8hvKLxQ6OqvW53il2NVifDvKJ4H2pTfgR4Au8ZKfV5AduCDPA96uN8WsZJx8htw0qH9e1CSKcnySg== Received: from mail-am6eur05lp2113.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.113]) by smarthost1.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jul 2024 07:52:44 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eCS1I2iMJ4CO0U8kVbiaH9Kj7oVKelKupTou8bzJ3ywCHIjkkvBcOEAr0NR2hWcpvhZFBr81x2Y4m4MemwtH4pbp3fzEKGB0f4KgT4p83vEsCRoqbLU53WlNHmyyhZoT1o7Mknm68YQL3PAkRg8LPNknmPSk+iA9JABdOIld+SFl+PZRR6S4dcrEJiq+Dm+KHDAGUXL3Zs2frsmwQ1gw+m3xqUzukr+dQOLgPc+7PqlM7Oe28OOzlUZvtagLnN15bc2GVIflnBk7kSVYMNjywAn8+9LkMDHUZOKmBsqxIvStBEOL1Fjz+DjRihu1iLZ11RKa3qlEQsqTUuzlPs1ddg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=K6mzCmicblBSrH+FNCrs3vX9tZhbIalc3GmnTb6vzms=; b=MIHPIVthm5+VcUMY1pWwXUvxgc2E3jd/ypxA/u+a+CWZEU0LKNVBv2V/M8egGYG17NE+6n/i8xUpJJ6CYtwgqTfktV2PJ2tU94sMuj2WyrL/d69/BtrCYEk9TfrDguDuuRwkOCCNLRabYoHtnFjr52jhBGr0Zkynj1pAThM3i1zQr4C0i+MY7Lf16YFmO2DATU7sBtIItClfMgrwq/uxqEl5vdE5YrZvhxkGuE3VZ39WvN2NuH3/PHUYVYWUDTZvqZ/g9yOv5Hd4SMINID1c30CovOgBQR63hxiXKekpxAW/DlYoZA7ISZHfuSK667Q36T6lJZ+53/meSzu/RQBmNA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=K6mzCmicblBSrH+FNCrs3vX9tZhbIalc3GmnTb6vzms=; b=lYr2hSvXE8dS3tViqPY2fTwdKM8s3/i2IedljZ2cXgpO5Jw8L6s6DmkHGTdUfQZWC3PwpyaxVhEsSwLTsrGbUX9Cs9rTcaaTLpedX1aWmJNnqzf9LYlI2JY4W25p8Lb7qrMZLSeHzVqMy3sGvwSSqS4GeHoD6178LIRoXLc6dloMBsZuETwarNuJEZb9EfaggEfzy4NOIVcEWZgrihgnW2obccLVtWQToa2yqoL89bT1RzY+g6y4khRkXqCsZf1Q/CZhC+H2SX/neOL1Zvy1i5Ex/GyzeGic/iF5K5i/ifP0f+EVlW+s8Jqj4WYjHqwb6MtQ3RKyvSUfwL9s1kyx5A== Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7080.eurprd07.prod.outlook.com (2603:10a6:20b:239::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.21; Tue, 2 Jul 2024 05:52:41 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7741.017; Tue, 2 Jul 2024 05:52:41 +0000 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , "mst@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v5 15/22] memory: Allow to store the PASID in IOMMUTLBEntry Thread-Topic: [PATCH ats_vtd v5 15/22] memory: Allow to store the PASID in IOMMUTLBEntry Thread-Index: AQHazEQNjcnQQpm5JkC8kevAoXdYEA== Date: Tue, 2 Jul 2024 05:52:41 +0000 Message-ID: <20240702055221.1337035-16-clement.mathieu--drif@eviden.com> References: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AS8PR07MB7080:EE_ x-ms-office365-filtering-correlation-id: 9c80b53b-74f7-4e16-41ba-08dc9a5b2ffd x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?q?No6cUNE10Dyt+0CjZRxH2ZxmcPpqYS3?= =?utf-8?q?IXx97xxUkfeDqLrItWelcok6iUUH0sf0qkC9IeO9/r+7D8ernEeOllttTPREZqpUS?= =?utf-8?q?LGmRjIDINQ3WUXvPPV4HZJcce4Jj7SsimMQTxFRbtX5F2vhFFfF+Fd89t/Evwhn08?= =?utf-8?q?Gf+YsEg0Yx/coQ2gThhPj86+rhIcHEpqJlC97+rntwanFeQr4vZZRP8V8cKFV9y/r?= =?utf-8?q?KtStiNIm14HTyohh6bue1FfEliJBx08edSnpVPUzibgmrHwYdDVZQ9v/nkdu+W+9I?= =?utf-8?q?F6EkzXprFHL30Ey4ztG4dVznwvr6hJtNUPIoSpd+1k+rbIGdMVzHMGctsI8GdxXKs?= =?utf-8?q?JOZ5Q0iKzPzZz8fZHfHg3cTpaf7K4fuw2lvn2052MA0oltKDhwR+f4LIInodCGNP1?= =?utf-8?q?JOkdDMaAXzyPUB3IdHaKxCU6CAO3eRJBmoTl/vqAF3tgMUdzchgf+ivYZvibLHEU+?= =?utf-8?q?Ag0ar81m2P6j8FHHUfMn+PdNgByJ4vTpk6YYvS5d5GkcCxjKsRfO/n4jRO+AFy68l?= =?utf-8?q?3t1pAAGkA19Z5SlOduYQVVt6GqEBGPW3qO55KjOMUQu2KutHSRcXKK+/21XFkQRUY?= =?utf-8?q?xji6vZA/trn2r4CLb130NObgxbGtdJCgmBoY+9LBDw50hdg/aWdLeHsaTTrEO9Il1?= =?utf-8?q?I/0bT+QiTng/fPUJodq4F01wQhu2W64cjgNR2WpvVRap2Ks5xrcKICU3O4ZGvg6LC?= =?utf-8?q?7Ae5jNNN6CzCoz8F++JP8cUliL8Q2fWJY3b27zcMHFn2hNFlZT88TLNyxIvPjyp5v?= =?utf-8?q?swxlYHjlyXPOa7YZ4TXArTdiLKGjk9o8xT+Yuse9hgkZL/lNXFuFAUuLrChWjoYUP?= =?utf-8?q?i/Uh3OJPUUf5sGALRUiqIBqQqIZ1sDZgyLfCyOg6ueQM21q2YpQASP3+38jCPjHc9?= =?utf-8?q?3ybkwh9hxlIVVS/uda8SEUKudOthBnBjttI8B4Yl+sGVIc/kB1xVwX9ojrpRKXVlR?= =?utf-8?q?T+uqewVPakKqxZIlsWXBc0VqIUioxdQ5MNwV4Vj2WsOwb+bbRAvPTrNF4IzFOEmDZ?= =?utf-8?q?F8uczxOSpZrNwiVsBscwBRF+UL3pWK3YqBEG15qGwNmUya84CES/Dfo0QFMsOdTbE?= =?utf-8?q?tvO2oDvzplrNpMwaddHFAaVnNm2+V3kkiLsxYL4IQf+2rwnhyciJxPv0f3Gza3XsC?= =?utf-8?q?Iqyu8P/JEHwlMzXxK/TA8fxB+W2aQlpkayogSi2rOnyAK0FaCiGf5qzerwrAxQYbZ?= =?utf-8?q?R42qJuDJEQPhbzLNlMG2Epfe4MugrcdhzSvFXKyc6QOB8shN6EH75DHRFAaOpX7Wx?= =?utf-8?q?rCkls3fXV3LbbJ6GD/1fO80xxbDnrawwtcTw0YQ3FH5vrcUb1oV/SJ8Cj+3cAjTPI?= =?utf-8?q?zigdyee1aDK2tq1DIKJTnRG3VlIb9uf3aw=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?f+JHBBRrr7OJpmr+5QBowFVpNOFx?= =?utf-8?q?uZi2iq6CcM7GUYWlE9kfLZ08kV70XFv8c27IYxDpRyhuH2G74vMCgEz8GQoNt9cKR?= =?utf-8?q?Ihbkr5ZVN3VoFD8R9as4CwOyrU6hPfs4tu81kS6Xf0EdSXO5i9V0cogDqnzFAplqi?= =?utf-8?q?RHAyHUCgyqS6LYOYL9YtFfsQE9fs7B9qerk1TqF4FYP/mahdu10SUOSHoeulzNbS+?= =?utf-8?q?g57vHHa/QLY1XP89D+8ud1vBGsN1ufx3SrcgJCsUVCCNxQbHVO5YG1G1arqH1jgb2?= =?utf-8?q?0OJ1H5SHpWuCahwyIRdE1cpncR+qkzUwL9GvI4dVCdkV/LUMxx/ugBMaSrpWFMA5c?= =?utf-8?q?SGkmAh/u7i+aasD7j3GzkVuYCv9yZKu3sxCKTSrNjb3V649KX+ZzQ+xr7hevl9Oi8?= =?utf-8?q?yfqRk1bUOs+Ip1HmpugRjnk5EGAycHoatH5fpFlQmMBPlnf5uYfIOK85PuPOOS/+j?= =?utf-8?q?imOVLOCwv/vc3ClfnTgSlfiH1he56aMMT2XgA4WVyHtltLYFCf1UlLXl60VXPNXfH?= =?utf-8?q?XfCFFRBYBPHBFptTlO2NIRBRD8nVesQQ4Zw1IpVhhiTo7zz4rX9S5uC3+z7EhmUsk?= =?utf-8?q?xt12Goldwtekuzr5Fja6NekOgbApNdPWf6QR6Lu50RkddO18M95zO8uFFeRiW6PkV?= =?utf-8?q?v8tj0NVKMuX24YjIazAHbutG4kmGfx3Ht/+9XcknqzVrI9ZaEz4IR4yEU1LSkK7sM?= =?utf-8?q?prcatoa1sIPh1eQVfcoBedANk2j7Mx5Ja4uaMyxTtCm3Von0Fh+KxP1b0psvnvu5m?= =?utf-8?q?4rj7Iv4tsASED5m3Tg8iJqb3vTJLVMMf0zCtstWaC1VAzm0Jr3nlHuuA3WeeGJXna?= =?utf-8?q?Ls0PtqoYdLH9k1GKW2p6Kl3S7JVUmCLi8dEvhwVXw6Get6ttAkiIjLwDtvtc+PdZL?= =?utf-8?q?mXARtnfr7udqHQ4GtxuvVHj7WFxFyNWraevcYyVZ70f1+/0aFO+UoC9afNCzkBMJS?= =?utf-8?q?tsu0T+LJQHiJp9HqVdyTQKf8kmuz3P7B/qjeKgUogn/ZQKoRbh6628vPXlLP1w+xd?= =?utf-8?q?PQ97BpVN+h0b8h4NVnf65xkuL9kAZc9eyCOXyj5ykepJYOmTgDcmtHypbewwSgtsf?= =?utf-8?q?baAJj1AA9xsYAbhCadJITSniePNzc7PqYnURQHdBnokSMLolzMuNHazTu+J3J/Clw?= =?utf-8?q?v0kc2qM2z1780gdLqquhbRseuJ5xJYllwtxCJvqe3pYKqp8CxVu5dKV4xy68KAwWm?= =?utf-8?q?FeO2bV9J9R+qGktvxZDAaqYjmIikDkteqyXNA14ZLD6UoIZx7IKWa+3yofuQBlncg?= =?utf-8?q?tpVvoPgYgqN4tE2ueUNihWVAf0QflLgqzM1QIBLlgmldEAwdEQqMXAEEGQt0/9uvH?= =?utf-8?q?aW1Z+GXfOgtG1gz3yOQ9gZ5J601PHfTKpjZFZOCn1ri4FBEkv08TaWv7GV137Qatn?= =?utf-8?q?VSY32z/eHqJIcoipwHUDDD1OvchHXvODu1y7Oo8oAVuEGQj8e9leeV6N/5JIdPqiM?= =?utf-8?q?eqpJoCLuq3fDOGfXpkeHI018nUUqx8O17z2fbaO47Ms9uUz4kauibf+Kw5G2SB0mZ?= =?utf-8?q?sR9RwxEr+KdCPq1V/ZMC1YDE4sOeHYSr5jAWCuisAl9UBuq34VuMOZo=3D?= Content-ID: MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9c80b53b-74f7-4e16-41ba-08dc9a5b2ffd X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2024 05:52:41.7249 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: fBQCLJJChzkZQ9tJs52StG1lo0dTFe39D90u2MOrC0p1YRFEbfQj282SASwgu8269IbGeeo8iVi7IFectaV/21wLImZOJcKmRS+PU4rz4f+bEfI5+guXhzcDnGMwIXSb X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7080 Received-SPF: pass client-ip=80.78.11.82; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost1.eviden.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: Clément Mathieu--Drif This will be useful for devices that support ATS Signed-off-by: Clément Mathieu--Drif --- include/exec/memory.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/exec/memory.h b/include/exec/memory.h index bf91c4bed7..003ee06610 100644 --- a/include/exec/memory.h +++ b/include/exec/memory.h @@ -145,6 +145,7 @@ struct IOMMUTLBEntry { hwaddr translated_addr; hwaddr addr_mask; /* 0xfff = 4k translation */ IOMMUAccessFlags perm; + uint32_t pasid; }; /* From patchwork Tue Jul 2 05:52:42 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: CLEMENT MATHIEU--DRIF X-Patchwork-Id: 13718988 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 069CFC3064D for ; Tue, 2 Jul 2024 05:54:49 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sOWRe-00080V-K1; Tue, 02 Jul 2024 01:52:50 -0400 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 1sOWRc-0007yV-Ec for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:48 -0400 Received: from smarthost3.eviden.com ([80.78.11.84]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOWRZ-0006V4-1n for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:48 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1719899565; x=1751435565; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=30mWL99EU/bKEd4mW/PXJAURbObnxCCAckkShhac82U=; b=QHp6Uaic75IewZJFCO6NwT+Z3Qk7cR70AGQLHQNT8v46QM0JxIL5deZX FfVsNJfwWnuXUzEic8fVZujebhW6pFI9Lti3FjV7zqMpBKU/UZa/pC5lk BFVkAIAuITzUkUwlTJx4ho6OlzUFn1ebKWQG67oFk+1NWr7Ugp9V/XtR8 kcBM0RuITlu2nScpLeqFnLh7dCSiCsHPjkROYdjSVqKLDi6NjX8sWKCtq vyIhcRnsij/cSoo7psafWHVxQUoY01Em130ncFb0giROo+lIoNew9GUeo NRXxe6iZIzjoxcCCXeNoFaRqjRrBU8/TR0ay/vclfmGAYwZP/Q9vS/Jfm w==; X-IronPort-AV: E=Sophos;i="6.09,178,1716242400"; d="scan'208";a="15721596" X-MGA-submission: MDGDSU3g5kD10kDibOoNvR6hO2a7hyU4EGG/wyvkiq68zxZ/Wg2hTId13a7K/HxXMpYitY8l8KxpE0vH80hbXUzcmGrqIlKySPIRqjDfgZWJXmvD7rRgkS2Qy8iRiBCABQdjWzN6FLx314KoWTdXUcVgF/sqLCLXFEmILIThQVGjyA== Received: from mail-am6eur05lp2104.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.104]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jul 2024 07:52:43 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DCoxLz/9xfS47CWC7YMXbZXdixz2YxCoStpSbU7JLu637KmFXGIcNyVkGv+BA7RwexF0jxxCDElGmsssdGkW13R8iWQlBdUxmWJM+0dmLtnHPYLchbsNi9ukvoCMpeotV91/S2HwHriFXR4Zf8JfTOaLLFttcF6WUYwKGN8h+plhq+zpweY6XPiZPMMexUGpjRfSuHtrK1VJ8clkLoits3JxJx7cVToolQOZXhNF5nOqu4HmwotTHC3SDSWFLv+B6dXCsu4c78Pbyz0h2bJIIuyY+nCsyprsxj5PHW/lREzIq5I14DGDCYVpT1IFTh7drKg4Pa3VjxGGIc0tL/yhng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=30mWL99EU/bKEd4mW/PXJAURbObnxCCAckkShhac82U=; b=O3Aq0HRNxEef6qDjsZKDiAximTm+JkBO0j7J0WHzpzJjQnikPhH3DeYiH8oEb39U/oh7IiWJrJ5hRTqACt1i86zo7OasScKmYC/pHJC1o9Fj/X9wxkMFsROC/Ux6KOf/S3wUYpXfG9r1wYC8fEfm6DTvs2Edf7VzokNkFI9+shAP6DTwp9eLCIj4q4WNmSaI1jlXNN/ovA47yAMYViXoQEITqG46sQYgYsVvQsiBBm+aDSF2SLmv+oWOxo/zTOsWkL2xpJPcrSSuEWvNDhtJ+rxPo7/5XAYLzH1NAN8K/MVju2VjvdAAd+BfAU5QalGzVhxE6WNY0EsBr4K42yvBKw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=30mWL99EU/bKEd4mW/PXJAURbObnxCCAckkShhac82U=; b=Nmkb03BPLWDV0FkIzo6okYn1ShwbfIOFeJ47IdK5MWzbc1Kzt9t/1A7apSu/USdKxHhEyEq5UAfoBi1d5IoT/ZBE2Nwy9WHM7fivxddwsCCMLH/mCnltyZVJ/nTU+DFg8EDKoW7l/Sib0YpwAlSfMypSGo2kKkpy7R1w9AlBaT55Y+r7ZO1oHHQzctcl7Phj74GBJu/BZzWQoRdXK2FEU6FHYBiGCJICQEILS0G7aIGalnYe9uA98xzGHFigzdmMsLy2LMYAWNNJWWNwwmMMZbEFKbHYNcOnnQUwJScdffPyPi2/MGgt10wLOD4+8W9qSSXGL0o6j7m7sRcLe6zDTQ== Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7080.eurprd07.prod.outlook.com (2603:10a6:20b:239::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.21; Tue, 2 Jul 2024 05:52:42 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7741.017; Tue, 2 Jul 2024 05:52:42 +0000 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , "mst@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v5 16/22] intel_iommu: fill the PASID field when creating an instance of IOMMUTLBEntry Thread-Topic: [PATCH ats_vtd v5 16/22] intel_iommu: fill the PASID field when creating an instance of IOMMUTLBEntry Thread-Index: AQHazEQNQYz3PeHS6kG65cht4wNBcQ== Date: Tue, 2 Jul 2024 05:52:42 +0000 Message-ID: <20240702055221.1337035-17-clement.mathieu--drif@eviden.com> References: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AS8PR07MB7080:EE_ x-ms-office365-filtering-correlation-id: 7bec113f-f8ef-424e-623e-08dc9a5b3061 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?q?/rYpcpjgU3UBhoSQedJ1H37bamRqEcr?= =?utf-8?q?Jj5qU1uvHxxSre1427LmZakTAZO3W+EV40v8twgQucJntRzQYbRTaM2m5dShmncrA?= =?utf-8?q?tVyvVtlRUlPhhpeDRfb8FaK9MBtp9sgKnHRSw8Q/r0/T7YQVXwzPudqTCC0Tgjh3U?= =?utf-8?q?ISmk9cS4qUNr3fQE35wijDo7X+G7FkuAWgcwAU5D1p5VTJbOh5OcMqWqsBU6+drjJ?= =?utf-8?q?rE5f5caqO5Lmj5hccmKFpJYDLwGKQKeObsEmYBoYLMEOkrI1HTAgKbID8D/fYt/lY?= =?utf-8?q?1WuuiYODatoPPVit3bs39x05Tk+m3nzMFb4Qvmi396KFoxBpRUOlHJ05+7YvJsJMk?= =?utf-8?q?LbE5gHmN4xnenVnn7OjjWWGudgFPtFP6P6KV+x7P4MzVXbf2IR7tp9yqbMWG/eAIX?= =?utf-8?q?TampYhQEzuZ5UI91XQKbIu+fOv6V2jNeQmzhTnSFRqTONhp7HbIkjFTnrav+abaif?= =?utf-8?q?hmZ5Zm3bQZByP1HXMYivg5Nqun9jhTMcoHd08ctt5XsYrn4nXb/nTDWBj8Zu0fPWR?= =?utf-8?q?dCPxsn+5kut5/To6nrYE++zfB+eD86DUa5utlo3XM0UWCs+wfnKeYUMOYjFKsXq0D?= =?utf-8?q?95sStoVCOEQyveKIyvazVEFXqnZNYgRm4n2KOXmK78n+JFXkU7T+KSqntXfCXZlBd?= =?utf-8?q?6dSh5GR23X5boDM9DEq9KBfffFO2jfntPb3hBDIHOcFhFNdCjG3bni7CR82FnA4JM?= =?utf-8?q?RrH+IUMxU3iX4MWklM4uA/EYMzpDgIs+9CEBZAWl70xAsYPsp7x8W5sqdsNE8ygAP?= =?utf-8?q?i4Y37qrV2247RyJbTjVIMoVgJIPyzkwcjKhKr9mxjdS4mjhEzyuozyvt6J6KQ9YE4?= =?utf-8?q?gZOFE/4HcRnOyjGr5YQwpMBbJLusuHZbScQarLVs2iuggtyCYcBS8jUc0FMMZr/hO?= =?utf-8?q?1oQkMMcSoPz85zrMghTGtaGXDH1lpw/8aN0pi5rrveXewKGu+bu9XllNESCsyE16m?= =?utf-8?q?oytJHxjSaQybIClQicGFj9IbyyaSLOnNKcZH6RpQMrd7VmS2B126aKg04gDLPW4dC?= =?utf-8?q?XRIcrY+PGOvhQxjdqtbGN/XVKF3gla2QOlNk7XNQbSslCrRbwutdmJaysv4mRufp/?= =?utf-8?q?e4iWAUF8RW9HrvG1VmHqS35jH85imfSkXDsgYYib40IZon/ep7p2hU/yBU0Oqhr3R?= =?utf-8?q?q8tvnBsWmOebPj3mYdOwMZSYrHpnrFTK3JuZvq7qGGR9+SuqlOeVCiur3GyaOvFZc?= =?utf-8?q?SGwJ1VW7z4++S1KfCxyZpuZMxEGZnuR8wEXna5ROhVdt1wti3sCknqk4fHiCybai8?= =?utf-8?q?HwO4UQELmuHmjGqrNF18vWQzobrCrU7/LQ28pGha7fBWtP+t6rON5x4kmpymuXe+p?= =?utf-8?q?6IYHfLO0GFpS8fw43HfDEnywwbf/h9JwEA=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?z+6QsSDNuaf13dexgwJTY9/I+cc8?= =?utf-8?q?CG/efkMREZisqZ4/KCw1aPIeyWmZDkZ2Al3uqirPVZ5bpGgDX8kv4GPy7fzBHSxjR?= =?utf-8?q?nVVw39r8d3LALmgWxF8MXuFye9Z/erIopC4nUixwPMzaxOz4OXbkU+WR3VQT22VN8?= =?utf-8?q?HtxI10V39cVasCcVRNxUBb52iT0ldpVnkQ+godFoD40gLqJom0mhP0KPrssJo6W4+?= =?utf-8?q?vJab4ShXIxqiIQ/oLb/+Cot99C4I+QJr9n9DUm/Ca2R0ICBnEbEuLDSeXpON7T6qG?= =?utf-8?q?PgL2OaDVXgzqnLhTFntNEn8WSe1k3sYO7EdWbYoE6f23VmoEst9boD8bpAccED5AD?= =?utf-8?q?vqX7EuE/9uAXhGj1TwWFfksmCSGslwuZrq2js+EAUw56UEeWyuqUfwHPnKnsBQjUq?= =?utf-8?q?g6SXf77ZEDXNzIJbszNmMjpEzp7RM11OoJNhbDRH46De9u+CtqGWaowFVzX6MfOCZ?= =?utf-8?q?B2a3KPDMqjZPvHGNn7F6CL88pcEqOq3cqOECk2Li8WYbDsSHsjSHoMypPPsL0poPp?= =?utf-8?q?Hp0NiAc9bWNAYavgWWxBD92mCYEbA9roz7Zorm+GK0W24p6l6BNNJjtUax2h0AMWb?= =?utf-8?q?HXZihTmiufZgA3jiYp1AV17uL2BoYbK9ucEpz4GkrFRKtebfO8R9trop0m8ZiE50f?= =?utf-8?q?By9djV0gYdPzbbt4cKC7UUGYj7Ckw1H26zcyA5uaCQZVZ4n3eQakqRHSQiRZ2HXwG?= =?utf-8?q?T18u7y9a2hBC8V2tX5wzE7rbLNazhO/fIEXulTasWDp+FyDlhIhWXvppTgK8nl23l?= =?utf-8?q?I7Doy9P5t09YavrX6ngfQf4GWm2wVme2kLyxVCq3CyHSxuLQX0mHfPxRfXGHYWLl6?= =?utf-8?q?5lqT4BPhuZH0zg1y5+U8F1z4qwkznlO6P6PIZpd+9zxqm1utYf2cmp3QCq0d3lMbg?= =?utf-8?q?jac3tFYBAfnl0NhGvcJM0IzK6qYq4xXGLYMlcdpHHJckvLSBTyKu9IS6iHCDcVl+G?= =?utf-8?q?D/AM/IznRo9QbeYrPdeEbZQZmHf6UuB80sJx8B2BCW8hguQDiAAshFalWGImnEWqu?= =?utf-8?q?dxfxgYdveDYQ1BfCUQVGn0A9OfyzfQNiMmcG/ANunVHQRG9o0Fy5nUpoNqDl4YOM4?= =?utf-8?q?gdAMSzc8q6yAzfxP815x/vVbBoTUWqR8V6ArOlf5aiiEif7lEqwMUQQsa9p5W7MeS?= =?utf-8?q?Su1cohGNpC8DE9Lr0TiYb/Tr5DHqc+YFNXLIFFlPdU2ZVTfaMKlaLl87SRjrAfeI8?= =?utf-8?q?imiXAf/cdgXAqmoMSu9PIaZMsEFMr1k2KrF9e9COC5x5ZGYiI/cVUQr7cEmB2Fhbm?= =?utf-8?q?lfUWVamPhbEsx+SWLaXPEaeOnd4dgLSSr+0K6f5Vjl/4oY/5AwM7IMIZvuNuPr0j2?= =?utf-8?q?6iDcY1nV7hPNnURJk4vvsUvzBudF9HmwCmH4v9kUUzxsmnBzr4aNua0RmucPhlsgd?= =?utf-8?q?ay9nSDloAyW+qEYTOombTKaYK/T9Xn2xHXlGneufQt3s0crS6at1KLun9PtA3jbRg?= =?utf-8?q?jlHfWwFwcKHKQJrRDEW3rMIs4NQD4xlvy2vb9cULAXTYVxxlYLPX8fbdVB0HguPId?= =?utf-8?q?c14AGpe8hUjzrf/JfYqnfhvsKv0vx7YyRF+GGtVT3qw/uEb4J7v95js=3D?= Content-ID: <6A64D841B770834BBB77DBBC9210C4FF@eurprd07.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7bec113f-f8ef-424e-623e-08dc9a5b3061 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2024 05:52:42.3775 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: uLJ++DSFComEYZWvxKbAvfnJpQrS/P8AtoqObrEiv8tN2UA2DN7h3tpzuEjXfFs+PHqyMrXu2Tu4MoXTEQN3fRKXVqXNZtmJNmbwJEXokP5YmrAmXOxsnjvRbSZAusJn X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7080 Received-SPF: pass client-ip=80.78.11.84; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost3.eviden.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: Clément Mathieu--Drif Signed-off-by: Clément Mathieu--Drif --- hw/i386/intel_iommu.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 2e4f535dd1..f77972130f 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -2210,6 +2210,9 @@ static bool vtd_do_iommu_translate(VTDAddressSpace *vtd_as, PCIBus *bus, vtd_iommu_lock(s); + /* fill the pasid before getting rid2pasid */ + entry->pasid = pasid; + cc_entry = &vtd_as->context_cache_entry; /* Try to fetch pte form IOTLB, we don't need RID2PASID logic */ @@ -2328,6 +2331,7 @@ out: entry->translated_addr = vtd_get_pte_addr(pte, s->aw_bits) & page_mask; entry->addr_mask = ~page_mask; entry->perm = access_flags; + /* pasid already set */ return true; error: @@ -2336,6 +2340,7 @@ error: entry->translated_addr = 0; entry->addr_mask = 0; entry->perm = IOMMU_NONE; + entry->pasid = PCI_NO_PASID; return false; } @@ -3697,6 +3702,7 @@ static void vtd_piotlb_page_invalidate(IntelIOMMUState *s, uint16_t domain_id, event.entry.target_as = &address_space_memory; event.entry.iova = addr; event.entry.perm = IOMMU_NONE; + event.entry.pasid = pasid; event.entry.addr_mask = size - 1; event.entry.translated_addr = 0; memory_region_notify_iommu(&vtd_as->iommu, 0, event); @@ -4344,6 +4350,7 @@ static void do_invalidate_device_tlb(VTDAddressSpace *vtd_dev_as, event.entry.iova = addr; event.entry.perm = IOMMU_NONE; event.entry.translated_addr = 0; + event.entry.pasid = vtd_dev_as->pasid; memory_region_notify_iommu(&vtd_dev_as->iommu, 0, event); } @@ -4920,6 +4927,7 @@ static IOMMUTLBEntry vtd_iommu_translate(IOMMUMemoryRegion *iommu, hwaddr addr, IOMMUTLBEntry iotlb = { /* We'll fill in the rest later. */ .target_as = &address_space_memory, + .pasid = vtd_as->pasid, }; bool success; @@ -4932,6 +4940,7 @@ static IOMMUTLBEntry vtd_iommu_translate(IOMMUMemoryRegion *iommu, hwaddr addr, iotlb.translated_addr = addr & VTD_PAGE_MASK_4K; iotlb.addr_mask = ~VTD_PAGE_MASK_4K; iotlb.perm = IOMMU_RW; + iotlb.pasid = PCI_NO_PASID; success = true; } From patchwork Tue Jul 2 05:52:43 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: CLEMENT MATHIEU--DRIF X-Patchwork-Id: 13718997 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 1D472C41513 for ; Tue, 2 Jul 2024 05:55:44 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sOWRf-00081a-PP; Tue, 02 Jul 2024 01:52:51 -0400 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 1sOWRd-0007zm-CR for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:49 -0400 Received: from smarthost2.eviden.com ([80.78.11.83]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOWRZ-0006Un-5C for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:49 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1719899565; x=1751435565; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=aaciKa6xrwSW2NtKsj36kO/MEVhisO6XpupR7gvFUH0=; b=NT+6ChqCq3RO1Y4T3lL3ArDXr29bUtBiDzv1JvnDDd2Psujx2u4MB/mh 1QkbrtjyYKDIcy/OfCIEdqYrieA0VximXzNVP6JLS/Kje3+dkjsNnLTfY MThPLhQPHV/TGn8lo6hjCZQa0NNoIuY3+m2DxJYhYpe290iIwGx778Rgv 4fmB4neZoMlAxE9FRhhQ8HDbPqTJYXqTtdfoDxnH8nfe19TkdDgxyOVCG 3MFnXbPDnfFtxNe01LoxbXjfaOi0j3zrzOLztpp3JYpUqUWzWzTsDpjs6 YrbT/Dx1mA0ssECZTcVHICSKoQiO4/QxFoOVSdW2xqsXcIyLaxWGHZJJj w==; X-IronPort-AV: E=Sophos;i="6.09,178,1716242400"; d="scan'208";a="15721524" X-MGA-submission: MDFdYXZNQMo2OED/j5/Bxa2wB2WbI6frAHbL2u5lX8arh7JObDvePlN4pGdDkrXUFheqjsOB0KV6zF2vtkaF2UNT65zihjz9/qSIiOr9MYab155/Pw2r82x17t+BhBk7jxrGoXOOLRbRTE0V0OylT3HSQg5a9GRE3tumJVanXftITQ== Received: from mail-am6eur05lp2113.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.113]) by smarthost2.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jul 2024 07:52:44 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EkuQ7QZVygErYSEeIU0AY9bgAQbuGa0Z/E+D7gnFSYepCaT2EL0j3TPGWYPgwktQzugswlQFhXRxpf+6KSvJyFmWVpf1BDdA/t5J9r4yjG7pesFBSU4XjciNSs73TeThkpL5OvPEtKJDypKusei3lFNQFRvpQtIW534d4xQyShUtL/3vXX+i04CZxw8K6GMRdgvIRvW8WSRlXaMIcWe+QJ2aEwXmSvbcNdoMcpXFBH5caBmA0mJ8KaFBeICMk2gg58uMU0GZs8DA0w1uE49DwIDBVS3eQDQCkaoAyoJ59GKD1lYlo4xJrrIh1LH1w25WdwmvVn8rqYXK4hpWD1lc3g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=aaciKa6xrwSW2NtKsj36kO/MEVhisO6XpupR7gvFUH0=; b=XRG2Mzac4RXdU10DjCPz8KnmmS8UQyNQfOcMjuHsklftBGknozcctFl6ohjHkx2JLAhRIAoH/d4eQRmVreJiMbKuRghGeFuPQ/uZn7X6TkKL1c99+ZUY6gJIkP/SF307TdOyGQCTS8x0uv6MYXdwK/wEUj8L3qfkxbzLAD+jjG1554ayx5yea7XQlQK480SiACPpiatUVXMgOMpNMfD+RI9MtVJM+eH0ez/WAx151I9nxFEsaXi0rxWmaQ5prEY/mh2inwCNhNIxJvt0YJXsIHWK9Ixj1AplqUcVafNZFML2k9TCukU+HXa1anB47z2hECT8jVY7sOV316d3jPlvgw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aaciKa6xrwSW2NtKsj36kO/MEVhisO6XpupR7gvFUH0=; b=heDAWprl/FuBFHP1clQgmwKvDlYaf6ITaysfi3JkqH1eR3aBqnHOMw3u06By/QtU8J+RTLMwBawn9pThJ68N2E4XmHUIx/Gp5ZFi7mganLY9R6L7ak9xqZ2cwI1fC/6xj7MwgWWLw6ktEbxPr/cPe5Nsy4y4c+tVObPpIDIFP5F9fvAmykTtVchUJvCqynWAHSntwkakSIYqwj3NbrjjrvKUQJVTyGIX14Zkc+t+wdjs7Y8NdhjZX1Ha1bSybYRJ2N3tg5U4aRXDPqUstHYJwfbhF/wqMNwm0yXx78rcSvVxf8CBu11CNJxp0VDpTT/zm8YoEvlCZWLniQBNXHjgKw== Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7080.eurprd07.prod.outlook.com (2603:10a6:20b:239::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.21; Tue, 2 Jul 2024 05:52:43 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7741.017; Tue, 2 Jul 2024 05:52:43 +0000 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , "mst@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v5 17/22] atc: generic ATC that can be used by PCIe devices that support SVM Thread-Topic: [PATCH ats_vtd v5 17/22] atc: generic ATC that can be used by PCIe devices that support SVM Thread-Index: AQHazEQOlP+g0o1Bb0i4sVdTaZApDg== Date: Tue, 2 Jul 2024 05:52:43 +0000 Message-ID: <20240702055221.1337035-18-clement.mathieu--drif@eviden.com> References: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AS8PR07MB7080:EE_ x-ms-office365-filtering-correlation-id: 9c4a2b03-732a-4633-5896-08dc9a5b30ca x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?q?lsk958XcgZMLcVYYcHltX/7accDr5qa?= =?utf-8?q?owmt1o8jzMVCtk4tT/HXDqCvQLJCNXUsxkwf/UYQVPfTI/fX5l+EWOaiHHcJgwmDT?= =?utf-8?q?cDxp8CT2RyUAixdqDNGLOa4ZoObVnLEegsr08ePABN5oxdo2qnUJ/vuNtrb/mCfbl?= =?utf-8?q?v5iwtLC/gl/2ZfiUg2Dx37wgACz/Ic92YWY7ukdQIerKOFJDZOPen2uSpXxe/kh21?= =?utf-8?q?skM0rKtu3ldAR6Sjhwz5R8TSNuae/Yc/DhOEHc5PiY2gV0JyQRahXXLuLU+76FdrB?= =?utf-8?q?8RyIDe5pKHuB9rwdY9tB/ZdUyIGuM0T5gobBJzb0+zJzD576YgJm3Mh8O28gq3zWB?= =?utf-8?q?OhIQDcTPw0N58ZsTXjBNnE9j0Nhi4/MlC+aX6qsW4VYqlq6X/UWl//d2yUGgQ7NG7?= =?utf-8?q?kDQJDmrIIvptxWIECSU+MY8MW51NbdLn5QeWShPbQqRYVhaubGIOOc9I11DRMSymu?= =?utf-8?q?LRZLHqmgyMyuVXUGDoPCr8ZLtIAsxfDEsG1ilSxzHVMiXvcP8m6DaF6r1P2jGzSue?= =?utf-8?q?M0MCfPNuunhi80aH4OljaG6b9utSOr3x0HsEKVpDVk7j62KoGwiSg6K7EZv7ME2Km?= =?utf-8?q?yr1fgApiaV5UNTjDYK7ExyBjRDcwbTmlaxKDT+dvNJc2aHpg1W2S09Yzzdpq7oVWu?= =?utf-8?q?OPiIR58joglUHXksS6kT0Z3VAsGyCgAfzC0YDyO7Qr06hUrB3Urmg5291zgjsHLzl?= =?utf-8?q?rZEz48kF8FUrb0wKZToiIJPoUqY/IrJZFYAE8gHLsT+6jeHgwL1oJqFQfEMW7XTWA?= =?utf-8?q?fta+vPnxXgjgYyyPzvMc+W6sCDiT5vXpA/c08k7UL2Pr59P+HLFc8xfDIvAzxbHvG?= =?utf-8?q?fNiGjUSxwjFeSlN/GfBWiurYrZ9G+C/oGut9naclTn/Ogo+2mJCXZ6Naimy65vbST?= =?utf-8?q?w4UgZBh9mBH87JLSm6AQHsIMoVf13Pl/oCBoGFVImPCzI43F1qruD8+v886Ji+hqF?= =?utf-8?q?DlrZIFBIn3r0ozANIai82MTRummjPuvG1d2xNaqehoOtDiCxrmsVpO/YBwrlh2ltY?= =?utf-8?q?ioc15hdzAfQLgYUNazSUdfdcaJBsECKrR9F+TJUI4y2BNgUwu5eiGBW5kT0SQK1X5?= =?utf-8?q?eHCLLijuIDS5L2JmJBKAjjGqAVS+Rvj/mW7avF+OouF0k5T0+W80QbflBUt1LumLL?= =?utf-8?q?i5YRbsM30fpeqIIRo1AAWtfjsdw0eWJ90WAPqbwoQZ/3Bnv7v+bRki+2jW8KW2zJU?= =?utf-8?q?HCoUjxIVDow8IOiyXxLhEVgPCTK/6jEUGRdSCZe3AaqyuXPh/n/SMUSTCS9y9iDsa?= =?utf-8?q?nfbI1YjzRDkxKLKhY7pTwWHpVk6h58bB4hAMtEPwq4SRiXtHFtu0K8Bo=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?hnk7qbXIlZvyX4ZtKOsnOnY3YcTO?= =?utf-8?q?CG/hoXVcR4Jo7pQMK0dA+i+k6b+NB/5jOC9F7GBDmxCyNewqFaL5U+5uR1oh3XNxa?= =?utf-8?q?1o9MNe/1GXMzoPPT5uwBz43UP6Vc09UrUzHYwn+vArwuz38HaN/ll/AEdQtNpu6pm?= =?utf-8?q?jJtXydXDDAwq8QDalLETYiuRwgd9aTAxeFBe+h/Eg+0ElDliR6qtTF/qekyJfmb9d?= =?utf-8?q?Bvu4jZI4ZIvnPnFWjPnEhVcksUFVFzy5p7wO0g8iqvR1vDRBW0xalz//ZN7/r/bcZ?= =?utf-8?q?nndPDY4fMcC2EJHzCa8dCDcdFZ1juJ7cFIaCBw7m0F+hOqXrrgTIMzVyT5UO3TyML?= =?utf-8?q?JEJSykq3Nl8a/plWxrr1aE8WgUGgYFJj0dlNENSeahSS+IxNCRDeUed3xaZus9Lez?= =?utf-8?q?rKOh3seoKff1YegcFxbFXDPlzlLr/KDxWV9OM3Dwnf01+Cmua1B791ftr37ufWk+7?= =?utf-8?q?50FNfX4nfpKdvcUSBaITYHHJDeT/koF312Db9eZQbam82r464CkmyP662yOgPjbHq?= =?utf-8?q?Lg1M2ZGV/M8qr+zchctCxdZlx94YiVLgj5u86K9GxrGF9niVc/oLyBqCfhZrfS0Bd?= =?utf-8?q?InrZufKsZtRzYJqofd1Lf6CX45DSwbj50C8l0xGYlhwNDEc2cVN3Om0YE9eDYabvF?= =?utf-8?q?pPHqbcqKtj3Fjij4/ctAsxA+Xs0q+ZnqWj71qQAy8m5x6zxX3c9a1rBK7suSrxiRe?= =?utf-8?q?nvuxr+oUAuvuPzPTbn0lfPLcPQwT45IiQvm3on/JD6oGhz0Grp08poGDO3V7JB36y?= =?utf-8?q?rgKaDWWdwlQwjAjHdJ6kERnA2X9s290VHKPA1IHb3iIA6XDAylIue5J+ithY+CWgr?= =?utf-8?q?RVtQ5Br+jBlOD2CwLXnXeLG73WJAe6DOk/YQ/S0DUF8xTSy4CAWw/er4Q7vFIYbTz?= =?utf-8?q?SlZfrRqpd+RVnc0rBIyAoLcM6oDhxDOUp/d3qv80x4YlKccof0cQw7/nX5r5Fa3H9?= =?utf-8?q?o0ahCsdmMzlIAPsOgy2vIEyrFl3hnOfbHE5rrnVho/oIxhg6t+pBMgJB0/ke2Mjse?= =?utf-8?q?pONClBUQFwLBIIrTiWomAt9QnZKqaTgcj6v35KtdEIIpBPolO/McPKxFs5V+/AUXs?= =?utf-8?q?9Ga14kSpjnylLFnev4swWB1fYLfx8Aegn9jTtlOEjkxozvHoP7fWNwg9wNFJ5wxbQ?= =?utf-8?q?dBP0RYntINPRo8r6mHiszCXDkqXTd5BVBSTTiErnyDuMmKNY2tEGDMaf0Dzndll+3?= =?utf-8?q?DuEd9uF0vnCvEBcLYRosdbX7m1UtZ1CYg+N+neEHWSyD8gN8U5Q2jbn6dOiumVEF0?= =?utf-8?q?jGWK3IS8eyPiN3cMY26f5uHY8/jymrrRu5sel5ifj6v+zlvA1tMOUjimNzf7pjiMf?= =?utf-8?q?RkXT0v2g2K6vCzsFWfWSjMdRodQ+8mXbrN5FO0cHXIz38+ONK1VyvRG2AAGOCmPKv?= =?utf-8?q?VTOsTG968w0O4wCgD1STa+sMMCmvzo5PqjmV6CuriKDYRr/mT7vuK5CbRo+uwsmxV?= =?utf-8?q?ER7gq/TUubJgaEIeLV4QTn/r5cE8XVL1twsABKEQSZjzIQp/7zd/37HVIYfOfvlvh?= =?utf-8?q?9hlsNst8XGJkbNH6WZ6IUoRCwyO1jXJBb2n8j6EMvHtFOl0Vod0actc=3D?= Content-ID: MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9c4a2b03-732a-4633-5896-08dc9a5b30ca X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2024 05:52:43.0905 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: pFQPKPCHQX9ChxQNNrfuPLbfrzHJ4NWz07nT5zLGI8+a/veW0IIqri/+gNsKQOGVMwraLBeDc3lUuz7iJuZYdxUltJvjTj1mnvOOblBgenozZL8INn4+yO1UgucL6+yS X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7080 Received-SPF: pass client-ip=80.78.11.83; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost2.eviden.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: Clément Mathieu--Drif As the SVM-capable devices will need to cache translations, we provide an first implementation. This cache uses a two-level design based on hash tables. The first level is indexed by a PASID and the second by a virtual addresse. Signed-off-by: Clément Mathieu--Drif --- util/atc.c | 211 +++++++++++++++++++++++++++++++++++++++++++++++ util/atc.h | 117 ++++++++++++++++++++++++++ util/meson.build | 1 + 3 files changed, 329 insertions(+) create mode 100644 util/atc.c create mode 100644 util/atc.h diff --git a/util/atc.c b/util/atc.c new file mode 100644 index 0000000000..584ce045db --- /dev/null +++ b/util/atc.c @@ -0,0 +1,211 @@ +/* + * QEMU emulation of an ATC + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + */ + +#include "util/atc.h" + + +#define PAGE_TABLE_ENTRY_SIZE 8 + +/* a pasid is hashed using the identity function */ +static guint atc_pasid_key_hash(gconstpointer v) +{ + return (guint)(uintptr_t)v; /* pasid */ +} + +/* pasid equality */ +static gboolean atc_pasid_key_equal(gconstpointer v1, gconstpointer v2) +{ + return v1 == v2; +} + +/* Hash function for IOTLB entries */ +static guint atc_addr_key_hash(gconstpointer v) +{ + hwaddr addr = (hwaddr)v; + return (guint)((addr >> 32) ^ (addr & 0xffffffffU)); +} + +/* Equality test for IOTLB entries */ +static gboolean atc_addr_key_equal(gconstpointer v1, gconstpointer v2) +{ + return (hwaddr)v1 == (hwaddr)v2; +} + +static void atc_address_space_free(void *as) +{ + g_hash_table_unref(as); +} + +/* return log2(val), or UINT8_MAX if val is not a power of 2 */ +static uint8_t ilog2(uint64_t val) +{ + uint8_t result = 0; + while (val != 1) { + if (val & 1) { + return UINT8_MAX; + } + + val >>= 1; + result += 1; + } + return result; +} + +ATC *atc_new(uint64_t page_size, uint8_t address_width) +{ + ATC *atc; + uint8_t log_page_size = ilog2(page_size); + /* number of bits each used to store all the intermediate indexes */ + uint64_t addr_lookup_indexes_size; + + if (log_page_size == UINT8_MAX) { + return NULL; + } + /* + * We only support page table entries of 8 (PAGE_TABLE_ENTRY_SIZE) bytes + * log2(page_size / 8) = log2(page_size) - 3 + * is the level offset + */ + if (log_page_size <= 3) { + return NULL; + } + + atc = g_new0(ATC, 1); + atc->address_spaces = g_hash_table_new_full(atc_pasid_key_hash, + atc_pasid_key_equal, + NULL, atc_address_space_free); + atc->level_offset = log_page_size - 3; + /* at this point, we know that page_size is a power of 2 */ + atc->min_addr_mask = page_size - 1; + addr_lookup_indexes_size = address_width - log_page_size; + if ((addr_lookup_indexes_size % atc->level_offset) != 0) { + goto error; + } + atc->levels = addr_lookup_indexes_size / atc->level_offset; + atc->page_size = page_size; + return atc; + +error: + g_free(atc); + return NULL; +} + +static inline GHashTable *atc_get_address_space_cache(ATC *atc, uint32_t pasid) +{ + return g_hash_table_lookup(atc->address_spaces, + (gconstpointer)(uintptr_t)pasid); +} + +void atc_create_address_space_cache(ATC *atc, uint32_t pasid) +{ + GHashTable *as_cache; + + as_cache = atc_get_address_space_cache(atc, pasid); + if (!as_cache) { + as_cache = g_hash_table_new_full(atc_addr_key_hash, + atc_addr_key_equal, + NULL, g_free); + g_hash_table_replace(atc->address_spaces, + (gpointer)(uintptr_t)pasid, as_cache); + } +} + +void atc_delete_address_space_cache(ATC *atc, uint32_t pasid) +{ + g_hash_table_remove(atc->address_spaces, (gpointer)(uintptr_t)pasid); +} + +int atc_update(ATC *atc, IOMMUTLBEntry *entry) +{ + IOMMUTLBEntry *value; + GHashTable *as_cache = atc_get_address_space_cache(atc, entry->pasid); + if (!as_cache) { + return -ENODEV; + } + value = g_memdup2(entry, sizeof(*value)); + g_hash_table_replace(as_cache, (gpointer)(entry->iova), value); + return 0; +} + +IOMMUTLBEntry *atc_lookup(ATC *atc, uint32_t pasid, hwaddr addr) +{ + IOMMUTLBEntry *entry; + hwaddr mask = atc->min_addr_mask; + hwaddr key = addr & (~mask); + GHashTable *as_cache = atc_get_address_space_cache(atc, pasid); + + if (!as_cache) { + return NULL; + } + + /* + * Iterate over the possible page sizes and try to find a hit + */ + for (uint8_t level = 0; level < atc->levels; ++level) { + entry = g_hash_table_lookup(as_cache, (gconstpointer)key); + if (entry && (mask == entry->addr_mask)) { + return entry; + } + mask = (mask << atc->level_offset) | ((1 << atc->level_offset) - 1); + key = addr & (~mask); + } + + return NULL; +} + +static gboolean atc_invalidate_entry_predicate(gpointer key, gpointer value, + gpointer user_data) +{ + IOMMUTLBEntry *entry = (IOMMUTLBEntry *)value; + IOMMUTLBEntry *target = (IOMMUTLBEntry *)user_data; + hwaddr target_mask = ~target->addr_mask; + hwaddr entry_mask = ~entry->addr_mask; + return ((target->iova & target_mask) == (entry->iova & target_mask)) || + ((target->iova & entry_mask) == (entry->iova & entry_mask)); +} + +void atc_invalidate(ATC *atc, IOMMUTLBEntry *entry) +{ + GHashTable *as_cache = atc_get_address_space_cache(atc, entry->pasid); + if (!as_cache) { + return; + } + g_hash_table_foreach_remove(as_cache, + atc_invalidate_entry_predicate, + entry); +} + +void atc_destroy(ATC *atc) +{ + g_hash_table_unref(atc->address_spaces); +} + +size_t atc_get_max_number_of_pages(ATC *atc, hwaddr addr, size_t length) +{ + hwaddr page_mask = ~(atc->min_addr_mask); + size_t result = (length / atc->page_size); + if ((((addr & page_mask) + length - 1) & page_mask) != + ((addr + length - 1) & page_mask)) { + result += 1; + } + return result + (length % atc->page_size != 0 ? 1 : 0); +} + +void atc_reset(ATC *atc) +{ + g_hash_table_remove_all(atc->address_spaces); +} diff --git a/util/atc.h b/util/atc.h new file mode 100644 index 0000000000..8be95f5cca --- /dev/null +++ b/util/atc.h @@ -0,0 +1,117 @@ +/* + * QEMU emulation of an ATC + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + */ + +#ifndef UTIL_ATC_H +#define UTIL_ATC_H + +#include "qemu/osdep.h" +#include "exec/memory.h" + +typedef struct ATC { + GHashTable *address_spaces; /* Key : pasid, value : GHashTable */ + hwaddr min_addr_mask; + uint64_t page_size; + uint8_t levels; + uint8_t level_offset; +} ATC; + +/* + * atc_new: Create an ATC. + * + * Return an ATC or NULL if the creation failed + * + * @page_size: #PCIDevice doing the memory access + * @address_width: width of the virtual addresses used by the IOMMU (in bits) + */ +ATC *atc_new(uint64_t page_size, uint8_t address_width); + +/* + * atc_update: Insert or update an entry in the cache + * + * Return 0 if the operation succeeds, a negative error code otherwise + * + * The insertion will fail if the address space associated with this pasid + * has not been created with atc_create_address_space_cache + * + * @atc: the ATC to update + * @entry: the tlb entry to insert into the cache + */ +int atc_update(ATC *atc, IOMMUTLBEntry *entry); + +/* + * atc_create_address_space_cache: delare a new address space + * identified by a PASID + * + * @atc: the ATC to update + * @pasid: the pasid of the address space to be created + */ +void atc_create_address_space_cache(ATC *atc, uint32_t pasid); + +/* + * atc_delete_address_space_cache: delete an address space + * identified by a PASID + * + * @atc: the ATC to update + * @pasid: the pasid of the address space to be deleted + */ +void atc_delete_address_space_cache(ATC *atc, uint32_t pasid); + +/* + * atc_lookup: query the cache in a given address space + * + * @atc: the ATC to query + * @pasid: the pasid of the address space to query + * @addr: the virtual address to translate + */ +IOMMUTLBEntry *atc_lookup(ATC *atc, uint32_t pasid, hwaddr addr); + +/* + * atc_invalidate: invalidate an entry in the cache + * + * @atc: the ATC to update + * @entry: the entry to invalidate + */ +void atc_invalidate(ATC *atc, IOMMUTLBEntry *entry); + +/* + * atc_destroy: delete an ATC + * + * @atc: the cache to be deleted + */ +void atc_destroy(ATC *atc); + +/* + * atc_get_max_number_of_pages: get the number of pages a memory operation + * will access if all the pages concerned have the minimum size. + * + * This function can be used to determine the size of the result array to be + * allocated when issuing an ATS request. + * + * @atc: the cache + * @addr: start address + * @length: number of bytes accessed from addr + */ +size_t atc_get_max_number_of_pages(ATC *atc, hwaddr addr, size_t length); + +/* + * atc_reset: invalidates all the entries stored in the ATC + * + * @atc: the cache + */ +void atc_reset(ATC *atc); + +#endif diff --git a/util/meson.build b/util/meson.build index 72b505df11..2273f8176a 100644 --- a/util/meson.build +++ b/util/meson.build @@ -93,6 +93,7 @@ if have_block util_ss.add(files('hbitmap.c')) util_ss.add(files('hexdump.c')) util_ss.add(files('iova-tree.c')) + util_ss.add(files('atc.c')) util_ss.add(files('iov.c')) util_ss.add(files('nvdimm-utils.c')) util_ss.add(files('block-helpers.c')) From patchwork Tue Jul 2 05:52:43 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: CLEMENT MATHIEU--DRIF X-Patchwork-Id: 13718983 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C2A13C3064D for ; Tue, 2 Jul 2024 05:54:14 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sOWRp-00084t-Va; Tue, 02 Jul 2024 01:53:02 -0400 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 1sOWRe-00080m-T9 for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:50 -0400 Received: from smarthost3.eviden.com ([80.78.11.84]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOWRb-0006Tu-8S for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:50 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1719899567; x=1751435567; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=Pj5z0hAw+NjLn1VR6KL0avt5Uy85jXw0wc6zN5J3Ci8=; b=oWjZvQ4rthdEmy6SfRKIKmL/8lGGS59ZZvUC5bZv1AXFysZc1F6R7J24 sr2J4yeWzls95TyA8q/rgSSJNpfsaiIu76L33Z5AU1JfSRiBYbd1WT2xg KYB0ksFgMlXmbAqekow9WtTIWy1M8SrhT9anax7ehAxwTj3Cc90OwRqF5 2q3JQHxweejX7aDYcF+r1cT0rC3QRaprNo82nrYBAOIFjfFTEIkkzmJ/9 dI5m8ycrv8R8Ttzmvv2gR83xv9ioJUoNa8nsekfvjhD1+PAhbKNYBEEIO YFXb05IOS4lCob32BjoD7fagto1FE1g6qqKZpdkNgbRtanF3eIJGruAkV w==; X-IronPort-AV: E=Sophos;i="6.09,178,1716242400"; d="scan'208";a="15721598" X-MGA-submission: MDHLAU2lft5nCTSx0xuoHwh5TpwqcaI2P9HNgrRt4F4uFKnuOgbHtAv8mYCu/qaCBncK2ShSlJlDf7FLkF/HN/ED+cSts6kLm+eINJfxBB0iquNgd/ljXQNMSgctmTpov6/BcU/9Cc6Br8r2bXYL913/+pDQtE+NgVTKAUWCzN8atg== Received: from mail-db8eur05lp2104.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.104]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jul 2024 07:52:46 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EWfANAJc+LIH8dEgybl0ij+55vWs6zcedRuRmjzBPksJFPEBZkwucUteSwcEeVU0U6ShRtn/HfytkUGpod4Du6ldp2GvG3svMURtR31ll//BdjpRVRMtvmo9x/4tnGpQeAJQCkit8D5hoY83tGLG4vhmxPYDWEewVez/ZvaiSeGY07AIHl51ZykEoI12bbgWc8y6p+qYYrD/Qhz4AhGvBiZwH5wNrGn/dA3uC2WbgGMgSraY15DfvgbKeRRM6W8STl/gY0aWMxI2SxLgePaf83MXXdTRHrpQpCgV1nfsE2kAf0fsdF81+tz+bt8VQh5WA03gLwvVwj6eR51BdX7dxA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=Pj5z0hAw+NjLn1VR6KL0avt5Uy85jXw0wc6zN5J3Ci8=; b=iL3OFQKEy2UCSIZwO6TxTFLQ7BL8sKoUJVYrTv2QhfJ1gboJa+zuWwmbxV60y7z/F0oG3SIgPKcpCN5RAh4jCVuF17s2rqln7gohpTuz1aMceTYI2XZStGQrT2+9ke1kmZaSjvVngaYunjgYrP+r8HBlJaRtb/mfiI+8nF2jAPCRnxDVnyBBNCjB907TyccBvKK8cGXKwvW8XWRs3taUAWXJvui0rBI9r6+ksTja5m57yyh2g0Fwcrmz9ra2SKhgRnwTHGi/8Mndj3LLKMQdHUTYLdLj3t3vo9DcdDSfO3HAdtpCCusYr6OGIcAh84h3TLQY4lcZS1lhlNs8vWEfVQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Pj5z0hAw+NjLn1VR6KL0avt5Uy85jXw0wc6zN5J3Ci8=; b=TzJxB7uDEYWQFiIb5x4ttWgidDND67/zKKKQZA/vtxmizKo1QWfeT7IbbnCA5cffP7ZhPfXMFIJibiYLQxkg0s77MYcnVYsOPPogGzblMnBF0vY6ngGYVSw0HKAuytuD9caKsGKuCQVdTF+r6FXvrUuUDW2KKXxd1Wfl4A18zTuFzDil4ZGNM36PkYYsTJiky4/gMpQ9VDvPenGqE7Pwl4qYZ0zK9zXhi51J7ejNBYEs0KoaJVg01C/LLWC15u01EsJKcEANSm9SA1NJAVAsll2wiBA0KVzUVuoXh25MFh5qtbwCSGcIZqDyEsNvkH+OxfwtzAjv3Z9bPd4nJ6PWYw== Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AM7PR07MB6215.eurprd07.prod.outlook.com (2603:10a6:20b:13d::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.21; Tue, 2 Jul 2024 05:52:44 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7741.017; Tue, 2 Jul 2024 05:52:43 +0000 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , "mst@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v5 18/22] atc: add unit tests Thread-Topic: [PATCH ats_vtd v5 18/22] atc: add unit tests Thread-Index: AQHazEQOeVc1WhZ78kmCQrNa03Z5zA== Date: Tue, 2 Jul 2024 05:52:43 +0000 Message-ID: <20240702055221.1337035-19-clement.mathieu--drif@eviden.com> References: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AM7PR07MB6215:EE_ x-ms-office365-filtering-correlation-id: ddfa4ef8-ef5f-420a-c7a9-08dc9a5b313c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|1800799024|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?q?HaymdSDq1rbkRzs4wZ2NBi7TfU/tEuC?= =?utf-8?q?yJida/0gm/ZHkgrwotjrE/n/VEomAxxlcHyFIIiJh6SDsuulHhUrz5cuc05C7bz+4?= =?utf-8?q?J+pveQ2UbOhmmWfjkA7XsuC+Ojw9V2FGknhD6W1N/s+jkF1Fhqm/Ns8lZfeH+gj47?= =?utf-8?q?63V8xwuPgJ1OKob/FWil2gXl+kIKHw10heFb+gGYnPnt4gnz55SkCcVPXl1w0aWTM?= =?utf-8?q?FnMH+qroGP2/J+OzDlaSC77LHassQuWSlV0VBoBiiXYGFr2XGvUGWTa/ZQjh6IGfD?= =?utf-8?q?Z8Iw5zqXkZUeZlDL2MNTZuUiMNDzLEt3bs4UdtDzIUprTE6GQBESnGhrZyERf+Hey?= =?utf-8?q?Johi9uLlsF8wAvN68M+37kwPu48Z/uUBvl5eLNvCDzjT1IyB21BvCbb0Bp/PojbLN?= =?utf-8?q?5PaxwPGzQBaEkO2cu73/A/lVkiT+Wb48ZYpYI97ppcRromH44clxsjDeEcreI8kx+?= =?utf-8?q?gO9MoZmKVP/a7CADar08UXcAtgqWYYcIC2sMkdypG8LM6Ft7qV7JPmHbi4G0fFOX8?= =?utf-8?q?lCkxnSOqj7yx3Gt6LjPAR+SThI2MoDcuad6mQONj2tIoE+vcb0JLbSlIHGuKETkln?= =?utf-8?q?0jTpAr6R3fRN4hkWkSOo/Vrk8rKln7wZyDT4miz6HzTiL5g85RYEowym1anUiznaz?= =?utf-8?q?U3nJRDbwAi+yEBnUs9+Xh/XiFFU82dTi63f5l2o4uefcYtJsws+rQEOeXcXu6Fn8Y?= =?utf-8?q?X/jgSZuXCl+IHXNpbT66Fs1bwgcSU6jgBbi/eR2+6WRmSSaTHDTh2f4mnHtMKlAmS?= =?utf-8?q?T7IkQdLuieGLiSawv78y2uIqBqOv2D6VBfKQFy5ZzYu3oumtT6Upppz5y90vAFScU?= =?utf-8?q?VIiA0fb9eKt6lBKJ2AMA0nrdFoyJUnI4jNY/nHm+TBdnWjlDAVzZdPvcGMoHRht7O?= =?utf-8?q?g5BPmD/O10TOcryV8fcyZejjzzQH+acZ0mKuAGRMzG46PUky9VG40EdnIZVmkDDEP?= =?utf-8?q?6GJIilDhRAzVfDMSsSfV5uVn+g2OfD6FVvt2qAB6Q+ZaNOcGdzxYk2tWQSnSKFRBy?= =?utf-8?q?Xfc9w/7CwRhBlHGV1jDt5dk/dVUAK7+3ZM7ljxQSG1If8v2QPwrNICo//BESxEpxZ?= =?utf-8?q?b2Q4Q4jOGiC+VBKhL+bCsJFCAewjStZsuD6lwhm5K1JVLQWfioQ5I8A9iWDQ2vu2H?= =?utf-8?q?mZbTreywd2ubJbh99G2yxzqcCTH+1rfHtxB0fAwzKU7EF4M8LGwxi6nDdqL6F5deb?= =?utf-8?q?rPKyxb9ECY9e6gGFGavULIc0cw+UltttaLWyScezqcaTmzKg35xaO1fkLY4+jZvZN?= =?utf-8?q?w5ZCYHLvmCoTSTSZbFRXSiklEgYiOhXEo44SpFvRlCrxbSo7yHs8L9uE=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?xlYYMYFU/n1zBkkvD5jq3hltqMXI?= =?utf-8?q?TgDm9bEx/2li9aIgSSZyfovoj5vQX3FwKmvdD6yJZvUmGTScdxDhw5P8eo9E4GDIC?= =?utf-8?q?Cu61S71UzHQuqUyJjJDEFujHSUF8gfTCd3Z9cHCnq+EddS8E1lllxnmIU9Ve5teIk?= =?utf-8?q?yNV3Cjh0ghSavi9s1ViIj/+lCwF7nNP2hpRN9d63xIP31zNYRJ6UPwoNOyoWDLiLg?= =?utf-8?q?gj7foxr6t1xhB28GBKYUJ5zxN/tmJOufqps7Bj6zmf38XMxgK43WPJ+sOvU2LoLEv?= =?utf-8?q?KjuIqz8a0jvVmuaU8HhgwPq5Ibuk8L+dGEuQ08Ac0L/HiWOKUlXTfLeL9VDvzdrap?= =?utf-8?q?QGOVMgieJAEcgQ4G6eMYYVaL+Uuziw4YX9pIG63vQmQ0dI4paflOVmJUyxYaL0ICC?= =?utf-8?q?h6wnVOXiPZnRjQ1s01qkyABxC5kNj2E5fMrfovipklRoIZuMoIzQMuFIZv0GGVI+X?= =?utf-8?q?FsRF9vBk7+i8zmSlnmpS2a0cXUCDBYsPtsGlGSLfyatTy0RHZHs3PMaEWyCDpgFRX?= =?utf-8?q?lrZkOuqEcbXfw+NcC10TUpiqKiwmn6HP3tarYEB0hEAYw9Va4dfHrX3o13uKybR6E?= =?utf-8?q?XOg6DLTzz3GgAzxiRf2cimxYmoA5/7prBSecG4iHEd1Hv5z3PWMNJPasdS3kea0nW?= =?utf-8?q?406XvM2gfD2CpCzLRr86XlACQ6uTKlcE72PVPnsk2S9/AY6qe81TyYEeEb46szV8T?= =?utf-8?q?mTdXU6WM3nZZcC9Qlrzw9/4W8C0ri/nA431+oD02qdJZQgCMJMQ+8Bto16EcVPUYb?= =?utf-8?q?K9pvuKTttrC3GAzyUV36tSSyYyUXfUkPWKa8Kl+nPUIF8FcBOryLIBTICJJcw3xF7?= =?utf-8?q?oPsIgMJ18pG0FbxBPvbzcYWrJgQKwUhIKRqaYkR+tPpliSyK9lmN7NmYYWh3HZXgR?= =?utf-8?q?VTg3UryWYsKS1DqE9FkdHiQWT9lMzh8DkCw7d6JXy6Uvp4r+eVe30Eyh64K3CW1iQ?= =?utf-8?q?WsIos6vjH07kYeCdh+inXmcNnIKQbc30OGOBYzAUMPxMBgtiHM69QBqKNP26Wz81i?= =?utf-8?q?2FfQRrFyTNvjmfA6wVcN7j0u+4qaylHXHlSr13s3ByF/bvtdzxchdYnjtiRcFV1lw?= =?utf-8?q?uIeiM4iNMfvYo9Hgzme1/VF4HhwFxrHt13UTZV1oyICZ8DcU5mIHFLlIOna3Vetgg?= =?utf-8?q?TOxacCKSFMiBkh/TJeMGWCCtwQQC6M1HFrvcX+nqhw9AvdlAAqujHzF5XJudkGoih?= =?utf-8?q?+GSP3oRbjEhJwL37PWYwOR5osYF9XX2J9Ik4CyFh+6b3B9C+55cMEnosqDFMKca6d?= =?utf-8?q?H3L0ZqpK6ogqPhCjuKngjJogn7Jb2pkal7YGhj+PHLcJF6+/fDsXOLP53xCLykpMx?= =?utf-8?q?7AKHvRP8YLQMCHStD0j0SUbLwJjpvqLnZc/bBPk/yc/qdnTCgouzFbgJwQYY5mFFV?= =?utf-8?q?6PRbTTsChtM77iA5eVZoAtrD63h6YVABxtVlF94Y4rwhzAdYytQYRIzCrERzlBjlI?= =?utf-8?q?Pu7LkMsVtFmh5nRoqPwirlHku0zCk2CQn805aABxFfinXCk0urfkzHVbl32FXp4yr?= =?utf-8?q?5Gya0MrHXIlGtB13FjDaiXFqf7/tgz7EjsRbyXGQTFHhltwigivp9mo=3D?= Content-ID: <6D8514AA069F854B860A4E22BBD1C81C@eurprd07.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ddfa4ef8-ef5f-420a-c7a9-08dc9a5b313c X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2024 05:52:43.8095 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: JUz6DnfK7bil8rO5ZR8UECKELyl+idf44UP3QNlwD+taX4dR3s5/RpvteTcMqbKxKUZHJyQ92udY0VeE2WBg509IyBcy+6aaso6h+Z1cLgfo9pwpvLCIMb9OVf3G+gzd X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR07MB6215 Received-SPF: pass client-ip=80.78.11.84; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost3.eviden.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: Clément Mathieu--Drif Signed-off-by: Clément Mathieu--Drif --- tests/unit/meson.build | 1 + tests/unit/test-atc.c | 527 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 528 insertions(+) create mode 100644 tests/unit/test-atc.c diff --git a/tests/unit/meson.build b/tests/unit/meson.build index 26c109c968..d6c6c574de 100644 --- a/tests/unit/meson.build +++ b/tests/unit/meson.build @@ -47,6 +47,7 @@ tests = { 'test-logging': [], 'test-qapi-util': [], 'test-interval-tree': [], + 'test-atc': [] } if have_system or have_tools diff --git a/tests/unit/test-atc.c b/tests/unit/test-atc.c new file mode 100644 index 0000000000..89378f7f63 --- /dev/null +++ b/tests/unit/test-atc.c @@ -0,0 +1,527 @@ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + */ + +#include "util/atc.h" + +static inline bool tlb_entry_equal(IOMMUTLBEntry *e1, IOMMUTLBEntry *e2) +{ + if (!e1 || !e2) { + return !e1 && !e2; + } + return e1->iova == e2->iova && + e1->addr_mask == e2->addr_mask && + e1->pasid == e2->pasid && + e1->perm == e2->perm && + e1->target_as == e2->target_as && + e1->translated_addr == e2->translated_addr; +} + +static void assert_lookup_equals(ATC *atc, IOMMUTLBEntry *target, + uint32_t pasid, hwaddr iova) +{ + IOMMUTLBEntry *result; + result = atc_lookup(atc, pasid, iova); + g_assert(tlb_entry_equal(result, target)); +} + +static void check_creation(uint64_t page_size, uint8_t address_width, + uint8_t levels, uint8_t level_offset, + bool should_work) { + ATC *atc = atc_new(page_size, address_width); + if (atc) { + if (atc->levels != levels || atc->level_offset != level_offset) { + g_assert(false); /* ATC created but invalid configuration : fail */ + } + atc_destroy(atc); + g_assert(should_work); + } else { + g_assert(!should_work); + } +} + +static void test_creation_parameters(void) +{ + check_creation(8, 39, 3, 9, false); + check_creation(4095, 39, 3, 9, false); + check_creation(4097, 39, 3, 9, false); + check_creation(8192, 48, 0, 0, false); + + check_creation(4096, 38, 0, 0, false); + check_creation(4096, 39, 3, 9, true); + check_creation(4096, 40, 0, 0, false); + check_creation(4096, 47, 0, 0, false); + check_creation(4096, 48, 4, 9, true); + check_creation(4096, 49, 0, 0, false); + check_creation(4096, 56, 0, 0, false); + check_creation(4096, 57, 5, 9, true); + check_creation(4096, 58, 0, 0, false); + + check_creation(16384, 35, 0, 0, false); + check_creation(16384, 36, 2, 11, true); + check_creation(16384, 37, 0, 0, false); + check_creation(16384, 46, 0, 0, false); + check_creation(16384, 47, 3, 11, true); + check_creation(16384, 48, 0, 0, false); + check_creation(16384, 57, 0, 0, false); + check_creation(16384, 58, 4, 11, true); + check_creation(16384, 59, 0, 0, false); +} + +static void test_single_entry(void) +{ + IOMMUTLBEntry entry = { + .iova = 0x123456789000ULL, + .addr_mask = 0xfffULL, + .pasid = 5, + .perm = IOMMU_RW, + .translated_addr = 0xdeadbeefULL, + }; + + ATC *atc = atc_new(4096, 48); + g_assert(atc); + + assert_lookup_equals(atc, NULL, entry.pasid, + entry.iova + (entry.addr_mask / 2)); + + atc_create_address_space_cache(atc, entry.pasid); + g_assert(atc_update(atc, &entry) == 0); + + assert_lookup_equals(atc, NULL, entry.pasid + 1, + entry.iova + (entry.addr_mask / 2)); + assert_lookup_equals(atc, &entry, entry.pasid, + entry.iova + (entry.addr_mask / 2)); + + atc_destroy(atc); +} + +static void test_single_entry_2(void) +{ + static uint64_t page_size = 4096; + IOMMUTLBEntry e1 = { + .iova = 0xabcdef200000ULL, + .addr_mask = 0xfffULL, + .pasid = 1, + .perm = IOMMU_RW, + .translated_addr = 0x5eedULL, + }; + + ATC *atc = atc_new(page_size , 48); + atc_create_address_space_cache(atc, e1.pasid); + atc_update(atc, &e1); + + assert_lookup_equals(atc, NULL, e1.pasid, 0xabcdef201000ULL); + + atc_destroy(atc); +} + +static void test_page_boundaries(void) +{ + static const uint32_t pasid = 5; + static const hwaddr page_size = 4096; + + /* 2 consecutive entries */ + IOMMUTLBEntry e1 = { + .iova = 0x123456789000ULL, + .addr_mask = page_size - 1, + .pasid = pasid, + .perm = IOMMU_RW, + .translated_addr = 0xdeadbeefULL, + }; + IOMMUTLBEntry e2 = { + .iova = e1.iova + page_size, + .addr_mask = page_size - 1, + .pasid = pasid, + .perm = IOMMU_RW, + .translated_addr = 0x900df00dULL, + }; + + ATC *atc = atc_new(page_size, 48); + + atc_create_address_space_cache(atc, e1.pasid); + /* creating the address space twice should not be a problem */ + atc_create_address_space_cache(atc, e1.pasid); + + atc_update(atc, &e1); + atc_update(atc, &e2); + + assert_lookup_equals(atc, NULL, e1.pasid, e1.iova - 1); + assert_lookup_equals(atc, &e1, e1.pasid, e1.iova); + assert_lookup_equals(atc, &e1, e1.pasid, e1.iova + e1.addr_mask); + g_assert((e1.iova + e1.addr_mask + 1) == e2.iova); + assert_lookup_equals(atc, &e2, e2.pasid, e2.iova); + assert_lookup_equals(atc, &e2, e2.pasid, e2.iova + e2.addr_mask); + assert_lookup_equals(atc, NULL, e2.pasid, e2.iova + e2.addr_mask + 1); + + assert_lookup_equals(atc, NULL, e1.pasid + 10, e1.iova); + assert_lookup_equals(atc, NULL, e2.pasid + 10, e2.iova); + atc_destroy(atc); +} + +static void test_huge_page(void) +{ + static const uint32_t pasid = 5; + static const hwaddr page_size = 4096; + IOMMUTLBEntry e1 = { + .iova = 0x123456600000ULL, + .addr_mask = 0x1fffffULL, + .pasid = pasid, + .perm = IOMMU_RW, + .translated_addr = 0xdeadbeefULL, + }; + hwaddr addr; + + ATC *atc = atc_new(page_size, 48); + + atc_create_address_space_cache(atc, e1.pasid); + atc_update(atc, &e1); + + for (addr = e1.iova; addr <= e1.iova + e1.addr_mask; addr += page_size) { + assert_lookup_equals(atc, &e1, e1.pasid, addr); + } + /* addr is now out of the huge page */ + assert_lookup_equals(atc, NULL, e1.pasid, addr); + atc_destroy(atc); +} + +static void test_pasid(void) +{ + hwaddr addr = 0xaaaaaaaaa000ULL; + IOMMUTLBEntry e1 = { + .iova = addr, + .addr_mask = 0xfffULL, + .pasid = 8, + .perm = IOMMU_RW, + .translated_addr = 0xdeadbeefULL, + }; + IOMMUTLBEntry e2 = { + .iova = addr, + .addr_mask = 0xfffULL, + .pasid = 2, + .perm = IOMMU_RW, + .translated_addr = 0xb001ULL, + }; + uint16_t i; + + ATC *atc = atc_new(4096, 48); + + atc_create_address_space_cache(atc, e1.pasid); + atc_create_address_space_cache(atc, e2.pasid); + atc_update(atc, &e1); + atc_update(atc, &e2); + + for (i = 0; i <= MAX(e1.pasid, e2.pasid) + 1; ++i) { + if (i == e1.pasid || i == e2.pasid) { + continue; + } + assert_lookup_equals(atc, NULL, i, addr); + } + assert_lookup_equals(atc, &e1, e1.pasid, addr); + assert_lookup_equals(atc, &e1, e1.pasid, addr); + atc_destroy(atc); +} + +static void test_large_address(void) +{ + IOMMUTLBEntry e1 = { + .iova = 0xaaaaaaaaa000ULL, + .addr_mask = 0xfffULL, + .pasid = 8, + .perm = IOMMU_RW, + .translated_addr = 0x5eeeeeedULL, + }; + IOMMUTLBEntry e2 = { + .iova = 0x1f00baaaaabf000ULL, + .addr_mask = 0xfffULL, + .pasid = e1.pasid, + .perm = IOMMU_RW, + .translated_addr = 0xdeadbeefULL, + }; + + ATC *atc = atc_new(4096, 57); + + atc_create_address_space_cache(atc, e1.pasid); + atc_update(atc, &e1); + atc_update(atc, &e2); + + assert_lookup_equals(atc, &e1, e1.pasid, e1.iova); + assert_lookup_equals(atc, &e2, e2.pasid, e2.iova); + atc_destroy(atc); +} + +static void test_bigger_page(void) +{ + IOMMUTLBEntry e1 = { + .iova = 0xaabbccdde000ULL, + .addr_mask = 0x1fffULL, + .pasid = 1, + .perm = IOMMU_RW, + .translated_addr = 0x5eeeeeedULL, + }; + hwaddr i; + + ATC *atc = atc_new(8192, 43); + + atc_create_address_space_cache(atc, e1.pasid); + atc_update(atc, &e1); + + i = e1.iova & (~e1.addr_mask); + assert_lookup_equals(atc, NULL, e1.pasid, i - 1); + while (i <= e1.iova + e1.addr_mask) { + assert_lookup_equals(atc, &e1, e1.pasid, i); + ++i; + } + assert_lookup_equals(atc, NULL, e1.pasid, i); + atc_destroy(atc); +} + +static void test_unknown_pasid(void) +{ + IOMMUTLBEntry e1 = { + .iova = 0xaabbccfff000ULL, + .addr_mask = 0xfffULL, + .pasid = 1, + .perm = IOMMU_RW, + .translated_addr = 0x5eeeeeedULL, + }; + + ATC *atc = atc_new(4096, 48); + g_assert(atc_update(atc, &e1) != 0); + assert_lookup_equals(atc, NULL, e1.pasid, e1.iova); + atc_destroy(atc); +} + +static void test_invalidation(void) +{ + static uint64_t page_size = 4096; + IOMMUTLBEntry e1 = { + .iova = 0xaabbccddf000ULL, + .addr_mask = 0xfffULL, + .pasid = 1, + .perm = IOMMU_RW, + .translated_addr = 0x5eeeeeedULL, + }; + IOMMUTLBEntry e2 = { + .iova = 0xffe00000ULL, + .addr_mask = 0x1fffffULL, + .pasid = 1, + .perm = IOMMU_RW, + .translated_addr = 0xb000001ULL, + }; + IOMMUTLBEntry e3; + + ATC *atc = atc_new(page_size , 48); + atc_create_address_space_cache(atc, e1.pasid); + + atc_update(atc, &e1); + assert_lookup_equals(atc, &e1, e1.pasid, e1.iova); + atc_invalidate(atc, &e1); + assert_lookup_equals(atc, NULL, e1.pasid, e1.iova); + + atc_update(atc, &e1); + atc_update(atc, &e2); + assert_lookup_equals(atc, &e1, e1.pasid, e1.iova); + assert_lookup_equals(atc, &e2, e2.pasid, e2.iova); + atc_invalidate(atc, &e2); + assert_lookup_equals(atc, &e1, e1.pasid, e1.iova); + assert_lookup_equals(atc, NULL, e2.pasid, e2.iova); + + /* invalidate a huge page by invalidating a small region */ + for (hwaddr addr = e2.iova; addr <= (e2.iova + e2.addr_mask); + addr += page_size) { + atc_update(atc, &e2); + assert_lookup_equals(atc, &e2, e2.pasid, e2.iova); + e3 = (IOMMUTLBEntry){ + .iova = addr, + .addr_mask = page_size - 1, + .pasid = e2.pasid, + .perm = IOMMU_RW, + .translated_addr = 0, + }; + atc_invalidate(atc, &e3); + assert_lookup_equals(atc, NULL, e2.pasid, e2.iova); + } + atc_destroy(atc); +} + +static void test_delete_address_space_cache(void) +{ + static uint64_t page_size = 4096; + IOMMUTLBEntry e1 = { + .iova = 0xaabbccddf000ULL, + .addr_mask = 0xfffULL, + .pasid = 1, + .perm = IOMMU_RW, + .translated_addr = 0x5eeeeeedULL, + }; + IOMMUTLBEntry e2 = { + .iova = e1.iova, + .addr_mask = 0xfffULL, + .pasid = 2, + .perm = IOMMU_RW, + .translated_addr = 0x5eeeeeedULL, + }; + + ATC *atc = atc_new(page_size , 48); + atc_create_address_space_cache(atc, e1.pasid); + + atc_update(atc, &e1); + assert_lookup_equals(atc, &e1, e1.pasid, e1.iova); + atc_invalidate(atc, &e2); /* unkown pasid : is a nop*/ + assert_lookup_equals(atc, &e1, e1.pasid, e1.iova); + + atc_create_address_space_cache(atc, e2.pasid); + atc_update(atc, &e2); + assert_lookup_equals(atc, &e1, e1.pasid, e1.iova); + assert_lookup_equals(atc, &e2, e2.pasid, e2.iova); + atc_invalidate(atc, &e1); + /* e1 has been removed but e2 is still there */ + assert_lookup_equals(atc, NULL, e1.pasid, e1.iova); + assert_lookup_equals(atc, &e2, e2.pasid, e2.iova); + + atc_update(atc, &e1); + assert_lookup_equals(atc, &e1, e1.pasid, e1.iova); + assert_lookup_equals(atc, &e2, e2.pasid, e2.iova); + + atc_delete_address_space_cache(atc, e2.pasid); + assert_lookup_equals(atc, &e1, e1.pasid, e1.iova); + assert_lookup_equals(atc, NULL, e2.pasid, e2.iova); + atc_destroy(atc); +} + +static void test_invalidate_entire_address_space(void) +{ + static uint64_t page_size = 4096; + IOMMUTLBEntry e1 = { + .iova = 0x1000ULL, + .addr_mask = 0xfffULL, + .pasid = 1, + .perm = IOMMU_RW, + .translated_addr = 0x5eedULL, + }; + IOMMUTLBEntry e2 = { + .iova = 0xfffffffff000ULL, + .addr_mask = 0xfffULL, + .pasid = 1, + .perm = IOMMU_RW, + .translated_addr = 0xbeefULL, + }; + IOMMUTLBEntry e3 = { + .iova = 0, + .addr_mask = 0xffffffffffffffffULL, + .pasid = 1, + .perm = IOMMU_RW, + .translated_addr = 0, + }; + + ATC *atc = atc_new(page_size , 48); + atc_create_address_space_cache(atc, e1.pasid); + + atc_update(atc, &e1); + atc_update(atc, &e2); + assert_lookup_equals(atc, &e1, e1.pasid, e1.iova); + assert_lookup_equals(atc, &e2, e2.pasid, e2.iova); + atc_invalidate(atc, &e3); + /* e1 has been removed but e2 is still there */ + assert_lookup_equals(atc, NULL, e1.pasid, e1.iova); + assert_lookup_equals(atc, NULL, e2.pasid, e2.iova); + + atc_destroy(atc); +} + +static void test_reset(void) +{ + static uint64_t page_size = 4096; + IOMMUTLBEntry e1 = { + .iova = 0x1000ULL, + .addr_mask = 0xfffULL, + .pasid = 1, + .perm = IOMMU_RW, + .translated_addr = 0x5eedULL, + }; + IOMMUTLBEntry e2 = { + .iova = 0xfffffffff000ULL, + .addr_mask = 0xfffULL, + .pasid = 2, + .perm = IOMMU_RW, + .translated_addr = 0xbeefULL, + }; + + ATC *atc = atc_new(page_size , 48); + atc_create_address_space_cache(atc, e1.pasid); + atc_create_address_space_cache(atc, e2.pasid); + atc_update(atc, &e1); + atc_update(atc, &e2); + + assert_lookup_equals(atc, &e1, e1.pasid, e1.iova); + assert_lookup_equals(atc, &e2, e2.pasid, e2.iova); + + atc_reset(atc); + + assert_lookup_equals(atc, NULL, e1.pasid, e1.iova); + assert_lookup_equals(atc, NULL, e2.pasid, e2.iova); + atc_destroy(atc); +} + +static void test_get_max_number_of_pages(void) +{ + static uint64_t page_size = 4096; + hwaddr base = 0xc0fee000; /* aligned */ + ATC *atc = atc_new(page_size , 48); + g_assert(atc_get_max_number_of_pages(atc, base, page_size / 2) == 1); + g_assert(atc_get_max_number_of_pages(atc, base, page_size) == 1); + g_assert(atc_get_max_number_of_pages(atc, base, page_size + 1) == 2); + + g_assert(atc_get_max_number_of_pages(atc, base + 10, 1) == 1); + g_assert(atc_get_max_number_of_pages(atc, base + 10, page_size - 10) == 1); + g_assert(atc_get_max_number_of_pages(atc, base + 10, + page_size - 10 + 1) == 2); + g_assert(atc_get_max_number_of_pages(atc, base + 10, + page_size - 10 + 2) == 2); + + g_assert(atc_get_max_number_of_pages(atc, base + page_size - 1, 1) == 1); + g_assert(atc_get_max_number_of_pages(atc, base + page_size - 1, 2) == 2); + g_assert(atc_get_max_number_of_pages(atc, base + page_size - 1, 3) == 2); + + g_assert(atc_get_max_number_of_pages(atc, base + 10, page_size * 20) == 21); + g_assert(atc_get_max_number_of_pages(atc, base + 10, + (page_size * 20) + (page_size - 10)) + == 21); + g_assert(atc_get_max_number_of_pages(atc, base + 10, + (page_size * 20) + + (page_size - 10 + 1)) == 22); +} + +int main(int argc, char **argv) +{ + g_test_init(&argc, &argv, NULL); + g_test_add_func("/atc/test_creation_parameters", test_creation_parameters); + g_test_add_func("/atc/test_single_entry", test_single_entry); + g_test_add_func("/atc/test_single_entry_2", test_single_entry_2); + g_test_add_func("/atc/test_page_boundaries", test_page_boundaries); + g_test_add_func("/atc/test_huge_page", test_huge_page); + g_test_add_func("/atc/test_pasid", test_pasid); + g_test_add_func("/atc/test_large_address", test_large_address); + g_test_add_func("/atc/test_bigger_page", test_bigger_page); + g_test_add_func("/atc/test_unknown_pasid", test_unknown_pasid); + g_test_add_func("/atc/test_invalidation", test_invalidation); + g_test_add_func("/atc/test_delete_address_space_cache", + test_delete_address_space_cache); + g_test_add_func("/atc/test_invalidate_entire_address_space", + test_invalidate_entire_address_space); + g_test_add_func("/atc/test_reset", test_reset); + g_test_add_func("/atc/test_get_max_number_of_pages", + test_get_max_number_of_pages); + return g_test_run(); +} From patchwork Tue Jul 2 05:52:44 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: CLEMENT MATHIEU--DRIF X-Patchwork-Id: 13718998 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id CE402C3064D for ; Tue, 2 Jul 2024 05:56:00 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sOWRo-00084K-7r; Tue, 02 Jul 2024 01:53:00 -0400 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 1sOWRe-00080a-Mq for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:50 -0400 Received: from smarthost3.eviden.com ([80.78.11.84]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOWRc-0006b9-Cb for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:50 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1719899568; x=1751435568; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=uURpO697BJoj6AGiwIj7FDv0GD3NcoC+arT0L1cxEHg=; b=nnzZqchFsscFnvrRhrj80P5maoJwsvoEXuiZordrv/ZsnuuBuXz2jxML pgWIIvE+x4RnJxfTgq0uisdwzQiFvkDbfZB4rzovmyqrlw1NS+mc6WNQC BZyEgj3r7/aviVDQp+wN6i+fhg+HbnG7/i9Fos9pJgvmieZ89QlxKxqGq t2DL/YsIsLZptgeBBIBBWu8NIzYR5XgED/p4J1kpPngzx6QU5M8wOuypS An1ILutANL+BA4g4y30yN1r47shvhOGbjeZXi8fTmaRDnHmrPhr8NMX7U xDlBg+4cdbql5TYZ350ylJfPMZqXWqD/WoRilpoNpbyb/Fw+mY0W+nTNw w==; X-IronPort-AV: E=Sophos;i="6.09,178,1716242400"; d="scan'208";a="15721602" X-MGA-submission: MDF5T5rs6JXIApWHkNP8w+Y9fcB4KmelyVPoLk1bLPG5Ez6TzI4ZVmkhNJK8fQyWOq7ejF/3x88FvQ4M+grQpPMYlwzQt89MavadkrhtIvGvMek3poozHTRtwTtmqzxKS/balpGUmITTAsYt9Te9bpaecgLqo8wm/VgT/2Z5GRvMmw== Received: from mail-db8eur05lp2104.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.104]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jul 2024 07:52:47 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jcRSPq+IQq4y0OvyPgIJHH+7PXWJSNOEEAliyPTYg2Djb389Hvy4nsBfmweDTGcGR9/XvgrX9qotx8pNp5RtQc1/VxnXpGFZvJ/+YP2dqbXj6UUjnlxXhogvYsgjZmUgOTns8pUcK2zEB8U65QVwEfzZbf3B8g76yITs0R4LsDhOd0yUKebMp0o39vdHVtV6LW4qCBlE9DX6lbCPLqU/md6LWRjPYmoME1aOoAtg0Wzzy+2IIbGQVe16Zy5s8E7nUu4C4RU4WGECYK6Kut6GS4yCk5MTOcEzLWSFXttjH8gP7bOIrmfcr/1GA5BvTiBeNd8ZIBP1R39n9Eg5v66Jqw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=uURpO697BJoj6AGiwIj7FDv0GD3NcoC+arT0L1cxEHg=; b=CxX1u6VMsZMuKhDe0P5S4iUHx8UoNsO5Kwu18Q+cPrNfW9rY1jolkrFgVa4ObIXX43DuErItVnJjGg7RcCv6uCZWDhO29O1CysgUzNec6QgKCI0ghji6vFs1QtB/XPJRjuDhJj9h8Oz0e5omgOsuSlBxw5/GvRC6psBLoJdCUcWRSlrL3d+PBBLuk5sDszH8AjsmbYBlTmk3adlczj5vl779Ryilor/rZQgBIzd8bNMl5KQtQAVzds5OEW0Uvv52dsNrh2Uux/vovUB47Ztssx4oKB+iysgUhx7tqO5RVt8rHnyqgU3Gx/lkFFFgqJwMDGhqOcRmg2CRyglHTNnGOA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uURpO697BJoj6AGiwIj7FDv0GD3NcoC+arT0L1cxEHg=; b=gjo85wzfp07PAHmFkBYJu3Fo+UchodubMQmgn+DNy+DD3rLQFhr065ShltrM0xal+z7m00PizfkL5iWTCTkjEGnlrrJb4Jnad40NUrcVJEw54AUlhQWPmu0wwLh1ntf93SPsAAWmoHnLGLRiutzGfCLeEvU7xyAofedvqdTjcT2o2zsRL9VQMd8z/edjyQqrrlF/L2Ki1KVV7ps2Zo4B7G1HUkNXMNI7nZcYKZu33sX0YmOC04PG1B2yncVV+sQvAPXX3uRn/v2LI1cYbp79giAt5Bh76eLx/IYioTZ6a1ASTyL0urASnjIrBpDo4XKG1Gc5ZegBPrnhoDQBV5wPQw== Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AM7PR07MB6215.eurprd07.prod.outlook.com (2603:10a6:20b:13d::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.21; Tue, 2 Jul 2024 05:52:44 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7741.017; Tue, 2 Jul 2024 05:52:44 +0000 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , "mst@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v5 19/22] memory: add an API for ATS support Thread-Topic: [PATCH ats_vtd v5 19/22] memory: add an API for ATS support Thread-Index: AQHazEQPuEYX/3NIkkWJkupwBDAHeg== Date: Tue, 2 Jul 2024 05:52:44 +0000 Message-ID: <20240702055221.1337035-20-clement.mathieu--drif@eviden.com> References: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AM7PR07MB6215:EE_ x-ms-office365-filtering-correlation-id: e16c1f1f-f0ea-4c17-d229-08dc9a5b31b8 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|1800799024|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?q?Lqp5BDoHfJ0ugIvGk9EkdcCyfcabiWT?= =?utf-8?q?brK8tUKMuxdGj6iy/5V3OtqciCCiVoLbiZEmaNDUQM9dZrTHE+YK5C1mE2LqbxSsk?= =?utf-8?q?S7k31bATo4nhoYgP43BsVH1YmatsQayoenmsZqdMSzyRhcJF2ROfAlONTrbTOQxNh?= =?utf-8?q?gxq7xdnIiW5xR2iCa0IFJSbkxEdp3UyWbQawKbjKKFsSrGKLBgB7DPSBAp1MCav4e?= =?utf-8?q?0Iw7lOTcI31IFxFSD/5Gw5B7TGfwy7+spC1eBMPGSmcZVN7+3fIhiuOHKciVWYCJX?= =?utf-8?q?2RMbnkG9/iD60XB73Fws4+tLPB2KV7uR4NTDj7LhIIKu9BJn4Hn3aumAeCHoSa6MI?= =?utf-8?q?L5AmB6hJGIiPYlG2dCzuuNFdfYxqMy5KjyAVI/Q4d3PZF1GX/meDVNYvuK9jhxoj9?= =?utf-8?q?dIsnVrJVtdFl890BD4n2C7SB6ZnyaUPi4yV1YtgIfcQ1iEzFpypEIcYjXSr/p4y8n?= =?utf-8?q?3OJKgttbxtsDttjEf2l3WP6abbBi7ae5TjYSng+voyIHlFxh3u5x4WeFQPqlCbasZ?= =?utf-8?q?V15IcdKMm+IKQ1IydRkjwdowiz/VNqwas7GQcZ78yPC7ogg2y5c+ryCrShsiAd7zR?= =?utf-8?q?E7z76/FFfeGnXMi9gby9vhxWFFcBcRWxR5Rw4Vn9+AS6JnTAj0Cp/mpfBamPyH0oF?= =?utf-8?q?22gJH9esFkg0iyh0O6h8MdeG8RIX9sQUYpof0Cu4rpPud2PXMh0sUukMqp6SJJNPF?= =?utf-8?q?UY520vDykt7zxHTNm714LZgZyiwWPctQHojTGXDPS4KUknsX5yy4Ib+2b9pLfaEy5?= =?utf-8?q?aA1Oi5GIVvwOrSq3UJeRFJz+L4XH8PBfRqG+OHwc11jNNYFwJZSPEPVlu4OKMynb5?= =?utf-8?q?w7zwzoY3YTVjzY20jc12yso27YCE1frZAlbSz4CcU1/qtQNcOBrBKxS5rrXMc1fyX?= =?utf-8?q?Pl8hdPO1ixbzSeGkQpYveSu8tKhAbBghtzI1XwMyFkDP6LgfcPnjtHGyMLEzb/vjm?= =?utf-8?q?03f3ASNqQA3vqH/hncSM7c0IIibJegGvbsOECBS2moH+jFv6hDomdcuC7VCvroqmx?= =?utf-8?q?DHesOYH51aAQ0K6exSjcfHpnjNKAquupXBKns8wERW/HuEoFhEMM17y0TI6AJSEvQ?= =?utf-8?q?NMbVb+VM5qaGP6Nej8ndjHUtL+LV1b5ZVnCBbXhRsW/XOJw97JqFuN1yEE0PAL0q3?= =?utf-8?q?gcYtxGrGDyBJXY4iygca+x5InIbyihSrKJmEJt9A/HAxfv7Yjq+VEzbfrk+GZBUUF?= =?utf-8?q?bRnTB+5P5ONksQxAarvpCIj0DcsbBJqeEQrIg6DzwhPoT5CJr61b5/N72dt8NY6fs?= =?utf-8?q?02iQPf0lQmn7pmfqdT4ibjxiWvAIEpxdyUAdSPlmJfXdk/mph7fBg9P+MXEqc00jS?= =?utf-8?q?Eko7NCg30jmX/3lCFaHSQIGDwENbqlRdTA=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?Y8g4To+K3n+SLuAIFJWMl02An8Ic?= =?utf-8?q?saZfuOT/fmSutLh0B6r8VXDvPLjfYxHXKbj7pGPFMjyT3hnW+asQ5mfjl+L/jPT5g?= =?utf-8?q?BQ6YJ9GQ9TofHfPi5I+bOZSzoixeq2M5cICo2oxKskFozxkEZwk1AerA9l+ZRawdR?= =?utf-8?q?yGOagLTj8CJwxY4WOXXEGCkaG+lPJlHe7c4B9Rz1fXBkQNbBavT8rI139y8bx6scP?= =?utf-8?q?LLPdc6bCgFSuRmFzzDyUo0RQKzjIjPLjNxm6A0vTlpguzWUw1cackVBIGmNwgMPhr?= =?utf-8?q?kEOOD/rNkUH2Z+q/wHZtx+hS1+XtTGwRLevKVnYGx/ird/iGWCtGoLoeKvb8hfvzm?= =?utf-8?q?mpCEEHh/OH6d/CCx72mC6vzv14lk9vriCt9lLvavMyn2Mi9d21slMUSTlK6gvxCB/?= =?utf-8?q?DX8H5NyC4FGdEPrRIzGP3n9af6JIUGswI0SDGSfBVtlV7HDIXpUsYD/ZBV7JDDLng?= =?utf-8?q?ELg9HzbJeQmbw1NIPHuwvAzevKq8nWVTiP7NZA60EkBS0+qOViiwzEMXc4VjzouPS?= =?utf-8?q?kACgKEZ1Etvct2aTKiKYP4LOY8rpjqA36hgm1qpjh1yJXE9XKBUPvIotidBFnmFHB?= =?utf-8?q?pUIYaQNaD9zzdrvOTf5Ar/o6QgRH+tj5lUEUaNv2GujwCW8jYUpwqJZZfM1ALi6WV?= =?utf-8?q?e+WBgEivBXOM4a5e5snrmzgM+RjTEDI1cw1yqq71d7Nle+oW0bZLFsDD1gYYF90C+?= =?utf-8?q?X13ZBK0UeEot6YOLs7XnztjkeBmMcEZ3LY6J7Zo1H0zeCs2dSgz8PpXuh3Q+gI1TG?= =?utf-8?q?yk75j8o93wIoyOXQ3yLbURBWkzS2RALd/2Q4/oxiR6SKbPstm6z44itwu3H/NsMKS?= =?utf-8?q?EDKAwSJDnzVmdbA8VzrvvTw7eakeFb36Y4n5B5ZJ+CJGOXZJNfSccQdAQAdPkUX2X?= =?utf-8?q?6HeQg3f098d/37uL1FSnN051LNyT6K5G645NxFH5K6E/Y/lhx4aSAspjaBEJ76pM6?= =?utf-8?q?loxLe9z+CltjnnTU375k0/VCwLpCy4sb2+kZV6CNa9ZS58+rKd+Kgx6GX7umYavu8?= =?utf-8?q?Spq7B9jsgPcjK0bRozMLCi1PXzy2uokS5v+MZgm4TCP0yvxy0vXFSSJB5p2VbEdcl?= =?utf-8?q?5k8OFAKFvXmfWx8qUfDWU9OWsKRRbwP7UMbI0zlE6vwLT83e0aY6ufUddiJe/nsX0?= =?utf-8?q?O1a3H/ElyCB7WEttD2GY9o/SjvRywE09NDkF4yJlsGZTF8EuGF9nDIjQ6ZDtel5OM?= =?utf-8?q?+O/ndPxrm5xtKqlDDSFgpu3IVEsVs885wKSRBcQU3kNpmmTbb/Asg/AtID6u0V1Z6?= =?utf-8?q?h7FdcE08XyJq7gAP/zP0wGn+xdqgpsdA5S6xJIEf0Xf7GeUzlR/NRYpUXh4XMv/55?= =?utf-8?q?YCMPDmUktYi8pbEzukAUxfpwil7vdON10p5f3nLCaYmufPqtgXHklBHsW3JMUtIgL?= =?utf-8?q?rECTxta/zgYWTgLEyZ38SdwA2SKsx7ubOdRGYKUlJLqPhU1jfsqL8kR0q3C7TCrgI?= =?utf-8?q?G4pWvPyG7kKy1zG+N9xcxDCpvZDR3fwskuxPy/No4yadApghXzszWRb9HI/qPBE3E?= =?utf-8?q?j0uaCzkU8REjFBqYufq187TYLiFypOCzoGP0QHtjb+m63R1mzqcN35c=3D?= Content-ID: <3CAD16FE784C0D49A88AF199A8B04E69@eurprd07.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e16c1f1f-f0ea-4c17-d229-08dc9a5b31b8 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2024 05:52:44.6561 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 8NvTJddmTW8qDPpYJeji3f8bh/OMUw/35tEZ8RZV3SSEfshYbi8fJuGrUJDdElnGA7iYTtgE3W3wQNXLz9i5hMPe9vDH0vK+WlztoZO6IkGfOyNx/MG64eS1hEnpLIP/ X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR07MB6215 Received-SPF: pass client-ip=80.78.11.84; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost3.eviden.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: Clément Mathieu--Drif IOMMU have to implement iommu_ats_request_translation to support ATS. Devices can use IOMMU_TLB_ENTRY_TRANSLATION_ERROR to check the tlb entries returned by a translation request. Signed-off-by: Clément Mathieu--Drif --- include/exec/memory.h | 26 ++++++++++++++++++++++++++ system/memory.c | 20 ++++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/include/exec/memory.h b/include/exec/memory.h index 003ee06610..48555c87c6 100644 --- a/include/exec/memory.h +++ b/include/exec/memory.h @@ -148,6 +148,10 @@ struct IOMMUTLBEntry { uint32_t pasid; }; +/* Check if an IOMMU TLB entry indicates a translation error */ +#define IOMMU_TLB_ENTRY_TRANSLATION_ERROR(entry) ((((entry)->perm) & IOMMU_RW) \ + == IOMMU_NONE) + /* * Bitmap for different IOMMUNotifier capabilities. Each notifier can * register with one or multiple IOMMU Notifier capability bit(s). @@ -571,6 +575,20 @@ struct IOMMUMemoryRegionClass { int (*iommu_set_iova_ranges)(IOMMUMemoryRegion *iommu, GList *iova_ranges, Error **errp); + + /** + * @iommu_ats_request_translation: + * This method must be implemented if the IOMMU has ATS enabled + * + * @see pci_ats_request_translation_pasid + */ + ssize_t (*iommu_ats_request_translation)(IOMMUMemoryRegion *iommu, + bool priv_req, bool exec_req, + hwaddr addr, size_t length, + bool no_write, + IOMMUTLBEntry *result, + size_t result_length, + uint32_t *err_count); }; typedef struct RamDiscardListener RamDiscardListener; @@ -1926,6 +1944,14 @@ void memory_region_iommu_replay(IOMMUMemoryRegion *iommu_mr, IOMMUNotifier *n); void memory_region_unregister_iommu_notifier(MemoryRegion *mr, IOMMUNotifier *n); +ssize_t memory_region_iommu_ats_request_translation(IOMMUMemoryRegion *iommu_mr, + bool priv_req, bool exec_req, + hwaddr addr, size_t length, + bool no_write, + IOMMUTLBEntry *result, + size_t result_length, + uint32_t *err_count); + /** * memory_region_iommu_get_attr: return an IOMMU attr if get_attr() is * defined on the IOMMU. diff --git a/system/memory.c b/system/memory.c index 74cd73ebc7..8268df7bf5 100644 --- a/system/memory.c +++ b/system/memory.c @@ -2005,6 +2005,26 @@ void memory_region_unregister_iommu_notifier(MemoryRegion *mr, memory_region_update_iommu_notify_flags(iommu_mr, NULL); } +ssize_t memory_region_iommu_ats_request_translation(IOMMUMemoryRegion *iommu_mr, + bool priv_req, + bool exec_req, + hwaddr addr, size_t length, + bool no_write, + IOMMUTLBEntry *result, + size_t result_length, + uint32_t *err_count) +{ + IOMMUMemoryRegionClass *imrc = memory_region_get_iommu_class_nocheck(iommu_mr); + + if (!imrc->iommu_ats_request_translation) { + return -ENODEV; + } + + return imrc->iommu_ats_request_translation(iommu_mr, priv_req, exec_req, + addr, length, no_write, result, + result_length, err_count); +} + void memory_region_notify_iommu_one(IOMMUNotifier *notifier, IOMMUTLBEvent *event) { From patchwork Tue Jul 2 05:52:45 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: CLEMENT MATHIEU--DRIF X-Patchwork-Id: 13718977 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 855CEC41513 for ; Tue, 2 Jul 2024 05:53:32 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sOWRk-00083P-Vc; Tue, 02 Jul 2024 01:52:57 -0400 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 1sOWRf-00081F-4F for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:51 -0400 Received: from smarthost3.eviden.com ([80.78.11.84]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOWRc-0006V4-P1 for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:50 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1719899569; x=1751435569; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=/O+mtv7iGC4Iped3cO7OznRrUDiVe9yyGqDmP9G6CCM=; b=XyQziFCtIoMuuuUpCeTJRM0yT+jqKhFl8rVt+ben/u7F2AZzvOOsZtr/ Jk/4Tn5lNLewMGBrJs42Zb9seuCe6JoLBHZ9XRn36thuwaiEMaTK9krm2 6iYa3f5xfHH81D7hv0tnNPMifx3QjYw3/Lp3Fl8EBlrY91WVYQQotNG5v rt12wxRWtJ3gx+P/46pViJnXVRrEZ8GAqgT9edPWv5//yL1ZkT1y67Xy6 jtejyEHr20sHCqTi9Q7OWrHTagKDgB6hhfqbdQd3lOezKwzK0JxEQp2tW jucGvh6rXafXHi9OCZ55sp3xyNKYEMSBXelj+zrgk2Uo7Uq2QT9gwgbaH A==; X-IronPort-AV: E=Sophos;i="6.09,178,1716242400"; d="scan'208";a="15721603" X-MGA-submission: MDEVTH79yo0QbUiM7sydyK2Ls+JqGG2Ug+2kDWhAJouLMHpZcfDZkhTVgv70m5tcGaTZbmUcOa8L2bEyTy2QHK6A/FnzsF35FMJnyXTml1yJAwj4zzbczbB+7q46dZGc0vej0nDC5fvwuR5gJSdWlCp5imytcGYEmD/KmPYn27vK/Q== Received: from mail-db8eur05lp2104.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.104]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jul 2024 07:52:47 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bWqf1KMjqZK9C69zre3tfDqx5PTtQdZ8c/6L5xtphyAJ2XtpnaBA8TuTSYZ92zRQXcRrFxyS9lOw9LkLQbxegGSjoIFRzFxxZ2xPWgpxk0L0mT2kGUROxfIYx10/HA31Key4vqrRbSdG4/2TIH2bRN9VTMfqv6T16ZK2ncx0Flyal0Z4/orMyJun5cQDZxOqbdGJfXhCgOo2bQfNacu5XlCFTAzWwxOO7HWtW64DLla4Gytx3qEIcJ8me7njkimuumBoP3fAEF8XR47D41q4wqf0oRMRCN4DjvCbbgM66T2rWQNP/Cg87IH9exte/h7XuLSzkucpfPikTPDj0yJDCQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=/O+mtv7iGC4Iped3cO7OznRrUDiVe9yyGqDmP9G6CCM=; b=JbBiyQvMUy+tBbiv88MosOV6XeR+CTBEvG4AzqHvrHks1FyUYxfdZzv3BTvK4IUmiRnBHUvdHTK1HPRQNjr81pKpf5iUFbUZONjdUiYQGNJsaJULZ/lt9+YOoqLA/aBBOZGogQ5STAqjs88OD7U2c3IPkh/Fk4+rmA+V6kKh0ka8jFVR5X92gJ3NxmwNFpzqf0s0H4N//UhpdhNVhFRJVZFzsalBjKY/HsWnJPfLKxXTws9i5SORSxaZIpzpHDxIeDe19pcoCgnQkw32rsaUgEO7rJme7gjbmdHzQAS4u3TaBTgdQdnTmpsqNcQ+LYpNKDdo6HF3KBwa1LoWxatIYQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/O+mtv7iGC4Iped3cO7OznRrUDiVe9yyGqDmP9G6CCM=; b=qvKBsZcMQKzEoQLQqA+ba24aJADKcvDPQNXtUN5KNhqvVitX7SEUDFGl+aOLVe9vCE3FG/nL1fvgNU/5/Xn6P3S2I0NIXVMPU6fOBOp2EPL2HMWg4jGXQKmmNVW7G1yAVD75q3rs98RCHXImpch6zfbPEd2gDStdElPHYdt3KFbiXbeDB3SgEfZ+8YIse0QHQqz0BhQX0bW2V/f/KzTtE0mzJhYp3MOJ/nSw6BYcsN5fPPhxBco83M0V8FiaJ1KBs/hW7EKSFQR/q74xYXStkRKzt2fKhJ0ZLnN4J7tIFqUYv7A9tRQQA3xY7GXhmDgR7lbJ/N8Ncv7b+fqWNqfLIA== Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AM7PR07MB6215.eurprd07.prod.outlook.com (2603:10a6:20b:13d::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.21; Tue, 2 Jul 2024 05:52:45 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7741.017; Tue, 2 Jul 2024 05:52:45 +0000 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , "mst@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v5 20/22] pci: add a pci-level API for ATS Thread-Topic: [PATCH ats_vtd v5 20/22] pci: add a pci-level API for ATS Thread-Index: AQHazEQPZma3+RPBzE6mhYIQQIOAhw== Date: Tue, 2 Jul 2024 05:52:45 +0000 Message-ID: <20240702055221.1337035-21-clement.mathieu--drif@eviden.com> References: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AM7PR07MB6215:EE_ x-ms-office365-filtering-correlation-id: f8881609-e551-4e79-32c4-08dc9a5b322b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|4022899009|1800799024|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?q?hAzT74dpETQ6ZiLEZNCo8PL7jw/QOUg?= =?utf-8?q?zq8x6CF4PrKIwI/MQjP1eylwqOv+/k26m5BeqkmdsdMUYGRUBpKPJQQlLtdfwB1XJ?= =?utf-8?q?ZLxgXrnbXTKHajgmIE6Wz/Fjvdw5Cq7LV9NOXuC0hrEVCOdU0Vrxt4jeF/AekcmUN?= =?utf-8?q?P981MMv0T4D+50imS7f4pQ/TmG5OgurqV75zVHblnOq7mIS0RFHQGGPPcs1Tj2xdz?= =?utf-8?q?338ZjT9IGBsv40W2Oy1FvUnPibl3i7N7s+wwjV0U+QsW4D7bPbS39LYM4r/4PFI2x?= =?utf-8?q?55rBSDNY9/JJlE+kLjGCmgy7DZZUac23R9GGdffrYHBz7ki5ikSldLbzh1nwRb4OW?= =?utf-8?q?AqeA5tWDfeE2lJ/DHXxwH4/IKiEIBXzqXWBgrrn4salgoTO4iAzrenmiBMtUGrTnd?= =?utf-8?q?xLiu3eEn9uEjxpq7jgdyQsEgC/SRs0+HR33EqOqbUTXxOflE6XtSVOZ8F5ICYys55?= =?utf-8?q?vkPe7aZMCB7sg17LEgiwWeiO/eEtM2GohB78wyZ8Ty9WoxPq4e72adwg8Go8DNzlH?= =?utf-8?q?PlVU+KO41ajNprhWcCtdarQ0ipGFC02/bHYwke+sJFoGORQ6vhdcESIc8X+vm7UZ+?= =?utf-8?q?8Go9cb58OCo0LRgwmiN2kovMNik/a/HgUQa14yUUSS0vDR4Fwxqsz038Brxe9oS8s?= =?utf-8?q?FtteZBUzRAQKtmPVh4wJKJIp3Mi+1rN+sn+WirWeeiw2VtSpL0pKey0I7FPBe6WTf?= =?utf-8?q?6Rylg+VhOtD4ooDDJZKKPWBQfcKNWFoFhJTyLZ2JFcr6ccNfqHv35j1csYpWxyV88?= =?utf-8?q?i4X4uksQ9xob8q5TKugVVgAxdSq8LmXxTHa0qX18+H52QZMloGpIcKnn+OFp7eUB5?= =?utf-8?q?60C/3fjM/wx65sq+9Hcd2T35Ck3skCVTJ4Se1LcXGHcqPb0J54xnhiTQGKe3lDkz1?= =?utf-8?q?I9xxT85mia8Tys99yfqHkqGORT8twPy8Om6BVhmJJs7Gw93tegueWZu9kn8JCAFOp?= =?utf-8?q?QizfmcyX0GdFIx9LanlsCTHeW4V8xOg45Kuy7DUeM23LZFNYzuK/w4zXt/jXaWWvC?= =?utf-8?q?1H2Sjl7PO+KGa8GZ+b4rzPFZ0p2dBhAl4nQivWJPlyW0Di77weYn1wBG3PaghkNxU?= =?utf-8?q?dEK73TkwFbzawKSnhS/5Gsnlv2pqnAkfAbAuP9ifTWZ1QMHBgZAyGvzniifJFu2FP?= =?utf-8?q?S7DQaKzX4KmCHjxPwbdj5I4cs1OedGFk4r6u+dEmhk69T5c5s0Jl1qn0OIvbgliFO?= =?utf-8?q?WGP6ap1QGZB3Y9Pp+fUb5tthrTAAY1h6bGujUdaXwnGkLqAqT12uJ2+zNGTdXzRb7?= =?utf-8?q?iEB+FAJPqmo4BIBSxXmulOY4uU19FT65ovNo4U+ciImcpbVKj6BzhGpxnkGJ0/4j/?= =?utf-8?q?Mq4jyKYboQrJkfkp5GrQFs6f2Y85jwFwFA=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(4022899009)(1800799024)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?97glmMYp7IkpGRed81GFmbNA9rWM?= =?utf-8?q?k0G4McUixaw7NtRikge0Z/RGETccY8ryYyJrK+9HtxTBcJo/GFDUU5f6ucumiN9R+?= =?utf-8?q?MM5w+lU8aNdsY0qcYXEo5JMJLtKN/Znl95meCrHhXSWbH7R6TsnC30U7PQh4h06N2?= =?utf-8?q?Uyoc1Y+cYnnJD7AMtqqkku6uBx78OHVOV4egvBh8e+OCRnhSSdcLc8GATLBpyUeFF?= =?utf-8?q?SYgTrJKs5UvGjaxfyYdrjnfQxtsXO0DNtpHsR0Xs5CpXVYrA2gLqqSQ5XSUtifzzy?= =?utf-8?q?o25BIxS2hFKu2xZBPdDZUUShuNaqjsqtywTCo9TVyHY5/tDqwkW1SsluwkOhFqPEv?= =?utf-8?q?07o5v6gKwN7rD92585EoqPjrTLfvpDksSduCNKd9llGhPxjTrQcrQN5oPTKmD0USg?= =?utf-8?q?LKX+w7EiWm5mB83ED7sPYRvZRPaM7Z+M0KQji2VYV00zbnm2J8mpMwYpQSqI0/WNX?= =?utf-8?q?rWcIPTtJdz7Qd/5MQiqBSl8AIWSuogc+n4ehAi+h0GAnDywUc2rolPxVxqrku6ZXb?= =?utf-8?q?EHJ8i53VWnkEYmDVft5kvDS4GukvyaQ5j1Tnx/2Pr4wXb9q2g9qK1EsWkRd+1EWNI?= =?utf-8?q?SpjBrAYZyn6fPGSSncB8R3iMIrum2GtkMFGfScLDpTTGsuP4W9v3pOchfUQXkUhKy?= =?utf-8?q?m2w05IOZ9p92nGoMD1Bdq9k3t2ZXXhwkYGZqq2nuYlqhnhQF68mu3oBpKN8E733mV?= =?utf-8?q?CWaFXA1j21NtIi7hbxKHxoOdOYDMp4BjP+p1qyA48m7KSeFie3vorz2vLsQkbZtsf?= =?utf-8?q?oBSl5BzGxW0Rw36+WpStJQXJxcCK9LS4qz1NssqvXYJrl4MCTsb/aKT/+1g+84Sxf?= =?utf-8?q?RKcOKiTbc3VSXv16XobaKAeSrYUiP8+Iyl7Ha7KL52BJ20JOaTdmq1ZGZvqh9VTg+?= =?utf-8?q?oW7H0RkUX9ner0UM3JOaGvOaAOiiwX0ldByn/zw1vv+gN+p9B1/YPnui0xdn6/O/o?= =?utf-8?q?uS9jXvVGArUgoh1ib1A26TxyvMmIeSIFnNmTh6Kjl/FerMZ/hTvJ7+OmTnzs66HoW?= =?utf-8?q?/2z4eT/heYbNOip9Ayea1dfDztMQksL1sa5B9CNHboM5m+vABrgydEoCP4+cTML5m?= =?utf-8?q?FjrAJKs4kU16vUUbk7KykHCPRAcmBr5mJzmOasBkR1660+T22PQz9BEbNGfgAQP4C?= =?utf-8?q?iHWnaiRamMUV8Za0dS+w/YLLZldsxZ44wS2BnpBsl3RWr/Yw/BoLNhT9fBfJIAqoB?= =?utf-8?q?thMCmo58cuUoIg7khORenwgb228zcqQ5p3mbCWqgKlJ0X+krHbgzmde26CX5CQAhV?= =?utf-8?q?zZ0fa0ZnkfT+3l7exk4CnWVCtQNwlSOpAGwa1A9G8qtrqUGWYIVRXM4OFzeyZtKFw?= =?utf-8?q?pH+5kIm7ucENrNfTIQvVm5WjyRCIedr1qwGC7v1PiyerFkoCSQsIE41ONpi6BlplI?= =?utf-8?q?EhCIGyNH21ygCYNbEol05TPcrlt++Fma+WmhDGTEBqmUEfbr98W4J6FZoODcycUl4?= =?utf-8?q?mN+gmdUYvl0jZoLjRkoYGwbXCIGMbDkjuXqOHNnuDDfrO7Tjqx3XRXpLBA1CDUTBR?= =?utf-8?q?e55Vwe+h9sVc68vnY+uIQoZvyWVCejX+jDH/mkTZHjTOIWwTstgKIyI=3D?= Content-ID: <2F75A87E24A24243A16D9647F6509AFB@eurprd07.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f8881609-e551-4e79-32c4-08dc9a5b322b X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2024 05:52:45.3700 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: azTOQJaY9WjExLgKCkjLxUCQZWCn/g3FEgTCbaG32Jfv5WfJeuc4vN4hX7zRgpaaiXhh3N2baN4aAY34Mvnh6h7P5DtBcRmNzBpmsvaZBGQUQ69SsNwGOuU987vPtesU X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR07MB6215 Received-SPF: pass client-ip=80.78.11.84; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost3.eviden.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: Clément Mathieu--Drif Devices implementing ATS can send translation requests using pci_ats_request_translation_pasid. The invalidation events are sent back to the device using the iommu notifier managed with pci_register_iommu_tlb_event_notifier and pci_unregister_iommu_tlb_event_notifier Signed-off-by: Clément Mathieu--Drif --- hw/pci/pci.c | 44 +++++++++++++++++++++++++++++++++++++ include/hw/pci/pci.h | 52 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 96 insertions(+) diff --git a/hw/pci/pci.c b/hw/pci/pci.c index 7a483dd05d..93b816aff2 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -2833,6 +2833,50 @@ void pci_device_unset_iommu_device(PCIDevice *dev) } } +ssize_t pci_ats_request_translation_pasid(PCIDevice *dev, uint32_t pasid, + bool priv_req, bool exec_req, + hwaddr addr, size_t length, + bool no_write, IOMMUTLBEntry *result, + size_t result_length, + uint32_t *err_count) +{ + assert(result_length); + IOMMUMemoryRegion *iommu_mr = pci_device_iommu_memory_region_pasid(dev, + pasid); + if (!iommu_mr || !pcie_ats_enabled(dev)) { + return -EPERM; + } + return memory_region_iommu_ats_request_translation(iommu_mr, priv_req, + exec_req, addr, length, + no_write, result, + result_length, + err_count); +} + +int pci_register_iommu_tlb_event_notifier(PCIDevice *dev, uint32_t pasid, + IOMMUNotifier *n) +{ + IOMMUMemoryRegion *iommu_mr = pci_device_iommu_memory_region_pasid(dev, + pasid); + if (!iommu_mr) { + return -EPERM; + } + return memory_region_register_iommu_notifier(MEMORY_REGION(iommu_mr), n, + &error_fatal); +} + +int pci_unregister_iommu_tlb_event_notifier(PCIDevice *dev, uint32_t pasid, + IOMMUNotifier *n) +{ + IOMMUMemoryRegion *iommu_mr = pci_device_iommu_memory_region_pasid(dev, + pasid); + if (!iommu_mr) { + return -EPERM; + } + memory_region_unregister_iommu_notifier(MEMORY_REGION(iommu_mr), n); + return 0; +} + void pci_setup_iommu(PCIBus *bus, const PCIIOMMUOps *ops, void *opaque) { /* diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h index b2a9ed7782..d656f2656a 100644 --- a/include/hw/pci/pci.h +++ b/include/hw/pci/pci.h @@ -473,6 +473,58 @@ bool pci_iommu_init_iotlb_notifier(PCIDevice *dev, uint32_t pasid, IOMMUNotifier *n, IOMMUNotify fn, void *opaque); +/** + * pci_ats_request_translation_pasid: perform an ATS request + * + * Return the number of translations stored in @result in case of success, + * a negative error code otherwise. + * -ENOMEM is returned when the result buffer is not large enough to store + * all the translations + * + * @dev: the ATS-capable PCI device + * @pasid: the pasid of the address space in which the translation will be made + * @priv_req: privileged mode bit (PASID TLP) + * @exec_req: execute request bit (PASID TLP) + * @addr: start address of the memory range to be translated + * @length: length of the memory range in bytes + * @no_write: request a read-only access translation (if supported by the IOMMU) + * @result: buffer in which the TLB entries will be stored + * @result_length: result buffer length + * @err_count: number of untranslated subregions + */ +ssize_t pci_ats_request_translation_pasid(PCIDevice *dev, uint32_t pasid, + bool priv_req, bool exec_req, + hwaddr addr, size_t length, + bool no_write, IOMMUTLBEntry *result, + size_t result_length, + uint32_t *err_count); + +/** + * pci_register_iommu_tlb_event_notifier: register a notifier for changes to + * IOMMU translation entries in a specific address space. + * + * Returns 0 on success, or a negative errno otherwise. + * + * @dev: the device that wants to get notified + * @pasid: the pasid of the address space to track + * @n: the notifier to register + */ +int pci_register_iommu_tlb_event_notifier(PCIDevice *dev, uint32_t pasid, + IOMMUNotifier *n); + +/** + * pci_unregister_iommu_tlb_event_notifier: unregister a notifier that has been + * registerd with pci_register_iommu_tlb_event_notifier + * + * Returns 0 on success, or a negative errno otherwise. + * + * @dev: the device that wants to unsubscribe + * @pasid: the pasid of the address space to be untracked + * @n: the notifier to unregister + */ +int pci_unregister_iommu_tlb_event_notifier(PCIDevice *dev, uint32_t pasid, + IOMMUNotifier *n); + /** * pci_setup_iommu: Initialize specific IOMMU handlers for a PCIBus * From patchwork Tue Jul 2 05:52:46 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: CLEMENT MATHIEU--DRIF X-Patchwork-Id: 13718979 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A9F94C3DA41 for ; Tue, 2 Jul 2024 05:53:32 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sOWRl-00083T-Mf; Tue, 02 Jul 2024 01:52:57 -0400 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 1sOWRg-00082J-VU for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:53 -0400 Received: from smarthost3.eviden.com ([80.78.11.84]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOWRf-0006b9-1k for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:52 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1719899571; x=1751435571; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=Muq8pnfZbNY4iEecuK0xCGQ8mJotLYw5kLEyQZ2VRlA=; b=G9RQi1gnyGYNmD8mV8zhUWreTcKGOTUvY38EC4iMmroPfwjx6v/WeB6P j8BLNifpQOvYV4/X2G0tDktoljNTAsoqC2g250WEq4a5MpWlkPkOIF5ja iXcW91HUNigdVqevUrCoJKbG74p3wy41WoO+/1biAjMj5d4JJhvVR0eGu zYUehKjaf4i8WQCK1lz/FtVmZqUYxJIYaTnGZ3G3LcO+XweJj0hHoaQrm /Wm7hfUnicCN/AGxbRBGnd7amyONRVOAOOXeqlCo7pw++pEMyhe1YWBw+ 5e41e04YcFZymTSbyXWfepgBXwv46cj6a9aTmFjETmduhkOmoPljBM4iP g==; X-IronPort-AV: E=Sophos;i="6.09,178,1716242400"; d="scan'208";a="15721604" X-MGA-submission: MDE8uOvL7HiLQCJeWpq41Y52wCRztqtV3QZrEjlrVHxhJFBRtbVcQA21HjRAql0nU9eo2GCJklIJhktVESdqKr5fPTgUdxAouURGTJg+xJq1CRY8Jt6ZrmT6A2cwm2rGq8CAuGT+OWsBuwTBKVGdmGiJvVIE3ZR+j2fwpS7F5w8Ctg== Received: from mail-db8eur05lp2104.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.104]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jul 2024 07:52:48 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LErkWcOe78z5n1pxJf0m8oVfCiXGDqOeQtut4ntByWVtx9yDaT206KS5Hh1RiIERpC/jBbVHiOm+PB5gDxhblNVekan4mNwu2LEprhIRxQcoFJv2AEczk9VOjsZ0LWyiqf9fTwtIlwLbrRNYgwl1Efwnu3++9+uCYu6nnvZkGsPeVBa+Pby/nsARnwNgY0W7Tp/NktOHwmJ/clc2ThTgWPsIanAA6GwPO/OKYpCYC9JUBCQ1dPlSfDsXKBBTNuiZ+HG06V/7dsiNnEO+e4rFhLvsdgKLvyXhzw90UPa1uOfx5ULwmDiBdqZxCkeMfAdoWuP1LdV0CG/3/5jTeP7AAg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=Muq8pnfZbNY4iEecuK0xCGQ8mJotLYw5kLEyQZ2VRlA=; b=bORTjWXuOybvyyp2MsUE5MDjobCtfOx6g1Gkn1CS157SHqi7pxRcos5m0+/MB57jRiZCEqD+QkFc21JF/91MIHlb+7VElT84k2hi0XVO2IUpv6EISpU8gCqMnnDYOL49ENzisYfRT9t7dAmo9baAklWHhrFA8PXj1ahBcLj7RJATQQRH9pVYn48VJZDxHZTBFjF6fVpsTJWeRz/MfZGLxexpR1+iWFrNtF9f1/gEIozg5JX4+se33D6dPN5zzp+JJbJSXgzGsPKDJiauT/73D9AI0eRehZn6dpRugMJMw2mRHVD6YeErIlIFUcLkFktyR5y5BnEwNgVXOlAZ8GtMfA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Muq8pnfZbNY4iEecuK0xCGQ8mJotLYw5kLEyQZ2VRlA=; b=fNCqRCqmHI9zXgmJeEPZ7+3djtCgbcU571L5/6c1yJt26E4x6z86daTAiS7cUn95kFh9dFu6iE+jocc23o2v+x0CRzF/8C+ze8GWdceeXW1Dyosz6cA0DWyuWhZwer0uf6wCQz/RKS2ibf03N1GutLMNbq6Y/DFWHN1WYwFgu4FSClrkXGZE1YXHsz62oz61PupQqsLhcyjDm5qMDqRUGXjTG8pDQMwaQs9hXa6oJ6vNPhE9We+5U0mnB/ECgBX0AkkOTXVA56d4hwvm7/QQefZwk6cthikJehCyVFtoxV2ryFHBDwrqOnol+KoVfgVB56lIwampmOSQex23FnKNpg== Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AM7PR07MB6215.eurprd07.prod.outlook.com (2603:10a6:20b:13d::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.21; Tue, 2 Jul 2024 05:52:46 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7741.017; Tue, 2 Jul 2024 05:52:46 +0000 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , "mst@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v5 21/22] intel_iommu: set the address mask even when a translation fails Thread-Topic: [PATCH ats_vtd v5 21/22] intel_iommu: set the address mask even when a translation fails Thread-Index: AQHazEQQOKgkVaNcZUe4tah2aD0JqQ== Date: Tue, 2 Jul 2024 05:52:46 +0000 Message-ID: <20240702055221.1337035-22-clement.mathieu--drif@eviden.com> References: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AM7PR07MB6215:EE_ x-ms-office365-filtering-correlation-id: 7496a2c4-4d47-443d-8be3-08dc9a5b328a x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|1800799024|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?q?fQOta6uTkuMmpvwEvla9m/BzTGtDeP9?= =?utf-8?q?cQgfCel3e1L6pQj6wgBBBFqt2yQRPaLzh/49BctlGAa8wsRq8rs0GtoMLK0Tw2g6s?= =?utf-8?q?D+NbuHzQjxwkRiUMMWr0DiLu4E8jV14RDr0vh7eg91D8NWuMxvLD1uR5mpW2lwX6H?= =?utf-8?q?HRYNLuWEpLQFn4Iz3BVSC6+DHPQoQV6nyP1JObui8iJVllBR/BUJDv+jd5JKQ0iKR?= =?utf-8?q?pwYViGLKcsS79VtV33srKyfueUYir3EGxeoKAfmdO86MTV5JhVPE+No62exMmPgsT?= =?utf-8?q?8VNb50y/9eH0jYViPm2AmkRTZMNbl/1pwmerRhjKu4ZtRNXteS2twLDRIK2ahKHtw?= =?utf-8?q?JSWebjsZ3G7H0/ojfDNjokqI6bgGrqBFc1S9EM7Bz6nKzKGRUCPUQ7o6R7vVs3ZIq?= =?utf-8?q?I6L0QGS9aTPzSZ6pDr7Jz+w2HUGFjgBh3/KK5ApvjzxyaZR1rfTJ5Au67KIY8yRSn?= =?utf-8?q?nv/+FoRl4BUx+vagBAWUVdStGu6v44IA2wvLc2UN9esv6dwsFJs72ICZ2Sa6jqu0Z?= =?utf-8?q?xRAcAULvZgFJlTGdQ9uJ0NsxyJ/WcWy+WhF8FZATiKJ1lH/OtXS/UebwjixubOEXe?= =?utf-8?q?yxlezwJwNJusAwml1kUfy2tj0Et9tz0q6rkTFMyXiQjXWOpYjdvMZQnGRoNONYhU+?= =?utf-8?q?LaOL5Ki/w6AC6cNQdwKZU4ky0ArlL3hiwvhDn4kivjRXE8uklADVKZgU5YmeltVjL?= =?utf-8?q?/kk8H+oZOjlZL5YyIhMXkswiWv9e4uHkGDsVbaTJWmFK4RJhlx7TSOwpLI+0RM2Qq?= =?utf-8?q?r3+WQ0XLATU2hs52DETfN5mVdGY68772bnK6PR+SDhMBd0LcWeczy+k39dQr1JbJc?= =?utf-8?q?o7PWOeNl0+grJCWxSCm5r43zOAvdc5Jq6qzYMGtuWS6cnnPVpohahohnPrvT+dX9N?= =?utf-8?q?l266e3UBwZ0p58GL+DdRpJoZpj3UPqgCCgip3F62lVNof88KDqV1K3TfEeNzSy3E3?= =?utf-8?q?giat5YfAAn2D7aq05HdC1HfQ1ElM2Sx7UpHZ0XED90pa9oAP2M8mW8OwJHZIQYXd9?= =?utf-8?q?q2MSsiOVcjyw6YDvwEYqpJ99rRpcCZ+F9uc8wmeqlIwiBUpOfEuR6Yht7IULhF6Sl?= =?utf-8?q?Hypm56Iw1ifgXFwyDbzX4kBVyVdQdpBvDgY3UciwQsSocOY9eFElmOcPQ12I7eOG6?= =?utf-8?q?gcNW0oUgjxK1r79obt8x4InmiFaTlUBeqOvxUjyD1Tkm/UWvgh7W/+s9gWls+vYOf?= =?utf-8?q?ZzC2pJg78dSQPLeMmPzlGNi6FSXJclJHicvYHhmTZyeNlF/q70mVjMUy8nKMQU1Fr?= =?utf-8?q?p6VFc8kyt2EtVfgLTnitPx8RTjac5IgfuAzNxkkrv9SHRJApDgpA/IucO7u9QxpT+?= =?utf-8?q?aQkbYsisPuz9zkIe7/HIAR88ZXD9kJWh9g=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?qEcn+1GAT1CRn3ZSUDTyfvsNdB75?= =?utf-8?q?coS19T2nTMOAj9fb+nRN6B65UFlqLgr0gDL21O1yadDE5NdiX3wfCUl5E7yBEPGNl?= =?utf-8?q?4k7xknLnFlAZF1B1N0A5Mjz+L9YdN2dai30+RhMzkL3GODuYPOL59VgCosZEuIFD6?= =?utf-8?q?ffXt22BPOtpSugYWM4PJmNYrDATSfwHp4uUNX53IxdsJQEtQA0ttmjJFFrw1uJZLF?= =?utf-8?q?t15JYdUWmAe8w26zjDOBhKzKBqKHLXuyGi01379cqQ7nQWgMWfIakg01eUH9d9An1?= =?utf-8?q?aGluncpKHDrpoqDQwiJApp0bimFNZz+xeEMcV89NWAG9pPj4VGbzivNScUVKgs/C7?= =?utf-8?q?7WWDobAjRF0sWYyHagJzp8H1mnjaGy8+laJ5thPW+4ApSCDdfAQq+YtjVOsdHztYA?= =?utf-8?q?lYhTi19cK/vaiEVM3bs344kgv5loz8qM2FL27I66YSA0bz6NSeADVCLfKJag+48iN?= =?utf-8?q?AdMW1ipbird+VCC6iLp8tqw0NLQL2bst5pwoHx22KZi+LaNSx93Y4LByFZhHrhSww?= =?utf-8?q?5h6w6444jr7nsMLrGUc3zlaEXOBIvZL6JIJoNmFa1sZnbuqjEjE/sP2IADnUko9Xi?= =?utf-8?q?dVInh4xtz8KsCupKeeBqW66FvtORiMjxSIJ+IX/mSicq+AeuQW5nH/5Tgp4sPLUf6?= =?utf-8?q?JJafBV76diPS9Vpz4+3VRYsSQqXcSFhSn4AMBWkVpYrfNrUF7ICLN1HIrzpP7VqZ4?= =?utf-8?q?7lkOPXrCk9jt/R7bXcm3kMCUiLu/ihm5woArIkdUgfT8Uq7OLaBg4AkfKdTK8OLP5?= =?utf-8?q?onmnsIdinqHBqM7kCHPbfWFq1Ru/Vpm79eoAscH1JKwkUDud1dx0SkIL1aPT8uhbo?= =?utf-8?q?TWomjp73SJbCWIxO7+Bo3HU1dseIO3YTZrX0O4fmb5MbOjW+2nUV7wD4tcPngCuMC?= =?utf-8?q?0wURWk/MXzjF1CNzDZAL12ICv9NmF5BYAj2hroXhhIQFVtP6racVT+G+NTLcN/ckV?= =?utf-8?q?MsdDySrlnel/rnVKyHFZ5sGXTcHWLpV2pRK3ECc567dajtWUAl8hFRbMKX0122xNo?= =?utf-8?q?MNj52aW2aKZeq0HIloPEXCDeTI+GEzffxaiiBwuLwkdqiYuuOwyPSzZVyOCjyEbN5?= =?utf-8?q?TkT9sdcnekYyDKGR/XWy/rPJMsXFZmhkQG23uNVkvfnWt5rtCDWOMubQyePWP8uI1?= =?utf-8?q?J0SF8ou/iftNTTuzMkcMWl2LZaoNlbn54E8EH0llAc1GQ5i8ZhQKWc85tpiuQCb8e?= =?utf-8?q?/tb7r4cNogOSswfoI7R79GE2uGNqqZl74j7l3dXD+qaR59DtiQ98kUT+xzVTf/ne8?= =?utf-8?q?ZbA6bXcV90Uiu1CNqHCZnWPfYfiAgd5u+pVZ7TczpCPSt19/dHzkDuFteReZfqWdz?= =?utf-8?q?IiMVeRWgZSZBHxJzOf/BAdPyxpL+p/jA++NK1Mg8b1NF6ib1gjYUAyt6JNAvw2kyr?= =?utf-8?q?jvxXEoD4ev0V120IKsIVSfs5uY83kKOJF1wghfO5foIq7wO26Ac0IddzrOoXw/06p?= =?utf-8?q?MRdv0oCLZjOYwRYFTfmAI7bOe/Tp7tDIAkMjxpsx3YCf6XF7+tQcb0X49NhSL9hoU?= =?utf-8?q?O/e7OhDE/2E20lI/EhqXrrAmEqs5ve2jVFE8y8b172k1NYAlNLscOTg=3D?= Content-ID: MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7496a2c4-4d47-443d-8be3-08dc9a5b328a X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2024 05:52:46.0308 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: eV2lYw/OiW+JutQ2/aTZEIfD/Q5PRVckHSYOugq8hRx+Vz/U5KkQCTPI1UQ4NN/6H4vZur5ePQhordCEU+t4eTlPRBBjDQ/G95y08XCu14eZ87pZ9qj+Orf7bVRb/gDH X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR07MB6215 Received-SPF: pass client-ip=80.78.11.84; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost3.eviden.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: Clément Mathieu--Drif Implements the behavior defined in section 10.2.3.5 of PCIe spec rev 5. This is needed by devices that support ATS. Signed-off-by: Clément Mathieu--Drif --- hw/i386/intel_iommu.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index f77972130f..9a1bce9ae2 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -2192,7 +2192,8 @@ static bool vtd_do_iommu_translate(VTDAddressSpace *vtd_as, PCIBus *bus, uint8_t bus_num = pci_bus_num(bus); VTDContextCacheEntry *cc_entry; uint64_t pte, page_mask; - uint32_t level, pasid = vtd_as->pasid; + uint32_t level = UINT32_MAX; + uint32_t pasid = vtd_as->pasid; uint16_t source_id = PCI_BUILD_BDF(bus_num, devfn); int ret_fr; bool is_fpd_set = false; @@ -2338,7 +2339,12 @@ error: vtd_iommu_unlock(s); entry->iova = 0; entry->translated_addr = 0; - entry->addr_mask = 0; + /* + * Set the mask for ATS (the range must be present even when the + * translation fails : PCIe rev 5 10.2.3.5) + */ + entry->addr_mask = (level != UINT32_MAX) ? + (~vtd_pt_level_page_mask(level)) : (~VTD_PAGE_MASK_4K); entry->perm = IOMMU_NONE; entry->pasid = PCI_NO_PASID; return false; From patchwork Tue Jul 2 05:52:46 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: CLEMENT MATHIEU--DRIF X-Patchwork-Id: 13718980 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 1802DC3064D for ; Tue, 2 Jul 2024 05:53:48 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sOWRl-00083R-Fl; Tue, 02 Jul 2024 01:52:57 -0400 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 1sOWRg-00081c-3l for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:52 -0400 Received: from smarthost1.eviden.com ([80.78.11.82]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOWRe-0006cX-3a for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:51 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1719899571; x=1751435571; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=fcrGvIymbVDEDf72GNfFZEeTZnuVqowT/D0J4yl/qfI=; b=YZmG9asopiH5+ssWrQEECu+xMXpRjrdT8ZUe2Bzi9pN4FcpExv5HP1k3 UFZGaF7JaR8aF8QlHZye+elh4rY+PnOi3YGIA8ombq5XAAym4UwSTxBjP cyOfdXezNDkgYIAia/eTQYLtqbTt9v029LAxXuDatFJ3ZCJ66+zHlgQbd m7VpLrWe1njZzOhiaPQlc2uiAV9Eiq01cvKGPe8Gfaeqp/vOHpFR1uH1G GFKPKqGx3CurIQIv1lbiSSLLBMn/0A7quvsk30pYwgIRORaAKU2pYHx6m pxikLkKJtL/MgnOIl1L58dMFltSQsr4SMGO83iypyL0VMnYvvE2k3SBuY Q==; X-IronPort-AV: E=Sophos;i="6.09,178,1716242400"; d="scan'208";a="15715683" X-MGA-submission: MDFRmtchDG0XCPWEeqe39yVZtqV5mWR2LJSdqZuIhsluVHB9P6R992InG5svM5qi/qBcjNtncZlDXL66+wBlewlVEtUa0V3vr/IziSgx3Xn1qDY6fpI3o4XHN/8SM6KjGYL+GqDvKwokJwUg+1RXgaO0lnLK5D0sZ/y65kwRPMxObA== Received: from mail-db8eur05lp2104.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.104]) by smarthost1.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jul 2024 07:52:50 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EUiQMWta4bnbe4k1z2EhGo4IHZiYV0ri1OnaGT6fK4K1GpF7wpvhs2AO3G4ATjuoe2VfOFw5V2gW/apqaDWLQY/arjaZbye0qM+NmfhnjSrOSHV8O4CgCtvMXO51FNO1xQdgvgSv3J+VVQq9eRiLOc1D0I3WkEkO1JM7N0oJUxyZuIdkhrnHJ99Xu24AFljEhFcnhnCk3pBi/KoKxzwZB4l7bN17AhyoqIu6dFBjilq63w4JCh/5F3wUdiMvdoh4g6kiW8hHRNiIIzGlPNty3z4Yw+JvCctpBmggc9r7gDTHcBeQ9jXuTVcSbbBxmk5q8mL8e1RP6noxmX/p2C5QFQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=fcrGvIymbVDEDf72GNfFZEeTZnuVqowT/D0J4yl/qfI=; b=Y55cjIihjQe7WIijHGYmoaXL+XuD1EWY5ZvqiYbBQP2uzyM9yUUyEhdz/9NNckVRpikdrzlij9e8QQ2izrfxps6gLVRaElJyXIhaQ59xy6lxGQWZcbiTwEwHdqEjngGYQgUFzmJkjw1rg2L2fMNVeR6sFw8bhl9M9vYlm3CqQCPPmWhGPwf62gNnTuevD2XXy2N383jAMXuoMTI156xZLaj2F27KRPFR3SPU+JE//tPJhwOTNSJCsngzfClITxR+vvoKpA7JwjKl8gmi4aqBDrrVe4rHshHY88ryqNCIdy4aPNjswP/w9bOcCgWkjKvCDfpq9zkdQoObnXSRYUwP6g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fcrGvIymbVDEDf72GNfFZEeTZnuVqowT/D0J4yl/qfI=; b=bQW90S1217L8KB5ovFHOcc9lo61cAVYckTQeZ5hjsxb3hbnrQKdjhcPTuvPWBcW5rUpRnzGkcPu8hv2RODtYb6XiBnLj7wDBM98WriXCcjdh7hcUgeBBtfdHL5k9zvKyI8MHZYeIdtbYmIfYHIk+PxlfZLZDXHqxkDa1UX2lP2VTzPhD6y4e9TNZkRHP6OL034whGozb9b/WskADAs/6UOH2lYbNtf3JM//iD+GKYChX4ayloDBzDUlSQmr+7NeukMboqrXwvzz460K9W02DWscpgB76IJvNJe6zWJcF+W940OyxZX8t9zN/vZXFhh50UqGS/SJ6cA9Vidvs7ow9RA== Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AM7PR07MB6215.eurprd07.prod.outlook.com (2603:10a6:20b:13d::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.21; Tue, 2 Jul 2024 05:52:46 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7741.017; Tue, 2 Jul 2024 05:52:46 +0000 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , "mst@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v5 22/22] intel_iommu: add support for ATS Thread-Topic: [PATCH ats_vtd v5 22/22] intel_iommu: add support for ATS Thread-Index: AQHazEQQ+8Pi8kxvokGHkqBN3Nk9bA== Date: Tue, 2 Jul 2024 05:52:46 +0000 Message-ID: <20240702055221.1337035-23-clement.mathieu--drif@eviden.com> References: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AM7PR07MB6215:EE_ x-ms-office365-filtering-correlation-id: 3478fdd3-5434-495b-8b02-08dc9a5b3306 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|1800799024|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?q?YhcVZ5t3BhnCJKrYdELccjUZgVZXrGD?= =?utf-8?q?7nm0C8UbT03IZwI8w3xgP/HVrqSQHS9nmWceNwQ1OfO+i/+a65aL++y9d9iVb+EF+?= =?utf-8?q?8AnF6sJtm/94FfvlJFUgYlp31VIdiZPzEd/RoLKPZ9UwSDoVKPZ5Ol0RCEVZzB2PM?= =?utf-8?q?Zz3I15j8AlZoG4DtpJxqtZD9nl0PwhAU1c9NJf3WA8YbgVldoUbrbUpKM7rHJ3mk8?= =?utf-8?q?Ap6HVtwbvendwgVhGblsN6hW/RE4i2BjFxXnu/MlJvyfS0ASELLa09nFtjKm52TZu?= =?utf-8?q?wuehTMohD/6SJMYOQcJpCviyQcVq/AxBoNi40fIkYxiUtgOvCTh/wEqh/44XgE2cH?= =?utf-8?q?91NafU0hhSDnJMBnRoTr+ShveB5j5H5a4asUgVB8wfWyhMxhhmjHoj3Se5gNYwKmP?= =?utf-8?q?yqwlHyq1IuFvLsphufwTKKLfXlopQ3XP8UlCwgpo9V5zM+RfSsX4wJ6ii9f0D650e?= =?utf-8?q?XF4NutaVr+Oh/sUg9OheIa7tYkfv5sU9pT4zyqMm+XgT7TgGjrTMyeGa6tLcfBpv6?= =?utf-8?q?oSiuAHYipTuCnsLNWTAnqkn6VALmxuIlqiZYYZvWRhzUa+9d5RasJJ3TlH7LyRGoB?= =?utf-8?q?1RRKtEcr4BV4CTUlE9S8WAhfmg1FWn2DwroFn1Y/86riiDiTpMJin9wraz0JIC2Mr?= =?utf-8?q?WsC4P+KDcZZWVIuu3B2DvZaIrkFNAIMPeHtgJ5yqL4A7RVHLE6btlXzQygD2d8xqM?= =?utf-8?q?VrcmDCfm37WZjI5dRI5QgxnhzRtdFYaoIBhANDgnZJ+Lrsi5Pxl1t9S2lhfn0gKyr?= =?utf-8?q?yx/Z69GZThEB2A0kDV2RwqbxvQ3E5fk6vEC1BXG0sFsXITuq8Bl2LwKwRBsr2twRH?= =?utf-8?q?M1VjLa8Ymya9KdAdT0J4BErKoWnPhSeg048GUOgaLoK8KkcFj9/7HhYC68N2+iQp2?= =?utf-8?q?mqRM63gN6kEhSuZpofKoaQDHrBQzcnamlthL6x+CpiIO/BSPe2m5DX8msoMBmkO/o?= =?utf-8?q?OVCo/5gUo147RcvX436GHq5dGcIzojIs8fQ3oaRKMgcOWkrd9PlFcfBuS8sv/ti/R?= =?utf-8?q?u2CaNY7ujPTnNe4oDhS34BTL/3GSCH064gb3IUq0e48p46zrkXFA2fOWAQoCJhavM?= =?utf-8?q?pRPmF468tG5/j4AljLjQPPCzxMBSHYBjezU8a/b2Z4q7geXo3TGIV/0Vcu2VVaIqS?= =?utf-8?q?zTK0x06r84ISqt0cV8sxXiQnt7Khaz2vERzds0wloQNOTXxxE3UgvVxjK0uRwD8Sm?= =?utf-8?q?BESySkANasFRqsyHv5DLll2JYfkozzl8G6ghUWPiQrPTjPQvlpoKFELt/bQ5efPLe?= =?utf-8?q?TNHLNHmL2cEP5W6cUcAZtPyAfsuaLF4JjMLTVl+5JjJUx0br6DVyOyubOEiP3Bn5a?= =?utf-8?q?wY0Muwc4A6qC98RRLeszTToAB51pUd+3zA=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?YW2vZDiyuBci8/PVTI0bG+f1nSlN?= =?utf-8?q?K78GwSrhpr+hKpI8wpBa0tgDAktKnjzwAvKnGaH2xJWVjJl4eE/q1VXGY3En1MWU2?= =?utf-8?q?p2oF6nj+4I8cA0TSv7AnMUU+HcuTFZvtVrPc/g3WLpZmY/lwZXoFR2++U0fLM6m3W?= =?utf-8?q?3EaZXndSfXbQ+G9dZ1+AWy6MzVXkolaCMaEicxCbZwXNn0kgW1zSPerTX0kyZh02I?= =?utf-8?q?OqoPGb5MLYeuazuNtGrPO5CkCbZ8PLfu0C0d5FyaPXX9ft1G3gshaV/te9skc+NIO?= =?utf-8?q?l/ELjzhxGqX2V8/USTi3y59pOlI4eeyRyseTXzVsImYdxj+0vz0cBCpiBNM0ghski?= =?utf-8?q?w9deQf10CjBgPLKm2oRwuzc5ob+Bz0L6F9V9QuAr3SBGBDpAQtBArrO8nlZx20jC4?= =?utf-8?q?1qXKhZPwafoitsQC4hW1g5X1CN/3ICGUguo7Yxm3oRz6AgA6DPKcvUOBEHf5exP3a?= =?utf-8?q?JdovkC8c/IXZJNdM+8Ny4CO4SvjQ7Bn4ulfSaofpmiWCXdPdZCy/SloT7J9h/965y?= =?utf-8?q?bn2AOcid/4LZPJbWXcCZpXCJHLpqtzEYeqHAjOPDD+kSDTQm2K9OojxrTd+q3a08X?= =?utf-8?q?9kgCQdmh7hghnbLMIq4UkZuu6FQQUhrbCtCuGk3kOebFBwBFXoJwoTHhtJX7kISA8?= =?utf-8?q?5pEnjwfnNpmp/smj/WGG6MdJtRxICEpnXY5ZLXiJNWAc2uRg9qKGCcBS6WJgLT6hO?= =?utf-8?q?3A9JcJOyfnphOEO9ERnKW8yRlO7XcmKjDogD21U0kSzzgLv9awtf9sJgz2tZAvUF7?= =?utf-8?q?M/xsXE+kaD6Cy8lcw87B/BcxVGJi3vy4RDDqZMzrRyqTuIt9V62SeJEcVdPvuLB1O?= =?utf-8?q?1isoBNGOPT1oj5brS1a3xcMtSR6ZPn7bvqhSXr/yAGAFFZOc2wuQryEjzZi9+wAVv?= =?utf-8?q?i5NuQuRtwY0kNUZCOiLvBavFBzQ+vFaw0v/6GaBQC10p49hxMm+3131+oSHuwcDBw?= =?utf-8?q?3vWFcUWGUcf27p6yTlLZPiyrCJHTKR5eFBzGpzncdmFDq1FqP+FCjY8/vMymXCeyM?= =?utf-8?q?l5uDuGh37R6jvWaRtvrNVAxKdGYRB4+8bLALmo7VZs3xTof6Y88n9S8hHBQ2M5L+S?= =?utf-8?q?tyTGrcKo31lPDquAZXVjJWhSTXF0ILicuuqWT5tm2yRXn1K93qtrtq6bYhF69N5vs?= =?utf-8?q?l77+kfxmemMsIrK4vPD48Hvn+g2usxn60FyNcCUIgx3CPRVZ4schUjZNG9SPBJZIw?= =?utf-8?q?zJJokb9/oRM5AqM75VNXYA+YAb6Y4z1DGU3q+2zOcKKqoLGUKuOrWG3cCs4BH4qgK?= =?utf-8?q?rx/WAI5p8Xn4jlGymRt6wVTlJwZgqjTjuVDjRt1NlKoFVPt7FQIzX9kPefXkP5hzU?= =?utf-8?q?xIjPtxwIWtkieV1b0vT/J3fBhJPmMk0plViFv7NQDdQ1V0DiP60d67DFduVtLRA7z?= =?utf-8?q?bstpo9q44aadRQJtjqv/OtrhGQVzKTJ88uryMOB5mmlKPnx3+5HMDoJxG0yrasfGi?= =?utf-8?q?7u26RfeX2TqDJstPAB/W60UoiEXgVTqT1VoqYVIY66lHnEDFUef0oi8QZZXnBHU+w?= =?utf-8?q?6MqwFghPU42xeXXw+3wrgP2kTuoGLKAz2RCQi1/Kbg0Wq2AS28IshvY=3D?= Content-ID: MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3478fdd3-5434-495b-8b02-08dc9a5b3306 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2024 05:52:46.7992 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: gXXxaq/ycJBmddgUqmYtc1Fwyg5z5Kr29MJQ6ausZm2O7kg5sEm0+XtpzjsESSObK1KUjGJ6W6FgwRE18aR4hsEpAdKYCSUNgnaHxrivPDUmWVwsLQAcBTfVKxUlgCaq X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR07MB6215 Received-SPF: pass client-ip=80.78.11.82; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost1.eviden.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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: Clément Mathieu--Drif Signed-off-by: Clément Mathieu--Drif --- hw/i386/intel_iommu.c | 75 ++++++++++++++++++++++++++++++++-- hw/i386/intel_iommu_internal.h | 1 + 2 files changed, 73 insertions(+), 3 deletions(-) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 9a1bce9ae2..191d7cf0a9 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -5405,12 +5405,10 @@ static void vtd_report_ir_illegal_access(VTDAddressSpace *vtd_as, bool is_fpd_set = false; VTDContextEntry ce; - assert(vtd_as->pasid != PCI_NO_PASID); - /* Try out best to fetch FPD, we can't do anything more */ if (vtd_dev_to_context_entry(s, bus_n, vtd_as->devfn, &ce) == 0) { is_fpd_set = ce.lo & VTD_CONTEXT_ENTRY_FPD; - if (!is_fpd_set && s->root_scalable) { + if (!is_fpd_set && s->root_scalable && vtd_as->pasid != PCI_NO_PASID) { vtd_ce_get_pasid_fpd(s, &ce, &is_fpd_set, vtd_as->pasid); } } @@ -6041,6 +6039,75 @@ static IOMMUMemoryRegion *vtd_get_memory_region_pasid(PCIBus *bus, return &vtd_as->iommu; } +static IOMMUTLBEntry vtd_iommu_ats_do_translate(IOMMUMemoryRegion *iommu, + hwaddr addr, + IOMMUAccessFlags flags, + int iommu_idx) +{ + IOMMUTLBEntry entry; + VTDAddressSpace *vtd_as = container_of(iommu, VTDAddressSpace, iommu); + + if (vtd_is_interrupt_addr(addr)) { + vtd_report_ir_illegal_access(vtd_as, addr, flags & IOMMU_WO); + entry.iova = 0; + entry.translated_addr = 0; + entry.addr_mask = ~VTD_PAGE_MASK_4K; + entry.perm = IOMMU_NONE; + entry.pasid = PCI_NO_PASID; + } else { + entry = vtd_iommu_translate(iommu, addr, flags, iommu_idx); + } + return entry; +} + +static ssize_t vtd_iommu_ats_request_translation(IOMMUMemoryRegion *iommu, + bool priv_req, bool exec_req, + hwaddr addr, size_t length, + bool no_write, + IOMMUTLBEntry *result, + size_t result_length, + uint32_t *err_count) +{ + IOMMUAccessFlags flags = IOMMU_ACCESS_FLAG_FULL(true, !no_write, exec_req, + priv_req, false, false); + ssize_t res_index = 0; + hwaddr target_address = addr + length; + IOMMUTLBEntry entry; + + *err_count = 0; + + while ((addr < target_address) && (res_index < result_length)) { + entry = vtd_iommu_ats_do_translate(iommu, addr, flags, 0); + if (!IOMMU_TLB_ENTRY_TRANSLATION_ERROR(&entry)) { /* Translation done */ + if (no_write) { + /* The device should not use this entry for a write access */ + entry.perm &= ~IOMMU_WO; + } + /* + * 4.1.2 : Global Mapping (G) : Remapping hardware provides a value + * of 0 in this field + */ + entry.perm &= ~IOMMU_GLOBAL; + } else { + *err_count += 1; + } + result[res_index] = entry; + res_index += 1; + addr = (addr & (~entry.addr_mask)) + (entry.addr_mask + 1); + } + + /* Buffer too small */ + if (addr < target_address) { + return -ENOMEM; + } + return res_index; +} + +static uint64_t vtd_get_min_page_size(IOMMUMemoryRegion *iommu) +{ + return VTD_PAGE_SIZE; +} + static PCIIOMMUOps vtd_iommu_ops = { .get_address_space = vtd_host_dma_iommu, .get_address_space_pasid = vtd_host_dma_iommu_pasid, @@ -6246,6 +6313,8 @@ static void vtd_iommu_memory_region_class_init(ObjectClass *klass, imrc->translate = vtd_iommu_translate; imrc->notify_flag_changed = vtd_iommu_notify_flag_changed; imrc->replay = vtd_iommu_replay; + imrc->iommu_ats_request_translation = vtd_iommu_ats_request_translation; + imrc->get_min_page_size = vtd_get_min_page_size; } static const TypeInfo vtd_iommu_memory_region_info = { diff --git a/hw/i386/intel_iommu_internal.h b/hw/i386/intel_iommu_internal.h index 117dc96d22..d4831522ed 100644 --- a/hw/i386/intel_iommu_internal.h +++ b/hw/i386/intel_iommu_internal.h @@ -194,6 +194,7 @@ #define VTD_ECAP_MHMV (15ULL << 20) #define VTD_ECAP_NEST (1ULL << 26) #define VTD_ECAP_SRS (1ULL << 31) +#define VTD_ECAP_NWFS (1ULL << 33) #define VTD_ECAP_PSS (19ULL << 35) #define VTD_ECAP_PASID (1ULL << 40) #define VTD_ECAP_SMTS (1ULL << 43)