From nobody Sun Feb 23 05:49:04 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1740125302; cv=pass; d=zohomail.com; s=zohoarc; b=gd0Yh4XnXlXYFezPjgo/ori58PpEf6MrQaGTDll1Iy8ai26mdMrbFTF4p0ILryKcAuafjXeSKVYlu+zdjDQPbXoGWjx5b6kYkTfb2DpAPaNMsqhBljczD07HNlrkH9HRsE8lEIPFV9B8PxBZ7KiLDB5ZYkMTOoTIHmtzvPD+tGA= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1740125302; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Y7CTr+Rb2R1zqg2bmxcnsAs7xBENi9tcDM1WAW1bfKA=; b=l6t1jxw+J3mp7wUFjkN1W/A2VRxKzbkqxCO9LBgCisbIlcr63zwmA/eb+XpYx4It8HDjPxxqkhfNMFEfsKVUJb+axE7xGdb78C0DmBb0/1eKcetJb7EPZi+QtNgo0D97E/IHxz4PJnZbeq0EAyTecWbZDxJdf2DXEKMNjLC3M6c= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1740125302698521.562263639541; Fri, 21 Feb 2025 00:08:22 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tlO4P-0004SB-G3; Fri, 21 Feb 2025 03:07:37 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tlO4O-0004Rx-5b for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:36 -0500 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 1tlO4M-0005im-Bk for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:35 -0500 Received: from mail-db8eur05lp2106.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.106]) by smarthost4.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 21 Feb 2025 09:07:31 +0100 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PR3PR07MB8162.eurprd07.prod.outlook.com (2603:10a6:102:175::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.15; Fri, 21 Feb 2025 08:07:30 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%7]) with mapi id 15.20.8445.017; Fri, 21 Feb 2025 08:07:30 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1740125254; x=1771661254; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=tQ4ZD/jVqFaAa80Rd9aB0joY7YkHKhzqxvXOWS3zxO8=; b=lwTOUVWmce6jJR+o18bPNKlNs77ek6dj2+KnxEyn9WBsPv9weGW+Na+h yPFtw/JMZybHdThwgOa+WYVKIuwhYoS649tyqpeLxLuUQCFMk+HFD7oDL thU9jhTTDg18vJCj9ZZjoMvPJUeW/Lzzo3w6uNm0XfJ4+CLWP8kLsGaGG GwXQli74EInopSx57nSuR3K6t+krgAaP48amdARof3FfiGXprvjT81TWD HdfTiplyeKbY2tR8wMTo1o8hbgnsYdQI7KJvTA/Bun7Pe1O2KPWyt8Rjl l0JMJnbMEvc/ZS8N2DtrPmZtfl21oToeI+VP4X6GambQ+2izflWYac3Wg w==; X-CSE-ConnectionGUID: RMmJhISlSR2vrPv0C9vx5w== X-CSE-MsgGUID: tpaTDNRlQweHwdUckI3GZg== X-IronPort-AV: E=Sophos;i="6.13,304,1732575600"; d="scan'208";a="32836633" X-MGA-submission: =?us-ascii?q?MDG3gb+MQlXwotH0jsL3z3D2KHls9SeTAATDBI?= =?us-ascii?q?+XSUWdVXKEERj0TB+5uC4fEbJYZvXRfM+4xdTX0MR6qb7DHfvUDdfUjc?= =?us-ascii?q?07H6Tsl4pCR4mPW30+z2O4gMnHs4tibGz6LSy++sfT957kfRF+WfNz7J?= =?us-ascii?q?SU9QaCR79s16xglzOc8yaZHg=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ouphA0KQVrKEEDTPuWHiKmGYSK+Hh88CoHpz+x7eTObpQXUZXmWQLJEO4zl/mYdq3nvElMbiwBagkeR4Nzm4QZh+kz9v7USIInJOcwHIr9Gnj0ZMMRBUaVw0pfm8w42OwpvQE1nE8sf0nBBCF7Px7v+7utPI+DEWYm7bhq/Ai6Pcop2wiqPl3UlFTTTkmyORgZ2UgXlucbJoQWpBVKgKAxz4RtFhlEVgw7/w2UeMXNQtQrvLIpIyY+9C+x9I55wh4jaE2yxyYFrVCMQ4g5hUt4Rh7tww6iuVi2uMwzrp0/mHprqw5UpwYAmIOn968N8gKaE1BnaNzw/Il0UQkTUDIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Y7CTr+Rb2R1zqg2bmxcnsAs7xBENi9tcDM1WAW1bfKA=; b=tVEjeAHuZ9LkoM60QHs+dX8ysYcEkPGnIcVUdt47dOdOVz6sJHcEOI+2prw9zoMtoyWssETUtKpjCcigX7hDAvAY2zocWYpvJ8K+qHX1HrbTqHYCL0DD8QUvWln4SqjQDp13ZoPbZg5c1i0PsSRZstEqQOfGNO5p6HCEdtyPcF0MjLXhPFcbsiTamt5P5gWYid/NYvpS0dGrMxK8rSWxhHoby1PLJ8lkeyVU9jOpYl+y0LsDysGE16fIbUHury9A/O9XuVNbTaJg2muBzAjj/gjVLqsP/8rBNcFngbPDJ0cEO418KdRGY0uIugyqgUJ+gHxprWtd2jduv/y0/y6jiQ== 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=Y7CTr+Rb2R1zqg2bmxcnsAs7xBENi9tcDM1WAW1bfKA=; b=FPOB1tN9hCVWtcWNLuLPV5tRXEQQK+MdcwmX1tTbfqEXwVBYnXoZIo2sDKAUCfrfFx24Ti26r6Bs1U5jLQLehzWvEECoGb6UyVnPxT0U4DSv+DJps8eK+PaHiWSESGqCeUoG/29+NpdXc61/1Kt1l98tnBLPHM62/igAFb9CVhuIZ1nfhn+d1aKNBqSPea1o/N/t5xQ6XhGvukeQmQ2Yp/WZK5Hbdu5mavj86q6QgK91bdHlW1a6XS6bIuwARRknrjp0pcfzvUvfax42qB4HrW1gB8QnrSQpQ6AYx/iiVtobo+SEXXJCqwlF6+T6qgkWVw8zVnbZy45kK0OWRcGrJg== 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" , "tjeznach@rivosinc.com" , "minwoo.im@samsung.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH v3 01/19] memory: Add permissions in IOMMUAccessFlags Thread-Topic: [PATCH v3 01/19] memory: Add permissions in IOMMUAccessFlags Thread-Index: AQHbhDeng2anJ60rSkqnEuIWTEDQ7A== Date: Fri, 21 Feb 2025 08:07:30 +0000 Message-ID: <20250221080331.186285-2-clement.mathieu--drif@eviden.com> References: <20250221080331.186285-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250221080331.186285-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_|PR3PR07MB8162:EE_ x-ms-office365-filtering-correlation-id: 9590c01c-cf27-4ece-4a73-08dd524eca0d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|7416014|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?EJ2hNfGQ+UOuABOzDz9q3Zc6ZW760/Xuk0ciU6qmtVIeqHZ+Dvd8SMmYYn?= =?iso-8859-1?Q?M789vR5m25FFf++sTAfB9UeQy46mVh5SwoelmhidgmCZCRJsex1P+5ZGvZ?= =?iso-8859-1?Q?jlIy3N0W6iV1fst9+Nw7zBmCkbDO5z//i6NVE/Zqss7hwXtWzjixpYBsIw?= =?iso-8859-1?Q?wD7Qx6hk0YRGJask7aGqH+TIx5Y2s5Z82HqUf4RCVr8tGVRG5OtDE6bA81?= =?iso-8859-1?Q?WJpIwYKqHUtzFj7B4w1mcSn1e3g0t9i3pVskEUopEhaCEDcQiLC1BCVfPf?= =?iso-8859-1?Q?6cDqP9K2g2Dr2G0HoVT2TxtsXWZ/IW0yMSJdhkEgNelBaquYgzB3MB4NCr?= =?iso-8859-1?Q?MotLMZNxptp8THOX+haSVFhDpy2nYcDlzz3q49OnP7eAhLWDberAVyGJ6o?= =?iso-8859-1?Q?BXXz9zjK0JqJ4AizEeWDNbOlz546zXjzuzeeJEh4RL3zI15y2SaMA3LFLH?= =?iso-8859-1?Q?ALkSZLR+6fkbeahKX4jwXgGjrQWmTXglDSmzNSQI/45ej6N3rmx/W5eWwG?= =?iso-8859-1?Q?/kWijR5YXK6l+cSQpZ8K6uBi2QBlTmeFX1vHhargesEj1zapf4Q0WnRPWp?= =?iso-8859-1?Q?iqiGwoVxwTfVMp4GOxPiN6CbcU9PC05BUn+kWoUUx2oeDXYaZOJbsv9pBH?= =?iso-8859-1?Q?DiFOTuaakDIYujh5wb12MR1HMzzRh3v0kuA3rNgdiA2d8zsWto9z2zrECS?= =?iso-8859-1?Q?SLzpHxk7/SqC+hLQ65Pu5K3/mFRB8rP/wU/m0JbBmWePRVaayoNl5DLQh4?= =?iso-8859-1?Q?LcTpC1zN57UhP0Je+r4GAlEdK3Vh2NWt9YMMKOTydzIDX1kQtdp1NSiZkj?= =?iso-8859-1?Q?LQmprMd0E8b7vsF1nQLurhs3k/ZDmQcUqpcXn89cVi2u0uyKjyjoULHip6?= =?iso-8859-1?Q?0cp7XZEDx46zyznyeA8OOnotOci4a3tsZ+oDE54+3ntSVttznuMz8C8cGP?= =?iso-8859-1?Q?gk0xWxbmVRKLj7OUijawo2IC3KJc7dGm49HnPCsL9z2yXVwCs8D54qoFhs?= =?iso-8859-1?Q?7DED9veUiv288g+JWsQeR2+3HqC/pn3NkkFmbAtQmkKdfKiZyIlwJgREwb?= =?iso-8859-1?Q?6iRUTpC3vmSpIKJMPlczPgdpoHS4RswUafNOtPqvxMMqDDyvoiPuo2Lrgo?= =?iso-8859-1?Q?u7Fy9jngAbDdQ9GDxc8dW4GlFFuCwqUAaUD/UDcU3onLRWQX6ZRfUbCf4R?= =?iso-8859-1?Q?viyE7mD/h5U/nsdwH2sDomRPjj+0cuH3IZ1SwTcfRo2d07+f2CNb6A5wwu?= =?iso-8859-1?Q?dZkyQaRqSQTmJF6GBmZR22EnxaquwvkXH3Uo6GssjPD40HQxCkTnkCtjwV?= =?iso-8859-1?Q?EEIuM0IQtKVOPogzv2dBLuA9IqT23ppxz5Q1iJM3Pz/RmD3ziXA275I1mb?= =?iso-8859-1?Q?EsWU/xKjSNQsf8u/I173W3FWQgoRhBcjWher2YSeR2m3AmPQACcbR99lvj?= =?iso-8859-1?Q?8VzTSLScHsyJv2xvjzScw7g3OIJhvv+q6XxqgwcRl9q7qOTNVSQV9JWO2Y?= =?iso-8859-1?Q?OQTeraoUxeHTnZUhbE+PoE?= 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)(7416014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?r3kymrEcMkxkXIk/QxNLgYaKw3bifiG7y4T9tNmHNaM8rcoj2h0/43JwnW?= =?iso-8859-1?Q?mw0RQ1KkzZtmn2tlIQC3BL+jFNkH6WlHEhOCRSqzo5aLO/qN6757vVNXQF?= =?iso-8859-1?Q?Kk1tU094bNGQt7p1sk1CvcJ6CnGKO+wlv42DQtYr3qaMmVJwQDeTKpB23k?= =?iso-8859-1?Q?1UjdO8e4fQb6S6yudPy+JRZjpEOZI8UhdK/wgjOqDymqAFfyJ0yC/uZFos?= =?iso-8859-1?Q?mrwSNX40tMQdzRHC8RUC7ctbx+xMRwu2mvtmCVsnGziAErJPTiEcxJSzdh?= =?iso-8859-1?Q?LOgEokdGOW5kDHwdCogn4DBYJTbCJ1zzAm4cUmpcPRWu4RS/p6WpishnX9?= =?iso-8859-1?Q?RsjVqtoGahzr7l9JX0YCpHCqS+7gBgwnbkNAKNlzM0Lrp+YRZaccEWvpDU?= =?iso-8859-1?Q?zNr17gCmYCjnPdTuaqEFcJQRn4WCmSCgHUlTMmJAjAyG+NllPPhxAWaZSJ?= =?iso-8859-1?Q?nlb5IpeAUyR+1CZTPWqUiJc30eECQenzRcwBFuRHXPmiZfDuF9vkCBVfm6?= =?iso-8859-1?Q?N6gRcFfLoxlTdCPD5/q76HsloYqTkIF8fPW9iz77sSPRPbnuO00dtkN5hQ?= =?iso-8859-1?Q?wpNe/DMsBC7q0qoV8F+bVKDM0cKyIuAE1LfurOSZedllHxvdXp7nhFxV47?= =?iso-8859-1?Q?4KRFJ22g/Y611LM1F1eMPi2mCvRW53+H5fy0JbzAz8twSkXHWyu6F0ek0i?= =?iso-8859-1?Q?9Ozl5p63Ls1zS8rbSG6qa3VpR/3AVFLwFrJW1Xf7VlJMoJu4E+XznKFM/1?= =?iso-8859-1?Q?h7jYPcQdgYf7nvMcls4B2eRxGd1HIcrfrfKUpqF/26egc4twpvHvg4cMHy?= =?iso-8859-1?Q?gljZjiOqznixGFch70GjVwp/thNGkTckBtdvZDzcQoGhcktr99+nB2v46d?= =?iso-8859-1?Q?lSK0GdVwP51Ma179pXpA0FibzSoFeaqnya+aHLklkIZ6ZG1G/thGzCBNU5?= =?iso-8859-1?Q?v0R8mmcz0U+x/vVRbF5XKqGxomTOccwgaqPoK/WwrXWOX2sWFAXXQw0fRd?= =?iso-8859-1?Q?OqC5zJluNL5Ray+9fGJG/pznADMUY7cCZE919acrk4S/e4tSIW+WuyRgnC?= =?iso-8859-1?Q?rZtC0jjkZRCzeupmeMW+C1JH0vtWwgKm13U5e6NZCUhgedfYeiRRwXPT/r?= =?iso-8859-1?Q?VmIBbVAgJcBQgBPXa654946EhWX+AD/XXNPvgDe2m2qJ7IY/+dUlFgQ6VU?= =?iso-8859-1?Q?ld/35YyEZXaXzcYYKlDG6nht2jsqRsfe5zuvBHxoQ2V4XbMhc1Lja9zpZO?= =?iso-8859-1?Q?rGO0+AdSCfq6qLGK31pmqQCa+iR/GoH9Q5RF3l5zhTcpOabfvt1Phi/aaS?= =?iso-8859-1?Q?GXIzBMA+YS9cO60yCEo6+eS38fCyNKCgUREfvSbg137WMfUnjRS22M5OiG?= =?iso-8859-1?Q?TL8O3pbk4F6N/YFWq30+/5eXYL0tppx/z2WkHYYTRIbZq1Y9dsC2oqqMe3?= =?iso-8859-1?Q?+oitRJ1wqo9aFjzRLvxHU1LDBah+Je+7+TQ7Dk9xiRKx+FjUj76RMgFoDV?= =?iso-8859-1?Q?1xlTFn745/s0RkwnsVGPBRt8c+xRPbIqRANqgombT8UGXDs2EKBY58vmwR?= =?iso-8859-1?Q?LYKS47F95e3M84SABJkHf4vluk5b4PRETmSc7U3Ci7DTzcQmJpuKza33tf?= =?iso-8859-1?Q?REl29ItKSDQOOl9hSU0rlj6LtqM7tgbKnnik1sgttqVTewI3cwQ3UjplpV?= =?iso-8859-1?Q?F9Dzq+h/tjLOt9blSdU=3D?= Content-Transfer-Encoding: quoted-printable 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: 9590c01c-cf27-4ece-4a73-08dd524eca0d X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2025 08:07:30.6985 (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: CKyqHA63sbAGWAZN6rBW8ykvmP3JGabtDh2V08dwY/i0rBOepzgMNAL5NQhOL3djgfSZ7f70I9NpbNJAIxFxka6O90EP/I/8qNw0wgzzrmP6IqgLRPyRMBCCWbCrmB7l X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR07MB8162 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=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, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1740125305930019000 Content-Type: text/plain; charset="utf-8" From: Clement 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: Clement 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 78c4e0aec8..29f5d31eef 100644 --- a/include/exec/memory.h +++ b/include/exec/memory.h @@ -110,15 +110,34 @@ struct MemoryRegionSection { =20 typedef struct IOMMUTLBEntry IOMMUTLBEntry; =20 -/* 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 =3D 0, IOMMU_RO =3D 1, IOMMU_WO =3D 2, IOMMU_RW =3D 3, + IOMMU_EXEC =3D 4, + IOMMU_PRIV =3D 8, + IOMMU_GLOBAL =3D 16, + IOMMU_UNTRANSLATED_ONLY =3D 32, } IOMMUAccessFlags; =20 -#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)) =20 struct IOMMUTLBEntry { AddressSpace *target_as; --=20 2.48.1 From nobody Sun Feb 23 05:49:04 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1740125376; cv=pass; d=zohomail.com; s=zohoarc; b=dmTdduRocI8LnxbBfsRimEUBzlmIEcEhF8L1PFs2/4HuiGQUwfWthc6qxoCr+grddFPMCl3QJTa5oNO6TjaeBq0vbntNG/PxFhSaaelisWCWBTLeOdoagYTsP/EJRM34pQLS8t4Pm/np4nq8wV1KffLk2KPTw1q3GcTn/UpPqg0= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1740125376; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=qIT6AiwY3yFCcHWXpCPT56LF2YCfuC6fJtGxDNZQlvg=; b=A/K6+ReA3fImyl4ZoPYISoe6WGWGHblzXQ9clGYaDc9dVX1rbPm7w0/KRvzbJeBIv8paOQHCPQlHqPkAUk8N0oItfJwS1pur8172uYetGaAa8qw0RSc79/aNsiT02qxRP+u94lY1mK9/x7Izu5C0UUyei3LHvacBpTXm7YCSq3w= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1740125375917143.5941379161642; Fri, 21 Feb 2025 00:09:35 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tlO4T-0004WR-8Q; Fri, 21 Feb 2025 03:07:41 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tlO4R-0004UT-34 for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:39 -0500 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 1tlO4P-0005j1-0I for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:38 -0500 Received: from mail-db8eur05lp2113.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.113]) by smarthost1.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 21 Feb 2025 09:07:32 +0100 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PR3PR07MB8162.eurprd07.prod.outlook.com (2603:10a6:102:175::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.15; Fri, 21 Feb 2025 08:07: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%7]) with mapi id 15.20.8445.017; Fri, 21 Feb 2025 08:07:31 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1740125257; x=1771661257; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=uJlqSs57TInsB3tqU25LwXRqfzPv1aIxe7YNYeKhHCg=; b=PC7H7/z7M0qqof0J788liU/QwDyxSMNltzXgeq6TvXajEjLiiwfjk5nT NTpTCMFY4oH0+uXcuGXZ7qgLgQznueCN7TXywuBaBEw96nuWsXsGiW5xd ST3XSz9Mpfl8AjHIwgcNVVrlDrbXsXoiHYvYWpgmDHKMhfPGv9qhtksEk RjD2CRrfEYbdjcEF23wE/rQvUOrGHEuSXPx0TXVoe7lDxQNrWoipOb1bk 3vyGMRlKCCHr1dxbN3IFcZt4/47Emi4ZwZG3aZLxw0SVSHu05Q/38Q0mw 5g1kHuxQaCx+eF78J0lOyZyi0BFZStGpqnQVBBWLmgn/8kAkcy6m9geoD A==; X-CSE-ConnectionGUID: Aa/kJQnyRr6ok8JBABN14A== X-CSE-MsgGUID: Nk9EXkZmSqa9oVUquvZAUA== X-IronPort-AV: E=Sophos;i="6.13,304,1732575600"; d="scan'208";a="31394121" X-MGA-submission: =?us-ascii?q?MDGS21pRw7xvuObjDLnjVMH4eEXuWpMrVF5DJo?= =?us-ascii?q?i0VZ2hv1/4pYWPbQMKxV2K3/GiQI3eRDQl8nF4LSWbXONd607gcUdvpg?= =?us-ascii?q?fti88HxxG4K1zKgj8vRiMUW1zIDjsvloPKGZtH9kf2r7PnTzQrtJlWlg?= =?us-ascii?q?4VZ5ucYTuDlcY1ZQXU11qb3Q=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=a2UPtTCcu8yLIAarIyerJoufRqbDQTSxLzY/lPo7MBogdhA8qG/ocXH80jJo7/vPUTEnWAhy/EgtW2xa4as0VgUFJeQtI4eEE6qUpqtbb7Uj3j9xSXWvYYprmE7ztH9br2pZUPwFlAlTGBcD9y39JYNu2/AqxBTpxKQNx/ZoPaKZpxzzVjruidjBvSlYvu3ljyTuPxIjtCS0KPgTbpuQmAX8rI+2MOaDHFA4nH6FcKWjUN/BKsu1Qmc3gDZcT6uixGQPMQJhW2aReeW8auNLqFiZp7CtwM//T6yx+GdDmLH+T9O36QRv+J87MkR0JxV/u4zgRrVA0ronLqXOtW1lyQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=qIT6AiwY3yFCcHWXpCPT56LF2YCfuC6fJtGxDNZQlvg=; b=GIO8eZHe9gEWB/6WcFze6IREh7ylnYez/tFwrdOXZ/1l/05Tnz3UfgHgGo7c1lQzKdLVDk+NiRTZwiP5osevV52rvqI717rbClrjb7ZE8Ys61idnzvUYpeNkQh+6rN/VjPrzNu+PSdD9nbvRjF6nX4V9Z0gDz/GMT9qd6+p06hKsFEnqzvBq8exd8Dfpwe/yzMVxh2FNODFe002aW9YeEd3fJk+9z4et2QvbYvP4IC3aYBCPjPnmTznGknWNphvlOs/vf6kzD4ZxhwQzhNR8+0l9OVZjWdt1xl0942CYh8ZlU44jjtFc1CPTVM2lDs0vZ5cbAGtRHUBQ5fr+OwiLdg== 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=qIT6AiwY3yFCcHWXpCPT56LF2YCfuC6fJtGxDNZQlvg=; b=kr/DZzJFarn52nsxtHuH4UJ0omCKzW7fQycnorGUeTbDEPkBBLdybnIgV23LV1JB6IVwFlW50enHMODBBtocRCYhjXxayHdBd1xDTtLXoYzEBJu843CGaHyhyhS7lwrKZNoVFLurM14QkVkGp07VCzb7Gc/uWLSG1KGYUmZnoHcWcm69QCpw23V0Q43Xvu5U2BzPsjyGdUZqlN1KDmz8UR7kBLrpJ5buuneEKo+epynweNOlLa19/NxlSyKrlBv1jLfOIf3aaup3WRJwi51djrDzopDur0Ppbil7gXF+wCgSitE9BQ/J+wKRe7vqWUKm8LcEp2kG0AVfhSXCFeYwcQ== 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" , "tjeznach@rivosinc.com" , "minwoo.im@samsung.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH v3 02/19] intel_iommu: Declare supported PASID size Thread-Topic: [PATCH v3 02/19] intel_iommu: Declare supported PASID size Thread-Index: AQHbhDeo75NPWXjMt0eB1wluCkUGww== Date: Fri, 21 Feb 2025 08:07:31 +0000 Message-ID: <20250221080331.186285-3-clement.mathieu--drif@eviden.com> References: <20250221080331.186285-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250221080331.186285-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_|PR3PR07MB8162:EE_ x-ms-office365-filtering-correlation-id: 389bdce0-29e0-43f1-e511-08dd524eca86 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|7416014|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?2v1PdIfZw5w/bBHWzVVSQvA6Sws+TFHpJh7igsJEgAz/2qskcgnNt/mbQ4?= =?iso-8859-1?Q?O+Vd6lpt3qoeISOVjvvjHghtgqpyBr/ZBCk41efS0n1sGu81pcOPrKlyhb?= =?iso-8859-1?Q?xWx2mW7WXjmkhjwX9KnFOU9I2aR8epUy1zgO4eZwn3sOoQ0NcJFEgZS+GB?= =?iso-8859-1?Q?NISQDpTxcTFWlu8cnp8+eUAJrq0qs6REID0+WNnATzZWsjD9I4oqTYw9MU?= =?iso-8859-1?Q?0g0p8y9hmsa36ngh6qGXp378PpU7IN6OmzwMXM4bLXmWz9aTbHsJRQ/XWn?= =?iso-8859-1?Q?I3A7OHqkmf+nVBSbAcuIBQp4JNIM7lgVG9b/Zr6LA36P51KPDL/fz/ZqTN?= =?iso-8859-1?Q?aYWaYNhZ8UrCpO184sakSbQ/PemdxHsDhKzQiz1mVvdba4VxHR9AORaZNP?= =?iso-8859-1?Q?2toPWXiDiST6um+fcGo672Dkaocc6Uexto5By+a3mqPWCvsZD9s50tR2Jn?= =?iso-8859-1?Q?liOyOKIhWbuljyjnFTMnRO705xMVcy0b8GVKBZkYK465OrnDGdTLJjl2z3?= =?iso-8859-1?Q?YMz97Wzwt5VFvHi5G27MhCzzFcxJ93GgvVEqWeGfiP6NIkpcPNc91RwfKl?= =?iso-8859-1?Q?xy0njPmcos7vrAoMSiqBX65kWPMJVIS6GHV6mnzxlqMy+AVN/o/UnY3WkQ?= =?iso-8859-1?Q?4xGgsYPG72XwV58xkDjgPuskx47Do9DXcNOh5svXsu+DsaSAtYL9K+HMsy?= =?iso-8859-1?Q?WxFc5+szStiNIMRuST4oKvEj0i36pinXvQO2jAGuVzjZz5FYsHrDktL937?= =?iso-8859-1?Q?o1IyulSqIzGr35N0RiHZVvjVgRIjtCA78ImWmtk/f6pj9A+9fpI5+3w2yn?= =?iso-8859-1?Q?FALE236ttlK1fPGuMJg4XwYNmEHAvPqkdQamz6L+3SOEh/6pUTHNtxdY3W?= =?iso-8859-1?Q?dckhGZ11b/+iIepcVC+8kFmoVbZ/Xi9e/Wrp5c4v7x6I9dvYqJnjBmtYD8?= =?iso-8859-1?Q?aI2eDy4EBt6iCIOBe2mThAM6lMJfiIrxAElrdT/kaEKFBaCV6EwrppOTsz?= =?iso-8859-1?Q?APUpQ9LIv3RsfgtRZ4pkPBPFzyXK8iZBAElz86bFdWdr96kAfsOb1Iu0h8?= =?iso-8859-1?Q?Nc55993IzpHz9+hu/xdkAPktJFytikxP+ZLDBwyXKOR6Wph83bPjDB+nkL?= =?iso-8859-1?Q?AUP7fJFPJ0azosdJIdid53m16aKVd9tz6GknVogktrO74t4CKRpVbB+SWf?= =?iso-8859-1?Q?2kjo5CGoQ0QVx1Gwcz/u+dqs0jfYn6YILSPnwCNV1m1NqbWgnnc+RQFsSQ?= =?iso-8859-1?Q?j8QkruwT80uczGrlI8XkGsJZKHwxY9aASaNtPIlzoE9Dj8bUiPGP63qeVT?= =?iso-8859-1?Q?2wN9Zhosxio4+RrPJaokPz67ET63X6QubjXr4XKNawXwOlBC5M+OoKc/Jc?= =?iso-8859-1?Q?sVXA/UWjIQaV0afpu0mABXndK1B+9pbQ90SKwLpjmHhF/GXdaVLsIhdAbU?= =?iso-8859-1?Q?q0C0NGRJ/wRgT/iBWZFAzvXEqQMNGGYk/LoDfyFdFahr2rzZUynB4MChJ4?= =?iso-8859-1?Q?w=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)(7416014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?MahtzD1NaacrFrxhc139K3uYKKaVbb1J+konL1XEuv+d44FdXE7y2Plwum?= =?iso-8859-1?Q?agFV1ApBqlxK/H2Fnmj+wfA7IUr/2oYNIA3qBRpiBNHdIDMQjHOTGKGbWG?= =?iso-8859-1?Q?AjLkhmtcwGE9pSee/L8iFTOQqaJ4Gireh5F02Aqq5rKTa8D7w1jBuyxSpt?= =?iso-8859-1?Q?ZRJGqsMXDf7WrnC4YANoRdKV08a3oGpnQvOfUwlLSUNF11vShMw0+S1H32?= =?iso-8859-1?Q?Ful1R/XeG2GOrIm8f256ww4WIkchpAyMSJ0vJUmKBv9sowyrS5zpUG53+q?= =?iso-8859-1?Q?c2Ts5rzrAIF4jAc28SM5H2fsdZmBkOlRV6LNSuWub0mJT+jU4OoDHGOIwL?= =?iso-8859-1?Q?tYKvpVwRvmH0bpJuCecRWdr3Zu/WBPzh0HahUZkoD2VdEMSk7XjBd1bsab?= =?iso-8859-1?Q?+fieC5NbF5Xxni50tPkl842ypU7gZorJNpTrYeIoXeQquvUFK7Z1xAxdU2?= =?iso-8859-1?Q?bDeBOCszSWOqw03yUKaBCI2TE1suaUsl3ToRlHWU6SgUn1oQ0vXiiRCXkr?= =?iso-8859-1?Q?SqeM5zwLj5yGp91+K8KcsKVVkNDj6fUVR+R1bghya62OJQMMd90ZRNza23?= =?iso-8859-1?Q?cE30SXS9/k2fY3clGQgsz4EUEbJ6fxqHvmTAO1jBxn4xMKLerrYGBoyHy+?= =?iso-8859-1?Q?8qvZhLyztJWms1MzqnmZisyQstm9qFLuZZahgsITG3DjsUUYg5jVRtgJoM?= =?iso-8859-1?Q?TGL8i5+LMRKZzdadKDH5cVSOVyHCl2QDDv+KG4UfFYAQvpDq+p66t3/x+e?= =?iso-8859-1?Q?O7Nl5J5Q0ptpUCT66REhuVA9iOfG3xWoxdaWTxWRrDUWuhIhDxIZHnmo87?= =?iso-8859-1?Q?RYr3OxiwsHDQHyhLB6T+PSBqr/b53qjdZ2USb7IV+zDkDjyN+OEYiAs3iH?= =?iso-8859-1?Q?qPHkx7S1pVd7Ey7/w6a8PSAjqnhLv5BuLaixfzopdjd3LZV7hwTh/tPFfr?= =?iso-8859-1?Q?Yny+SlYRWNmpRb00BYkkXZOE+pCKgWJW5DLO36NXwt+vp+aK5zvI2o+WQ2?= =?iso-8859-1?Q?MeJOTbPBISqJxYaz6pojN0qwCvfYt3sB5aY50IjBaIW+NE9oFo8KSrT0EQ?= =?iso-8859-1?Q?BIDQ98mhZFnb+aDhaDdyJqxj+ZrfmVtnDkTkjEwkmS4BODfltKYJuqLrRD?= =?iso-8859-1?Q?NGOsMi8odIsF2FLOBNGYx6JfY5QYqeg8Xf3+u7b7xdRjIC83IirtEyBCi8?= =?iso-8859-1?Q?KOiGtgLU5cPCsPqhiDUYH9cHhJUcpfDhBNOrNGIMOJ/iAjSBW6XGZPAeb8?= =?iso-8859-1?Q?4uuXp7mmqSeKVmKn7E8InKqTCrTUo50WqUYeD5CdsK/FC3mChAK3/FtJ1B?= =?iso-8859-1?Q?MdaYNDcNmzzJ/X+YP10vLCh6IV5Lu4JwYQC67TrnxQne+2DodSrXa9C989?= =?iso-8859-1?Q?ElqmAoRHnUAiw8XNUH0i8Pl0Ef4sKfgYCAEGttcHk9qjwpshEs4+sGk2Iw?= =?iso-8859-1?Q?eVNdWROEyIrHJ3PO8MfzhdHcRU+luNHaN1mHj3vMld0NalVr7s5276dw9n?= =?iso-8859-1?Q?q1nZxROm/JaDzK1GrgWHEt+k0kpJ7Jdepcuu4iEUnoWgxFZ2M/OzxqhHJo?= =?iso-8859-1?Q?qbdNBgVQS8xBSj/3g0ggHThjm7zY6/qItcG4FXzlIHM2rmKlWnLApjBiC0?= =?iso-8859-1?Q?cD4dcUEDobQjgubUwtzqlJB9euBi5n6qKudBJHB4f21V5LHVyckeS27XXt?= =?iso-8859-1?Q?RjywyfolZL7xpqNRXkw=3D?= Content-Transfer-Encoding: quoted-printable 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: 389bdce0-29e0-43f1-e511-08dd524eca86 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2025 08:07:31.5181 (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: zoUjm5f2HjvwuSK6eTFTOq+nJTfUman3mQw762QJ4ujUj7N6WhtiTeTywdmnGKnF7aKz4vCeJJiLQdp/x3+JI1oEUyFif989es1QdjOTHvrcabOnZdfPcqC3bDV0AocN X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR07MB8162 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=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, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1740125378719019100 Content-Type: text/plain; charset="utf-8" From: Clement Mathieu--Drif PSS field of the ecap register stores the supported PASID size minus 1. Thus, this commit adds support for 20bits PASIDs. Signed-off-by: Clement 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 7fde0603bf..1b4aaffedc 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -4574,7 +4574,7 @@ static void vtd_cap_init(IntelIOMMUState *s) } =20 if (s->pasid) { - s->ecap |=3D VTD_ECAP_PASID; + s->ecap |=3D VTD_ECAP_PASID | VTD_ECAP_PSS; } } =20 diff --git a/hw/i386/intel_iommu_internal.h b/hw/i386/intel_iommu_internal.h index e8b211e8b0..238f1f443f 100644 --- a/hw/i386/intel_iommu_internal.h +++ b/hw/i386/intel_iommu_internal.h @@ -192,6 +192,7 @@ #define VTD_ECAP_SC (1ULL << 7) #define VTD_ECAP_MHMV (15ULL << 20) #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) --=20 2.48.1 From nobody Sun Feb 23 05:49:04 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1740125305; cv=pass; d=zohomail.com; s=zohoarc; b=N6BujXmwwkQnO88WrRSjgQS6pbR8RmQAvSf63VRXYpUwOc7x0CsZlDUIQY5TeWpZvaUYa/3dby9jb+2S+3thCbUwcNiC5naiGepZTzPPMAotkS+IS0drmagn9lS7DN/+kGsI/RjlsuISaGlSrg5mpu35kIberaanXnIz78tNOSw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1740125305; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=QyEO3euh9AoZSwkw7yqOQrDjpjZ5hlUtxnMlEg/EquM=; b=Az7T1DkHlCwWvegLJxA+3C0DkMAmlK0xADIwptsPWyX4SGZaaPPdPZJU8nElOEFJT+WuMO3lh6WbkFS7TLPQTvLUCApBieQIxMfNl5u4TWzWfyeI7xg6YED9MX47Gy4Deufhgge02++lDRQrFoJJ6pHMh42sA50875gnSJvQbtY= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17401253054231011.5020932511608; Fri, 21 Feb 2025 00:08:25 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tlO4U-0004XI-N7; Fri, 21 Feb 2025 03:07:42 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tlO4Q-0004UJ-PZ for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:38 -0500 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 1tlO4O-0005iz-JQ for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:38 -0500 Received: from mail-db8eur05lp2107.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.107]) by smarthost4.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 21 Feb 2025 09:07:34 +0100 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PR3PR07MB8162.eurprd07.prod.outlook.com (2603:10a6:102:175::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.15; Fri, 21 Feb 2025 08:07: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%7]) with mapi id 15.20.8445.017; Fri, 21 Feb 2025 08:07:32 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1740125256; x=1771661256; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=w64iDFlh2Vz60cutAFr32ZTAug7hSDs8iVKBYK9r9f4=; b=Coi1J5jjc+IvrcZFd2hasl+e5t0I/HIs0Jwu+bkjZpqwju+FPFS9mMfh N+atWC0NUrmz+ttNQF+TuVtrYihf2BdyihBlwqB7Pg8lR42Or7mQ0jDag uBlGvPe1pVwKqLs17GJk65qR0QTTwgu/Z1snJLl1K4bDB7gqul6iP6VEC exZWQ8HF3DEsH/3H80HwVRkpg/AfWgK6KXDOm52A/zHQH1oSrpHIcNMBx PRvxvMXQpVj1qVXgYLaH24Ih6fBtB4Y5KVAenZ0s6SyFAjk9xW+pqOw5m k2p1qpfXofqj0CAPUiGZkHv+gBtFRZAhAdnGa6dXHs6fr0oKiCWdLJ2Ca w==; X-CSE-ConnectionGUID: /f5uTNVYQ8u1gQVeQ6uffQ== X-CSE-MsgGUID: /BxQbDuFRPaXGQv3fE3pJg== X-IronPort-AV: E=Sophos;i="6.13,304,1732575600"; d="scan'208";a="32836639" X-MGA-submission: =?us-ascii?q?MDHNXY1GDZoRGV+OnAXq83qWQnJxCzDlguRgPG?= =?us-ascii?q?23ITnU5BM/lVB2ENHQrcL6pnCwMH2xyBDbtr6MZo9+685+zbmq4jcCTT?= =?us-ascii?q?WYjEAvvkIaqaRL+aCy/waHsic5TYBip9yyEwCKoKMiVCqobLDj/hTGlw?= =?us-ascii?q?uWVtTmpJM8IEK+81uzuv9RhA=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FXXKVCqU56Ma12JfXxj9qCc2pW0KBJ4aDFZBy+MIdZxAUnR+fau58xuskMQj4bcCwoFeoUQFZJN0IPzePBscShVlQZ/PpMQNgRRnB7wOpJa9UxEPD5G9PHHuUn8i7E8sn6wY3U0YUVeCPXs47SOWb7M0BGOznBeLHVfe5B5VLB1MWzFgbZ6OBddScayOJqcUFkmdZ+W62VwPRZCTNC1wsz+W/L7H4tWXKu6Fa8pXAy6ae1GSp632vSGej//9LY8BUVfROeryIC+ZBWNowIp/gVwG6HWmAId/yVRNQhkGB7XLJb1dg8rSx0obE4vzTAGTGARylaGa/SdryHHP1ZR5zg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=QyEO3euh9AoZSwkw7yqOQrDjpjZ5hlUtxnMlEg/EquM=; b=aIt/JKbNzzYoM3Kh01ajyde4GLuhwfsd0pzECgQMhEzSQ1NUo4KmBTmPupV+AIgRkQcO5F9KksuC1LqmxRkEzghnNtCTZEgLo1nXVPBvn7iLgT7QD/tgHTW/EqIfs/h0dJ6OO4sNTn2VafD2XNYBFjTzkd9kAa9C9CrfhJ5b7gghxl8KlkCkpSsrjGCB364/uYEtxic9rtGOqIYYtLf8VRopD8stTVqx/A4BekmIedz9z81ttxasIjfbd2XhrfLBKNFaas2BtvinjFsRp0DUmGGZSz+PR3NM0eok4n0hAZUmyEer0x3FYjT1fpOzQgORAXbmzRKUJR0Nr36buyWQHw== 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=QyEO3euh9AoZSwkw7yqOQrDjpjZ5hlUtxnMlEg/EquM=; b=HSr3vQC3kMM7OGesbMkRGzD+x7D1ok9WffYPsPIJbFmlp7ZhkwzmwL3Y1Chssh6RHRe1v1i58pv6mraeQtS4MC1L7FeAFklH1+UqCsTTatleiUCveDBF3sp50AKklAqvr6fjiv8aTq3rdhgFWob//XAIVYNjBsym/4U0OotnlDLVXqEHzVzFZnxrn5Rzw+NlChhpb4sUt/IEPgzXRWkKPSs6e6Ee/TmeCFunuAuY8Xwp8wfLLI6eeKgltpX2IhCEArmEEzQ/SOBJ040HYezJJP9QDMkwomAmwf3ltnTjEjb8XPib4aO3sUHYK4i+LjIWu+cnftWGt6p7YsvwMAlIeQ== 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" , "tjeznach@rivosinc.com" , "minwoo.im@samsung.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH v3 03/19] memory: Allow to store the PASID in IOMMUTLBEntry Thread-Topic: [PATCH v3 03/19] memory: Allow to store the PASID in IOMMUTLBEntry Thread-Index: AQHbhDeoL7xim+sjokSBg2RXG5LmDA== Date: Fri, 21 Feb 2025 08:07:32 +0000 Message-ID: <20250221080331.186285-4-clement.mathieu--drif@eviden.com> References: <20250221080331.186285-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250221080331.186285-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_|PR3PR07MB8162:EE_ x-ms-office365-filtering-correlation-id: 18eec6d8-e1ff-4788-36d1-08dd524ecb06 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|7416014|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?0lBnrwvGk6nVpmsaOEzCZbyAQALREc90pkhh3L8MnkMBJ0Fl44w/RLCKTV?= =?iso-8859-1?Q?z0i8jJ9SRpIVXnhZtO25RneCw6ucn0fyWThwFbhMaXGtJLndQaNvpLzUPa?= =?iso-8859-1?Q?jtV96g3Lh8CkldV5irjXaVkC7IwexF8aPoe03DKPx6OoOKq5Y2ImOkZEFC?= =?iso-8859-1?Q?DySe0OfP8yGDQA0iqH2mFZ4h1SgmbHc8oKbGk1rEOJJ3TtQkBKOKRreWLn?= =?iso-8859-1?Q?ccIcvMdGbo/cgqTUH19qJUKTmmEsPOa3IMZND6jPQ20HfMPfHu4LCzSKO/?= =?iso-8859-1?Q?rHnokKEMHyNLLg9no96QAr5NIdMVs9kTTqf6nIdbd38FuWf8yzgBAM9000?= =?iso-8859-1?Q?85L3sZler3Wvu8O50WdNmuLyy8akO3/BQEz1e11qA++LWeCO78N1YR0/YN?= =?iso-8859-1?Q?7YBTyrKuuB6MEIIU2HP8cbuXB1K9bn/kRHQ25vHWdV4SUpi4N+fw64S+pG?= =?iso-8859-1?Q?Z8lL1eSxxXa45bwwW8vZK3ZVHUYutnLsR7qImaDOh/QQtAW/SXUIJQlY/l?= =?iso-8859-1?Q?pdGEdSRSTI9lLDTsUE8/i0dX6KWb8h/BlIoIgsoN2AmwUQkC5sAuj0C9Bt?= =?iso-8859-1?Q?AS9eeej4bXSsSee86rP8zus3Cjbok8OzCLULXm3lGjo/6VlfQd//dPHft1?= =?iso-8859-1?Q?VwhqcqVaRy1QVvPBPlaCMd/I80CwjQb6oVXiJhkF1NlXgZ5AdkAP58vvFy?= =?iso-8859-1?Q?U3aXjlPVz3Q6smdz4xrgCAqLsjGLPC7NVjEz6Kc5YAYrILO5L/yFrPyBwx?= =?iso-8859-1?Q?qyF3lbeqOkjJohHz78tHqTW0ZhIt5qoJ4YlrZVbMwJXNh4oOOlKSV7duGc?= =?iso-8859-1?Q?rxlwow6fYEUSbXzEQpZftMZTENR7dMJIjRJYJB0iBS8V0F0HLuLjlaN2FI?= =?iso-8859-1?Q?uI2JFn7st5r6wVCJt63+mLPwyIuPYJR2qHC1GORLYuqBoVmuVrbl22Hlun?= =?iso-8859-1?Q?Bve5ztXb0Y01C14+s6RZl5c3Zszw4goPnKnxC5qwfkgkFpkvC6E/C8TmfR?= =?iso-8859-1?Q?TzvdX0EmXKhYuIbIRYGtl+Pbb6gDcvldoSpo4i0msNy4ChtMGg2fjg1VBq?= =?iso-8859-1?Q?fixWwBrvVh+r9jnPpdbRsJxWpD5yNpN5R7+2BuTpirGapLeauC4i72K3Tk?= =?iso-8859-1?Q?5pfPIOPBBxEUlDh+kl8HguhBSg7u/qe6yYliyGzruBpPELC/4sR0sP7Zgj?= =?iso-8859-1?Q?PMv0bGdIG5gWt746m9YTpKuzVGGsTOuMXWUUNIvHRBqqKxRLsRgxMoCQ9s?= =?iso-8859-1?Q?+RxCS3sTrpgom+o4ufs4/XD9FyNvnjHFQbSIFGoLdY4h7QorZw1X5mXjg7?= =?iso-8859-1?Q?tOLt8BY/hY3qpqgCQTHELwedUqw9yivGUeaog/LyZv/zW3BuMq68Nygy1a?= =?iso-8859-1?Q?0XEe8c5vIo5lu9bi+rdkN03FJIWd9WAmBxzxcYgLoCTxH30WUjU3StqmEJ?= =?iso-8859-1?Q?FfHTRcAPf+X6PcQ9bKyUnIoEAUX0D1eby/26slOmG1e3Dt/VDxrC5cDVrQ?= =?iso-8859-1?Q?4QHDo6NR9SNBfsy1uDC2NZ?= 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)(7416014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?rb8NIDKaYok070ygsXIibTIqpbaWi0G4kN/pH2hGhmFG/Dt3PfPvWOIYdW?= =?iso-8859-1?Q?KATrM+wzdm3KYb+/xDvXTxwjvbyhr4pWRPG50O7YSGfFDa7e6rtHOvfx0D?= =?iso-8859-1?Q?lICuFYxKjbCvG8nPkGlb6DE2VbLfK/QcIF2c0cgNJmpT+OQVSS5yxjfTY0?= =?iso-8859-1?Q?ZataGqQdbvHq5FcgO508b3nV7LHTay1XVUWNo3m2qW54jUjU+7eidjkQAN?= =?iso-8859-1?Q?f/OQ/Fr7Rp0jbtNYl+pe6vEhdLk53qsVpeaPNBDyg9GjC3MumHGfv5Pot1?= =?iso-8859-1?Q?lA/JZq5l/SLeR7RhVRqmihd70+i788J53xxd1YHjgw6HrNuVRDGTt7VOeI?= =?iso-8859-1?Q?X4OZ+wBd5aVItCDFzV4YvNaPZeVm+zkG1Prxto0ahWFyrflNwZqAR1/3rh?= =?iso-8859-1?Q?5LVBQGTBx0KLHxUduLrcvWfIHZaX3AdMniH2vhjxxfx591asx9YTkxpsn3?= =?iso-8859-1?Q?2mNwWfFpFfXE47sjzU5sjkkxpA3xR3Vxd7am84e+6muaV3lgjosGMJYPcs?= =?iso-8859-1?Q?rfkQbXfXglZ/D+AbhE7kALne+YmpAh4UbCRQ244TKGsasb+4RkMrB8PJn4?= =?iso-8859-1?Q?xXNO2DCLcKP0Qz0/NrJVEKZ7BEzUS7Fic0gfoXB8xSMJZF4KQHueJJAXzp?= =?iso-8859-1?Q?1WyazjmJBZIdTXZIZYIfPYww5bSGuEjrxVR270qSzVAwM+Jw5ADPXnRPs2?= =?iso-8859-1?Q?s+LqI+0aTA8gCcPyfkb0qXcqDNKijkbrrUiZ9gol0s9+54oqSfe2pFQIpG?= =?iso-8859-1?Q?Kzu/rDgIGIAf7zwUZU1KG8tD8S+zJYwk541oUSix1cJL658JkdgVrLyLTA?= =?iso-8859-1?Q?RvxsNZ/1HLiJybwtXo0B6VGL/gJ+OQS2vLIABWH85lpjiBK91hnBoj11p8?= =?iso-8859-1?Q?XFMZDvIhd5K6h9ahB+dxVYnKLY9W5gnEmjAmM0Kyh7C21R9bD8HvVwi/9z?= =?iso-8859-1?Q?ffKsHMpCqtNMlluPbiHc/MYf/xWXEoKXKniHvkE2LbCyAJ/cQ/VzISWGEF?= =?iso-8859-1?Q?3YXG7++tMOyikdRRYvlWak5V27lw5gp7S5bFzw/deiBkHyk1EJWBy3w9q+?= =?iso-8859-1?Q?N3iVh7RcUb7B4GXRtYsPadc0335nWOoumSiZQUvyqXPVz1hOYMqHGR5lsl?= =?iso-8859-1?Q?siiO4wmPoQNjuszfIOxjV82bkwB1AI5f+/Ny8jUWmLK+jOAvIlfh3sXH+7?= =?iso-8859-1?Q?GSSGuTkpvhONG7JlGHmpe3g2i6e465oQeadwzZ6MKe29j7AkApMjLhVaPQ?= =?iso-8859-1?Q?Tqv/jITTrWIEDh+0X504hjnJWEaas/4LJB71QsmZyjg9/JvqGXuEajcF75?= =?iso-8859-1?Q?RzCGDFwUbLqYjooJNLpA4riooZmfLxvXFqrY4bnNE3RxsgU9q4zjEG4W0T?= =?iso-8859-1?Q?ahhnkZGuVaG1hGB432hyUusFiWwFpuq6pUe4dV6MK8ZEJbdnz2bvgMtdwI?= =?iso-8859-1?Q?IUkSHSNw+vfwlZAc+3VAI6BlPMoIGKJcTOH1zJEyVSxyE7nCAAR4QrpYXo?= =?iso-8859-1?Q?SovYy1fIHNHN4cfALWT5zr5Em+VQ1rQd/qzGIzHMGooZoTXcKYbtAojBVx?= =?iso-8859-1?Q?gdCh/T+9do0wJfHLNFvsLtzb+Dm3LDesw+v65Jfj6MJ3M1UVS5FgB7eRxo?= =?iso-8859-1?Q?/hxLJQY8YfcsaGP3r6Hclyz82kcoagPKyjMQzEvWFMDBVBkrIP8K2IH7qM?= =?iso-8859-1?Q?QLQkk1j8z9MrnO/bDtE=3D?= Content-Transfer-Encoding: quoted-printable 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: 18eec6d8-e1ff-4788-36d1-08dd524ecb06 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2025 08:07:32.3566 (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: pYCgSKcYs+8ObTbOqffyaW9bbYsBYb5cMDNjOe9NbG33aGvkBYAjzd7xt9/OSB0rgqIEfTnBho/SGzRVIyurU+9NcWjGIMo/q+JnCj541fXKSA1/Kp0rSCRzs+suvpZW X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR07MB8162 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=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, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1740125307118019000 Content-Type: text/plain; charset="utf-8" From: Clement Mathieu--Drif This will be useful for devices that support ATS and need to store entries in an ATC (device IOTLB). Signed-off-by: Clement 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 29f5d31eef..eee625a9c6 100644 --- a/include/exec/memory.h +++ b/include/exec/memory.h @@ -145,6 +145,7 @@ struct IOMMUTLBEntry { hwaddr translated_addr; hwaddr addr_mask; /* 0xfff =3D 4k translation */ IOMMUAccessFlags perm; + uint32_t pasid; }; =20 /* --=20 2.48.1 From nobody Sun Feb 23 05:49:04 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1740125347; cv=pass; d=zohomail.com; s=zohoarc; b=IHMdmcv7HRJsm9apoftzJYE0AZ9plcSbdH8x4pdMArqP7SdXuXgX4W/P5m2mUKks2Vs/lDletidT22eWe8DqaKzGDugAJ/vtopSxTKzyZEWEubjcjRBu6OV92QjSWrl01Bo/ozMdPcW24AYlalsXhXCSH+POpTLM8dKEzaM/6b0= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1740125347; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=hoZrbtGYuHsZPQVh6qQr/BjRYamm9IIebfREKOYlZWw=; b=T+nR3zS9ukWzdWr9VPyccZKozstgCjmCBXjB6Lf7evN8AAIjp9Q76CFNYOnkDMev0CgDs39m7Qx+J2qJfwil2jzYFe7v29GIgbgz1wrThUHN3fJIJsv++Tz0ln9kAMDo4pG6W6XEJMqYZlsCChOiMgEBNQJC4OC0uQAxcvFEpeY= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1740125347632986.41559228317; Fri, 21 Feb 2025 00:09:07 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tlO4S-0004VL-Gh; Fri, 21 Feb 2025 03:07:40 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tlO4Q-0004Sf-8H for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:38 -0500 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 1tlO4O-0005im-Go for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:38 -0500 Received: from mail-db8eur05lp2107.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.107]) by smarthost4.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 21 Feb 2025 09:07:34 +0100 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PR3PR07MB8162.eurprd07.prod.outlook.com (2603:10a6:102:175::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.15; Fri, 21 Feb 2025 08:07: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%7]) with mapi id 15.20.8445.017; Fri, 21 Feb 2025 08:07:33 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1740125256; x=1771661256; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=ZMxFNyn4oXeMGzshPyBmqXxSzbY8yZSu5H9uG1CqPCs=; b=fIvdF6ECJmFVn4PWxheAbzCYuz7/sw4iL9+CjEKHOkN+iYY8vZeG1U1J wftXyIDSx5M50VuWf8eoCUKAl9pRhouhbjNsffIrGN8xH2tcCVM8BhMLL QX4SfzQQiAocDLjFLsJHEYcZ8RrtRhOO6PbWUhikj7xJxG9jQtXHo0th2 Sdnsu7sFDjXU1Pxi5jj1DrN00JinUUw+II6X9jG0K84xbxv2/MYeL+D1v Arzx+ygSsH3O8jxxqO2UYK7jUNylhlBv/aWyb9dOOKq10VROwadQsD2Gk d1ZPfF6BIWVfXxCNLRNOZQhPGI+5kpm5ylWoYajjdsvty6dpr6funx4Fp A==; X-CSE-ConnectionGUID: 3LtoQZzoQT6ToRmd/HL5Yw== X-CSE-MsgGUID: d+MCsQJPSdq0W6LgHjDkoQ== X-IronPort-AV: E=Sophos;i="6.13,304,1732575600"; d="scan'208";a="32836640" X-MGA-submission: =?us-ascii?q?MDGn29/tOF6aBCGooyBxZBeQuD0Z3fgieZmr0D?= =?us-ascii?q?Hy0IIi9LuoryWX8wU9srOvR7ozM8lA8ZpWOtwnwq7lO8XuVfYqwMZ7cP?= =?us-ascii?q?j3cGrjGW8pMmMqBk6cbQCuLBQuG/xn3c9PsrUBeCanhuEHS9UPC3XDFj?= =?us-ascii?q?1Wx+Mpr+JxWwmL+4hio/swHQ=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UC658r0biGLVw+aJmd7NBqjJs31Q+KH4IQrs4E19DakYn/NrKJEn5x7xwgWgnw+y+Gv78tguPFal9ikQ4sJQUVUStbH/UNgyAM78NrPK63W0sGN1plOjHWv8VA99qTnrnQJW2QQWaRO7bsjY7FwzMCcNESedWJFCjdYMBd+jy3pmMboZTvfAxbo+f85Oy0G4Nu5Gb9K61TCV5VhOepwQ/HRNIEGVQnIKSdoj45gi6VUFw4MVI3X29IwX//cI5I70TDkhhYOFG9oJiTcImr0aYaCbHG7veo3QQsUcUlhoEebUawzpAcNh2NzAiH07dJQQjrZdjGvW/y4HnYa1OXmVKA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=hoZrbtGYuHsZPQVh6qQr/BjRYamm9IIebfREKOYlZWw=; b=WPuNSfnDd+5AaTBhT8T6zPUEvGadY4f5Bw5GZBRKtP2E3M2v8xEJk+/Zwq9XYIhGbPaywbnRyMd0s5SMkaPUMu1TEVSc13MuqzF+IryHQ8KpDTW30sYYlohFBDY0EH7Dz0hzTn4unhQj2DFUe16TJ2l1Dk6fs7KrATbqLZP3Iy7HTf3Rj7WL3MFEna8yLkb7z4r21G6QUQ/6b2sSFdlkENJtKxBdrFLehR8XjyEhgWJGBVBrXNF7pqiLF7g+j9XyDO2lCJrfggnJkX9N1WAyxlPStOD9JHjOl066WUA1Ech2KG0NIM+RUHpig/0LjXQPz1l4EED0Pwr9FfVHp7wDrQ== 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=hoZrbtGYuHsZPQVh6qQr/BjRYamm9IIebfREKOYlZWw=; b=KRdd1Ve2V47IMxawlj9R+8A0lEyRAQLooZGvCuFicv2sx3NtiCwKqo/w9j+BNMPupBEVHMNbDijN1XKNspLR9MMdjLEAcp2Ra6k3kybZnjo3qvcc9Msr4eIqzJkRoC+08UgobayTyPsCn90oGBgw4PeFP+7sLdnjtUWNsKtDK4WcokclXhrx0xsrCRZeq3GC8NZDiopCPjY0RAxoSof1pgEIJV5LvXHiGfN0pm+44knjuwedL2AwCng3weytPzj+vGz46m7Bzx/jRnqP8DlTzN4ephBLKEwLkaFh6JV7osYJqaysFjpzUWQBxnWFL/wO3YMRkqmy1zfh4kA5YL3OYw== 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" , "tjeznach@rivosinc.com" , "minwoo.im@samsung.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH v3 04/19] intel_iommu: Fill the PASID field when creating an IOMMUTLBEntry Thread-Topic: [PATCH v3 04/19] intel_iommu: Fill the PASID field when creating an IOMMUTLBEntry Thread-Index: AQHbhDeo2oCEPdpJvU+FmhuYREVi+A== Date: Fri, 21 Feb 2025 08:07:33 +0000 Message-ID: <20250221080331.186285-5-clement.mathieu--drif@eviden.com> References: <20250221080331.186285-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250221080331.186285-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_|PR3PR07MB8162:EE_ x-ms-office365-filtering-correlation-id: 29c6638d-f168-496a-cf22-08dd524ecb7e x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|7416014|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?YdZ7qN7yveVMAhxVf2x7F4R5ACCIlmgabJXlx21jZokbjKAi4lT8OFgpCC?= =?iso-8859-1?Q?GDqKsMyZXYcuYWDkh9b2SFVmjpopXU7slIYSwKab62CLrVQjeA9rQ1PKEo?= =?iso-8859-1?Q?5QpzjmtVSyyuhMx+MaE0Lc3m3eJx9HWfmPMPe5U+AiZJXK8ShS31KU9/kg?= =?iso-8859-1?Q?MfZtfBzIHhp1xf6jGaY5agJCPx7fWxYV44FQyzku3KAjMG6N2M+N5ct5Xh?= =?iso-8859-1?Q?1pvsc5DpdXYVu+Ey3vNdzPGBZ4UFdMpg3JvzlKsF+wH7sauEl4RNGboIQd?= =?iso-8859-1?Q?Fn5AWCUrAdTJQPpXXCMRbcnv9ifIfuI6aepgmm1QkD6TZmUBPDfLuCmSO6?= =?iso-8859-1?Q?JO8LSjzucG+b9vmSEQAXxMNsauvGuJyp0RtQDTzvX2XmksUNmkcGHgh14x?= =?iso-8859-1?Q?UqzXdXTiG2Ipf6K6jNRx5/Bhs2YHyt+t1JSFdtxWxLM1bX6fNxaHMNJOA0?= =?iso-8859-1?Q?vtNgioLIDSEVYXsJvfiP68usl4b8uQz64xjK9U9xVgahqE6Pp1f6RRe/in?= =?iso-8859-1?Q?M8CripQeGOCTNnm2Ih6RxAaRwLG1Ji4A2lqatrij9EyAaPIKRN2vJrLa4g?= =?iso-8859-1?Q?Yzq8QiGedd1dk5dzizhlxvAqmgDCUE079muITaPEBp5HcEQBiiWDaj/8fj?= =?iso-8859-1?Q?3adMPph34WG2t4SwOGIKCib2gDW4pbGUEeAAwxRVmGzwhBQ+le4TWfHhyz?= =?iso-8859-1?Q?PDT6Tk+46ztVlg40LvPXZQ+xanGrMU3/NJhzIAAdh0jJkFgd5PGnaetZaE?= =?iso-8859-1?Q?W4P7XMm37TffTRfDaCA46XUMFd3qN9noDXYPqPzKWc4EXDc9LGluTEgZSe?= =?iso-8859-1?Q?lE3y3QEb76j/8/+B0HqhyDPjVecp8/ra3ep0jG+ayUH76vZe9jK1DutgSO?= =?iso-8859-1?Q?LQGKLCDh0WXKSxsQc8/5l/Ql5nG62Wl/FF5P+Uchb+7LzOwTC6jThsJWsT?= =?iso-8859-1?Q?ZpdWuJfNAsy88z4juSSWFbzTa50cdy7Il/5xquPbAV5SsSHyuk4QUXyeUl?= =?iso-8859-1?Q?tEjtkEWC3hN7sNY93wAX3ns8iDRtuMEVBRR7HcBLOtKrgRpEREdAhpKpAz?= =?iso-8859-1?Q?GX2lWWF8pyvNliN7zcgBT8rIYxVDDR5tpA1h6o/exotMyEFSMLlVkDbaF/?= =?iso-8859-1?Q?Dd31A43kjKdZqSVooLS8L4HjS1EF09TKfvVXsnQtewgKQ32ebsBFBiZ8Qd?= =?iso-8859-1?Q?1iRCmLecHgWVUZpDHIJfFbMkXscL7jDV+f9tvYdGYuHwb42V13FvrYsr/j?= =?iso-8859-1?Q?9roecJXAPYP7RGBB8PI+jY+lMZvMu7JmPOdK3LcqHlCW2Y+pOsx3/nc33W?= =?iso-8859-1?Q?2bEHGe1SfgcuscwViDaHvfCdT+XiHE/rXG6JUZ7ujWB4kxgMSZZH772U6V?= =?iso-8859-1?Q?2xwr69OLk6ZHi5Ik2eF5Zhowjco9+Wu2WdILX3sLQBrTGdI0Oy4pTanYzi?= =?iso-8859-1?Q?unMPCBzv25Ux2WiC3A3FyGsN9yC2rCMooXpdsrblWanrEOkGTLdPwGFptZ?= =?iso-8859-1?Q?Rm22ggJQaCRFhY11F/7FJX?= 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)(7416014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?hj2eMN7OJOuppLfewyEwPabAm52qTa6CY6S1nHEIXtemr0LLvNJv11on5A?= =?iso-8859-1?Q?6kn+gVVSxFiYNkLjn0+8dka8CtZn2dmPZEkGv6KY3VndJoa8vuo6r516kS?= =?iso-8859-1?Q?jqV0zpfpmNtrSMJHgY7wUr/yyZcScwCX70Y++CxbjoVaoa+w3L526UDM0M?= =?iso-8859-1?Q?yYtZa7kZtsKId9+e4kDOgp81gvOcO2QH/P0eE8/LCpydd0YQrK8/vu7HfI?= =?iso-8859-1?Q?XjOWVkhePi2SsZ2stnYbiE/i+ZsGbSxng8zNKZnIvX+LzVkp6WfDqzQWaF?= =?iso-8859-1?Q?VJH0+qZU52xjXM/Llt/7L2/VVne64f8tpNcZNbum0yRxdA0q/Gl4d7qoLQ?= =?iso-8859-1?Q?TAQB+BoMwNMEQJKL9beM/TT9Erdw4jepHQwsOCfpYlxpAKZSQulWPW93hl?= =?iso-8859-1?Q?mrRn72Q7fFmvNwoFT66Swmcr8n9nCLslcrii6iZZSIk3lIDmyYjfHdC2FF?= =?iso-8859-1?Q?QvkUrHMiiu+rwPoIkV7IT7dilEAXVh3oDAAyIfD2JejDemTnokMGC+/+tu?= =?iso-8859-1?Q?6Lk/bKhjF4cDIa51RI/+OZiAMSfLO+ZZU3RfgXS2hcuncVUpEA4x7WgJds?= =?iso-8859-1?Q?4jbGQKExwF6Sd+N/JCfJQK1F4wxt5rd86o7mB0O/dXg3dVhSZMaDurHI3u?= =?iso-8859-1?Q?XqIBUHVu/36QYrLmp5mG0NBzBNRH02WRzF903ghNBKIDyxX30rHqkVxU2k?= =?iso-8859-1?Q?MHsjau1j7TdjMn1WQvfh02B32WCxTcXT3SCny1ZCN3q8yeDg4lE1guUuAa?= =?iso-8859-1?Q?NLyaQPwRTo5hvU3f+0zdagb2gowne4UIlRSRFAVzAKzCIrsfEQo+EIFLJQ?= =?iso-8859-1?Q?ekVY00Yp2O9LPCmTnIaAJVTp6uR3GN5z377Fy9RUqr/ejrqJBg7PoTTEmf?= =?iso-8859-1?Q?gfAxkTScggiFFe/0EX2vafQS1SWAuTA6bNgOyxRcoUv+dLMYb+nvyAXzez?= =?iso-8859-1?Q?RjEtn9fb0CDk5ipD/fGAhHo4UKVgYRGGxCvI97RP0Ms0m238wv/MUlUHe8?= =?iso-8859-1?Q?ov4jendUgnOS0zRHBIuPcU2MtRMK8U5eUwIJQA9Be8qagV7pCJk1C0v20S?= =?iso-8859-1?Q?19V8Q9ehmvkOh8muBWPrcfGjIh+SHmbbzCpKvYK52eEd4r2z/6DJKRIrd/?= =?iso-8859-1?Q?CQl5xQadk1pPIAzhns5Nz6lLztHEXI17ZaRuVxS9Lv0f8TfGFkAaHYSbAU?= =?iso-8859-1?Q?3s99fJgkeLfYRyUkY6vhGzVpEoiZ/80xNIT9b9Mn+3vQfQUYeiDrDwntLN?= =?iso-8859-1?Q?yPNQphBVJKNCVEYWfpUIlaT4gyV5+Oi1R5kYjAA+CEjRvPXWZqpSvM+EDV?= =?iso-8859-1?Q?TqzTJdPwEPDAXRKB2IaVEenqfedPxDT2JvmTPFgdHgn7eThEwZAZ2mSAKc?= =?iso-8859-1?Q?mTZllzFo/i5wOtBAwhZ286+fBnlkOPVVJP1qhovRb1xSmNmOpIObJlJm4W?= =?iso-8859-1?Q?J1qfiR2Crfk+yuHorCrJhtoPMHV0Ic6KBi/znPYATHgcfSngqSiNrX8+IG?= =?iso-8859-1?Q?5umQjazYwldd29Mf85LEa1u5Zgq79R9VNBVTtMgl+CLqQrx+VKHr21IAqV?= =?iso-8859-1?Q?UU6U46yhfOErkuynd7fe0kbNJI+bbrj+E9Ouht8QTnhX1tSYjVZe2X19QQ?= =?iso-8859-1?Q?J6MppAr1HZQK9dYZuYJ5c0k+tiTJ7jXUeHfSrlqCOu6cdB+xNmeh0n9Uk7?= =?iso-8859-1?Q?dXHv+9ZKpIoeu6F8QE4=3D?= Content-Transfer-Encoding: quoted-printable 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: 29c6638d-f168-496a-cf22-08dd524ecb7e X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2025 08:07:33.1131 (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: dKt3QEIaX7kZGn3seez/KavFXwn65a3gXMStPBtcqpDXz5Vrsa4CxFIaQFDJqtDF9VSw5lC4er8cTDZ+8SDsHIhmuAixeQrMiNMmlywUcVWsIwrSi0gIJJihsmjn5kDC X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR07MB8162 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=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, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1740125348754019100 Content-Type: text/plain; charset="utf-8" From: Clement Mathieu--Drif PASID value must be used by devices as a key (or part of a key) when populating their ATC with the IOTLB entries returned by the IOMMU. Signed-off-by: Clement Mathieu--Drif --- hw/i386/intel_iommu.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 1b4aaffedc..a360119fbe 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -2511,6 +2511,7 @@ static void vtd_iotlb_page_invalidate_notify(IntelIOM= MUState *s, .translated_addr =3D 0, .addr_mask =3D size - 1, .perm =3D IOMMU_NONE, + .pasid =3D vtd_as->pasid, }, }; memory_region_notify_iommu(&vtd_as->iommu, 0, event); @@ -3098,6 +3099,7 @@ static void do_invalidate_device_tlb(VTDAddressSpace = *vtd_dev_as, event.entry.iova =3D addr; event.entry.perm =3D IOMMU_NONE; event.entry.translated_addr =3D 0; + event.entry.pasid =3D vtd_dev_as->pasid; memory_region_notify_iommu(&vtd_dev_as->iommu, 0, event); } =20 @@ -3680,6 +3682,7 @@ static IOMMUTLBEntry vtd_iommu_translate(IOMMUMemoryR= egion *iommu, hwaddr addr, IOMMUTLBEntry iotlb =3D { /* We'll fill in the rest later. */ .target_as =3D &address_space_memory, + .pasid =3D vtd_as->pasid, }; bool success; =20 --=20 2.48.1 From nobody Sun Feb 23 05:49:04 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1740125306; cv=pass; d=zohomail.com; s=zohoarc; b=fjGK21Q9DItssUYVoLiZgcnneXy4ESApTP11DN8ETschvDHfFu1e5kqEQMzZtAxVsc/lWLQE1Z781SVA3UzNzsy8L4VjvjciFyWlQ19Ox501C7OA9DzEIXbjk7E2VAZvmCIG01ge00IExQ0aVfLsScpu5mORU9s1YtSxSBpK7VY= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1740125306; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=JC5gvyzHnNALcmu6oa0dIRG6EFpxKL5QQ5nZEiae0zI=; b=R+cp+dkX5zosYtJwyafpbhuv4oyc9CoUFZp6zolYpMLQ7T3ZX0xUOY2OUASqgtFEZ+waTKXvwHCyVVxFtfKfWowldZ10kCKaFYfNsroDYV/KgaNr1WQHYMlEQxKo39WuNKpL0zDBI45BHu6fLgUzsIfQEkwMHws7JD6YFvD8XMI= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1740125306282734.9291423299131; Fri, 21 Feb 2025 00:08:26 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tlO4S-0004W7-MR; Fri, 21 Feb 2025 03:07:40 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tlO4Q-0004Se-5A for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:38 -0500 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 1tlO4O-0005id-6n for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:37 -0500 Received: from mail-db8eur05lp2112.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.112]) by smarthost3.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 21 Feb 2025 09:07:35 +0100 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PR3PR07MB8162.eurprd07.prod.outlook.com (2603:10a6:102:175::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.15; Fri, 21 Feb 2025 08:07: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%7]) with mapi id 15.20.8445.017; Fri, 21 Feb 2025 08:07:33 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1740125256; x=1771661256; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=gmC1JlYF6t5JaGSPliSMZn93aRINn/nUgSe42q/FwD0=; b=rYlFWMgB5qmS2WUavPp75Io+3+aMMP8YOwR3HbwtgkJmhgBbd51byZLO zPjkBGg/tk5S+Y8eJiGYZQaJhIv7D1ETLfBiVpMAAw2ORrhg3Ibl6JeAJ MUv6SNyZFgjVlOX870HJzWofClpoM+RYINl88B9CXSyF/heaJlnVBTryq Ekzu/D9Tzn++xTD3VmaYSu0ujYhQM7SP2Ng7NIeVDulQ2s9j0LyHNdpFL xecA9SRjsSiD1HevVCY2FcxwouWAXeybv7/LJxx6t2UbwFSbn4ODGfHWE ezD6Ev40htm7HK6feMQpoPC9+aBy5DUwNNXfhr+PGxWlib9Od0EOTJYEu Q==; X-CSE-ConnectionGUID: 4txGmODhQx2fhcY1SnuDCA== X-CSE-MsgGUID: 08HDXLR5TESoRorwrfQBoA== X-IronPort-AV: E=Sophos;i="6.13,304,1732575600"; d="scan'208";a="31385158" X-MGA-submission: =?us-ascii?q?MDFnjdA5QK4FinHT+dJ0TXDot2pZWS26yN1Is9?= =?us-ascii?q?VqGSpVD45+kU1tGxomAzuJkBNcf8zFA5hSR73mPYH3zkGBO7XVrvM08z?= =?us-ascii?q?svkZ+gnQwAp/R7AxSHhcHfl7uUXQjriv+I44b7KpTl5Bog81+mCJHl2M?= =?us-ascii?q?OpUx6mehZijJsy/3gPFydKxA=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bneGwJ9RRmHhrLPwfAay1AOKyo2h36Exvb3AEkolRlWw723n6A6oytniiX4BXh8lhM0kiexXt7wtdWZwX/U/GS6YchYu+rAYgaa5jcqo3xo97R9oCQTTP0i2rEde2yRkESYJwhuMHnmKHdXyqp3Vhq30fxFd9jc3LLUiKy6/FXM2atOY4CSMC4EaWloD+404YUSxtEySRB1Kodp4/KbEhsaVkfqLTME5m9vGwUsjG5rGcFfhDPioPxx2mA3VDd0EPAfJ7twApVNrDoSDsnxOsXEo79Q0k0V0FaFQ4YZEy6rCfzHbCYqeIi7s+clx6aTURNXAkvd+UDyTXEunENyw0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=JC5gvyzHnNALcmu6oa0dIRG6EFpxKL5QQ5nZEiae0zI=; b=Y6FWNBQf/fYJYqgyWdoHAdVeRMMYj/jquJxaUNtbMQ6EztRjXnHjbyA4ai4/BkujZpJu1EaRVtxBv+5AI7l2qmV/Uv3HfrFlxnDncDJSjXwVtJejTbA50y0F5bycJaEiYhmhtU9ssuCI+9P3kkuMSo3MZ/ubmttNgJXGVaEC0d/tcNYzgq6SdccN/arSHqYsXZjKv215uZ0SQaBijb8YwrRxwiEMaY2qlnG6xdJY8oGvVWtF8/vwCd14NJQahVwrk1FaPmhnAw8ZoEAAo+jg+5xf4rYZFIOgHM9H4/T+lxDBba7MPL2+V6eSvtl4E12Pzg0TMqi30F3pfZLbybdnUQ== 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=JC5gvyzHnNALcmu6oa0dIRG6EFpxKL5QQ5nZEiae0zI=; b=jm8s94yB95fcqQwv4usH4qL2mFz1p4eZwFpoLI61HCGyC7KfMTm/0YYzGFq+WEbnJrUfFzYbn19uxf/luuSrSAjZpv2h/pQAkg39oBtOY43ymYKlrWqmTJw5X4b9D29ym8ZG1YJWRCSdPCcRWG+gCsA0Jw2nMB2eQXv1q5dEiBYpo9sJzryNgpgQcMIQLvALzW2N0kKMyHUUTh2soRMAobObTpbG2EsezwL5DdkN1QOzHjU7gfrxMADDD28RREpzKxFBC7OqxVSEwrL2gtfsd9zmEmzCAC9H5Q6sRkvu3PmlGkz6xULLrd/CAbLKR2vMgBj4Gi6IvRFJosDsFGWwSA== 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" , "tjeznach@rivosinc.com" , "minwoo.im@samsung.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH v3 05/19] pcie: Add helper to declare PASID capability for a pcie device Thread-Topic: [PATCH v3 05/19] pcie: Add helper to declare PASID capability for a pcie device Thread-Index: AQHbhDeps3ab2H4yXUuuV+QovT1t3Q== Date: Fri, 21 Feb 2025 08:07:33 +0000 Message-ID: <20250221080331.186285-6-clement.mathieu--drif@eviden.com> References: <20250221080331.186285-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250221080331.186285-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_|PR3PR07MB8162:EE_ x-ms-office365-filtering-correlation-id: 5a642110-4bab-47a6-8a97-08dd524ecbec x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|7416014|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?MeDtEjZ/vAf+a+6ZVlzYYUW9/5rtTv0sF/l4xBdmWA7WyT5YEqZDQTk6ih?= =?iso-8859-1?Q?QcSleXF6rGAQNAI5G3QbsRVlWafsLsIKj6BY2NILEV+bCudGGWLxESBzKg?= =?iso-8859-1?Q?zsXGPX4sJ5unYp0WJfV6E4ftM8bfup6L7S5OkmIswvsEo6QyP5p4OrQq6S?= =?iso-8859-1?Q?xhdfwROF6aqMqQGFj7Q1lz419a49hWHEBiW9t09eKH2klymOKmjItAl4Ln?= =?iso-8859-1?Q?VKsBaHJuz2Kb/gnjaxARs6I94dIE+XPdmst88fE3+Qcu3/QPQBvcpdJFXc?= =?iso-8859-1?Q?rltezsnPWEY0XRV0Ig4TnAjoETOrdvTstsnUDSiGpxEI9ZCp5fIqDhvehz?= =?iso-8859-1?Q?WACg8u9HN4H7Irx7m6o88lnVgw0Z6KvPEwxMM0IgYT8C6evxSEL46FVzFm?= =?iso-8859-1?Q?ieBDqhh3XQE+RSI0Xj53UohW2b2Qy5YRbqBEc8REccUnLpOITSKEmA9KLD?= =?iso-8859-1?Q?Pq0H6MsWZEwfD99irrX/0aq7hv008lmRvWQaOLl9eeLCOP7Owe6tRGwIMp?= =?iso-8859-1?Q?RgOpIOPfityGCtYO4TflkS/KXIODsNbWtMHrWRsge7PBF8kDdlBxgwwQtJ?= =?iso-8859-1?Q?QZCLS/Jx5+uxnLtwXP3tRrl51nVvZQl1bqiBw9tos3y623e7dC81lCEXYB?= =?iso-8859-1?Q?NP3vo8+ofD9c0TXa5SxZVFK8IwVtt76TWYz7kPHLkxFJLYaihyCx26yy0o?= =?iso-8859-1?Q?KH8uMKyRqJz7GqJcWRKhIMyZtWAEa+9OMbg2q28A2lPp9zYWAWzx9rgYTH?= =?iso-8859-1?Q?esahhYwClB16SWbJ9fo3x2uj6Vw/uFeXAw+8TLTmIqwkHIW0u7mM3NW8Yw?= =?iso-8859-1?Q?0ejdZWxcuQVOd4BQPYr/X5uvAaYo4hYEYaZr908wEE+QByaeK1o4EYi8AM?= =?iso-8859-1?Q?YotJdCBRN52qzWizBwv/uVw7pX97RorhUsVqYfjN3eXZ6jYCtcVw5Jg/1N?= =?iso-8859-1?Q?JYxKdXoiabq8/k11nrJvjjwsfEfQAzulhEEAlsoYGxgI56IbnIpVUpHJ4m?= =?iso-8859-1?Q?hHAXEKovEi2JMJU6vMw5054REw299cGBG74bvj2ybcIP6dFV7E8jvapk2c?= =?iso-8859-1?Q?o3x8/zDVybEizxDg9vcC8dIjoSV+tHKrxPX46ElqyHQbomKpQxPzlQKqIa?= =?iso-8859-1?Q?tKo81JheSrKgn5A1uhzPHKKSxppGHCjnGrZy8rtATpJxIBMOtRFKUPjIjW?= =?iso-8859-1?Q?zsQve7fzs7lFA/PCh+NIH7sloT+UKr57mKPbgL6zzdyblFEdxaOG5QisCO?= =?iso-8859-1?Q?MykZH0qop2DWTpgafbXoetGetWX3GXraJa3coS9TXo+sdhTZRTrTz4MUYq?= =?iso-8859-1?Q?YAQpEvP/UkTg78xXT+ngQZkCkLdLH3sT3IUxvPLWfpDwGugJ6Exv8f1BHu?= =?iso-8859-1?Q?Og7AwwZ8NWSNOpfixeWV2+QPZ38Fe+JC8Pzy4s1xJwPXXRmJfeeZD/Plbr?= =?iso-8859-1?Q?TWBc/IQo1TyP2c81rZV/MTGzKlv+bizwGSoa9ltg7c2Z6yHtgkOk+Y5deE?= =?iso-8859-1?Q?50Q7mEItdobE3I7zl9ZQtl?= 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)(7416014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?qG4JyRY+VLtSThx9kAxQRXPzQRawykubTo0E50TVILTlbJcJ57CAeZyK35?= =?iso-8859-1?Q?UTDanZEE2P5Z8JGPyqOFo1s/vMx1dN3XVTH2SgMLlEHyaaj6+feNYzG0mh?= =?iso-8859-1?Q?PJRWpPo7ezVlqt5tpvj/8guoByRjY5qkjP0ygeFB2hE8KQHgYzcUlcRS7u?= =?iso-8859-1?Q?8qRUV94XoxRyvSr6STY4HAHuozMOPXZ6+Jm2MTDpcZDxusLhfFEnFRKkBd?= =?iso-8859-1?Q?UJ0n4TWdMlmRIMwh7rRJ5Xp4pe9/tnP45Gu/WqbL7adtHOcs/8maoex2Ew?= =?iso-8859-1?Q?cVuFN2jZj1aAyREwoCKEjVKs465IKMR/fuwzHrhSZ3nU6IieucVWf6c3Is?= =?iso-8859-1?Q?D/IJwO+IouXbKsd0E54PiYCx3m20lSuyDIFtTBBmcroBNmcHcEYLVENyBD?= =?iso-8859-1?Q?WMAAHTi2PyNkxaIyRo5XM2vB1a+77E6Vragq/vf/3XgttRoaOvR+tYGsRD?= =?iso-8859-1?Q?KT8wKUUB33Y8orR1FBDQx+8RUHeFMB9VToNzie8xl66k4P4X5b3D7VzQvK?= =?iso-8859-1?Q?kEgw6eRaJu5JmRD89iUgwbAkMhPEB/3V/8x5ydElTvoKDNotapxtF+rvzj?= =?iso-8859-1?Q?LszVa3VcXn2UcN6A9ZlxvT2HmPrZ2xI3aIvMECQ16p6Ame6vc4RqwM//8Q?= =?iso-8859-1?Q?bsI8T2LnqQbLjkmrAMOmF3SOsm7Sfy3ePuC6laVRtS5EcWihIbIm22t61Z?= =?iso-8859-1?Q?9pqgXV30nseeVBBmo6d0KTG1qTelUPW8KQxhyQ/Z41cKrs0CQ89skxQQwk?= =?iso-8859-1?Q?+OfcRJ+/Viz3AkVwTHou1uStntYSaTgXfK2JhggAV/Pko/Y62/wsc2wLRs?= =?iso-8859-1?Q?wXvWWRYGuk6ktUimGbiD2HiHoUqGCu6WzGq6RjU2pCXEgWQQzQVsMggBVQ?= =?iso-8859-1?Q?wlz4chNtIl+hTosi3adft3GxGNQtyLAIwAmi2nlcIh4RchRWHgQ3nAAvY3?= =?iso-8859-1?Q?v5ZBqcqIvesQPE5qUOI0zAFlra0/liqmM57kS8BeFCwTMKBUiGYMFZCWg6?= =?iso-8859-1?Q?SjCr1yxncfOYk51lCGSTNLwa/2Mb7JQBllrpYoNHaWpeENsDRqMELYy/Yh?= =?iso-8859-1?Q?ILZ0BcF35jbUZ9rE+GYOhyIUiVpvuF3N3Q6TbzXXS3qAKZV00o8jmQKD+E?= =?iso-8859-1?Q?h/Sv2R28ul7hACkdmCa60OzAR/ih3i1KpznakpDoLFULqriyzx59QXXYv7?= =?iso-8859-1?Q?+oLDSXamKnXhmZdzTyUlImgtSF4R8b4C/sKkreug1BXiTT2L5WY0suWLjp?= =?iso-8859-1?Q?6EeYgkfdJ3ZO52chLpIjf/zYj2PkGj0gEG2SC8Jv6YJd5+1jPdbiLdK6wg?= =?iso-8859-1?Q?+y/AE/j7X6MNg4xkNuv/Rbd5iZwV/vMLFs8ZAl0dpi9XHsFL/dxucYuy0T?= =?iso-8859-1?Q?s/lIPm01oOlXA5lNtU7vDje4hdw+m+NmIRq22tsN1oRW7GVA/hvRI6bohr?= =?iso-8859-1?Q?SLAF6y1msLOmcCnBUAp2Bsgtiaki9ex5w4r1kU/ycvr+MrtLvGhjmiOvqq?= =?iso-8859-1?Q?e2kXOl1x6yxEvEKgS/w4+X0tC17D4D40X9vL2r2meVkQFPzwMk2k72Jbp/?= =?iso-8859-1?Q?SOPp7UdsZol+4GurF6x7XPVhWqxmzvU7N8IzJxnfNHopJd+uSIIEtmg8r+?= =?iso-8859-1?Q?aU7uKuo8pkBofU7+GX0hNr3ZFoUNogDmZAuRZjAPN0OaggPEA8hePeQQRp?= =?iso-8859-1?Q?GEZHHSay4HFOOwoGRqE=3D?= Content-Transfer-Encoding: quoted-printable 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: 5a642110-4bab-47a6-8a97-08dd524ecbec X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2025 08:07:33.8607 (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: XIvJYK08/Tjmve8hYTvymX8hJhJ3nHVvHS6Ywy5j/XEW87YUptlAWi0owrKeXF8SdTOU292aELsE0IaPjgAiIWSYwZIsOnJQ08H4JWvcKQvUNoVseeO4PGzrI8YblTZ4 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR07MB8162 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=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, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1740125307226019000 Content-Type: text/plain; charset="utf-8" From: Clement Mathieu--Drif Signed-off-by: Clement Mathieu--Drif --- hw/pci/pcie.c | 24 ++++++++++++++++++++++++ include/hw/pci/pcie.h | 6 +++++- include/hw/pci/pcie_regs.h | 5 +++++ 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/hw/pci/pcie.c b/hw/pci/pcie.c index 1b12db6fa2..f42a256f15 100644 --- a/hw/pci/pcie.c +++ b/hw/pci/pcie.c @@ -1214,3 +1214,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 <=3D PCI_EXT_CAP_PASID_MAX_WIDTH); + static const uint16_t control_reg_rw_mask =3D 0x07; + uint16_t capability_reg =3D pasid_width; + + pcie_add_capability(dev, PCI_EXT_CAP_ID_PASID, PCI_PASID_VER, offset, + PCI_EXT_CAP_PASID_SIZEOF); + + capability_reg <<=3D PCI_PASID_CAP_WIDTH_SHIFT; + capability_reg |=3D exec_perm ? PCI_PASID_CAP_EXEC : 0; + capability_reg |=3D 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 =3D offset; +} diff --git a/include/hw/pci/pcie.h b/include/hw/pci/pcie.h index b8d59732bc..aa040c3e97 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; =20 - /* Offset of ATS capability in config space */ + /* Offset of ATS and PASID capabilities in config space */ uint16_t ats_cap; + uint16_t pasid_cap; =20 /* ACS */ uint16_t acs_cap; @@ -152,4 +153,7 @@ void pcie_cap_slot_unplug_cb(HotplugHandler *hotplug_de= v, 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..4d9cf4a29c 100644 --- a/include/hw/pci/pcie_regs.h +++ b/include/hw/pci/pcie_regs.h @@ -86,6 +86,11 @@ typedef enum PCIExpLinkWidth { #define PCI_ARI_VER 1 #define PCI_ARI_SIZEOF 8 =20 +/* PASID */ +#define PCI_PASID_VER 1 +#define PCI_EXT_CAP_PASID_MAX_WIDTH 20 +#define PCI_PASID_CAP_WIDTH_SHIFT 8 + /* AER */ #define PCI_ERR_VER 2 #define PCI_ERR_SIZEOF 0x48 --=20 2.48.1 From nobody Sun Feb 23 05:49:05 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1740125345; cv=pass; d=zohomail.com; s=zohoarc; b=GYhgNKekk/YNc5CR5UIQlOumBvqz9OqOYRQ63hWbvlVbE3XPBxhlPTuFVg2v8wvR0hjRr7W4LBw9tIuPhTg71G+QnwTh4Xlo72Tk7qsL3BNzxd2y2GzYlWW3H3qLxuxTCEdcuv5uNYdUILP8vYx/PsNVgfjUC8athF98O8X3JUo= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1740125345; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=86uCvdGZzOooKIlDZ2DFXfgs7JqKRdpzpFrzYIXH/p0=; b=UFuJcuIP8sIKWhbJay5DQVnIW5jEVhYJ93JpD0xjlrGGD2Z9S/LneEGsXIMGNdlhAwsQcUBlNDdebgSz0xp0WCZgI2ikE4Ar2Gnf5rPm2I2wrgif3HXDNneSCWn2suqRnwNEpI5oX4RJish43Kh+Dnf/LYDjy2+WOt6Lx/3g9r0= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1740125345074398.63277481258535; Fri, 21 Feb 2025 00:09:05 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tlO4V-0004Xo-Er; Fri, 21 Feb 2025 03:07:43 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tlO4S-0004W5-Jz for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:40 -0500 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 1tlO4Q-0005jR-Qx for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:40 -0500 Received: from mail-db8eur05lp2106.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.106]) by smarthost2.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 21 Feb 2025 09:07:36 +0100 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PR3PR07MB8162.eurprd07.prod.outlook.com (2603:10a6:102:175::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.15; Fri, 21 Feb 2025 08:07: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%7]) with mapi id 15.20.8445.017; Fri, 21 Feb 2025 08:07:34 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1740125259; x=1771661259; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=tTPC7x09d/JU2UNVzXQW4tNA/ojv9FQmKpl+PJhHHRY=; b=MaGDsiMUwiXYykv7ZwHQAT3/3taYymT7JbnngXPftm8jcslc2qmSrLKx aFFCfpQFjiqqeJCYkOPgCi+q3ys0fEIkUXzMVItXxrw6BZ4e+EOBWGlw6 X1E/xtwy4mhWlEqeoqJ79UG8p+ZjN4HD8oQBhO6xbh9mhjc7X8UfosAlr 0Nd2A2yD3nTfaLTl+mDr45Kd+JGa4Z6JasGK4TnNgSKwdD6O4bOZewwgq wn+qKygB98wDLD2htZGRMS0XHvYrW0sllkDl13QFor+SZVBH9VAxVmS/d adEDrxXf/F4KzxMkBmFJSjB5JLawA03hzLQBf2CNVqP6vDc9cZ8omH/J3 Q==; X-CSE-ConnectionGUID: KBDQSR6GSkCIFVDo0S5+KQ== X-CSE-MsgGUID: TF7yqZ9OQ8axFTpgKo66KQ== X-IronPort-AV: E=Sophos;i="6.13,304,1732575600"; d="scan'208";a="31382209" X-MGA-submission: =?us-ascii?q?MDF7IGBJPUif0Fizoe1Mk4i6p/Xl0OEizrZgH9?= =?us-ascii?q?dHZ+W2LxlYsKBhj6FheXC5mnE21z8fL69Ut1/wxoEQs0lfuEhBmmWc90?= =?us-ascii?q?zacGf2y2ZV0ZBEtSyjtoCp4E/UHQVxlZjL+w6RWs4UcPzE81vFbEsjXY?= =?us-ascii?q?QgACY1kp+doTHDCzcUY20SBQ=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TN/7Gkw+nVSFsk4kavc/+zun9QKSyMoBrc3U80LOzVTFyIJZIBUr/0i3Xgswn95KJkHafpHN/CMysJXVfbnc/8Kphz7/zAKtWedL60j2JWLvFt0PCuF8Mu1pAhfqVonvAh31IssRhYfQpa0oy1cChHvWEZPrj8dbWG5VyIotewmyqiF6V840e2wAznF46iCe4VXIR20IFfrXlGEXHNmVta6if0nFVB8G5vvDeWqiylvR0Se9SWD/oi/AuXEdDDaTbbHjlHT4AubiFXWIWEOibd8FMI7zTUXlFXgtmCV1GmSFuwraQFdEf+YkWL8ASi04SqirHksydbYezV/SlDWN3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=86uCvdGZzOooKIlDZ2DFXfgs7JqKRdpzpFrzYIXH/p0=; b=Ebc28O9519uStdl56c8GR21PFfprRyzXow7y52/h6fDaBAbmseI83iJpgU1h2LIA6/UH010r31jlzZg8VJMSQphutmIqeXeZuQi4zjQc3PQk1JbONEv7eFNWJ9P2JTmRilatexrUGRdzp3SmLJxrniBadQO+I66T6Kvia9t9JsZruvcJNN/zG3BI2OKTpwUGSVOmZ63dscAp3GdqBmX1mJpXOC7sBD3kJYcfc5i3yXyvJ9ncZWgZgmRAKiAsXa60rgjHhkrNN/olua/kU1bW/atbYpnUjgjmuXMHXvoqFDEzRhqLVi8kqX2XfP7/PDzMIYwr9UYBW+xafm9pYFgGBQ== 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=86uCvdGZzOooKIlDZ2DFXfgs7JqKRdpzpFrzYIXH/p0=; b=TXwoBxzXnbYvrRPj1HSKS61SuP1No+AAmFac56xK8V2VCyaqoymp448NnhWVoOF91PIPQwnwMLemNedb1Oybaer2pcRx4GiqcOfyv8UJMnwxmc81tepFP6KkhUXNFHAFC2h92nU3y4X54LIUPvvsnE3fzOBlJFYWQPbtd2ipKEx02nhRjb04gxs/Vfx2G/ZPVOauvnxtY/WfKFSwvdDTnuecEPuefAAO6GYv9HRAYqukwg8hInWYZjOL4uPxykJmSZoViwD5+Rp8tbwPRjYiE2J4w/IGDyLns6gmAuxt2nBOsqR+aBNRh2JsSrdDPQ5m2/Yu+H98TqOjMIWcy7341g== 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" , "tjeznach@rivosinc.com" , "minwoo.im@samsung.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH v3 06/19] pcie: Helper functions to check if PASID is enabled Thread-Topic: [PATCH v3 06/19] pcie: Helper functions to check if PASID is enabled Thread-Index: AQHbhDepdMqBvKBdQkOQrrksc1y1yg== Date: Fri, 21 Feb 2025 08:07:34 +0000 Message-ID: <20250221080331.186285-7-clement.mathieu--drif@eviden.com> References: <20250221080331.186285-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250221080331.186285-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_|PR3PR07MB8162:EE_ x-ms-office365-filtering-correlation-id: fa3303e5-7028-4a7a-0d20-08dd524ecc72 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|7416014|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?brd2A3IvSLU7utKG+v5JBPqk7V0Co6rCektlPVwUvYHg2/ypZ/N+ApJIyl?= =?iso-8859-1?Q?EKP0Q1QMiY+ZXMYWeZ2G8RB83g4riRwVkYXWvtY2h2UAE6cb/U0NJCbTvu?= =?iso-8859-1?Q?+ZkmpiqOT3hbWQAeVa/6q43XuMrvGN1rOtY8AU3WXIxbeO1IDGep0pdfBe?= =?iso-8859-1?Q?8HBXnp429T8l/FuGt6zp74ibQea/Q6YhsgLe9PPYu/CMHN2gEjVLTCRF0R?= =?iso-8859-1?Q?z6ElwD6BbqZ/ICrK+yO29gf44WqC5ihp9cqzkWk1dLUnE7uLOxVeghAsW7?= =?iso-8859-1?Q?ue9RX4ImQk4/CPFb4rN5M12hbhjTRx4/8Ry5KHUunKuslhPGRD1Y2367wQ?= =?iso-8859-1?Q?Rwf2vhO+wjirG2HJXUOHgaE7KRTg53rlHJBbmvIIRF/8RfYzL9TvcblDtW?= =?iso-8859-1?Q?OiJOBpcsKZJM0gKgsHQUtS9MywkVU0hrdsO6jc14FoL+VMv3hvMuMP9w2j?= =?iso-8859-1?Q?61YebwHFMbEV463T4urP1Xg9duvi3F8CuITEPRIf9unpxZYpQEuQX/XDaS?= =?iso-8859-1?Q?pcx93PPT7JMqw3gAOaqS5maSnTshiZCJjD+x4FW/Lr6p8Knw2jMGy6RHSf?= =?iso-8859-1?Q?MieQTeulNeFEtsBO3jFOrRU5HfuWDmN8AUs6lTnPHGKVMxj3l7JlmZH5WX?= =?iso-8859-1?Q?XYEeb4yVMcEkcal/JvW4aHJtYn0dk3RU6i/N+SR8X9Agognp56tLK5TGk7?= =?iso-8859-1?Q?OpRvc2f1vwXI3YkDGtSUF+b/mRIb9iyrUB1E6a4SovlHxbiLRYRwFNuXXV?= =?iso-8859-1?Q?xa7otppOvYY7fYQcXxLLEggKcaoYOCbFMoPEZsQXWOZAUt17sM+QRC0yh3?= =?iso-8859-1?Q?l0XKaRTv8YBVSa/FtCAEDLiATDCK+tJvFX2kag0s9MRKg77NWaLAxruPoC?= =?iso-8859-1?Q?kwylomJlslH1OAGmi4VhQ9yXFbUbn1qctGaGXJXj+Xl6oejT+ZnYuuBN4g?= =?iso-8859-1?Q?wXR3o5wmJCkvhzzpOnxlcorTHHqP4DIypAxlXNccSDQgckJ4AAQaZgnqTa?= =?iso-8859-1?Q?uZzA4aBhd0GaulAYDPU8O0Q2aCOgOd/f4xL5qcWZVPv+In3nnSwOTmuk4P?= =?iso-8859-1?Q?/eFDEmCY3rfBVpRyjtu/vxKML8KduzQ0aHbO9ocXQfsNw+yxrkRN3Cs46j?= =?iso-8859-1?Q?m4QtpVslwf5OX321P4cA3TO+tKRwkXN5YLuLfiCQnCSFtYwc4n3VWTmgaD?= =?iso-8859-1?Q?sQJUwdCVTWZnhzbDzRBrT8S/70bt0vQvPJ6lQR5TfOz8D4paQ4IPUnkvsE?= =?iso-8859-1?Q?Cub1NoZY//19RJTAzH7xrQ9AG92KEH7xB3xQ4zpaWDWYlbdPR94VMaCowr?= =?iso-8859-1?Q?cAr3jvMB+OjBN3ohyOxgvemUhlPYZ4NuGVg2tjK0ZwG2HYwwZcpWfRn7g7?= =?iso-8859-1?Q?ujojUUy8E7M9Ua5/JNTmBEIOuvRp4qwlK/7JJ6opka4fLEJwHXv8ZuIzMC?= =?iso-8859-1?Q?Ic1b0jEgCztvqXbi3oKw72mzMzTY1hILaolQZWaErD8jPtlxs5wkG4VPBo?= =?iso-8859-1?Q?8mfLGNjcAVNWpFfUTSNMjR?= 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)(7416014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?xSHV2JLmGVzjFhF4j8XE72dqv7BBtOUweRE3sNbihivQIJAIwVP37o6dCc?= =?iso-8859-1?Q?kD+/1q0wRgl3q7ohXF9t2Z2YV2gTo+KFWlgFef5SJnV5QNVoFT1L6aO+Rh?= =?iso-8859-1?Q?RD2PiRS2c4YJdggCDOTlZQydGTSBS7SC7NJpjFcQX6Hwh/k0E4mFuskanF?= =?iso-8859-1?Q?5Asmk7CXioGS4hOQz5hzW3b7fz+BKn3vNPqqGc/EFL8CZIFH5GGmGr6tR4?= =?iso-8859-1?Q?t8gsi0CmWaOnM2RSX08r6Yq9qj5rKGwIz0ZLRAMRP5aWocMWDKlz77Sn0d?= =?iso-8859-1?Q?ZtUGUve4KpyDCQ7TZzORFQ9Co8PBQcZZwop1x+rLLwAi65O2WIamoKaOR2?= =?iso-8859-1?Q?ggEfkE18jby9t0blKkxbuVZWi15DfeNHZ/pzZgueMJtqZoar5QScijJPb8?= =?iso-8859-1?Q?PQ+Dx5Z5a/QVQua1ebGLbu8RmlmsiJBjuqbl52RpkoFlwWIuR6YlTdNByg?= =?iso-8859-1?Q?qnf4yJn5rsxK7DT/U4xQHmVhKTj3BWOvC/BDrGP4CKE9U7t35BfFhKbkEO?= =?iso-8859-1?Q?F0cMTi/bBvxVj25qfzWkibGN7rsiPxXZKbj2zIbnpjepqHVqSz03kJqYE0?= =?iso-8859-1?Q?MIHoHY2i11fSF8kXTVxGvXgTDQUfL4a8d6YK7e2OqBSAPKKZwxQ4+DD70O?= =?iso-8859-1?Q?X7UJaSu+vcTSPpyxBCkcOQqSTOPlwPdfxd8mfx0ASHfkMeEL2xw8rOvi/i?= =?iso-8859-1?Q?4YlpaYuUyKALAc4zBAwaC9beKJnvU5jztjC6s32i8LeO4xhB6wCjlpK8/1?= =?iso-8859-1?Q?0p2/ksZdMYh6DHsMUz+BsWy+enILbLzHTTKkqMbON5c6h4qwv2i1aOyIaH?= =?iso-8859-1?Q?gLJcAhn+S5ZTgi40KFMzqLcKBa2ayKo/8aB9FXNBe8mp/r7nLCSQvQAcYV?= =?iso-8859-1?Q?2POKAPN+Al53DLF/AwmhJ84kAOmOY2K545gDWbGnS9mMOXvBZy+PJ987Qj?= =?iso-8859-1?Q?fjs0eua8Jpl0PIfpmhnO5IdJ26wh9fa+f6NouZ6N8kSZZSqyBx8v3nVdbx?= =?iso-8859-1?Q?G4fcpsheZ1kyCom8PmyPaWLMPiWmlzx70bYfAC6YW0f1IsALkn70sUQ5Wc?= =?iso-8859-1?Q?Wilayt1s1bQtFd7GZVxamJHlfQAXi1AxJ9KR2gx9TLESRzOcrPgJ4v5pGh?= =?iso-8859-1?Q?+Se4fqtg2+Vf3U0mm/hVeR5JqWiD901jsJBSEwWw4hZgUWDCn4Gsc8sH1K?= =?iso-8859-1?Q?0KjSBYkqs8xyIQ09EAvMOuoULgdyCf9spnSxjzvLq4TCPKE6LMp9u1T6aR?= =?iso-8859-1?Q?vFRbRcgNkVIzKE4khiUOySFiS5m3IWp4WFY1RVXUMssIL+YGXp+Om3MBR9?= =?iso-8859-1?Q?kdPqxwzlPOVz1UgdRPU1oQ6uX8ufgmuEs2RbFasAWZzExludSzEaf316A9?= =?iso-8859-1?Q?K6zQ9H7OutjPVBm6LoxlzrsMvWI66lmIXvHI//VZljxWBqh0Im337h9+O9?= =?iso-8859-1?Q?nqKPvHdUrWXRa2JN/iHIdAakHj0SKnzmYMz4Tiy4L8vJQukRwnWJPw+YW4?= =?iso-8859-1?Q?wxNbxHPkPHVh6WfeXBIS/R+83Hkrsu4E37LyHpBeBrSTeap3HKrFRdihqc?= =?iso-8859-1?Q?aVeckKNqpfOfDlPx+VPPu69AqBfJbPzoVFdDRYQohV9L+565PJPgm2hR/d?= =?iso-8859-1?Q?5nHLZkq9cQmGE9opeZ4u0an2M0YJC5n/l3M9iyqCHBc5lWihK55gILXYJZ?= =?iso-8859-1?Q?N9GEl+kPXgO2Z2Nlkts=3D?= Content-Transfer-Encoding: quoted-printable 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: fa3303e5-7028-4a7a-0d20-08dd524ecc72 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2025 08:07:34.7287 (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: xy7Wx4Htg6spwueWgR+YNLmgXAuoO7rSl1WVfLnUS8RA5CE/swL03aHdPVdz3ZZUsfD+B92p0VpD7DJpFuDRg+7owUDFG4wN2UDsInEFBrBEGVCTJcI2X/et3s3axWyD X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR07MB8162 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=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, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1740125345268019000 Content-Type: text/plain; charset="utf-8" From: Clement Mathieu--Drif pasid_enabled checks whether the capability is present or not. If so, we read the configuration space to get the status of the feature (enabled or not). Signed-off-by: Clement Mathieu--Drif --- hw/pci/pcie.c | 9 +++++++++ include/hw/pci/pcie.h | 2 ++ 2 files changed, 11 insertions(+) diff --git a/hw/pci/pcie.c b/hw/pci/pcie.c index f42a256f15..8186d64234 100644 --- a/hw/pci/pcie.c +++ b/hw/pci/pcie.c @@ -1238,3 +1238,12 @@ void pcie_pasid_init(PCIDevice *dev, uint16_t offset= , uint8_t pasid_width, =20 dev->exp.pasid_cap =3D 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) !=3D 0; +} diff --git a/include/hw/pci/pcie.h b/include/hw/pci/pcie.h index aa040c3e97..63604ccc6e 100644 --- a/include/hw/pci/pcie.h +++ b/include/hw/pci/pcie.h @@ -156,4 +156,6 @@ void pcie_cap_slot_unplug_request_cb(HotplugHandler *ho= tplug_dev, =20 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); #endif /* QEMU_PCIE_H */ --=20 2.48.1 From nobody Sun Feb 23 05:49:05 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1740125327; cv=pass; d=zohomail.com; s=zohoarc; b=hXgGjb/kYHFvZzYZXjTeRBMYFzcAWvSFL63q0q0TWH4sCFACYsr1M2V40Orb4XP9lc5lJtIF8Goj2Gm/vl6h5WHipoDeeoLbLIyAoCl3a2az401u6l1jbX22GadtSlVpB1QzCVK9soDe4dYaNd/b/jCGqoamouHGTHASiMAOAkI= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1740125327; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=KdmPJO5RPn+KvHUqO9BHrSYOABK1AmuO2QQjcSjxo28=; b=jkOkRnQck9sP2UL7od/tORKGxZZc1seJ2Ok09T+m3AX49qVVQQZmLu+W8PHjSoX6VXRjYmHUnCiq/jBjxsVzx4OKSuABeMG35Vd2wF3CljPSybZ83XBBWh5orCVrhev5Z6elBgaQe6UwuFanT847eOSyqClE2gKw3OdaQkIpN4M= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17401253278210.1770970200152533; Fri, 21 Feb 2025 00:08:47 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tlO4V-0004YA-SV; Fri, 21 Feb 2025 03:07:43 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tlO4T-0004Wa-MO for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:41 -0500 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 1tlO4R-0005ju-Ty for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:41 -0500 Received: from mail-db8eur05lp2107.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.107]) by smarthost2.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 21 Feb 2025 09:07:38 +0100 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PR3PR07MB8162.eurprd07.prod.outlook.com (2603:10a6:102:175::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.15; Fri, 21 Feb 2025 08:07: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%7]) with mapi id 15.20.8445.017; Fri, 21 Feb 2025 08:07:35 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1740125260; x=1771661260; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=fDuNj2e5Z+tVyKsZ9Vl/nMf+ohGdmNjrvRU9Wlq6dmM=; b=MUdOySWSyHF7i36a/9jkK6cNZfhp5w+5c2xwlNT8oCOKKnofyOxSUA/Q KplnkjV0rJgMbRyk/msurJtchEkc2w3Sir/kix47CS2NDZBE3iVLF0NJb MP80wGj1hikHWrTHlTkdnAvXDEDu49wQRm/JRqFqadPVt3Qd5hRBDcGYf XFnh+pMvTcvk9Woy4fXegfpDTXAO0zbqmPUT7uH1+ml/Np0z9qh7IXnXZ 81tYlUJBiG0aoUbFEit73JOlhaFuQegepYCQB3z6xq8tnGDSoWQQ3YstW 5t9NEq2SMSxV3zg7rAiUU11ilFiJxvrZi4xRdE3bFmoZGQgXQF7IiAeim w==; X-CSE-ConnectionGUID: Z8Qj1T+YQ9iJvElmxhwyjw== X-CSE-MsgGUID: 51dmisD7Q9WvvfrFcIdbZA== X-IronPort-AV: E=Sophos;i="6.13,304,1732575600"; d="scan'208";a="31382212" X-MGA-submission: =?us-ascii?q?MDESfvArCfJuLcS5YjbSMALBgpmKcXgYwUZAPL?= =?us-ascii?q?TvkTWMO+ulqfYzio2dKLMwFseSN+3JJAnsTKQOSRel3b/crvalEr+I5c?= =?us-ascii?q?6sriaoS8l7t+/hd1NtW7AZriMKnpkpQ/Y9O0Hog/z8NRIAFcQmyMGExo?= =?us-ascii?q?PqaDKKgADJcIZJCDaMoT5j8A=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lX4KEaPi6Sqr9NYrsHch4Tkc4u2FvpjSv3Jf94eT4DQmydW3SvUOuoCl4RZxQPBtl2GHEwB8qiy8HWhl0nLvQqdXuYpZ9hfsihLgCEaCg6k82hSY1jpUkFhxIBdrtl3wYazRI53QCTub7v8ZDL/sXddLqKs9IqCbswlLbsJYRxeHiRqVx7K6GH105IMf8Mvdf9GT/Zdy1qDLWslBjT+aC0ltmQ+HU3aOWea5W0iHrNQarLDibLtvt1Ekb6XJgwOzbuDJP1SGpsw/UB9UJUN+d2PO4y0r7555CyIS/96xUxOKtp6Zn9vKhCCRKMoxrv6lNy+NTnFlgUQQTBN1Zm2JYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=KdmPJO5RPn+KvHUqO9BHrSYOABK1AmuO2QQjcSjxo28=; b=gxygNHBnLTR3MGN4iFgYZQN82WDQg74oRV4NKKr59RN3iuRHD8a8QLXlRjkDMwoq7N61gthH3dZuOeeYfrr/bIH7ylyfA9Pt16ABiIgGETAhLPZBJ3zmPa0/a4ZuL5t0/wXaNQ8AqiW+KIHyOnCj+PFRlvn2Kbv4Di77CRO7LX5+15kT5hXSpfnqaC1wuhh/snyZ8bTuJgQyi7jvgqECvB8T3ULsiwt+ZMQCCm0zSxQG2MofJvkzGRYeoIBroM3YXQi7Kw6Wnw1UDM7LJdmX80HhMA8feoWmEome2ZL2eCnOYMPhBYkqOiF3r5jGEL/mJ8qNshL7K2rXdupnyCO7ig== 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=KdmPJO5RPn+KvHUqO9BHrSYOABK1AmuO2QQjcSjxo28=; b=PDgrDCAwbMGQlxPqMRzmeNkC0uxo4M+IMyz7IcM5ZGGoBHh8ZFhxSfuuFUqGU4br81sQGQMlvi6AjoNcPKi5OjIi0Qub9RikTNkHq2zJbdrpYZe/qyzpRTWVBJknIaOmF28olWJiE8GdVCSrmgahit27WLBh9He9ZUmo+Au/4mUPW6nSxFbTi7dRqcJDWQWlrD2JCdEFS90bnUwokAGxZbdkg0yDcKL7yIRHyzREd5WJansWxEnPO3RwaESTipCY4w474ftbl4FeX3tZlz/gCqcT7NJUUg8n8fiScA1Hegn5LHK+/PYvr8q6bcCqjKTjAhPCejdSOnz0jiA/hGrC5Q== 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" , "tjeznach@rivosinc.com" , "minwoo.im@samsung.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH v3 07/19] pcie: Helper function to check if ATS is enabled Thread-Topic: [PATCH v3 07/19] pcie: Helper function to check if ATS is enabled Thread-Index: AQHbhDeqYRRb4SwEMEG8rwue64flsw== Date: Fri, 21 Feb 2025 08:07:35 +0000 Message-ID: <20250221080331.186285-8-clement.mathieu--drif@eviden.com> References: <20250221080331.186285-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250221080331.186285-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_|PR3PR07MB8162:EE_ x-ms-office365-filtering-correlation-id: 41e9f999-4b7e-49ed-910e-08dd524eccf7 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|7416014|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?iXh2YjoDGgVoVG06UNu8TYz6LyHMTry0sELl3YdoaKijhG11qnMcUQV34P?= =?iso-8859-1?Q?mbn3en7HT/iyCw74F3U8McyLyqta+y7s0//GF4h9hl96S/2+0Zgfyi9dsG?= =?iso-8859-1?Q?jTE3ATv7eV7fxuVQKl3WgXW7ep9SReeYD13S2/vq6LgCmzGqoYf+breYgg?= =?iso-8859-1?Q?VR3CuqIfVTxVBqgxwtRXX1cuG9NqvlwShRT4SGpa087875VI9Rj90ckp9I?= =?iso-8859-1?Q?lfj7qp1ghH3o0pRr6HT3Qu5HCvkWzodzZMG9rJnT4/KXkDgbGMBgEq+pnv?= =?iso-8859-1?Q?pcV+pGbnleIVhYxZHuyw0wItcy6NpX/vnU609eauPln5YqSCjhwjbsgu8/?= =?iso-8859-1?Q?9s0+ScG9YccFrkK+tIaFnGAcD1AzgqBYA05At71Avf1M+BHWf/oyrr169y?= =?iso-8859-1?Q?37vrGsoxTDg3pc9avKRLVJFefyn+qzV4IMV6fJxo7yg2h8N0Zkg9Kh3G2y?= =?iso-8859-1?Q?+c3pZb7Z1KgkZQd3FebjAf0RfMSiIy/PugNGL+qnTjCut0aRmnGH3cloqT?= =?iso-8859-1?Q?niH8HDdJJLJb8c6wlW44vMNsge1fdH3ZZYPk9TnHI+ASvdumJmgquqnEfz?= =?iso-8859-1?Q?CH+hxDJQ4cXea4DL8KQJA67lQnItfJ8dMWwrXgPBorj7HjgZ4agqvW0NdW?= =?iso-8859-1?Q?cQyQYRH3WQjhFMRPgp7CIuddRaIk3x7LRlMpGC8Bhe0LXo2PgSQSp4qULO?= =?iso-8859-1?Q?ujg7d8P6mSGbImUfXyoje3oRKD4j2mfxeDuvntJhfYO+41FYBLdmCqSiN3?= =?iso-8859-1?Q?AJqTWAWQ0gQM20/Tlo/kU7QKbWTFhXsoZH0ys0amzk9p0S0aXNq4OtEyKu?= =?iso-8859-1?Q?OU3rxlpj6NU3sUQ2OnJv2W0P8Vg9T5PMxysl6m1KnL2gqLFC6dK3CK4XkU?= =?iso-8859-1?Q?6hjGqgNIK0T6w6R4enIhg8l2S9wnK4jORPSpnoWLQCjZUpI4aKcOUiHUhj?= =?iso-8859-1?Q?VTexK5pkCmrBnxeO+Kht9Z/hWaaYoz73Or7k5PeCDA+U5YJCYAoVrsbxcp?= =?iso-8859-1?Q?/TMrC/ZxvU8SmVSqQsHrN8f4OXi3cpIzLkK3bPPbv2u8WUDS4fCZgGb+Pn?= =?iso-8859-1?Q?bazqt1vc/euZPXSqQwJlItvDcRNCRuZUAUOAHCV8E6Dm6KcvLG57qafIHO?= =?iso-8859-1?Q?RYYNoUGdDqGl0yJq0sKHIKApO6yR1SstZ0YOXm57SyAiD+SmmIUf0RX8EZ?= =?iso-8859-1?Q?MkzsAAxicSM95RjEab7hRS9xcWTws/gX7h5GAl0Ikk3DCSZOknV+1+JEh8?= =?iso-8859-1?Q?AVkNmY3ChzZ8fNxuRhb90+K03uTfDkWwCE1cF30oSc9x2Mq1UemdR6vCga?= =?iso-8859-1?Q?GbFinFxSjzJMy8jygfyLvB/0pvnkU6IazLfX29cSuvO46wYhxV/yXImgXU?= =?iso-8859-1?Q?yvyYGXAWRX13CkQa3nubbEvMLil3Me4JDEZMNB85QYDUMiQsXaAr3bfGpa?= =?iso-8859-1?Q?zeRBkxP7hEaAlFUuww2V8lt7Fk5gBezKaYpkWyS/KUcfJbL40r0XMb5EV0?= =?iso-8859-1?Q?eB4UtjaWXEDkaCImf5iHDN?= 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)(7416014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?JWhfaLsDpXrte3uPh1ryXg35NYjEBoe4CGG9ImWvs25RSKbLM4CcTADfXO?= =?iso-8859-1?Q?0DQtYeNlW8IDo9IGrUZhzASR3JPxqEtxuOPHvb8TGki0TbiSn62PyQ6QuU?= =?iso-8859-1?Q?9KNkpPt++7HRe7Yzmjl3cf5lux3LymB2hLusiDx3WLiFXta/ofE8IGjH/O?= =?iso-8859-1?Q?ZvW9PTxiVG1wnig2HTakBYqVkkKQgZEjxzqQT6FOX7hkSti3PkMmNI5ZZF?= =?iso-8859-1?Q?fFLv0bobU6zp5poUVr7U6PZMSLsQE27+hm9i3zURNG9YLYOjJXiv2ctWON?= =?iso-8859-1?Q?i0jpFsOIWhoULbZt8OqXwyOON8ak0BjahXEVVup5eQXnYYBDMlAS6lIujk?= =?iso-8859-1?Q?N2yFIzLYPi0y8GKbvADHv6KzlAWWGZTXfl2laDqhqNDUUiobwStQ+xbhXm?= =?iso-8859-1?Q?bmurqaM1dw6mFWrAC3oy5px0fQHwVe8VqFhylyiCmIFDTOnV2UVnuiwuNw?= =?iso-8859-1?Q?IT3E4yTfPI2rOaMYgBFQoDr9iasYxQ5HoY8U/e51V0MU/tCK0GcKkkTyOO?= =?iso-8859-1?Q?XlD9x68uD4sI9gsb5+YH3hzHa8u7E4WlBC8q7yF5xjEfVtFWCCfb9CaZBr?= =?iso-8859-1?Q?JFYg/zrDe+jXL5IDutVMrk0G5Hmywql1q5XAgsvRPOfk0Ta/hjeMvPjfR3?= =?iso-8859-1?Q?FT0qpWs1flKtz4D78M+sz189GMi/+O0Ub9tWaaGwJbbP3T9hwGY7bHD3Ex?= =?iso-8859-1?Q?t0pC4zx2ULaBbbEtD9weP0v5/IE0WWuKiVDmkFUe8I6fkfIjPsXGpnz/cU?= =?iso-8859-1?Q?ajknJkyD9lrvb6qAG7qierKGLh+cfkNSWHudvr/iIgrJfLJSVhusV3F1/J?= =?iso-8859-1?Q?AWG3s4WUn/OrJk74LeWPlyYiem2V4pyxr4vt9SEasax+fASNtusSGdCpIA?= =?iso-8859-1?Q?ph500K6HlmAj3zqyaA2tiOjjHw6oh0kksUv/kNbUPQEFZff90YVrAqcn2F?= =?iso-8859-1?Q?ooFeT2CmwNvQlYwGreDtCoa9hB2zsDeh7hy+VKHRo153Jc8rSesPCXONj5?= =?iso-8859-1?Q?7R9X0a2XvT260N2EjdRKaIXQJb9uhqB1Pc+UZ/8fMoxvzCStxFhABwpgbc?= =?iso-8859-1?Q?ELDqputEozZrfMTRERakQleRwGV2bo0wcvJeNjSG62sVrpSeNcjpFJLszc?= =?iso-8859-1?Q?vNv+WUWT/nU02pXWygszblBSjwlBLAMZdEmu5lvysF3b5KAtQYktRA6wEV?= =?iso-8859-1?Q?FlcuVhVeQXw9Bm4W30J6HK0SI0LhZ1n+8TkTCjIONJw0uM728Pe+yW9Mtg?= =?iso-8859-1?Q?yz7Atfhed5kgvN2ND97mets9u4zRXp+Hi2ezRZc1M1LJBo0GkEVTgu6Z95?= =?iso-8859-1?Q?DlHITvhD9gJDsw13k8Gqv7VGCzfOZY1GC7DPzzol4Eaq9UT84W1fJOGf7b?= =?iso-8859-1?Q?LVKIoiAMngVDJ3GBiWMhjJ7tJdLxtpTcvqO6xCbl7MGZVXJgwAtCXF7ka2?= =?iso-8859-1?Q?CqinRx92iQ/z0yVaZDztPW9xHKX7Wm4/Cz9RPo5L5XQQRLmp0K3Ult8How?= =?iso-8859-1?Q?7efGcHaMOqnk/cFNwkBddVQzCQYLrQyish6A/lQLZ9GcMqiyO51frS4cmU?= =?iso-8859-1?Q?6SmXNODuzf6I7cokL7pbPmvf6iZUCxH8JZPt/1p1dF5dRuC43gvmkeJbCL?= =?iso-8859-1?Q?Y6CLDlgxgVTdcMJeFN+Int3/AG3EUXIOqAwRFW/Q8kPMF1d3QqkORI+dgr?= =?iso-8859-1?Q?yzMQ6Q2mmjT51wrUtcY=3D?= Content-Transfer-Encoding: quoted-printable 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: 41e9f999-4b7e-49ed-910e-08dd524eccf7 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2025 08:07:35.5902 (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: HNzzyro3TasEnNdrjEOwtCazW7vPoR9goIMjONCqHrPOn1CKyA86E1rfA8JcLp26kYmHvaCdiIygVLf0SD030RdQVZw9z7nTHW2w1uwlk++1yZq/vG71/uRt04/mrE+x X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR07MB8162 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=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, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1740125329669019000 Content-Type: text/plain; charset="utf-8" From: Clement Mathieu--Drif ats_enabled checks whether the capability is present or not. If so, we read the configuration space to get the status of the feature (enabled or not). Signed-off-by: Clement Mathieu--Drif --- hw/pci/pcie.c | 9 +++++++++ include/hw/pci/pcie.h | 1 + 2 files changed, 10 insertions(+) diff --git a/hw/pci/pcie.c b/hw/pci/pcie.c index 8186d64234..3b8fd6f33c 100644 --- a/hw/pci/pcie.c +++ b/hw/pci/pcie.c @@ -1247,3 +1247,12 @@ bool pcie_pasid_enabled(const PCIDevice *dev) return (pci_get_word(dev->config + dev->exp.pasid_cap + PCI_PASID_CTRL= ) & PCI_PASID_CTRL_ENABLE) !=3D 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) !=3D 0; +} diff --git a/include/hw/pci/pcie.h b/include/hw/pci/pcie.h index 63604ccc6e..7e7b8baa6e 100644 --- a/include/hw/pci/pcie.h +++ b/include/hw/pci/pcie.h @@ -158,4 +158,5 @@ void pcie_pasid_init(PCIDevice *dev, uint16_t offset, u= int8_t pasid_width, bool exec_perm, bool priv_mod); =20 bool pcie_pasid_enabled(const PCIDevice *dev); +bool pcie_ats_enabled(const PCIDevice *dev); #endif /* QEMU_PCIE_H */ --=20 2.48.1 From nobody Sun Feb 23 05:49:05 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1740125389; cv=pass; d=zohomail.com; s=zohoarc; b=WCaXLjrh4Rx8LkEzLx16yzg2mIyAZfZ00tZg9JsD/EIDxzRK0m/JU/xEv65Fy2eT9WNnuLu7N22YmpMCHPjROe2e1kmb5Fj/v8GGuMkKjEM9c1W20rA4L7stcjpy2hEPMmjH6vLLkoPY15SJUdMpk98rg3AOAdyuENsyM7Ldpkg= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1740125389; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=MEmwoWOY7veZvqndImfbubbycqeBF+qn+7KqkGGtMWw=; b=E/X8ND2mObSVpUOFMzmmZKJZZZ3/+whQhw0nRcS7JNU7G3tMnV7ELiundADTJZvE+0nuLyapSLmhfCqF2+i9dDuKzNcaPZWhQroE1TFWgz0DYW9Ki0P6huYItpEz62K2xQ2LuaAGeylRq0+6v4TITPDDRM2q5/2c3mPu+UH0jXo= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1740125389814969.422256645819; Fri, 21 Feb 2025 00:09:49 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tlO4Z-0004ZT-EQ; Fri, 21 Feb 2025 03:07:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tlO4U-0004Ww-3o for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:42 -0500 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 1tlO4S-0005j1-74 for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:41 -0500 Received: from mail-db8eur05lp2111.outbound.protection.outlook.com (HELO EUR05-DB8-obe.outbound.protection.outlook.com) ([104.47.17.111]) by smarthost1.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 21 Feb 2025 09:07:39 +0100 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PR3PR07MB8162.eurprd07.prod.outlook.com (2603:10a6:102:175::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.15; Fri, 21 Feb 2025 08:07: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%7]) with mapi id 15.20.8445.017; Fri, 21 Feb 2025 08:07:36 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1740125260; x=1771661260; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=4q+FNgT9HVsk5swidj6jJeI6FoYQL+sITZhOOFRxzsg=; b=mx1ZRS586zUMbJqHZZ/iP2z/CpcVhKZRF1Nw9z5/KbqP+JD0kgl0GX5s FD4MQyPasCH/9rbl5STJ83SLpCX48ejrH2K14sQiNHHlTYSoBeO3ek9aI XMSzx4j2fxFrBVBqoN7GZ2W+JGD/XCaAsRNh8w4XYF16/SYER9toWC5qC Qw2wwPoHF5a2vfJVSGOGFRx80rdWtU1H4n9ai/Qjb1QTxZag6g/UMl4oM 02grqmXn9lcPEb93th1TWFOjx55QLywtXlp/17Pf+YQaJrSy9tZ1cCkac 3GcDxmUE86QUv3OJV+tHkv5T+ys5YSflcsCnF1vjjMyFvZiDnzAA/j0JQ Q==; X-CSE-ConnectionGUID: YLsvwXuZRmq83KijIZl2Ug== X-CSE-MsgGUID: Hjw5MI5bT4GRZGLQ9inNjw== X-IronPort-AV: E=Sophos;i="6.13,304,1732575600"; d="scan'208";a="31394134" X-MGA-submission: =?us-ascii?q?MDEbh+Jbs1DblYRiT1T26lelfA5oOsJSLTpXCL?= =?us-ascii?q?TgpSkxQL7FV/AKy3dlfmzMR1LdtHQNh2/hWkzUeoqsslFgyAv+hGlpD6?= =?us-ascii?q?pCm4xj+bNxU4+c0ZHvVwxnYsdpAAOPEOPcrp3D3wbNsvNx0o7j6W8R+W?= =?us-ascii?q?Qaj9hqSOqtTwx4PRRImZ0z0A=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XxRH4jIoK2v3R/Iz5KNywhx3P1NF42TF+X82CphmJ+lJpTlw+3ewen8DHxVulGwQUMVCoy2LQl40rqgR8a4WoP350n34wpqzDglZ6pao3RC7jhvsnfIbVA4f18WSQ/0igK4qgLjoSJB3A8IrCJYJ+J8/sSOdlq7nA6NQEC0zkDvG15cbrqGiAtZ2UUGXUMBNVFlTMr/2zozm3MDAR0+qsT4/8osc/SC7J3qqao6i09ThF/lRrsBncDpfqkD3jJ9ROgLRgdeLArOOzRGYHFHBYV6nsWDvb4H7mr6F/L0DgVJ9PjNaGqnnZWnWhohgIm2dn7/pahbQOs5icCTy5v0AZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=MEmwoWOY7veZvqndImfbubbycqeBF+qn+7KqkGGtMWw=; b=bLh10glC8Z4+/FwAPaa5ZlDUZhMFUpR4Ofh06jR9Y++IZuJPjY7bs6N3a9962xM1elz7Wl6dA0ScPzRikDTtjZbdiUVpl+4AiimUUFmwtJbOlODS8/p0SjPoOrup3kODJOC0KLt9Qqvs1fKiW6n1Bw02fz7pJEaGeHtaFkHLZvAD0gEP9LJWjlN7NOL8jXUy8gvad68IuLOshOjK09f02OSmG9n1qPsK/La+2K7EL7rzLbnoC8fEgJt+XM820V0zYLtc49i1NBTIwuhTwIaxoFthn7ui7R/ncp9cEY82nDOTRcyFVXwygYaCs3q3JQbh73L7yn6Q0zfHApxGlIXGog== 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=MEmwoWOY7veZvqndImfbubbycqeBF+qn+7KqkGGtMWw=; b=YMFSVcXAGAv5CjEtLO/flfWEOGfWxJkojL4Epk+jW2QL8t+Jzd8+W/mT1Rxjm9YZj3pSwcO2FaLIDKRfkE5V/qppE0Hw1yvEyNhFfTwPiDNYs2Nd4jMFm43ZIjOxWB/2V/bnGYH/CvAn4osAY9pz54zEkec2vs72UxpK9fGDMGWBFPjV0rkFz+C8AyWgadXsgpPmsb5LXdUn0c6Ctqxa7CHmbcf+gTxQWfB4j/BOD14CxtmZkxeSkrZAlxxq1rNcKRAyOP+ZFIpUTzFh1tYSZuJfEyCXdlFn7RsuwUkXg0u6tbJsFS4nrg6Tce47B+aj5YobjRkIetT4cUN8AgWMUA== 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" , "tjeznach@rivosinc.com" , "minwoo.im@samsung.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH v3 08/19] pci: Cache the bus mastering status in the device Thread-Topic: [PATCH v3 08/19] pci: Cache the bus mastering status in the device Thread-Index: AQHbhDeryfK2GuqB9kmdnlUzetIV/A== Date: Fri, 21 Feb 2025 08:07:36 +0000 Message-ID: <20250221080331.186285-9-clement.mathieu--drif@eviden.com> References: <20250221080331.186285-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250221080331.186285-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_|PR3PR07MB8162:EE_ x-ms-office365-filtering-correlation-id: d4ce08e2-ebb6-4e8a-90da-08dd524ecd7f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|7416014|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?bCdK67h27PZpBMcLGTP82WKhFjvrgku4fWh61P5k3OyZZOFMjqcjpZISaR?= =?iso-8859-1?Q?75wByER6Zgg12i3AtQJUYdxGNAi/Rba2a38dpnBdtcy7/RECdLO4HlFrf1?= =?iso-8859-1?Q?Iw1JIJLUhdMbITvz6++ur8blc5vWXfJ/G9p8KfQuPBe99x7o5ZykV4J0P+?= =?iso-8859-1?Q?1KCSo+lLotddmUUuhaaDqXQLCrzKPUEMMdCd1GFnnoU8Ki3V8YJF+/DE6U?= =?iso-8859-1?Q?Lb4iwDKyPPApIf4ysIlbD1GSfQuQsyHFZ+a9nFMFNHanJI7KIyBLRHaDDF?= =?iso-8859-1?Q?B9Jy+T4ypHxI7L+kvIi/cWPcPXfHAyM0CTyj8Nw3FLpYDoJ9do7nUFlY4M?= =?iso-8859-1?Q?7fWUWLkLFcsLlAtZc6ljrFaR20PljhaHFcKGmHuNx9coXZwNDN5u9Em8zC?= =?iso-8859-1?Q?ALYK5cgpah1bKvimCJEF7ffwv4eqMCzoZPTwfAJcvNRQ+xWaJdfBQBEtxy?= =?iso-8859-1?Q?yTiNg4W3tWZK7AEGOmbiSTrryoWz98FtdHriNnQkxfHzUsKwVKZA5v/f/q?= =?iso-8859-1?Q?PK20DJPn9SZq0yxrQjmhEdY3xihnyaRym4Mww9xoy8ayY8svbHwLQ4wuFo?= =?iso-8859-1?Q?jv4Psr9gzbwbdrxzwjLbJmMGK97MxwyaG5hxO5SnKvLYFgj/ypcmEMh00R?= =?iso-8859-1?Q?Y3N86dfOuKHMyKJTRNLcOZz205jEXwmW0IbYDx01z7N/14Pzi8AkDSTqEb?= =?iso-8859-1?Q?/Kba2FpceIf4naKq4mNROQ591AqmzIzAFK7aKMxS0hT/Jb11glJuawefEE?= =?iso-8859-1?Q?BfIanWAQRl9+3xVdEJFIV6CDW7f4VJZT0WVd4RXuzpWi0C5zle3/mS/dOb?= =?iso-8859-1?Q?r3eQ/dfqS+Z3KCxsH4z2rZeH0Io8EC8W+EwmLnjYu6ptPH23/i3bsjT8z7?= =?iso-8859-1?Q?t7qp5LBNh/vnSozjZzgGTVKmcSD9+VSFEWktTXYHrlEqYoVR9ZKagcqZwJ?= =?iso-8859-1?Q?Q12TkHLdenBw1lRLGTzMydBYqbtMvM/xKgcllgya7+Mja9n0sAIbA+uGCk?= =?iso-8859-1?Q?/LyiY/ehkfQFFDKNueHJ96ZTvrmBBgYBZ9hpOuIpF8eV1p3CSHMZTSvRUi?= =?iso-8859-1?Q?v71BS1u3jzuhLOPDQftLec85rKrH8tujmVabSHmwsXQgpSOs1Sq0y6iS31?= =?iso-8859-1?Q?eRJpxxcJFzcYQHuzXOf6gcn8y7jxZSXy44rNO1BCOFyMR/MA2Hl1vgdkOK?= =?iso-8859-1?Q?9jc24USYdGPAAfHJG0tXOHWhl+pLqNhSdYVP2Uh8o+46LZJzLui7MXk83T?= =?iso-8859-1?Q?i2GlBqWcH2GTJZliIgcfktjBd68w5C3KZUKmqYo6FN9IhscbMLm7g7TeJe?= =?iso-8859-1?Q?WOUdUjmN+/oF/q5c+mlYRPHzf9TTZgeZaeov+RWisUpjbxiOq22LQttXsv?= =?iso-8859-1?Q?+IyK5r2pRGxg+0Rg+FWr9Vwaw2PesZwFPEi9zVcOuYDzwESjNXzPzLErDW?= =?iso-8859-1?Q?2dIQHygdhskTqCdGs705XiMQRqpm9672oeJnsC716pJARi1f8GlJgsPeHx?= =?iso-8859-1?Q?sTFoCxZUmlaNszjoJbII8n?= 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)(7416014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?hPnis01xy6wuuWtsRqU2pR/6XH2oK3OmuooQc3Dq1qYmbuyoSrOz+V9vmg?= =?iso-8859-1?Q?LoHDjrwrW6Z83Q/mPgDxzMRbm2ZPKzIr/fExsSzXGZ7oNMM2E1nERL1dnZ?= =?iso-8859-1?Q?JMFxIHGnyS0DW71Nohz44OBTRsBFLmpkFYAeanbqtqrS+iY53EymoEBnZL?= =?iso-8859-1?Q?K0ZVUeDQRUYnH+t3TANo22yLzS8QPtqFEMEVf0TPXzcOYG7U2NNySP5ycY?= =?iso-8859-1?Q?sv7+5ivDHTtz5f2W3jtG6S/AQW9NOdZ69i1jEZ8Dccr+ZCOXC1P/qVxDeO?= =?iso-8859-1?Q?sv1idV2iuV5EIMs5goFK6YYKbZXAMYxxtirpGrwXLk6MSai3e6CL4cOSyG?= =?iso-8859-1?Q?aQzE+f1bCjIJpTKVa7qS2RiMeD4Hhu7jSaU3j6HMZTYg5g8MRDpOIEdQ7K?= =?iso-8859-1?Q?C8p+bxxByeMkfneB3o3PgtHPfwxR9XGiZAADtQLMk9G8/1RTroTlmDla50?= =?iso-8859-1?Q?aOAQp0/uMdNvvKodKVrMIb9ZINdsBJLGQuf0JfOah7Uc1zxfsJnZiZHCAo?= =?iso-8859-1?Q?/PqRqj9sJqC64Gbtm+9WITUF73KcN5iiKnGE/PqxEpnXyu8LVmpVubETsl?= =?iso-8859-1?Q?3hYRdaQPiDKp9KAeNUslaE1h5bj7HtZeQRJwADUUoGBl8ASvVyNIA0t+Ul?= =?iso-8859-1?Q?3cP/7lJKb2zfyCGb9AEhISb/BrNxHfTgVjalEou7tRwgz8oM98m+zRCiL1?= =?iso-8859-1?Q?OYSPdCe57ClmO6WtCTkyrlfbqc40HrMQOSloUYefw12n4VNRfDGu0YL1ea?= =?iso-8859-1?Q?L0LIHzZCCv2z3pIftyEn9mvlATrI/FOqscoLHPwMx2bCoq278mLI0Xe+9M?= =?iso-8859-1?Q?Cfnl65ipzc6RWMcMnWK92wBN8e4NGouNGxfWa2t65z/E7fyfmT6XKxNn4i?= =?iso-8859-1?Q?Xo8tjATHAtexPeHFxY0Z1NTCZ/CSUOJvMsGRFmWxORsmg35ln4SyDW2Dvl?= =?iso-8859-1?Q?JQ2amR8+4pwN5G7NEB/xG9QSgMJnaOZLHLMfi1VSxf3g2OruuKjcCoUprB?= =?iso-8859-1?Q?si5SFsCOcmigwydwgJtHQ9MmnRfizHwtJCtFpiI6Mr+pZdjvlesJMx6W0z?= =?iso-8859-1?Q?/6KI+yJyXbKOv9nZ32Tz7ODl+uZYbgN7wYAdKThax37FUB+fucyHHj/itp?= =?iso-8859-1?Q?oeRvnUt3x6d4erENEBQ9s/bcSbfWxbVa9/vsHGJ/yGB1uw+jwgG9Ch61hw?= =?iso-8859-1?Q?xI5Af/wzIAY1whBCBzFigkm9tVOeB6BjuVpDveVPt00cXSEYCigRMA5WL/?= =?iso-8859-1?Q?nqzr7AVIMiS8+H0byfNZqxFEP1E53p9AxSlSExpPUY7X1Q5JVyLxyoLQv5?= =?iso-8859-1?Q?a0+YOKMMDMz2EHiQiSDeVDLp7Cy/8hR0RZGdiyvzALkp039x3TZvXCuzWn?= =?iso-8859-1?Q?jZBcLNBvUBHJnZhCq0HOFecQmtHRP516d4byLxlVw2SH4C0j9jdW6XcgVl?= =?iso-8859-1?Q?JdyGcj6oLc2t6eMXpv3RIngU6gsP5Km84CdEJbQFNS6ksEdJ/fGyFWRMy2?= =?iso-8859-1?Q?hjvIapaIsztOnMFx4BOcayBg0QYnJuOc1JcLt46kyKsyu+a16Eaq4Kt0sQ?= =?iso-8859-1?Q?QuhcwcLlKXFig5wxo550az2rJFix7QSIv4m3rj+rBhKUTbsWM2+wrAoQdE?= =?iso-8859-1?Q?ppyZNXPSw0/0Ur2pW1R6ghFbiV7bn/f7Ra88cL3+G6ZpLFFUege0IKkgsK?= =?iso-8859-1?Q?VJVv5/84kpvQEQufVZ0=3D?= Content-Transfer-Encoding: quoted-printable 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: d4ce08e2-ebb6-4e8a-90da-08dd524ecd7f X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2025 08:07:36.4768 (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: lh5VYBDJ308vhF8eyADQZgGuOfYN82FNrmbHOZogN4PtwfHVRYtchQNP/PZ4YoRvtv9vSJjpayocRD1ZGZrUwvSeDY4MEVty8BQuFv0qdUmB7undgASO3F7rW8I/QnUz X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR07MB8162 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=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, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1740125391713019000 Content-Type: text/plain; charset="utf-8" From: Clement Mathieu--Drif The cached is_master value is necessary to know if a device is allowed to issue ATS requests or not. This behavior is implemented in an upcoming patch. Signed-off-by: Clement Mathieu--Drif --- hw/pci/pci.c | 25 +++++++++++++++---------- include/hw/pci/pci_device.h | 1 + 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/hw/pci/pci.c b/hw/pci/pci.c index 2afa423925..164bb22e05 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -134,6 +134,12 @@ static GSequence *pci_acpi_index_list(void) return used_acpi_index_list; } =20 +static void pci_set_master(PCIDevice *d, bool enable) +{ + memory_region_set_enabled(&d->bus_master_enable_region, enable); + d->is_master =3D enable; /* cache the status */ +} + static void pci_init_bus_master(PCIDevice *pci_dev) { AddressSpace *dma_as =3D pci_device_iommu_address_space(pci_dev); @@ -141,7 +147,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->r= oot)); - 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); } @@ -727,9 +733,8 @@ static int get_pci_config_device(QEMUFile *f, void *pv,= size_t size, pci_bridge_update_mappings(PCI_BRIDGE(s)); } =20 - 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); =20 g_free(config); return 0; @@ -1684,9 +1689,10 @@ void pci_default_write_config(PCIDevice *d, uint32_t= addr, uint32_t val_in, int =20 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->enabled); + pci_set_master(d, + (pci_get_word(d->config + PCI_COMMAND) & + PCI_COMMAND_MASTER) && + d->enabled); } =20 msi_write_config(d, addr, val_in, l); @@ -2974,9 +2980,8 @@ void pci_set_enabled(PCIDevice *d, bool state) =20 d->enabled =3D 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->enabled); + pci_set_master(d, (pci_get_word(d->config + PCI_COMMAND) + & PCI_COMMAND_MASTER) && d->enabled); if (!d->enabled) { pci_device_reset(d); } diff --git a/include/hw/pci/pci_device.h b/include/hw/pci/pci_device.h index add208edfa..40606baa5d 100644 --- a/include/hw/pci/pci_device.h +++ b/include/hw/pci/pci_device.h @@ -88,6 +88,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; =20 --=20 2.48.1 From nobody Sun Feb 23 05:49:05 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1740125381; cv=pass; d=zohomail.com; s=zohoarc; b=JCiymkUp4W9PFQFIQ1UOfirFVf4JQSYp1sd4XQYjEZ/npM9MYV4k+ks5oZWAgFuL3/o1KEpKgLguB6BGErAm/+uClfyJ+eLzpcrEEvpD/9JdLCFd41PZURAjXWiPnZi7dAr7ub0pPBSiSuL2yDeu5T8wkRvNCeE1734Z1fQjGyQ= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1740125381; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=w6V3J9Voz0NXho2p4lgx9KAMBt+ze0a2/WvfE+49IGI=; b=BwBe5TI4jpRxTL1rPDK5TsTZCAWKOWDjbZ1KcyJfeQeJNDByBYFYE1Gxs3YgKWP7HPBaL0GSkv56CUEk1CPsoXL2oDgqWUudLtDDHX/MtlFMfQxjtBZeQc4gFDBs5wysAJElah4I5YICEM5lbG4ZfwB/wEi9m8V/XTUCPDXzN78= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1740125381911384.5950817454992; Fri, 21 Feb 2025 00:09:41 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tlO4X-0004Ye-R3; Fri, 21 Feb 2025 03:07:45 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tlO4V-0004Xv-Mg for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:43 -0500 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 1tlO4U-0005kF-0T for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:43 -0500 Received: from mail-vi1eur05lp2172.outbound.protection.outlook.com (HELO EUR05-VI1-obe.outbound.protection.outlook.com) ([104.47.17.172]) by smarthost4.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 21 Feb 2025 09:07:40 +0100 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PR3PR07MB8162.eurprd07.prod.outlook.com (2603:10a6:102:175::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.15; Fri, 21 Feb 2025 08:07: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%7]) with mapi id 15.20.8445.017; Fri, 21 Feb 2025 08:07:37 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1740125262; x=1771661262; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=XhwWxkxj+r+rx/BdxYfbt+I91UI6Lq8eWKoAUnza1aI=; b=iC6qcTsG5nCKB/dmfoXk1vtTjXNOwiQ6kv8XtieKE6Eu1OtMhkLGSX15 /I4A3x/uNGzts73aXS5JJPog4SpoCICO9Nv+I5muqcw8VUm7cz0HZFPrP DvkuCUUsjoQrQPN03QLtTq2RWNC9EMJa90euFUUi5qwDpRckQnV1EYfgj LTSVhT1QtPoWKGymVgZwlbY2eJ8fiaqVOcGzqCmy/zplw00BEHhZtUiYB nP9jJZ+BirylzSxEMj5/ueqCNqnfqBwuepS82xl1GVl/8u/SroQlquogs Vlym6jTuXCtStES4btvE+B4OtfSm8cRAmY0F/YWCdOoGjsdggVi4IaXsm Q==; X-CSE-ConnectionGUID: aKPf1IpZRw2nzwnD8NV4UA== X-CSE-MsgGUID: zPIO3IfaTTO3H03S735UlQ== X-IronPort-AV: E=Sophos;i="6.13,304,1732575600"; d="scan'208";a="32836648" X-MGA-submission: =?us-ascii?q?MDGvXXpR3xqiy8YIk/FGbTxlEa96OWPOShFQ+o?= =?us-ascii?q?OcWOmA7HGuKvjIwNByQVwc9gf2ndgMpBJTl3NkRAjqSPqugANXrHLIwr?= =?us-ascii?q?Era5rf2zpKOuPYy7pj66l8+Krtplh80w7zIhFMpON1WPl7iuVjnYyGNQ?= =?us-ascii?q?LiZL3JppfgZQihDI8n8OYOdQ=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LpdMrxV906jP7rm3nETl0d55VQUl5p0xDW75fK73l79yeEfCl0r0QzZt3f5lUS27Sds6ZMX8aNRl8HYO9fQjUdiZ8QXs0kkzMjAVMVKKwX0sLaB1uo+ox3Q2NewVPeZZG/RU1GXebfV8FvCb/9ChXGFBca5Dk+t0779gqzKr31YsYT+GSTeMWHU/C4ccSs795u2HshDR5cmvlx0bn5GvvuN4lN8r69q/MWJ2niWCMwHGppOitQhyP/aARYuI5KFKO92Yc7hMIsgIofg8WUluUJVaxFCkvHkbyKUwXjgDHB0Hfb1pDypeBI3ZtOUINryHH8i5LHVU0Ao7MNTndy38xQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=w6V3J9Voz0NXho2p4lgx9KAMBt+ze0a2/WvfE+49IGI=; b=M0gc+qrv9eEOwfASx8DRpecv1gY5bVEMDFa0ekvZYcaUNUdhf6DsTgn36cGnN1dL24eDx2lztDE0dwqyUH/hldsufJuPGP1ShelRB4XklpLm3JB8sOnE4OU3qhOLvVSPoT2G0oq8haplVhXd2qFM6pa3z60oeH5EvJ+zBrf6o2hElukKbmsjdbaWklqUa9x86dADk0808KsDxWr7ECB8efsXF0SrEsBL9b7JPxu9XhdstEH6hN4YWU0OV2abinRUPSag/SjJsX0kumkopeL+UsmqKfh9iWMd1NcA/bB2Nm+TbRBn0S5kadwMpR/68g2qyISEp/qDmkfNofYRTRSWLg== 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=w6V3J9Voz0NXho2p4lgx9KAMBt+ze0a2/WvfE+49IGI=; b=rWOnsM4ANUCWnRv6rEUKqYwDkSfrm4U5RLUw9bOFFLjDXeCDg12KAu8OauIBbr9dnx6hMoEenulPLAibYwBKSQugPewM7fJUpXlxm1EtsQvSEcmOrqa/syIttEcRPnBkDZsO7Xpk1chzFOkJV6yyQw4bg26RLP7P4WLdJ3xWK5hpinKj9rlsWngMqmlDGIF3zZPpo3+gbpZHRmu09T6uUZtrt20LURgp6WCwxIMtsEJSJ1OknaOdVZb/SZHSS//+gfzKqnmnUTP36Q0ogN8D7Y5RpOP/o0XSFsDVd6LDBiyBY5DUfsFkvYQx3NjbjB5WglMNujv18xSXjPn3j4FHjQ== 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" , "tjeznach@rivosinc.com" , "minwoo.im@samsung.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH v3 09/19] pci: Add IOMMU operations to get memory regions with PASID Thread-Topic: [PATCH v3 09/19] pci: Add IOMMU operations to get memory regions with PASID Thread-Index: AQHbhDerWrLlxqejqU6iqmu50TquXw== Date: Fri, 21 Feb 2025 08:07:37 +0000 Message-ID: <20250221080331.186285-10-clement.mathieu--drif@eviden.com> References: <20250221080331.186285-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250221080331.186285-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_|PR3PR07MB8162:EE_ x-ms-office365-filtering-correlation-id: 0cc42c02-1b9c-4411-aa86-08dd524ece42 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|7416014|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?yCdjXvLG1V2/eVhGwDzeLWn+QJhvP85wn6Qc/SziYs7P4ZzLLPz7iHcaWT?= =?iso-8859-1?Q?i8Qxv5FrbVKZaboH3qpzYq3guPAPKoLhv34DsEk97yKNbrvsxChVWBKe0k?= =?iso-8859-1?Q?iMvqswq7vCu1HGWnPG47yIlpvWq1CQKnP3JKyX1x2kog3d3nO599Qp144I?= =?iso-8859-1?Q?n8h+qiw0lFGcXGUi9widZUUdJrg3yLi9NGbyoNDDLL/lnFL9srr0c+t734?= =?iso-8859-1?Q?2KXJN/ziqVa9jL2STylENHCr2vcmzpXAfbCm+3M6wx4JkPBZ7VS8k5vDh/?= =?iso-8859-1?Q?W9hM+LHXBTYpWq1Oy/Qx27kjdvPLelIL6O4XTV2tehLf/qoGU1tceFK9mU?= =?iso-8859-1?Q?7pDAUOMoeG0yaEHEXJE3C26qohvcmjXSOUP8cibJoq8pkwuN6NWiKPE6YK?= =?iso-8859-1?Q?tKERtISlV4klB1a4ikMk+fGe7ELaD039ZquAjg/qB/21EwcwNEiQjiVpVW?= =?iso-8859-1?Q?kD+CBzVDuBathMBS1DoO0zvUjA80eaHG7K7i/qqpSn5jqP6mwRHYQKpdyX?= =?iso-8859-1?Q?bs7StgStMPMq0axSMMJjWOUJFZ90kLt0EVteIoLLDU7j6JIAeEs6KbDP8L?= =?iso-8859-1?Q?vMSjYv1IyR762kMOQMI1TzHoKjjiuN4ovDxE8zDG0+10/atAgGk3ThSsZY?= =?iso-8859-1?Q?VRKCAtPIMsYTlobgt3aVLptAIDhDC8JvPCqYzcq6mjgh8d7Co+/vmTnnfm?= =?iso-8859-1?Q?yLZDdwCExmGyafkw5lqYuKG4JbMDzzPzhXse20p62CjSkQUv4Wd9Q6J+WR?= =?iso-8859-1?Q?VK23DOyE6HAwHy1vtFRo0oL7EJRvVPWGjmIirEMttAfi+j29N1tPfwLO4v?= =?iso-8859-1?Q?N2rb5v/gGUJtdT3iTlcwqu/25R4c4g6bf5fUFRxjsY1CiJhfFQB6wRY3ON?= =?iso-8859-1?Q?LeiPM+CCTpwV8B5JQFOWpWiFemmTLl8WqNo/FeyCO3ceiZ3wkD/JDzjy8O?= =?iso-8859-1?Q?qFAynxB9m8QNydO4f5wCn70G8VN297oTFl4hPew89JcGjfgqt7nJh/xsrq?= =?iso-8859-1?Q?mxNrQX+xhPcvxYoK6zqhqblHvIh0Fw574y7I7tGoG4SFloq8J+R1viZ3iK?= =?iso-8859-1?Q?iuq4RRr77YIoh2EdARmhTfz1Vfi1EOqmpMqsqhAeVcqRXm/eoFXwLzaw7W?= =?iso-8859-1?Q?132197LpmV1E/FPKWt/dZqnmDoSR7l0pkawOslQ3L0yRpE2LhZ8ZRX6QEn?= =?iso-8859-1?Q?m5OqR2YjZs5b2AyKiORTzYmgkANXZpPyureDsqeJAbieImAviOsQ1cpfS+?= =?iso-8859-1?Q?fa6A6qATkOBsrJTfW+lot1KeeyD2fDEjULD7a7aJ92EvzCXEpt21Y59gAf?= =?iso-8859-1?Q?ruSPSRZqHat9MeLOn0AdfwW+/wlx5Pn9neeLMV7gzt7YaGcs5bcUF9q4t5?= =?iso-8859-1?Q?pw70g89QH636f1LAcN1m1RuhySsWz93z5CYu5OAUkfaK+Ks8LslAbTi7BA?= =?iso-8859-1?Q?4GBF7PAAEQ/pF2ExP6RLbndI3yBTVNPKNYVBYcywht+QtmSJFK90tVvO8d?= =?iso-8859-1?Q?HmhxoUPtKXJh4LDAc8lxZS?= 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)(7416014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?H4l9e1s/U3/bQsGVSpPjUXA0kVi7u5N0kanCeuOw0w8JCrxta45kaaqykR?= =?iso-8859-1?Q?hirriQe6+eWVQGj1yn8kf1dRmwOOBmTwFfIHwWga595NVtd+mMHvKlNOg1?= =?iso-8859-1?Q?Eby0zNc8Opje8/3wJT1RUfLi//18niKMe7bcMOdaVpbAyBYWSVoPAvDlAM?= =?iso-8859-1?Q?yTG/atAVq1Ymx5gGXkmANmERq+N+e6pdUMUxvBKUUykL7DCAe43rtriCy/?= =?iso-8859-1?Q?XjVnQH0ES79KrP95QlSPFuXNhh1uwRrb8nNkyaT4J30co4YDzrt01jWO5z?= =?iso-8859-1?Q?ukESFRqaaSoY8fKqY6c6qq4zBBebjOG/19jyMNdhbDNkWf7s2vRdoDw17g?= =?iso-8859-1?Q?McMc0YUuhgaK1boMGW+vJ9cHOWiqOML2DTOXS1bbbn14UY77vcAXHtGwae?= =?iso-8859-1?Q?Ok4J78tsVHb5LyLhIxxesbfUpnMuLHaBrpyT3qZ2/BvNtcjDJi0GPtMI39?= =?iso-8859-1?Q?2Ewqg1BbTtF6TS8d9GNT0iShYVb5meFJDMU+trZPVd/Vj74h8+Zk0yj1i1?= =?iso-8859-1?Q?7Sa9nw5EEallM3DiOitZKXDFKdkMXhg7OCxVKz+12BCsveACmsuGGcaUa9?= =?iso-8859-1?Q?tIqCs5e0sdW4Zy4wVzcBsaKiZDOh8xTbgAF4smxnWXm///qFwe2pISDSX3?= =?iso-8859-1?Q?3+TajB5fIqOApphEjtNbsRP9MRX3s+9XgKDd21rva1RlpNA7T7ClnjWIeO?= =?iso-8859-1?Q?dWv+t3ZA7950O3ueeVb9RIsF87D9jKwzjMn2U8+jnPRXJ7D548x4ZD8/cS?= =?iso-8859-1?Q?Me+6soUovHEWoPOPZ3eEQvINm0HFL17rSIlaG5g+gaNUvE5NJDnXt8zzmc?= =?iso-8859-1?Q?W/MrUbOCZODTdhQMhZvosmn1fjvu/fg6rQ2t8fdlwd0VGvDT8DRtJBdNVy?= =?iso-8859-1?Q?yN5887aEj8LXSyt+f3PVX5GVvobtKWvdU1AmQYF9BjMFhNTmxqqY+wSnja?= =?iso-8859-1?Q?mtHd9us3YWrBDgkirM3nixcT0VckSyLOstYDiFW3qr9zdef742e0XnKHzd?= =?iso-8859-1?Q?EjH+dl6YhYYZ3dKUv7sXM55BoaNc9XE2KdTdQhndFSIamAlxjP2TJNwkpZ?= =?iso-8859-1?Q?ffEFhNorWJb0ObRQhOXRGVkB/HosoNcnqCgBnqxaUL4aq0eBLVtRmOwDbZ?= =?iso-8859-1?Q?OSchzVK3eF+MvfQP3FLjMn3OpYtilkrnxCIqanVsEtatT5XMedyS7q5Dvp?= =?iso-8859-1?Q?6dEFK1n0/df5Fkt+FP8LWZOe8pVx32mThhl6Ny0wz3yZVrhDd+FTakjGiI?= =?iso-8859-1?Q?LJ5xioIuSgEOSTN3Llftb6wRekr6sUV7/MUfIu8wmQR4/n1JPeBaGt9Gjm?= =?iso-8859-1?Q?1j75wOg/BzeQ5xWPITFndMU+gceTFgyVlShMzDJUl9ne30dLuYyIPaQpec?= =?iso-8859-1?Q?33jS1r/5zHGVQe2ED3wtJS+k1E60neFH8+45qkM6tVgTlUWwz4AgZrhCl/?= =?iso-8859-1?Q?BctZSacsU5Ar2N+ymSAnskur8mFOL1Kx0HHnc3TVUpdOPNdMQSBLHKO03C?= =?iso-8859-1?Q?NeFCCj/Z9xbsgOM3BmwIBJ7rKevJd/WHBk29VCFlGmQramaVryvxf6BNpv?= =?iso-8859-1?Q?9n9E9JDZNkCxQcO+kfXuM9PjMs+c1aRsopFo8GwpbKNQgi7lbA1MdZGre3?= =?iso-8859-1?Q?7AiBrr1RvYseZAKa9YpATIrpr4hnlF850oPGonraF00GaVlH4TKR1KE7p0?= =?iso-8859-1?Q?I/ct5iig1Sv+GuWNMYQ=3D?= Content-Transfer-Encoding: quoted-printable 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: 0cc42c02-1b9c-4411-aa86-08dd524ece42 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2025 08:07:37.0635 (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: aHMnMAse38LLLNiFgXiimYUmzhZDO3GdpBoRS2beBQjXhrL0i7HBIdWuuBfypVdYnW+Deb0d7q8WVHV0PfjqObjtkHQ8uopi3IPVBpNdzmqoOjpjzuDrms7txejfeFez X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR07MB8162 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=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, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1740125383423019000 Content-Type: text/plain; charset="utf-8" From: Clement Mathieu--Drif The region returned by this operation will be used as the input region for ATS. Signed-off-by: Clement Mathieu--Drif --- include/hw/pci/pci.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h index 4002bbeebd..644551550b 100644 --- a/include/hw/pci/pci.h +++ b/include/hw/pci/pci.h @@ -391,6 +391,22 @@ typedef struct PCIIOMMUOps { * @devfn: device and function number */ AddressSpace * (*get_address_space)(PCIBus *bus, void *opaque, int dev= fn); + /** + * @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 * --=20 2.48.1 From nobody Sun Feb 23 05:49:05 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1740125437; cv=pass; d=zohomail.com; s=zohoarc; b=Uwt15FbR0VvNgFcl3/XbnLazIiejjarNL7C6FclVwFdhcpXDTEezDAIuxehBOD/cburVaGtVCZ7mrIp+xvnxILAmVcBlmMudZRbdFNskiMhjQohkunMW06Cv7uoNnE6YNdM0cElEdeG+ImZ8jYAPMnnUvl1yPhJHacVbtTy+GkQ= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1740125437; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=o2iXVLFV52LhyndbqvldJ6WUjzWPJC+MCtn8QEwVLZg=; b=MqO6O+9TR7C6PjH1fwJk1DEv7bf3vx+Kopdb6I5AkEqSWK6V7kxFiuwDscrZ8aWMnaW0H9Y1OXlyKAqE+T1Pt5Jcs1a1qBUS2KNWfg6xYpfTrX/QCv+Tj+JoKn8xfN4xteuP2k76z95bPGPHkZeovsQ8e+XiPBrUfu8FiC4Nj8c= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1740125437123253.83549445734695; Fri, 21 Feb 2025 00:10:37 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tlO4d-0004b7-1t; Fri, 21 Feb 2025 03:07:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tlO4Z-0004Zd-HV for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:47 -0500 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 1tlO4V-0005kU-AI for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:47 -0500 Received: from mail-vi1eur05lp2172.outbound.protection.outlook.com (HELO EUR05-VI1-obe.outbound.protection.outlook.com) ([104.47.17.172]) by smarthost4.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 21 Feb 2025 09:07:41 +0100 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PR3PR07MB8162.eurprd07.prod.outlook.com (2603:10a6:102:175::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.15; Fri, 21 Feb 2025 08:07: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%7]) with mapi id 15.20.8445.017; Fri, 21 Feb 2025 08:07:39 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1740125263; x=1771661263; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=MFzdMfJRvzeRB8KN3cYhlmgFrM88PNKvAD0/WZFjBos=; b=WJLRIW8fxMNGxMBKbfQYFfhJ/uGymRBQrIyX2/83qH/ksa04lvyjrEc0 Aqoz0Sbff+jbGZHR0kPoUHaNcMPAWNs5z2pftESSQO25VmaCGRSpRwGvy FOhrP7Cd+8TDus/MPZAxVnkPmRt1ddXH8QlNIZFwByvO5n+N9vE2HGBbl q1xweZBW/RsJ5Nuu/2hMY7utmVfBb8739aUB5baLsTJ4NXGEYYWOXZoRu 7dUH8mgyFEO4k7wo6UTGvBXSmMWU0xT0jmmc1R/gngKYU8atRBUTTeTqc eHo/C5Q6CmqjFIX69DIChT1x1akmA87OyO+kUyrD4xAHcQUi5hD4gr4R3 w==; X-CSE-ConnectionGUID: urKhIuXQT6yNVDOcETfqUg== X-CSE-MsgGUID: p4yP/Cy7QEiZuNgpJKlP+A== X-IronPort-AV: E=Sophos;i="6.13,304,1732575600"; d="scan'208";a="32836650" X-MGA-submission: =?us-ascii?q?MDGV11rUnxbRr4AjKH0BQQ7OgEdqymvcbaIDAO?= =?us-ascii?q?9OoQRctBk4EKWx2vsVx8MZqW8qLfEe+ttx8jSLZoFCQWcnZeEv4ZFu/E?= =?us-ascii?q?x+jyvQsrg2XTNpFSsMLAcWs+TKnGA7vLT0rMx/TP07sR6joiG4YTyzU8?= =?us-ascii?q?1t5VJfTJQt6mxeIVRo2hM0iw=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dLqjK8moKMnB7hIw92k/WYhW+EreWTGbZqhuLZ64wV/KsBDfMrzljaDhF0rOTfJXwpjcbEG4N0oldfMZRB2DOMTETRz1MubxdbhCgk6lTx27IQFxU2G2jUuiCcXBGKKhbUf8CXOpKS9IoZyRgjwhnVcPIGtCm5CmCf3DpiZq4ZqBPn7RKx4j2OWoKRX0HPbjGOh5gNMtY6Qu31adt1E/uB8fiU5cacfAc0FEyTsUGX1Nwbg7V70JOQHN3oASE/sVEYPNrieX7wgRNjltBeOGJlXUdvbuTLozM6XwacQPXrs3LEDqksoVjYAAkSE7AuMf8fWBT4ojdXjwLkcavrFqiA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=o2iXVLFV52LhyndbqvldJ6WUjzWPJC+MCtn8QEwVLZg=; b=ZtdngYJ31kE2Yg0mOM4qPHRYDI8qa0KQDh3xLiIWfqtAS3qCUBXbPzoqt4/6GK3erU0oXWzSzIJ/9Qiq0sloFKvuBvKtGwlxlDKdiVuPlyDK0AI9XXtY+wXNs/pHbca+euVBfBNuOuMI83ZADwyKCGTE8wvYYclDodIgyNwdYNUu7WIquyKo8n7gxV2BMDjon3My3bWXhhsLVpMlPrdDUQMPfRELNGGACXT9B9qtFgJhsVZblMsS/p7vXJNc/EtkCBDX4Eim+pOGMvd+hc4kg65XzM38F34NZ5rzzdL80/SzGd/ctZbshDfhYy5btIxPbyy9FxYSPzJLXzYHMqCLZg== 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=o2iXVLFV52LhyndbqvldJ6WUjzWPJC+MCtn8QEwVLZg=; b=IYdEyLIwl/eD4051wmCRhDV/QhR5zP+HV8NwHaKjtpI9mK6b49+l8JwbuWwimxTFGFsW9EHcf6AG+0uUF2LcMy5Y8Nmj//IfKd6FWyFDW5uPMoeRG03el7TN8PcU0YVWMouZNVjZn1k7GGlXJQnjfng2jloh7EjhCfiZlvXkh/N2FZnTKqYPWNd3Vb7Krp5EO7V2T45R//EnxIdc0JX/gvAAENVvI6LhU8Z+LQUsecNiR71AIIAE+iYwJdn57IVJEF4j5SuRBYQBlWR+QnsLlZRsjG0vKa6egDi3EQPJmOacQgrdoLkrxUPR9ItyBq2MZE6NN619I6QwiH5LzYnJIA== 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" , "tjeznach@rivosinc.com" , "minwoo.im@samsung.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH v3 10/19] intel_iommu: Implement the get_memory_region_pasid iommu operation Thread-Topic: [PATCH v3 10/19] intel_iommu: Implement the get_memory_region_pasid iommu operation Thread-Index: AQHbhDerjHspUf9T3kODDE5uSoKcSQ== Date: Fri, 21 Feb 2025 08:07:37 +0000 Message-ID: <20250221080331.186285-11-clement.mathieu--drif@eviden.com> References: <20250221080331.186285-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250221080331.186285-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_|PR3PR07MB8162:EE_ x-ms-office365-filtering-correlation-id: 48c5f938-b504-4661-96e2-08dd524eceff x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|7416014|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?b98AflzcGX98hn+9Q3xYSoXxTsX09NSYCM7o97uvBwaslNkRDxbmtYHoqu?= =?iso-8859-1?Q?TMmLg/ZqxSzj5jV6upZ3kqg8CtEPuqA/3pwYArMm1JqU2ODOQv9FqN2Smv?= =?iso-8859-1?Q?6zcKUIaBWd+khSWPtsi0m2ctwjt9Xt3FXYBDqoJaCqRsPTOSaSC7t6Sq9x?= =?iso-8859-1?Q?dhYgxjA7oSugH5TfedUey84+kRodOHgGBCejYtm/ZEftqzebRcYufzh57k?= =?iso-8859-1?Q?6r2wAArNOTGm13NMKQpwNmwjkjvZnespSMqQriAsGgFt72alh3kvyOpwNx?= =?iso-8859-1?Q?dfgtYBA1uelL1GcT32uDQPhDAf6Qh/XtSl+2D7pKufWx4EkV1RaBihkOeD?= =?iso-8859-1?Q?LuW2wnGMcwpEl3xVN8HXrHiMI9tv1EcXdCrHsOaT8qGl0xP3n3ebv+/4Dt?= =?iso-8859-1?Q?CmD5WrDqdr9dmxPSD22yu+pRgIc1QoRyRYsGwta+W5hPtGtfi12O14nSA2?= =?iso-8859-1?Q?ydGakdBSiUcu1SjwoOwTLcYCMUkHd858dLhuDmOR78YkGFfSv+qH+1T3mB?= =?iso-8859-1?Q?PXs5CFqfcHl0lgn7HDe7UpG7djjJkRAec04Jdy27PO3ffYiPLY7MhBxPje?= =?iso-8859-1?Q?LE+dHyRPbInaJly+VAcqVzW884uPeJTP4BlDG6PiKjRleG1RiOZTL8xl8S?= =?iso-8859-1?Q?SeOtFTG+Hn7M+YtP/UYZcsxnXj9Bg6fvgoS/C+PYqWnjujSFecdvtYRpu0?= =?iso-8859-1?Q?DiJJS8q9LpTmUcVKn6Fqy2Cb5vJ6lmF1atow2bv+7y0LjFh+ml2053zl0B?= =?iso-8859-1?Q?TGmpF3tqXI7dhKWYu0Be2FQMZXPxrXuaTidG0sYSAeR2qAk+i3Eyo6LaN5?= =?iso-8859-1?Q?fZaHrnfwaUungu2Nr7waY1/aZ6tDUsSPIQa2TiYXIQTQl20aORGJtfLdEG?= =?iso-8859-1?Q?bg0HvIli1XTzkmqvU9G9uX6DZTvtsq4Cv81bf36u5Gm1SciuvNV3rproRo?= =?iso-8859-1?Q?NPVpZSGFCyME0YZfQP8YT5wFKUfyL+Q+SrGz6gm6cgsbb1pivA64ePye24?= =?iso-8859-1?Q?T3J40NJunc6ELFdYqLBSnM1gh0/Ijkr908hDbSeFKChv2gZbHaYDYfmrsO?= =?iso-8859-1?Q?dRQKDIBB5SXVPKjbz9IGnQleoEIRD+S7BWLSM5Xpllim7x//oLazzYjYbY?= =?iso-8859-1?Q?5FQmV12LPEhovLR7BaWQ4dFyWEr5tp5M9yuSlFsUmALUb06DprxLf7TRpn?= =?iso-8859-1?Q?MQ5xxkkL0g+tCDTmMOpX/A0Xs/CLddxPxSwnWf39ItR4TUntVOZZ2rs8GI?= =?iso-8859-1?Q?9FpSSwgZXnYau3jiSZ5uwaQ3hvIF++KqbZ7MZdSmXcmiQcCA5Gh0imEmTl?= =?iso-8859-1?Q?xO/6SOfjesVwcTH5LGjpvUFETIdPNIXZxT4ZT45ygDft2Z5GGRB7GITI1d?= =?iso-8859-1?Q?3VaTHi8vMGIJ6q1C5OGu9bVOYLjdc9uw4vCbIhzKSRZBTDn5ADpjLYuIAj?= =?iso-8859-1?Q?w/aqD+QuTU4BptDwc6HDw5YWSzVix6IKUKy1f5B+l6914Dk5NUIUDhF+t7?= =?iso-8859-1?Q?ZaHuZfOjAqJozDgB6MIbmH?= 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)(7416014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?SLNRSbpj1tUzrEIsqsXSiVAAuWGZNn67ytWgbhOaE5eZDonTxBnVtRHYtM?= =?iso-8859-1?Q?yDlLfj6mhzie9g12Mfgujx02IxVgmTdTpeKwBzo7fGKk+Q/DhMTFVNtwqn?= =?iso-8859-1?Q?gnFmAREKXyEjfkeItI2aPPbTxfPHbVeYQ3PxvJna9olR75b6riOCPp7boK?= =?iso-8859-1?Q?t4IDV3Pneml2q83dpMVa6rtcve14+Y2reAxtJrLg6xrBxEEFOUdfnUnNS4?= =?iso-8859-1?Q?wTuFd3/hDj2r1D8AxiMS4c1WUxaxDX+xh91Qg6QnK3Q6dPaoBTDxoN0d08?= =?iso-8859-1?Q?nFtt6MUvoWDA2CkhdHl7D5sdKIFPie5Ul4yi0S2DfITlr38IWfmYQnVMXi?= =?iso-8859-1?Q?uMZ54JWiIWPvJ5fimpODGSwn/2yKWEZa9BcIf7pE5spqpbgrQrEo0jLWTx?= =?iso-8859-1?Q?mUZ6QuZmaDeHaLlxDP8o5iJnbes3qkFNGAAryzk6r0MRgSjv/CCt4s/8kQ?= =?iso-8859-1?Q?uqjK/Vd+SLT4Ec1NjqafguaIAoByKvRPdfg3rBPgKa24dgBakYrQSRbwVM?= =?iso-8859-1?Q?wTYo64WnuIkgHJ2ggP2M2YFeYHBf9TXys61oIR3m7m9NTgVz9yGP9/AWmP?= =?iso-8859-1?Q?Yil5nTNgJSy5FnPHOHgh6hKMavPjVrI37WLTVuyu4caFCLQxlAJ++E9JME?= =?iso-8859-1?Q?/8ZeppLmo49OiPb/lGLGayaDnBmOGc9qZgZ5tCYGoV2vmaqWGY6DdmgYjI?= =?iso-8859-1?Q?+Rd0bKKFFLfOYu9dYkSfvQHyLl+F0NpgZxHcv255f45X7uKzzCAHVjSLec?= =?iso-8859-1?Q?/L22qNvxgMxUVzRQU9frQRb3uIp5v3T8UnAVZPHbuKACLijy0sMxKX5OyD?= =?iso-8859-1?Q?SolAcsMn8+NquG0Vv913DIIvJLh4zID5pFfbX9HkNXmj29EF/HIJPB9ncx?= =?iso-8859-1?Q?O10gcq4xl9a8kBgIkA8Grn9V0MGHUV9NIN5hyNwaJYXMRzojPyGCf9zSEE?= =?iso-8859-1?Q?6Tb7xBlc8SEg3ZFdr/Y1Rq3hZr8UIwgB9Pj7xOPQylf/ia48qhXJFa/LUB?= =?iso-8859-1?Q?4R/sUWM3XiEWbD1YflRr4CmH0mkXRSsqxKgre8S3vEGaIhbeIMeFIoPc4B?= =?iso-8859-1?Q?7CaWynmVHnIK4QI6ixkO9WN3xGM1qwa2PDziOHyZQlVbvS9AI8oscKyXUw?= =?iso-8859-1?Q?wy7bIXHwdjKjGem6VAL53Fj4qqqfPBg+bYRHifCvrfaOJ5E4Hl9VQc9Awu?= =?iso-8859-1?Q?Tggg0Gfp0GE3VzbxuvEsHVawV1SdMhtCquF1m0BQ5EFBXHvnao5hfh4r+J?= =?iso-8859-1?Q?kb7we4wLadH7cT4N+KTAyh4pmhWN8qr/AHjAS4Bx0iRYEvtdengccDl0DO?= =?iso-8859-1?Q?V8clmwNfhtRlM+M82A8dR/wpM+xJ34jBhx+lk7FvXaIGNP4fg9p5ftrIrZ?= =?iso-8859-1?Q?ZgMdi3kKKvC+xhFdOP/sfCMoF0syoXsN+PPY3iLxCXCZ6WPAk3tJEud3Nw?= =?iso-8859-1?Q?BwTFLOZs1N5Vbgs2ouIFfjI+wd4nO0EBT7Kl6wKsGJxcV1rwB/39+ahj36?= =?iso-8859-1?Q?LLwE4FAOqw9BkRMiJEW4vBd9Rbz+d6/AD717X4pP/mUcSAsS5HVMwlkDP1?= =?iso-8859-1?Q?JWBhzcZkbssqAXm7UZSOzXRzuM34ZIcm/2CGmTSpwimkX4+gf/susKSuBc?= =?iso-8859-1?Q?XDUVDBvZCFIdDOJJjtFcR4HgjjeY5huZfuPWpRxdcJ3MUWImhacUAUpWB5?= =?iso-8859-1?Q?Sg8eFOhg8XQz/Eyo1GE=3D?= Content-Transfer-Encoding: quoted-printable 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: 48c5f938-b504-4661-96e2-08dd524eceff X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2025 08:07:37.7599 (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: FvUGmR8IqFVj396tvD4vbU2L2pgkM1huAHA2TRwHuIDvsOnXXvC/HWTrfgBwuh/MvDqZNWSXqOyG+OdQkW+Z8zEnEoukssw8sDVcR2Wvpl74gIVWvCIxUMZFELKhj14n X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR07MB8162 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=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, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1740125438760019100 Content-Type: text/plain; charset="utf-8" From: Clement Mathieu--Drif Signed-off-by: Clement Mathieu--Drif --- hw/i386/intel_iommu.c | 17 ++++++++++++++++- include/hw/i386/intel_iommu.h | 2 +- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index a360119fbe..d3772d8902 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -4202,7 +4202,7 @@ static const MemoryRegionOps vtd_mem_ir_fault_ops =3D= { }; =20 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 @@ -4719,8 +4719,23 @@ static AddressSpace *vtd_host_dma_iommu(PCIBus *bus,= void *opaque, int devfn) return &vtd_as->as; } =20 +static IOMMUMemoryRegion *vtd_get_memory_region_pasid(PCIBus *bus, + void *opaque, + int devfn, + uint32_t pasid) +{ + IntelIOMMUState *s =3D opaque; + VTDAddressSpace *vtd_as; + + assert(0 <=3D devfn && devfn < PCI_DEVFN_MAX); + + vtd_as =3D vtd_find_add_as(s, bus, devfn, pasid); + return &vtd_as->iommu; +} + static PCIIOMMUOps vtd_iommu_ops =3D { .get_address_space =3D vtd_host_dma_iommu, + .get_memory_region_pasid =3D vtd_get_memory_region_pasid, .set_iommu_device =3D vtd_dev_set_iommu_device, .unset_iommu_device =3D vtd_dev_unset_iommu_device, }; diff --git a/include/hw/i386/intel_iommu.h b/include/hw/i386/intel_iommu.h index e95477e855..08f71c262e 100644 --- a/include/hw/i386/intel_iommu.h +++ b/include/hw/i386/intel_iommu.h @@ -324,6 +324,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); =20 #endif --=20 2.48.1 From nobody Sun Feb 23 05:49:05 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1740125387; cv=pass; d=zohomail.com; s=zohoarc; b=P7WHsanpQro2X6Fgxs7wynoA+pmuUPHNXgahUFi84IGFOI6UNaedrvptCd4RLB70wcZGZ/R3FwM0zFE3OQ4jtSlXZB/nDBPCTHgAp+6NgC6vg2+uoqy49sjoF6ZJil6+QbDkpplP4uODvduVOG5CkxPypac8kRYhzutl4WotyWs= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1740125387; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=4UxSyr3l4O0MfvKh7SI51WYPvr2HNFpIRSV5MiiWeWY=; b=hnBiLkJoq4lecXF9PFs4y8DCFvdzoDyd/JhUZGvHuzg90BFgeuauqbDokr9P1CQ6CmK5lKQrUIVo2H5gy9DKNcFJROsElT/LEAa8ziVU9NF09eJZ/EXHLsLXCrRJTteYe6HfmCgC3cO6u4Y58yr45c5Z/pvRfuXY9M99z4GWojo= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1740125387039252.50586005920275; Fri, 21 Feb 2025 00:09:47 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tlO4Z-0004ZQ-CO; Fri, 21 Feb 2025 03:07:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tlO4X-0004Yd-M7 for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:45 -0500 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 1tlO4W-0005kF-1d for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:45 -0500 Received: from mail-vi1eur05lp2172.outbound.protection.outlook.com (HELO EUR05-VI1-obe.outbound.protection.outlook.com) ([104.47.17.172]) by smarthost4.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 21 Feb 2025 09:07:41 +0100 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PR3PR07MB8162.eurprd07.prod.outlook.com (2603:10a6:102:175::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.15; Fri, 21 Feb 2025 08:07: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%7]) with mapi id 15.20.8445.017; Fri, 21 Feb 2025 08:07:39 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1740125264; x=1771661264; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=V223gIkaKR30sNUdnEml5N4wlPmNOlUUGNe6oZ+paVM=; b=eZp4dZhk3U7XBUpLl071utHNiP6u0opaR9iT1DG9gjBq0l+wCJdMdnWC YitvyztbeJBBtAO8Ri/Mot7vNhfAbBR6I0a3alD3GAzN+uoRjnSK0StCd XbLRdO/mfkxXNUVYyGIhTVK+24UFei+A/D6BMQbZjvcV5W2zHpkEGFxD4 dA8b+n+j+Pe7e+4vVQEaJfGfCD+al+bUd+2dTtKdsQAiqrpFsJT7QzECO cu0DXkOzBD3xCBvRGJOJbIunAy5Q6afvtnUQhfemrPZxciMuvSNQGD9km ZOzJ4LBbxNGkAvFN2mLyX1HwyZ1WqWpg4XkjQAaYOrlYi/LIbYm8oBQId A==; X-CSE-ConnectionGUID: 0PYWi60MSsutqnSDXW4sYw== X-CSE-MsgGUID: NkdQhLKMTJue42aLwtW2nA== X-IronPort-AV: E=Sophos;i="6.13,304,1732575600"; d="scan'208";a="32836651" X-MGA-submission: =?us-ascii?q?MDHOVzXGxDUSe7RDM8CN5yxuTbWF1BgHrO/EcW?= =?us-ascii?q?gwjWTVsDaswVipfBerERInkdMbnuwM0a4et7sE7azWu/wlHZhzdpPZng?= =?us-ascii?q?9iV+KO0Kk4jmlSjNcB6stMsFy59DVLGlM3UDafwommc/BD6v3k8d305M?= =?us-ascii?q?leHOscLJvgvOqGD7Jf1Y53+Q=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RknoAxTUKknUkJIXYRanzkzjPN2tA+WiJczJBkyX8FWM9h3CVfdRyOovOvr+VVmo4All4ewTKkeojlSDxZM6yBccIRX8tcZb2bGIU2pAvv/RyKpKBvfa6pLug9O51YbU4wIkPS1OmgmMyRMqCQJ1lXWG9gV5rZJc4VfIn1QKx4+39sDAxi3XiZEo9CW2+JiwS+KdjntIykMBqmCbWxDmNhmXi7T27yVlX0CPJ4zfS3eVhqIznsTBjasgBDpGlQFZcvV6gKKXG6FSbadCNhnZAeOnC1bwQD878dTVuF5SdCmVXNVNGJyDIf/Z2WYIhKRi9diMPZvS2KPXTravnRdtyw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=4UxSyr3l4O0MfvKh7SI51WYPvr2HNFpIRSV5MiiWeWY=; b=Gk8GDhYB8B/eOBgkcGEIMCu8O3uQcValaigNfEzcKDAe7TNuit71ZnZ8dNiPvd6zPcOBP/8MdRsxm8VEHFpyllaOgmDj0cM1nYGAPynM1aXIoeazq+GN9e0hi54QbOate/YwSbUAXt0MojTT6w1Kdb39ff0w/vrK9r3EgRN+NdG4y2oQpVDyhvVSVx9fkPXJqP+Q36eMsDZA82fOgkujQpc4aj+0eI1nN33xj5V2DHfrL2ac++UM5NpALvQ1t+8WNoWYFfbz5s4mMNM/1yfP//K3G2FNjBxc/J8mvrPPQiKfEjrWBqcWS29nZtW4sB3DCWa8F8XpKpXM7tra7+Y0Dg== 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=4UxSyr3l4O0MfvKh7SI51WYPvr2HNFpIRSV5MiiWeWY=; b=m8y2fjwldsLgY6vhTnaMtVGMEeFbAms/TIrWM+naIGhGEGHwCP6M+ptkYG0PaP+YhXvQM7XrzKI5PVW3/4R3oNMEbzOQgymFEvsvKYLoHrHdJsnAuGnA+hAwxuADuUegAQiFCPqTtuA4dQWMiHY9mVQnWOpP8EEL35J/sOg8Y/268R949CEkbjA2k/BhRgqZzpGNyTYwtXKAS3K7dwFykVWkzRitb3BhFNy/eS0YcNwwGQOyTrGnzqDWt8kiO/SrvRSeybZhegLN7YOTYNlsFGjl+4UykWDU5l50oTH3c0cYmSBjaFNsHjJ91hcja5GxnEuyblkGRm+7NFqhjvP3vg== 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" , "tjeznach@rivosinc.com" , "minwoo.im@samsung.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH v3 11/19] memory: Store user data pointer in the IOMMU notifiers Thread-Topic: [PATCH v3 11/19] memory: Store user data pointer in the IOMMU notifiers Thread-Index: AQHbhDesMr1WaksI3ka62I38Wp6M0A== Date: Fri, 21 Feb 2025 08:07:38 +0000 Message-ID: <20250221080331.186285-12-clement.mathieu--drif@eviden.com> References: <20250221080331.186285-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250221080331.186285-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_|PR3PR07MB8162:EE_ x-ms-office365-filtering-correlation-id: 74763b64-5195-45b8-2316-08dd524ecf23 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|7416014|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?VbjkcH3bYfbDsjyUXSM/WnJbUwpCKTsTmHG7yifSSQUhmtOxgEwOAaLkxi?= =?iso-8859-1?Q?3NYTyCkHIkEF56qce43xLU3AG6dBvJOMYYC5p0Mh8pl3eqWeR/hmSp3ojZ?= =?iso-8859-1?Q?ZfnI5DcJluJnGLM0togEqO/ixgMlPZ8pJEbc8NA3HGis63QxUUZwBGfucW?= =?iso-8859-1?Q?5IfLmTXC8wLPG2/Ngz2OHPJAGuJVvhrPz5wM9ZfCVj77pVWnbIflJHIiwu?= =?iso-8859-1?Q?bG1y46fnNDY2fMOd1xhp7qMouyWO4+HGFMO7wkBflAbo2RPP8JMoxkI26T?= =?iso-8859-1?Q?PJAJNrYXd2D9A8PVQwtwigMrl7PqpU03pOIP10K5FDvCSaS/6fg/Vkui8j?= =?iso-8859-1?Q?iGfi8VkIZ9T/MCxDg6jUi1Gpcb16NqNB14wX61BR3JeT7WC98Xto5JA+ht?= =?iso-8859-1?Q?zvlwR+qtdX4d2ypCqVY+txUjtBUMF6Yhemv8Yv91N9U7mVrsJXJyLTLSdj?= =?iso-8859-1?Q?o1PfNwLFw5dWhLgzbCQIu05gWFQPSL/QLkJZSXueF7sEz0dLEyW+jUl27C?= =?iso-8859-1?Q?++I+hNuxe9KvZQcadhD4iZBnA3HT+BNzQ0R6lNl0cqa+9E1sWMlet0prHb?= =?iso-8859-1?Q?6T1fJJTGe7IZ/IXYZdKJADfdHSpOW3lGaBSuJYcAVbuJdQNaxAb+pr/aBX?= =?iso-8859-1?Q?9RibQk3BrUtg7V4rs8jBJw0+dh1dp5aG7y6UEOZrLfx3EzBLdWeoj7JW3U?= =?iso-8859-1?Q?cef4foKljo6r0NW1me3sHkxmeqLST+Wd3vC2xKM3wD9Sn2L0CTfCyyZo77?= =?iso-8859-1?Q?V2QYkoFq3axpsKwM9HATHCHCQrX+KdGNQO+7LTc1v995yX3WrfinOSkQM9?= =?iso-8859-1?Q?XRwSDi4AnDzEga6wuWyKIXXCI2PAtwP698zZgdzdtKVSTPGCIdMdaSIrdP?= =?iso-8859-1?Q?HZwikAL+PCHjzin6QL0CkJEedbu2PRceqwJ38W+XzQNr6vwopW3b6iwMPp?= =?iso-8859-1?Q?dtBMdQsaKSPm59OVxfrppYKRNFSuYIadUsoYlpYdkDKbgzOYtSjpOFi8jF?= =?iso-8859-1?Q?KMwhQEd2BnnZ/xLQ9l9brt/VW9pVQ0nW7UF8YPacinu9pDkJo598rvz1RV?= =?iso-8859-1?Q?dKYXdNgvXJkv3rw1p9DkfLG1tVjd/9Kz6IeIcuNQhCee4D1uRKDKO9Sj1C?= =?iso-8859-1?Q?unMVZ4Hz0UdsPCtTm1ZqNtRwGtV7B7PRrkvxjAiDoA4JzojVGvaAk23gqr?= =?iso-8859-1?Q?r/G1TYjYtB0yDvY0fJ94aTMgl8i/Wl9zOfvPmaXfyV7ZqM63fUzDAut0eh?= =?iso-8859-1?Q?+vXvD1CTkkaBx5ZvUuS64ZE/usZ7SciiewgQ0zGV8UhuUu70A0N+Sw0k4W?= =?iso-8859-1?Q?7Wa09Ty+Ea8sz8rA4SaKGp2kxCecW70bbkD4D3HVn0qA22HFJMiUBit+N1?= =?iso-8859-1?Q?yT26W0PQyYp40wEP6491obUU93VDcLQoUZWnyiCkuijNHChrkDvjNlJYef?= =?iso-8859-1?Q?wY80S5nU3sr8xeKgkSHfz6qXnBZybv6OoTSbSDbGfwXwVM3QCWEi+wEfX4?= =?iso-8859-1?Q?2hVCMWx6eWlU39bWARzDFS?= 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)(7416014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?9ffT6nC/4wLN9c9Q4VPCpt9AdmhejR1Gtt5Y7KRoKmyj9HMCJD7JQCPBej?= =?iso-8859-1?Q?gSYCdwmqgAHFkCdTiwCddXmAMimMFDQNEuyBjXjUMGVsHWOksoVHcUik8R?= =?iso-8859-1?Q?W402OX26WVLmtc46zfc3glfkiqVkNz3qaMewWO7r7oayrN49spjW6JrdPt?= =?iso-8859-1?Q?7YFC+5f+WEcQMZ7JLBEx5P6KbHyhh+XxIOAUzPdtowYV+YtSXpRxHCCz4G?= =?iso-8859-1?Q?E4H2Qt1jgCqi3KGgTRJDMehNDjdO9QuTswGKD3Mbum9qdMINf661l4GpV1?= =?iso-8859-1?Q?ST3mXx5PjhDCm1zRwuZXRZ0z49ZDYR+DB9d0S+yVBWvxZAmqlI/Z02JMdW?= =?iso-8859-1?Q?iBJ53hh5oRWhZH5/mkQnLr4SIz2UoKLBy3I4MO4804E7J5/O+4sb7pClHg?= =?iso-8859-1?Q?2rAFsLYkZuJXu94NLckD+aeo/a5GV5qxw8EbuvOg4irzGkv3rfh7D7WMWg?= =?iso-8859-1?Q?ImaWQgTD0BCI368SDKsyttSE+5p16vDqgq28HVPKRX0WOcmgChkY6lX3H1?= =?iso-8859-1?Q?drQbld4f0LGLKGYEil9ALOysx1tmlRy+YmGbSV1NlRIvGuwFnF4yo+2nun?= =?iso-8859-1?Q?5vG43Fa5YQmedF+njFZ5RU6TVhpexMV5ksGJkftjiIXsZ9kGs6TUhnziaB?= =?iso-8859-1?Q?SMPmuRfXP5RHr4ifusSCLnYLTN4/LvWUXvWKrBle2K5BbHHZjTLCPvHUQ3?= =?iso-8859-1?Q?5/ZN/lMCD2zjgq90D9VzeO7t7rbbPLH1pgHsaGLrqfU2hctdNQ3plq6rYX?= =?iso-8859-1?Q?Bi6X+eogYHq8w1TQQDbjmgAmFvXiB2omFi37WKYkMRSxWCTsMkC04Qsi3C?= =?iso-8859-1?Q?sTqV3bXrLhQr9Rf4etcIt2DtdAwzl1EHBiuPdr59yKy2ubHwueQ0zVtakK?= =?iso-8859-1?Q?LAqfasjfHmrF1L7G6z0IYxf5YP9CQkZf8QHCQ3n7R2adQrbI7zBsj7QODQ?= =?iso-8859-1?Q?AKcdSGpIPkczNRmmr/N4m13l+ytCCCjvyEueK5YabJR4qFBbN2s45ryujK?= =?iso-8859-1?Q?BINaOcfGZ23HDPY0yma2H56ac7f6ZMePuzvRU/ly9wUemd9S03gTP/m0Mv?= =?iso-8859-1?Q?te+AxzBTZxP8fgM9qKdUVmnHVdSTFYjzoXPYXUt5IWfZRzN4j6wHD57XQz?= =?iso-8859-1?Q?D4Y7FLWu6/2Z+9vlstDgxOAc1ZKUpkEEDCXEKD3n0v/t1oPR87+EynsQj5?= =?iso-8859-1?Q?s843YmYm+wSPepjNySuu/3+rMGLpuoTt/FJ/fPvRR4lyuYJGqIV97l9F0k?= =?iso-8859-1?Q?CedUR40UHgto8mA6L1CnVR1F3TXrDyBlXP7llEXVjXp5j/Jj3tfvZoQywI?= =?iso-8859-1?Q?Gfyv5z4Pi/DhfapZdHJbFY//LB0LJuF9SwOSsfiTb/vAakc1wfUpy5xw9E?= =?iso-8859-1?Q?w6Arb/DHngFjmxkUba+DCuXOBATPJM2POvVNv1Li3RSfN36qGZg/m4kTsQ?= =?iso-8859-1?Q?j93UzZmaLT38UBJZTX9qk5e4ggBQgEmE+3nucy6f+xJ2wsmleIFpmlg3iQ?= =?iso-8859-1?Q?BBP5zXBVtB/CosrEH7jP82zxVCwNFqYjBfJoSCSzqm8f+EdESVXGtzK6Fc?= =?iso-8859-1?Q?hX+j4TolK1cPa4578lLJ/Zng1BiftzufWCyGygqOajP1cFJTIoYxiwWisM?= =?iso-8859-1?Q?S8EC392fKN/vJZma0mOZVHouLLuD7RgXTAnaoNxsj9o7S+1f6ceNUJ1Nuy?= =?iso-8859-1?Q?KPv2zKes02kD1BkcAEM=3D?= Content-Transfer-Encoding: quoted-printable 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: 74763b64-5195-45b8-2316-08dd524ecf23 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2025 08:07:38.4654 (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: Llfpxm0q9P/FGGEFo46yU1NmW2kSdWq6x5gl1PgrHcJimrgl08NjuMPzHxJUTWm6HsXSHF66OcWjdJoFWW9eNkcSXx920Eb/0AQkCUWZats/IZpY+7BdNnNsMRlAC4Qt X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR07MB8162 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=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, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1740125387380019000 Content-Type: text/plain; charset="utf-8" From: Clement Mathieu--Drif This will help developers of svm devices to track a state Signed-off-by: Clement 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 eee625a9c6..4d240cad1c 100644 --- a/include/exec/memory.h +++ b/include/exec/memory.h @@ -204,6 +204,7 @@ struct IOMMUNotifier { hwaddr start; hwaddr end; int iommu_idx; + void *opaque; QLIST_ENTRY(IOMMUNotifier) node; }; typedef struct IOMMUNotifier IOMMUNotifier; --=20 2.48.1 From nobody Sun Feb 23 05:49:05 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1740125412; cv=pass; d=zohomail.com; s=zohoarc; b=QNRA6JO+6ODVjutI7ctrsUt0MH/3bpLa3g+llJyq62WYYo8iQAi9fMskAuou4c3+DDmfNJzMoQQ13kW9AvJ2Ih/zQiV6em2QFRsbq5GSoVwSIQrNdcQxhj0JNBy8Hntu1yrCvFNA8uwEyXqomNotQdkbUoYnrCOG+LZ8zKCgaM8= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1740125412; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=3EcOu+TOcfbfDadm1pZd77Y5A6tl5Nr6dRcZJCVh2AY=; b=R7TIanLnTkyzPED39iF7T0ItS8J8yyqYx5NDopm90QVelr1EuPYtmqjfTkohn3rFfshUuK92GLTVa13eh5h0noRJTr4Jw1wBfG+qCVcjkbSfsrl/+Inm2TFXTu9m6d8xoRJPPJ/dpU2sVU0X15xJ61KS2Gkn9ZlsYFDHSUOG/n8= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1740125412405685.9022943396272; Fri, 21 Feb 2025 00:10:12 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tlO4b-0004aJ-2u; Fri, 21 Feb 2025 03:07:49 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tlO4Z-0004ZP-AX for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:47 -0500 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 1tlO4W-0005ke-Md for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:46 -0500 Received: from mail-vi1eur05lp2172.outbound.protection.outlook.com (HELO EUR05-VI1-obe.outbound.protection.outlook.com) ([104.47.17.172]) by smarthost4.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 21 Feb 2025 09:07:42 +0100 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by PR3PR07MB8162.eurprd07.prod.outlook.com (2603:10a6:102:175::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.15; Fri, 21 Feb 2025 08:07: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%7]) with mapi id 15.20.8445.017; Fri, 21 Feb 2025 08:07:39 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1740125264; x=1771661264; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=PiyTkK6hdM98UWkbkeuE8WtZivWls1Pdx4DsUKcW/KM=; b=w07vAlrBr70Cp3quNQbDe2oiCkh2g1UGt6gCdAEX3u3lkiJMsQ4qQNVU 7GRhGzBWkmXyWsxWV6wT2B4cHtiCZ4gAAQZKUZIqA7kR0bmXzpBW5W8mH 12NVYWIX3dlgdpwSbhfiIyL/X8gVR2tLT2MbPTgGqWgrQ/q/zrxoKHJYX 8QCvoV8lfbzUnQrWmrZARo90Gn5FHna7yAyHo+7K901UK33uiVBr0qGdI Gtj05ogPwJd63UcYzeXnyW0M9Xn8gw9N5NP6lg5pfkT7M2c5AwR604fXF db4/PV9N6BvYbjU2U9XJITEwcq03FcnUS41oGTFIBwapZPvq6GEbzxfdK Q==; X-CSE-ConnectionGUID: RUNfYzbrRuuRgshl69j4xQ== X-CSE-MsgGUID: 8IuULMadSRKAHG+cqmue/A== X-IronPort-AV: E=Sophos;i="6.13,304,1732575600"; d="scan'208";a="32836652" X-MGA-submission: =?us-ascii?q?MDFu6qCHClwEPa1/3MExJdE0ghoVtztjk5A4RK?= =?us-ascii?q?AEbPchmxYincLyugEpacCVlCMFUZNa8XZmFBEYHQi9MozGcfWd4GqMq+?= =?us-ascii?q?Hdd2a1vqyoN4bVuCq+T0TSY+C9wyP2Rr+vv8xql0a1wr+NWOCClAwWH0?= =?us-ascii?q?pa4X+9e5llaIe99VHtHWiMAQ=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UHs/9FjWLM0xxWY8kc1y3sAR6WcqFsoFLPKBjMhT7qfFivT15zfzEFWFH4WtUB2Y0KzgQC5vCjpslwlEji0xs9EUSBbilGqEXiZX6ybrpkbfllqwAsd7xuonLIPkd6FZC1bw8Ef86c9VTU8+bK7xIH0u8YOx/fuYngaggJpdEczJOrW+xBfAr5fGDn56gEktpaetcsENtCu6yk5sn5yArIlpU37WT8vVqw3rl97yMDzM0oHEUFwybUYRijB9Ski4TaaOh2IqyZ7PqwqSiixSUscQz3fnLOvuiJVw2MTnvWVGhuGh2k/VvriZAOlI+TgS7qh+v/f9YO3fn3sMhaE2NA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=3EcOu+TOcfbfDadm1pZd77Y5A6tl5Nr6dRcZJCVh2AY=; b=Nw+OREfvwP7Tn+ItlQvwIEFPeojuRlmxvQiQokrpmyInc2w7RwsHy63arcyG4VJjtiO8dLoAa6J9Y03tLmjB18yVsm/JLxU8lZUUodXTnrhtMDaq1CR6UvW2phYLNKBhRSaTW0c4/rCE0ZjT+Mva3ixej9JGt9Gihnw3PkP15IdCkI5pkNtYRsqtIgXiHgjHoLayShEyymOL+lEORk6CF3Li/QEINfyaoPZu5mGz1+CtOsV/8Pw6J/aeftyc3raukVGxoU/aCXPSe5lFoFYsdGAJ2dY5TqIiUJXs/ZLGMSjmI/BinmvFR9y50bxogM9zN9u9IS+NDFMmIOgMiywgIQ== 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=3EcOu+TOcfbfDadm1pZd77Y5A6tl5Nr6dRcZJCVh2AY=; b=lTl6j3+kMg3wY4Wo93NY7s2R9n4iSazz5d5T/GQeB65j09UT3wvNvD8PRtLOp8YbpwuaKpa75/BBSyGIqFhKCkHW7oNh6xOSeSzLYIgLRP+4ScVduqoHqVH+5w1lMefpiK/KtMNNhUL7aPmTr58zgYICaEMSf7LrNIkuyVevfbeiFYx2pFangJzgRC7VAiOiBO74yvrzJabWrp8H81ELlWzbCq26QpXbB6vaTLcGjJ32HDZIFE3XvKqqrThiXeDJx6FpJOnfrLDVl6MvYQtSsDVoLxD/Y5Jxlpi+kFYvuqgoqd60I4oyyHXWpUUeTlo2+koZHtuW6O7xJMkSQejd7w== 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" , "tjeznach@rivosinc.com" , "minwoo.im@samsung.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH v3 12/19] pci: Add a pci-level initialization function for iommu notifiers Thread-Topic: [PATCH v3 12/19] pci: Add a pci-level initialization function for iommu notifiers Thread-Index: AQHbhDesmnxqhE6Hj0uBJ8Jm1MOagA== Date: Fri, 21 Feb 2025 08:07:39 +0000 Message-ID: <20250221080331.186285-13-clement.mathieu--drif@eviden.com> References: <20250221080331.186285-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250221080331.186285-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_|PR3PR07MB8162:EE_ x-ms-office365-filtering-correlation-id: 72c11ab8-4089-464a-b85e-08dd524ecf53 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|7416014|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?wgx98kWnlZtJSI9fYaTV5wC2Sp+T6ga0UKGMzP0i57tsO7TyuiK9gJuqtT?= =?iso-8859-1?Q?AZlxgtWweLDwdUCOmGZ4CjsXbfe46+ykRSNw1q5jBhK0XEA/X2DASjH7q/?= =?iso-8859-1?Q?xjhPusVv9rxDX+t6ELMxd+p2ce0g9WxEjnA7HpV901bnZuz7rMTpDRMoMC?= =?iso-8859-1?Q?qj3HbvF3jpxAHRYWIv7P1sdzNK+4Fgx5rt+3JelMXesFoUXtqiNaNPxnbx?= =?iso-8859-1?Q?nML+6e9tpe3v4u1WbXBaal7voe7S+9PqbV25OtyBPlngTRiblKaVc4r9IP?= =?iso-8859-1?Q?nZThjIQ6ZD9wlKo6nhgyr/J2RrUCBtWKeX9Q9Uwn57UaUwN6VPy5RMxY1M?= =?iso-8859-1?Q?vr+fU5/tnYbg4Ub+p0cRLiGRoYbmoJ5FcdZWwExEZ5onRnQ1w4R3Nfqz9S?= =?iso-8859-1?Q?sVNqHnf50BiYZFomOO9x67I3tYDJFAG54DsyUJq2cOoFFEXnjzzheZwjOi?= =?iso-8859-1?Q?/iI53QffcP3vkM+8R7cTMw6iYdVYlf9/fGqp+jETcn8GKv/GY01R5A3Emx?= =?iso-8859-1?Q?vwLpjSyzCYSa0F/15BeTkpYbjSWyohgj+rRk6R3vBUYuzacvWX4++NqZi3?= =?iso-8859-1?Q?izYYmi71XBqG4alTqHD6Z6BHr+UIGJPwg3Ef+9p0nJt8DEVISUtl43cdyy?= =?iso-8859-1?Q?wpBr2XD01pZHmupIlXMcETHvJc9MEoA47gLrE1zKLG7VswAT/c0Pz0fuoJ?= =?iso-8859-1?Q?YVmEImv3mmGOXVwFwohCfr8ZiubpU0JkNGaSCpQwo86iASj0Cw9SHxGuzM?= =?iso-8859-1?Q?/kE+qscgQB32TTf0SEGCSoWL8uDz0cwZqZdurBIUqrzlLQQRe6fizk5fX1?= =?iso-8859-1?Q?lpnJEoPX7NOxfD3aw2YZ44Z6lA5REAHfit4a69BOg7Apn6tOtMxlUfGLFc?= =?iso-8859-1?Q?+3D7M1vLxUR4PSwxCnIuJ2QjAUjtmLlgvox+Q5QC0rpRqqAZfMWKATrSmQ?= =?iso-8859-1?Q?FN9B3X2sMKNw8S5OTlYuYtZgIWqZ9/55focSpHq0ypmhwmCsH+cDcc/jsU?= =?iso-8859-1?Q?+ir/VnON4PesSWjmpt074YFYIihG3Bw0q06CCKk+NvWce6RDuFjyRqytGW?= =?iso-8859-1?Q?GiDQ+RmD/+uk/IvCcUot/rkaBKueVsQb+XUMvXvaDQbtCcp5MaINDa0ppv?= =?iso-8859-1?Q?/iM81CivkH9Z5u1u4cb7lkTqvhwpaSCEpjmJFEKPyXX/c48WwGq1OnKwH5?= =?iso-8859-1?Q?2HtK1uSrsaJrMsNX2nDSdrJpk7+t+epmwX2Gg2DS14R0yXHHgiu/UF3V/H?= =?iso-8859-1?Q?lmDhPS13ATEIjsAxmUYvGPlaZR51Dtk0obc/5bxLr4ff7QwpHaIQzrUd9D?= =?iso-8859-1?Q?Au2Df7XG46a7FtSqa5upvZxXEPg3IjArPdn29yWs3JKXuN0Kol7oVXryfu?= =?iso-8859-1?Q?5lGIoMmyhpe00+JZ1HBlnTb1zuaoyF9CrId6kBIISJF4gkrdwgh9J8YO/d?= =?iso-8859-1?Q?IXHOZgVqnDKZy5zhpTHMnwmBetiJFKvbeKb3e19Q/ONiQt6O54gQlcA+X6?= =?iso-8859-1?Q?PLaWEsQ8J7ZVmSJYO0y0F+?= 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)(7416014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?gR6OEA9oBbz1JayLyaa2R0mOULJosfwj3fAUJXFHFJ5AwtWNB/TaN33jZP?= =?iso-8859-1?Q?f0tF8QMWplkrT10VGSehjpiy2MAmWnc2OtlwJ24Fd+UWgQvbZg19rWMXRJ?= =?iso-8859-1?Q?qIWZVy/LKyE/njwULcCXLvoZ5gk2a90FUARzCJrieVPt91r5AJtrwNQQ6A?= =?iso-8859-1?Q?mXqh0pfXi/ioJmfJHTJsqOHNKqRyNa/lj3WgPC72HmipiNEnqkQFCToMXH?= =?iso-8859-1?Q?aA9OviuBl2sC4HstP48CxLFGN/bQUqSh/4Nb0pV/7BNE1eeFF80rG7lrET?= =?iso-8859-1?Q?Ph7AybYpIoumh/WkQgr+4WFhyn7Tcmlf2brjRs0sCDgVo+Nr8UkCsod1Vq?= =?iso-8859-1?Q?koIJIPNtQdGPuGg1ZJq8Hjbp7lH/HL+87/bLUHwQBbgfqepFDuLaYcYr44?= =?iso-8859-1?Q?GAokA85TNuZCx0gnhFFXqpbWiYtvPJGBMno8bXy68hysfGAHIhybgQwQwW?= =?iso-8859-1?Q?yh6274NfH5nze+wDahhhYEuj14Kyhim9dVzce+zaNZuhpTSKRhn/Ck2IOJ?= =?iso-8859-1?Q?BF26Sl1nbFC84msVkpyEFDe+khQ71Q1JR8NYg1S/czLHFnS4IMTOPl//Y6?= =?iso-8859-1?Q?2IM1VP6AIPm1C6+78pxPwatrLdzIz3d12rjblMt+TvUrXvc0ye6ezzOERX?= =?iso-8859-1?Q?RQshzKqIifvK1MvROISP3Cxj0i44pxDvO0jAaaDd48YfV8Qb9HRUahkpYP?= =?iso-8859-1?Q?lFSBQptKM+NK47msduRab9e9A7Ozq5VPg9tS9feaqI5nIMvWXB8P8g5DXW?= =?iso-8859-1?Q?6clfL02+SEdiTQIJq9ZrMp2JkClvl/IFBK/G+75A7z8cVTFioWQIs3Iac2?= =?iso-8859-1?Q?7VXduwOXIDtmF9e+4wO2VqgJwglWAychMmeQCs3jSzpwvc4SUGRxraEqRi?= =?iso-8859-1?Q?BZajOrnX9shML1igTXYT/Kz4wZEx4OUGACKq+1zzPOd8U+mKfKaUXxqE7j?= =?iso-8859-1?Q?RGPLyqacNKnX2gPl5jF4gL9IvRBxEtk7OE+9mNVeRY4eQaUSp09eMSYCbe?= =?iso-8859-1?Q?N2xF5Rz1H7u/5v17N5b3/T0tiEYnnpqpS3VUhVEbv1rPZcCdlUw8o5sePJ?= =?iso-8859-1?Q?QcceEZymgelPbSZhK3yxvJP/Iaw2bfAXHaXW9O50XRuHzMOVkjEMkge2AK?= =?iso-8859-1?Q?4BpEdQWLK42CKodfaghn6PMf+D1BL/pCJtpYg1cDu0LBDYmkXa2jHigOp7?= =?iso-8859-1?Q?qyhrt5XSjT6y/J0N9nYeCHXKAqr+5YBdn87D6XBuealP/TRG8QrWwxkKB6?= =?iso-8859-1?Q?Lf4IaNvkAUi37QaajnQfMkqHRflRfqZjyan3pGNG6OBkpPknOriZJXZSUz?= =?iso-8859-1?Q?Q+7wB0n6wjL1juMPpw0Xdouxp3A/bEse1AMbm70HekeWq+3SVhxpxKf1yh?= =?iso-8859-1?Q?OLuLFkQz6ypLIsZXPs9M6ywmC1VBXiyuhpLrLlsjRXRJhdbUdVvHTtuMQF?= =?iso-8859-1?Q?pNQQzRSAo1CaQsvPk8LXkgNmTgECebAnig6LMVjFxbHINfU5bQ26J4ys+c?= =?iso-8859-1?Q?1+9KYZe3NTRsDoH6MHYBsiyPa4/7KQhvSI/YV5aRZoU6inSxqDMsPb9F4Z?= =?iso-8859-1?Q?aAUBAJjMZwiCyAg4Y5U3vUiWXnbAP3OY202UahmygJGe+7yeW15fVifZtb?= =?iso-8859-1?Q?WPePt5y8OKwFUOxtA17jXZ2dnDtJ2Tn2JLrNFxfhEOSpMRomJBRFGvLbr6?= =?iso-8859-1?Q?4YobTB9iMhPLSKmF7mU=3D?= Content-Transfer-Encoding: quoted-printable 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: 72c11ab8-4089-464a-b85e-08dd524ecf53 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2025 08:07:39.1652 (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: sxYVyasIsEZt4OdpijGTbKxSvv6cOogdNNxJehbsuKGQpT4oRJ6mq9OKpi/02IAzkU2LRxKPrDGj9BuhjEL6x/08H93Xq8PAL/Gp1n45DEduuYZq/Q/jcF8QjRdv5TTM X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR07MB8162 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=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, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1740125413686019000 Content-Type: text/plain; charset="utf-8" From: Clement 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: Clement 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 164bb22e05..be29c0375f 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -2825,6 +2825,46 @@ AddressSpace *pci_device_iommu_address_space(PCIDevi= ce *dev) return &address_space_memory; } =20 +static IOMMUMemoryRegion *pci_device_iommu_memory_region_pasid(PCIDevice *= dev, + uint32_t pa= sid) +{ + 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 !=3D 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 =3D pci_device_iommu_memory_region_pasid(d= ev, + pa= sid); + if (!iommu_mr) { + return false; + } + iommu_notifier_init(n, fn, IOMMU_NOTIFIER_DEVIOTLB_EVENTS, 0, HWADDR_M= AX, + memory_region_iommu_attrs_to_index(iommu_mr, + MEMTXATTRS_UNSPECIF= IED)); + n->opaque =3D opaque; + return true; +} + 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 644551550b..a11366e08d 100644 --- a/include/hw/pci/pci.h +++ b/include/hw/pci/pci.h @@ -446,6 +446,21 @@ bool pci_device_set_iommu_device(PCIDevice *dev, HostI= OMMUDevice *hiod, Error **errp); void pci_device_unset_iommu_device(PCIDevice *dev); =20 +/** + * 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 * --=20 2.48.1 From nobody Sun Feb 23 05:49:05 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1740125321; cv=pass; d=zohomail.com; s=zohoarc; b=VEE7fouR8cR+pzP2984ivCHosHth8h9+25SpwC90DsmMXKY7mJPt+rHvOMh/BVDZzEucqyVkrXmJMl5M+fBPEKHqEOCYZE7Ifz2bSwy78SNaL9zArVNZEB9eDrTXSp3l5zzXFfDT+gF/SZufvFq87PQdh++J/uW67m983RqgXiY= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1740125321; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=tEwTGR66dPbEcMAYnzlzJKlqMePdzrFYyuhV0CQRePs=; b=WVGzc7s64T76lVGYFML69clTFQrl6Vbg61RuUXyBVIJWa8SqSxMIKv86QmNdQUxwqHNwe37zY6nC5ZgBur7uGvfqevDpDSfT+73OfB1FYfCvwHscZexEVLr6YTdu6Czp/cMF9mPdIiG7ehwgZ9wE9waSaqRfh85Rgf68whZQI7M= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1740125320976373.2032752364537; Fri, 21 Feb 2025 00:08:40 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tlO4a-0004a9-Op; Fri, 21 Feb 2025 03:07:48 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tlO4Z-0004Zq-Lq for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:47 -0500 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 1tlO4W-0005j1-8g for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:47 -0500 Received: from mail-vi1eur05lp2170.outbound.protection.outlook.com (HELO EUR05-VI1-obe.outbound.protection.outlook.com) ([104.47.17.170]) by smarthost1.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 21 Feb 2025 09:07:43 +0100 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by DB8PR07MB6459.eurprd07.prod.outlook.com (2603:10a6:10:142::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.16; Fri, 21 Feb 2025 08:07: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%7]) with mapi id 15.20.8445.017; Fri, 21 Feb 2025 08:07:39 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1740125264; x=1771661264; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=jQBJo+yodEbohtpqnyWk2sHs6jgPdWVxFPw+yZeCewM=; b=DHM7chZ5JfqoXHNaBX4SXgBf+KBEfIJaHX3lZGRtY0Kqw+Iim5ELF0dy iqY0fp94qK4t7MDLe7mpRmrSJoBwd9exqGJ6wK+KeFTWcDL81AOKhAWi0 Em4VKES4Fcj00sgUeHCxCZE6G+szn04Ef0DszZtMKHaO8kR1czZVF4/XP SyogS5o8BRxtsvH/KA/szFD9WPoxY5erHjSbzSQx+3qL280C0YiR57GJk B3XO/iwxJTMXvgNPPUMhKoVhPGKmwG7+nkl7luxYngrbLYfmWzDMfP/d1 X0q5Yf6PPWL3ORFKBeSkJoQkZVycXP6WOQbXYFN6bFbYvI9ILQSFlVEvm A==; X-CSE-ConnectionGUID: dgkE/Qh0R7OR9c1FMiCtUQ== X-CSE-MsgGUID: zytwl0OpTE6oCBD05NxAQQ== X-IronPort-AV: E=Sophos;i="6.13,304,1732575600"; d="scan'208";a="31394138" X-MGA-submission: =?us-ascii?q?MDEFDkH2bT6SarVQZ+WBcdNP97hKHLrditVSx4?= =?us-ascii?q?H6/J2ZcdeIiQJ8DnDl08M+ds4X0xNvg3E365DzJfWPdvBYw8IlT9m1Hk?= =?us-ascii?q?8IwzJoSkHZcSS+DHauiEftGvftV0sn63gTnw8MGUFTNNpXR0EdDQBan9?= =?us-ascii?q?3JpBTl3au/1uKl3ivS1UqorQ=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RjvQD4lKerZxMPLZFw1FF2a634B4bZy13kA0kT/wmm0ZBJJ0H3pislgW3/2uFRCFcgpzDZ0LuHT6XuSBnXoz5nzn6v4uc2x5Mx4cO6RpjwedwwFYvjSKfVUv2DkQcktWX3As3jj166mWGwgxmhmoLzZAvfbKHGqcOsyYfrPUEtL6ENPzaT1hkNcwEU6cuRlbSe9QQBfEPlbPAkPWb5V4jfYSvCEdKWE6S6GYTt6Ecq9Ff8rJgvS8wwRFpL2odootWvubBQmZ9VaUbPBsI9a4QRVwiVvT1OkfMJBj1HTd7yn1KKm50wpTZZSanjvfPZAASDUIHbiSoQ6rk4P5H5Wmwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=tEwTGR66dPbEcMAYnzlzJKlqMePdzrFYyuhV0CQRePs=; b=imXAl70k4qXKyzgoLFf5H8xsvxv7FnFn2ukXwKZQnKg2jxmYaGUKVD2EiytaA5Zb7AbUMQ80hZmACEIupiXe+ilra5hqTQWKJv+iZ3m0GWy1JTYsdPHCCZzKWqXSQCg/Nztu+DCAirH3pRykTLfljy1pfG4Jy5/lNzYYYo5jnY/cZ21mGbUT+BjUXZvrp7pbsAHQaMDnEtbPb/y0agCQcW4WCbbR0KYj6EdVTNhBdJpqeZn98VK4lzZWafmlN2O2XvDfE/Ff4fwEt1RtH5RUR+ofQeLvAHTAkHuH4uXXg1kQARcAVQssvoE2nPY2E0eMLzXVd97GfsrmZAWKKBqFPg== 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=tEwTGR66dPbEcMAYnzlzJKlqMePdzrFYyuhV0CQRePs=; b=H5lqou58CEkFWEGC/sVE/I1f72O4+kMC8tBG2oIEYJ+Kwr1GEyuYAzOgaP/PyEwQCIRUX6ukBYgb6VnUqfIrnUA5RbjN6yH2K0Arys8NIXCB4I/aUbRAZ7ZPUhjTzyYt0FN9e9EVz45BpN/wPJQSuu18LucbWt5bWwGQKclRajl1jeQVI+d1HQ4BEFTUG9fusi68Dxe1mh7p+Pw+oVQRAd+Z3Wk2a34awwTmNc9p7MfAzWyfHHd4kPvTF4U6+t4kdmyxq06L30baRKrahsBfUwGnUvzFYBQciU3k6PzNORfvWuQKDA6g7btiYMNmBwIf1R9GAb7wHpaLtpbOUeUDnQ== 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" , "tjeznach@rivosinc.com" , "minwoo.im@samsung.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH v3 13/19] atc: Generic ATC that can be used by PCIe devices that support SVM Thread-Topic: [PATCH v3 13/19] atc: Generic ATC that can be used by PCIe devices that support SVM Thread-Index: AQHbhDetZKXTRy7Vike9FBTg/yfIrw== Date: Fri, 21 Feb 2025 08:07:39 +0000 Message-ID: <20250221080331.186285-14-clement.mathieu--drif@eviden.com> References: <20250221080331.186285-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250221080331.186285-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_|DB8PR07MB6459:EE_ x-ms-office365-filtering-correlation-id: b7e971e6-edeb-4ecc-ae1a-08dd524ecf89 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|7416014|38070700018|13003099007; x-microsoft-antispam-message-info: =?iso-8859-1?Q?giXOulIDIkhiWb1TO7h5XMSGS5xgT77DwMKokM/vZ4pvIj5KYqx+HtRoc2?= =?iso-8859-1?Q?Po+W59L8CZKzMU3TxgPLfxJVgOPWaCYQuekB0xYMc/3S/mQBGSve1jqaDs?= =?iso-8859-1?Q?HjnyzZe7Q+SBMJF0JBtTCRnQefPNoeogb2Ey/PhJuFemUaHZgqkXkji/HP?= =?iso-8859-1?Q?Hj9DMOvEalCZ+dwKB52mrtxjOVxVaQfZX3QcgLZ5yX8yc9vGwV9Okcsycz?= =?iso-8859-1?Q?K4/FmWo/3CVK41pWZElB/Gk4N45iDBZKjk6PyEi9xXmfnRms0136soBJzS?= =?iso-8859-1?Q?7i40NwTJj4Q0q8joX9lcn7MEQIBawOaRmuid461QhsBD2Gk6IZ2MkTNwBA?= =?iso-8859-1?Q?qn9T+9EY2RxX7uWWffZXzTD4mAYNx6Ti1R4KVZ1WaI8AcTmvPz0C0vU1Rt?= =?iso-8859-1?Q?bjkD5PWFhD3MdEzlySNARtbB2WjRZqNEslTMdDzgkMoxWPW+2KfGcRxq9g?= =?iso-8859-1?Q?7Iuos9qEfLQ159sEGhRgIF3lAogziBUbnjbQwTkG1wdI7ZszxfanR5JKd2?= =?iso-8859-1?Q?kbybzo1H2pgLEid28CQ9NQA8KzLaNRRXgXso2lz5byEJjb77jvql1Yt5Jw?= =?iso-8859-1?Q?DYkLSA2OtEJRpIZu0sQki5rYxpf8gz9RifJLClrE0AfXAYua0kVbkN/252?= =?iso-8859-1?Q?ABXlhhGswfl4WnnhTbTIDNCaKT2CdE0lFU0WCHR89SdSPebmjsfYEPdx9H?= =?iso-8859-1?Q?BHABqju27TSoP8oUuIHvYBi5Jyi2SfqFZFdmJk1Wa1R+/mB+RYqC9l/0uJ?= =?iso-8859-1?Q?7AZssLl416I8GGeunTqAjCH/9/VSr9q2TABFOUBtTOhY0bO/YyrnGnyPKq?= =?iso-8859-1?Q?6jc6GFPkPimN/X8R7if9pK7d+JmUtoWwQdjOhFtmYsYRtP9Ba2VIFWxFFv?= =?iso-8859-1?Q?PllBMzW/jfsoWfE68ZTj/1bMCzWa+5U2hsG9Tnge2AONNmIQ8AGJZgo8GM?= =?iso-8859-1?Q?EMVD9x0TGZWv8Leymz73fXbDoSooFMxj69Y01O5FgfMwaQHI1LTdDdP3+X?= =?iso-8859-1?Q?Uv2SVFACm6gbZRLcboP6/qwRhphyj9jHn9ZZzNNVmzJoKV/f5vFtcCWrp+?= =?iso-8859-1?Q?Hf3jcZev3EMHzkLUrZXW5Wga/VaxmWa1iyukshPDnoWPxdDoXiDUqkIoJn?= =?iso-8859-1?Q?NALytA3KDtH6yEKOZ4ujOkAAWHSb6jx8B7Xfc5NkErsa6wyr4HmWq4dQ0W?= =?iso-8859-1?Q?ytcWBOmU8VkqGlIZtgUfOjeKGQdiWpu+oXx6iQnaxhnOvAZNcV6ARCcD0f?= =?iso-8859-1?Q?QH90TATr9QVU8+76hNCPDFhB7Le7w/W6WR39LrCKaz6AoHHIA+82O3DL1r?= =?iso-8859-1?Q?fMW9vZR9F5UFeB5ZtQ9Xv01/3AaFLevcEuIt9/TdhaUzQ4MgMr3WPKqdKF?= =?iso-8859-1?Q?HxRmqrbDgbVF+n019DT94dQo+pansxdCGRDoRELTPqOOdFkSsAblcIMwqF?= =?iso-8859-1?Q?+OS6WIByX3kOFLBLhKs7NEQR/tFhCvsaK/IXCQ=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)(7416014)(38070700018)(13003099007); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?0Ppy/qKlNch6pqmppkEpbHIRehHUUthYAzmJXMtipEg1XhlST11/3Ikmgd?= =?iso-8859-1?Q?Oc6IssP7GhYQX8i4nwUl/gb4vu11WnqtEy/d0tpG38vMM0UhSfyN19419W?= =?iso-8859-1?Q?4PcBdFZIB2ZRVirdLwDGn9R30yz80pcPY0KXEzCZFQ7TUgZb4PcneW5Z0X?= =?iso-8859-1?Q?x09pNFuqg51wgYfoOty9WqMHYHvJiv8EvYS5lpZZPtiNRQlRUJNaXfkfnc?= =?iso-8859-1?Q?muczN9PIYwYTl4F/S0OyVzo3hOPXjW9kVQm3Vp6blaAtcybBIYyuTzk7Un?= =?iso-8859-1?Q?WR9iq/WmQEpyAqaZrmVtO30p7A79z7/5XaAXwDwPloLYre0b9AM2b1UNnF?= =?iso-8859-1?Q?1bEPMrpujcV4D/4KeZp8mmxL0qVG5ELFiHo6Q86V/PawT7cXr8KoECoFlD?= =?iso-8859-1?Q?RAXyZpvDltbq1YKcmGp64eYpDuZZSvcZer8QFDjKKzb1yIfcJbB8jd9c+4?= =?iso-8859-1?Q?PyqsGnAZ7qQEWJaN6+Bs2t7kB8KRslc97CHeS8/6Tpi3G4iX/bkC0cp6VK?= =?iso-8859-1?Q?Eya7rP5kZ9DtR5rvTOYaDUwzjZhYgd5eM3gqK6GNxnmle+nBY3pXBrA0K0?= =?iso-8859-1?Q?wyucfunsDlg6brZBAB5nkL3iASJmrD3Oi1vggmQoyzxo2fAYIVljo/xE+q?= =?iso-8859-1?Q?pkUAmsWhaGH/m0BKf9U+lop0pP1yxrfZFhkHpSZgBoQ1lPIfVu6GXMkEWH?= =?iso-8859-1?Q?sSQR+UC2ZyOKeTkjQkLKYOwIqaxDR9G4BzKoopqesG14ihZm4hAlqggdoq?= =?iso-8859-1?Q?eLN5HEiNtqDVOvgSW7lCHaHX/b0ELkUwmuLJc0nmlO1pMONCK2GHmVXD9t?= =?iso-8859-1?Q?41d8pVjawZLcExfIAZNMtDmBBGzQgOGKhF8TUk0xFTL8cpB6tReNdL965k?= =?iso-8859-1?Q?625JJ9TQkKpR7nkKNcFw3BC641cqlU00J4tJ6K7o9KBTnO15YkQAoWeUl0?= =?iso-8859-1?Q?u+di0V6S7317DHaQ5peCI1PZYst4B98gpPvX5nmNthMxWOnpbmd5FPSIS3?= =?iso-8859-1?Q?4IOaXj6Lg4hZxqO/DBMhMaB3GQ8BIuWxVLy8tUgTdV+c80OeFv7bDi/q1G?= =?iso-8859-1?Q?Tbc624a2fZDLNoZoiYdoyiIOzLfewvZsrhazWJzz2fFwSRAfd2gqJbo65k?= =?iso-8859-1?Q?Z1OhE168lHwda4XkNi6Kk99AqW6foBAvFISNTrZBLBPgiRa8sKo0BWHBEm?= =?iso-8859-1?Q?4fZKTmyIAQ+NbS2A2TEdqWQ11/Xe0MG3bpSskQLOUh7pg69oHwf0A7jDoj?= =?iso-8859-1?Q?B0BTdzBwf5O8Gp5fWfeBURisJGfGEETLoKQ1XNh3by28ZLiV9KGpM2jPRC?= =?iso-8859-1?Q?sZAjv+20wmpNuCITD2uV2Bic9a1o05v4yyJqrRGxNkenx6hY9HMm3umsVH?= =?iso-8859-1?Q?wR/Pv/orP07D+5GUStSgQjSTP/wnC0vMD/LmoLxVt5g1Xa5KJaRb+guFBo?= =?iso-8859-1?Q?bZPV04fJT+ABCd6o/ecPjI66M/DfLcl0RRcygN3879qXWi2UJK2JlPdkB0?= =?iso-8859-1?Q?zp3evpLaIujLhKfCziHb4yNRowEvkOJ5ShReQNBy7RLpAEji067mSRrnC6?= =?iso-8859-1?Q?2uwjRc3QcqhGeGM2v0BMAJDX7bpavFfl2meXcn/CXxNyXFLt0GWY2Zaypa?= =?iso-8859-1?Q?DKeXtBtNnYsqK8RuLaHMPRvrGX1sXbvm636XcQv2mmAFxIneMilKMf1CQm?= =?iso-8859-1?Q?/W9ttDRV09d6aZ9EA+A=3D?= Content-Transfer-Encoding: quoted-printable 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: b7e971e6-edeb-4ecc-ae1a-08dd524ecf89 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2025 08:07:39.8773 (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: YD2wsi/mprUdWiv8+o24Rh8cJQS1dQLI6EfMhwv+Ti0zcVhaJvqeR5c5pm50KnJBQq8+yrTjwUJmxS1dfRet71Bl4ydZ30ZC4lIfEaIKuicNDd1X8u4AoepHD7vKZbwU X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR07MB6459 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=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, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1740125323509019100 Content-Type: text/plain; charset="utf-8" From: Clement 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: Clement 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 =3D=3D v2; +} + +/* Hash function for IOTLB entries */ +static guint atc_addr_key_hash(gconstpointer v) +{ + hwaddr addr =3D (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 =3D=3D (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 =3D 0; + while (val !=3D 1) { + if (val & 1) { + return UINT8_MAX; + } + + val >>=3D 1; + result +=3D 1; + } + return result; +} + +ATC *atc_new(uint64_t page_size, uint8_t address_width) +{ + ATC *atc; + uint8_t log_page_size =3D ilog2(page_size); + /* number of bits each used to store all the intermediate indexes */ + uint64_t addr_lookup_indexes_size; + + if (log_page_size =3D=3D UINT8_MAX) { + return NULL; + } + /* + * We only support page table entries of 8 (PAGE_TABLE_ENTRY_SIZE) byt= es + * log2(page_size / 8) =3D log2(page_size) - 3 + * is the level offset + */ + if (log_page_size <=3D 3) { + return NULL; + } + + atc =3D g_new0(ATC, 1); + atc->address_spaces =3D g_hash_table_new_full(atc_pasid_key_hash, + atc_pasid_key_equal, + NULL, atc_address_space_fr= ee); + atc->level_offset =3D log_page_size - 3; + /* at this point, we know that page_size is a power of 2 */ + atc->min_addr_mask =3D page_size - 1; + addr_lookup_indexes_size =3D address_width - log_page_size; + if ((addr_lookup_indexes_size % atc->level_offset) !=3D 0) { + goto error; + } + atc->levels =3D addr_lookup_indexes_size / atc->level_offset; + atc->page_size =3D page_size; + return atc; + +error: + g_free(atc); + return NULL; +} + +static inline GHashTable *atc_get_address_space_cache(ATC *atc, uint32_t p= asid) +{ + 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 =3D atc_get_address_space_cache(atc, pasid); + if (!as_cache) { + as_cache =3D 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 =3D atc_get_address_space_cache(atc, entry->pasid= ); + if (!as_cache) { + return -ENODEV; + } + value =3D 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 =3D atc->min_addr_mask; + hwaddr key =3D addr & (~mask); + GHashTable *as_cache =3D 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 =3D 0; level < atc->levels; ++level) { + entry =3D g_hash_table_lookup(as_cache, (gconstpointer)key); + if (entry && (mask =3D=3D entry->addr_mask)) { + return entry; + } + mask =3D (mask << atc->level_offset) | ((1 << atc->level_offset) -= 1); + key =3D addr & (~mask); + } + + return NULL; +} + +static gboolean atc_invalidate_entry_predicate(gpointer key, gpointer valu= e, + gpointer user_data) +{ + IOMMUTLBEntry *entry =3D (IOMMUTLBEntry *)value; + IOMMUTLBEntry *target =3D (IOMMUTLBEntry *)user_data; + hwaddr target_mask =3D ~target->addr_mask; + hwaddr entry_mask =3D ~entry->addr_mask; + return ((target->iova & target_mask) =3D=3D (entry->iova & target_mask= )) || + ((target->iova & entry_mask) =3D=3D (entry->iova & entry_mask)); +} + +void atc_invalidate(ATC *atc, IOMMUTLBEntry *entry) +{ + GHashTable *as_cache =3D 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 =3D ~(atc->min_addr_mask); + size_t result =3D (length / atc->page_size); + if ((((addr & page_mask) + length - 1) & page_mask) !=3D + ((addr + length - 1) & page_mask)) { + result +=3D 1; + } + return result + (length % atc->page_size !=3D 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 bi= ts) + */ +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 780b5977a8..5e175ca665 100644 --- a/util/meson.build +++ b/util/meson.build @@ -95,6 +95,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')) --=20 2.48.1 From nobody Sun Feb 23 05:49:05 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1740125357; cv=pass; d=zohomail.com; s=zohoarc; b=MxSUUxCoizwYMyxx0kEMyu6tlzAR/fBwZmPD5VdFLArLnjBHTXlBc+uDeo2duIewuA+xeepLBNhwQt17sdPVaH0sn7blPLa0oADeI+HbEYHnrnRs2nOel2+fGjxPfcKWOT4bzhJlBMbaf/O4LWjFHdnAGzpNjQV49lrT53o3ZR0= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1740125357; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=/agh/ytGu+2jrSulAJnbz0Adp579Lwlc/FfbJbH4Qww=; b=fnQ1nqcNvW1o9Cxm0e+pbsCjStGDqgSpDrjcTKVmCMKJ5owjZ56NLCp957xb0UCOGiCyhXxEAtrXDxTFiHNxhqqE/WNPwnCs8VrHWdPMaV/BoTJn5oIE6cOGdgraADNtKOnTTGi+xtT+kH68XSBoHOIYI1ABkA1QYxP2I1gmg2E= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1740125357891577.816417244351; Fri, 21 Feb 2025 00:09:17 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tlO4e-0004bg-4u; Fri, 21 Feb 2025 03:07:52 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tlO4a-0004a7-JX for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:48 -0500 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 1tlO4X-0005ko-O1 for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:48 -0500 Received: from mail-vi1eur05lp2170.outbound.protection.outlook.com (HELO EUR05-VI1-obe.outbound.protection.outlook.com) ([104.47.17.170]) by smarthost1.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 21 Feb 2025 09:07:44 +0100 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by DB8PR07MB6459.eurprd07.prod.outlook.com (2603:10a6:10:142::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.16; Fri, 21 Feb 2025 08:07: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%7]) with mapi id 15.20.8445.017; Fri, 21 Feb 2025 08:07:41 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1740125266; x=1771661266; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=oA3KYmbSWy/K+XMLDvDgQtpvoImsgYm3m1tPp4EH2n0=; b=QZHvsRpUfW1ZNbCSIRY5tL8xWQu7tOrQQHNv6DIg8VYofmjlo17kQ88V YeNGSoNfLPhPZ7OIpWASPr9Ia+VpNBpylPZtvCeDEuoV4IIgR/n+4kHQj 86pP6hVZhLyZ08d+PkjQne0DsV6CEh+y1a2e09JUx7DGsyq4jr/r1Ww0Z g49BFpCVoHZ8VuTH+TKy7UeUq8F4PctgXvvt4q17arMnrGQJb4mo+KVUS FHBUQENN/qioRv4kGfTLg941LO21NRJsRQY9jAnNlH/AMIGPRtcNnmKTK KsyAOUMbKd0ELkKmAJv3oVi48hb47ijyK3sWv1C8jeKpdEUG95WtT995V Q==; X-CSE-ConnectionGUID: 55hloPUSTQClcBjDWfJ82g== X-CSE-MsgGUID: ZIT6NtYhScadPcP9j11jzA== X-IronPort-AV: E=Sophos;i="6.13,304,1732575600"; d="scan'208";a="31394139" X-MGA-submission: =?us-ascii?q?MDFW4O0aDTiL9gxNcaIHmRyeclc9yMOUbYDmii?= =?us-ascii?q?sDvvNH39AiPYSgU7yF9euH5lAJAa1FAAHKplK2coB626ygvSkQyArnyR?= =?us-ascii?q?uhSMb128ym2n3rOkrXLOKE70Wz2iIYrqZn0QfY/wCyh46P11r97Borc9?= =?us-ascii?q?Hd3UWKwjzDMVF1DZ2JSOn38Q=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SJhbVb8//KwnVB6Ktp6IAthOetYTNW1aYIZWnaWogqVZ6g9cyx9QW0gQF0LvO6LCtSpcSG4qOtbku6lbqKsX4hieZNL6tD1Phd1N9KGn8tTcgYjQH++qbbKtWujC/Y48P3VoHp7s4M7QKRhZHGzZ9Hs9mLCBlrs/BrMdAIpIIUv1ILwnOQ6zZRkGfUqTA/zSaAP69imLuqZRPGCi+vA8nlRFfPtE9YJWySKimMhwoklbH42Ux6i8fwDzvU3PBUyc8KmJC3L2vso1Tx8r5hHMGxCMF+W+gaESmH5FPNcyHnRTn0Ky27npyDPynaodiuR4S1ulroxTfRdR1s37S1Jq9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=/agh/ytGu+2jrSulAJnbz0Adp579Lwlc/FfbJbH4Qww=; b=fGCUwNoyJthXpD4y1MafWKcz1vCA/9Ru/tjsk8Uz2X6ltGLHEuAUAOv7e4Fa8qS0K6lbWA55YfXRFLfqszpVurnFBG2mIN5XZ/egmyu6JhqMQXcoOFP0RLdDq4+MEyKTtS92B1xc5/It3PiTkJeYevym6YZ6NMfXSH54kRQ9BLRdu68M/CNqkHk2oxGlmphzlLVoEvrbeFHEnY3Rn8NzgjyTSbATaouQaZZcnnLCQWPK1OEn8BO52Pebw7F7j4U9RBWItUx+YF83p+FmAeOFtUvY/0hR4ZDlzZGyz12huDHCsYC8fsbK8tz0lt44H/3V/wGVhs9N8J8oRpm6gwPpbA== 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=/agh/ytGu+2jrSulAJnbz0Adp579Lwlc/FfbJbH4Qww=; b=mwPLx1R1q7etjoYeUgckrqSsI9Ow+9qYVkhl7aX39zSB+n/vz12Nye07mnwyo6n4QS+3N4bPGW0dhiBNCptYKCcfdc2jpVKlT/keBoEIViVH+TzvbRPagfZdNH85dN4/m+sS+Qc2Mait8asEHvHKkfESeCfcNXUTewOygfmgyxc1NltvcSy7dTPcP1gymkG0MRKX00JqkGg8YApCIUQK7/mUK8g4OcpZUpo6v+mDRzdDEJOvsn3DBxjLTdkXZrOtEv5x0sGqvm9p+rW5LGFwfzkey6bZx4t+wPs8beT6nC3COeryLqk8JG57H7oTPfjDRo10C3CTp09xZFy7j9rprA== 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" , "tjeznach@rivosinc.com" , "minwoo.im@samsung.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH v3 14/19] atc: Add unit tests Thread-Topic: [PATCH v3 14/19] atc: Add unit tests Thread-Index: AQHbhDet8wAXEtvxo0evRDLt6giiLg== Date: Fri, 21 Feb 2025 08:07:40 +0000 Message-ID: <20250221080331.186285-15-clement.mathieu--drif@eviden.com> References: <20250221080331.186285-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250221080331.186285-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_|DB8PR07MB6459:EE_ x-ms-office365-filtering-correlation-id: 59c5efbe-d102-40d6-1233-08dd524ed08b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|7416014|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?gfq5nWvLWhLOdEt9IIqpsUS7g/1MCybXdTDnZo9Rys05A571xRkWkCtaXq?= =?iso-8859-1?Q?RfOO/fRX5er65P0qBFxxyg/yiJUk+qQmjzqLIkLtO/HXDFoB+7E1kGQVoK?= =?iso-8859-1?Q?h2UO1bCEjb6sBuN+n37OBWm5tlSt+g+vWFeWRcZI1KeT3Rlk0qcym+ZoxQ?= =?iso-8859-1?Q?JphZX9RLpAQoYNdmzyhNskmFf+Bsg4QP051XNLWIzSyBdej/gFdGt2jMOv?= =?iso-8859-1?Q?Wi6vLHPd/uNFoBVR0Ms9pWS5wan3Anes6eaCFAcZwsjDzg7eLhV2+GFi8s?= =?iso-8859-1?Q?S9Yd/L08g/69bX4uaWQVkPeAf1ee7QKPHCnn39Ep8OgpQ32W+MbzoBqL/r?= =?iso-8859-1?Q?bH3G4GlVNmGv+f8qTEOFOhLesdTWPyTVrBQysN5cIBHeWBUu5Xj4zAlkh6?= =?iso-8859-1?Q?khhthJimnR7XiQEfPNwKhoalH30rzZ866KIqeu/4NtrOsy4c9jRDFJxUFO?= =?iso-8859-1?Q?2hZ2YLafmemZqXX1MHQOcHtBfilas5Of6bT1EW6X9qxO8dl2V+AxNMeEfN?= =?iso-8859-1?Q?jwdbMBHXHPthe3qQieKffhhs0PY5tncaeAF9hbykWTfzqtknitNJbT/aeZ?= =?iso-8859-1?Q?M5roil2T3g3uB9DUb/lPeuK3f9Dy8GCagUZOUQ1viOn8fIW5Ur0v4+BSMV?= =?iso-8859-1?Q?lTMCgW7Dxr3d4nPJ/av0S0ZWbjJ7xRYNJsDU7F18E8ZxeOx/MqGLxj/pdc?= =?iso-8859-1?Q?pN4ejonSWk67+ImNTHIPKNwsXrM3de+1x0TKb3D35BtD/NzvsP+dQNRgw6?= =?iso-8859-1?Q?FW3RbDfG4GTaoIdQakL66UxavpSsqI4W3UtPVbieNhoJy+zV0YC8mtfMtD?= =?iso-8859-1?Q?M27IuGfaM8iOG49qfzP0pNusqSg506lNII+fdg0gTahCgsBeP5UnZc6qIj?= =?iso-8859-1?Q?rdIXc/EVH/xX5IPYpAN2RSAX+0aHY8wF2TWn29ALaTdqZrxWO0wE0avtHq?= =?iso-8859-1?Q?FkMNxS8AyJHlBjHheDo8f2VO4yYcQGb24abZibgJ1kuAvG4mZhJDAMhnLi?= =?iso-8859-1?Q?SdrK5UgiI6icnmBOAgUDHa2PGNshd7drIo2emxHxGnjer0MuNSLyD8VKnj?= =?iso-8859-1?Q?4pgMHGLCt2WlYob0PqOIkHlRUxR8jtny/IqTa/n7FhGkuvOxeuBhe6EaMI?= =?iso-8859-1?Q?PVisb60Ndxq7E4XXA90in85yOloMVxIAvDkcZxfjg+QvcVSnw7mT6WBTzD?= =?iso-8859-1?Q?T2AnhAANG9VSm1W7pNs32QRx1EOu+mXnxvghcAbPLR/q6CeQ5TmSYgUpiV?= =?iso-8859-1?Q?8xG+ERgrzjQGZkxcP7LGpNoq9ztvBEM0iW06j670wV1Gxrnz3JJovOXlzN?= =?iso-8859-1?Q?9Lc7RhmD2QwL/du7nwsnhx6q70diYKQSIzEoX3Lx4NFKhgEGUpQQGD7XtA?= =?iso-8859-1?Q?8rnxsk15oL6j57pGrnAufZR0pHuVp8kO+4tQ0XNrNShEIFeJGxmWVkFy2O?= =?iso-8859-1?Q?STK+7rXzCi3O5towq8Q/xuclkyK80MzLD/to+g=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)(7416014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?6jy66aruHy4BjGl/5UzIX/hst9ZdNkTx+8bAcuzEDoVOJ8MAKPW1R6EJoj?= =?iso-8859-1?Q?6mOHUa8e/zTPpER6awgHaS8oKxjZBuV4NNozx/HvkIZxJHSuo2zcjuvMfm?= =?iso-8859-1?Q?IfJigZ1aTqajUabYHaouKq2qsSNUEd3sQuWrbsAQaHhxcOc5rnNB+G4FVL?= =?iso-8859-1?Q?NaZX4Kfvc2Ei9lm/saFbiv8h9JC8ip7hMWfA704mpGPcvJTNVWWguX+E+P?= =?iso-8859-1?Q?8YLYJ7nRjdgZ1ySErs0k+wm6RmCztiRsWbVC7TE/Qf9/1JQHTG8x4d/D2M?= =?iso-8859-1?Q?kX+Q1lcmCliKXLTAZq2QSZxewXJ+rhe0dUhNBXgf/mg7KSIlolNRVRFmSf?= =?iso-8859-1?Q?0mDctGCUyjH85vSxnScD/j5CU4Sq+pDYkl/2Uf37Gt0Yw5+ZNL0PKyYA19?= =?iso-8859-1?Q?4wyDJENQ0pQtMQQKFytpZ4GDgkCVzj9bIU7CpExTIcGwZq5UtaScFFGh6M?= =?iso-8859-1?Q?VF/NFehXQtafz88kQ8czPtwMLyIk4xktuShGCfXU6QD0wV3Koib4Y/DFAq?= =?iso-8859-1?Q?/sNSq51kKa6v/15hdKaOg2/RT5ryqcw7wkB3Ob7M5ItaT2T50wS5OyJiKj?= =?iso-8859-1?Q?R7cai3/xODERpP+XyYPYRKTQdUl5OKJ3IGyo1KtJOlN6byUu6+8VHhSBmV?= =?iso-8859-1?Q?WRCUjZfiHV2NqjVG0G3t6cmUnxNcVs5GEcS7Nfj9Je7zwuoEryLT1mf6s+?= =?iso-8859-1?Q?uUgGXWKiQ2wFEgHRJpyyOllNs43an27uzcXkcj34jSGgRrlzO1m3Tge6lz?= =?iso-8859-1?Q?Up8T/zqkPXYGRy5Uh9zD4AYJNJnrOga7+G+wHqtTLpYqDtiSXftO2gFjYx?= =?iso-8859-1?Q?/wfyNAAQbipbWdfpetNSt0nhIdK931lRIEG3Uf/eOYLghX1jhy1cdE68En?= =?iso-8859-1?Q?qw0Jsa2t09ogdqn112QID3eWGoVJs2qH8cuYRTLm0Mt0R3xt2N2UB7WRdy?= =?iso-8859-1?Q?6Lmy/yQ5gVel9OAGQZWD+cIWRgCzgnQflBOMxoEVeimGkGpfFP54NbJVxs?= =?iso-8859-1?Q?mMSX6A33rJD7JfpLn9HK03KQnB2vl5K1ymVUaiUxi9SKuhQVcXs3E9uEZS?= =?iso-8859-1?Q?6DZur9RopnwlzlFbv0vWdTGOyCeQyNlIkVmmymx9ugiIXAT175YGdv/KQz?= =?iso-8859-1?Q?AS5jibriDs+HcL8LavaFgYaQDSwu4R9qLJag1W0IT0aBECITy2wsOFRFAz?= =?iso-8859-1?Q?H4y067uNnWWUbqKYrjd5oGf2sNBrA+6vUJu2+2gOewofOr6IHiBfJH8yTJ?= =?iso-8859-1?Q?xe+0JY61xRRk6Vdm9TLrsv6XJsX6yBpiN+FZzPPlxJIaRLSreluBwV2UrV?= =?iso-8859-1?Q?/b/L9Cuu2XAqFV+2F1irJBdKKR10jZdeCXbPfj62azqw8Dce+DgIBvXajr?= =?iso-8859-1?Q?6iUlNnRXh0yLVomqDZ627sMX/GHCrHtrDUJNQfn8rb6hpE+0uoxZ82N36j?= =?iso-8859-1?Q?g8fbX4LYYCLHQBkoMtUyQt3y+H8nrrjQVoQTMbDaOcEO430YFuTYgZ/DV2?= =?iso-8859-1?Q?ys34QDg1naoNh7XWUsa6cGE0k7FrOUdtIlWoOt9itfbiJAjgUqpb1d0WHx?= =?iso-8859-1?Q?uHrcmryyEwHZ81tdliQFSDzaMRi4dkm12Cq271WAYiGLRz4qaS0sQoXDay?= =?iso-8859-1?Q?swc5WcjG+hqTQOEEUDTliSt+yH/L9PXJ2WT9u4bVWaCJmaMZJoTtnLSSd9?= =?iso-8859-1?Q?0DfOYP1rFScozyOheLY=3D?= Content-Transfer-Encoding: quoted-printable 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: 59c5efbe-d102-40d6-1233-08dd524ed08b X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2025 08:07:40.7266 (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: 0gYI4TXqDTIR/BeKHssnE5Fm58s6BVJqxg0W5gkJ9ysO5UxkCRocXA7n6ANp23XHogY7WHS36fhPl6CamkOYFpojWPMLf5+XtpZUmJZQHuWl7+0uI63/tJeZbpPb8I3h X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR07MB6459 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=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, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1740125360672019100 Content-Type: text/plain; charset="utf-8" From: Clement Mathieu--Drif Signed-off-by: Clement 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 d5248ae51d..810197d5e1 100644 --- a/tests/unit/meson.build +++ b/tests/unit/meson.build @@ -48,6 +48,7 @@ tests =3D { 'test-qapi-util': [], 'test-interval-tree': [], 'test-fifo': [], + 'test-atc': [], } =20 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..0d1c1b7ca7 --- /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 =3D=3D e2->iova && + e1->addr_mask =3D=3D e2->addr_mask && + e1->pasid =3D=3D e2->pasid && + e1->perm =3D=3D e2->perm && + e1->target_as =3D=3D e2->target_as && + e1->translated_addr =3D=3D e2->translated_addr; +} + +static void assert_lookup_equals(ATC *atc, IOMMUTLBEntry *target, + uint32_t pasid, hwaddr iova) +{ + IOMMUTLBEntry *result; + result =3D 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 =3D atc_new(page_size, address_width); + if (atc) { + g_assert(atc->levels =3D=3D levels); + g_assert(atc->level_offset =3D=3D level_offset); + + 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 =3D { + .iova =3D 0x123456789000ULL, + .addr_mask =3D 0xfffULL, + .pasid =3D 5, + .perm =3D IOMMU_RW, + .translated_addr =3D 0xdeadbeefULL, + }; + + ATC *atc =3D 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) =3D=3D 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 =3D 4096; + IOMMUTLBEntry e1 =3D { + .iova =3D 0xabcdef200000ULL, + .addr_mask =3D 0xfffULL, + .pasid =3D 1, + .perm =3D IOMMU_RW, + .translated_addr =3D 0x5eedULL, + }; + + ATC *atc =3D 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 =3D 5; + static const hwaddr page_size =3D 4096; + + /* 2 consecutive entries */ + IOMMUTLBEntry e1 =3D { + .iova =3D 0x123456789000ULL, + .addr_mask =3D page_size - 1, + .pasid =3D pasid, + .perm =3D IOMMU_RW, + .translated_addr =3D 0xdeadbeefULL, + }; + IOMMUTLBEntry e2 =3D { + .iova =3D e1.iova + page_size, + .addr_mask =3D page_size - 1, + .pasid =3D pasid, + .perm =3D IOMMU_RW, + .translated_addr =3D 0x900df00dULL, + }; + + ATC *atc =3D 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) =3D=3D 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 =3D 5; + static const hwaddr page_size =3D 4096; + IOMMUTLBEntry e1 =3D { + .iova =3D 0x123456600000ULL, + .addr_mask =3D 0x1fffffULL, + .pasid =3D pasid, + .perm =3D IOMMU_RW, + .translated_addr =3D 0xdeadbeefULL, + }; + hwaddr addr; + + ATC *atc =3D atc_new(page_size, 48); + + atc_create_address_space_cache(atc, e1.pasid); + atc_update(atc, &e1); + + for (addr =3D e1.iova; addr <=3D e1.iova + e1.addr_mask; addr +=3D pag= e_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 =3D 0xaaaaaaaaa000ULL; + IOMMUTLBEntry e1 =3D { + .iova =3D addr, + .addr_mask =3D 0xfffULL, + .pasid =3D 8, + .perm =3D IOMMU_RW, + .translated_addr =3D 0xdeadbeefULL, + }; + IOMMUTLBEntry e2 =3D { + .iova =3D addr, + .addr_mask =3D 0xfffULL, + .pasid =3D 2, + .perm =3D IOMMU_RW, + .translated_addr =3D 0xb001ULL, + }; + uint16_t i; + + ATC *atc =3D 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 =3D 0; i <=3D MAX(e1.pasid, e2.pasid) + 1; ++i) { + if (i =3D=3D e1.pasid || i =3D=3D 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 =3D { + .iova =3D 0xaaaaaaaaa000ULL, + .addr_mask =3D 0xfffULL, + .pasid =3D 8, + .perm =3D IOMMU_RW, + .translated_addr =3D 0x5eeeeeedULL, + }; + IOMMUTLBEntry e2 =3D { + .iova =3D 0x1f00baaaaabf000ULL, + .addr_mask =3D 0xfffULL, + .pasid =3D e1.pasid, + .perm =3D IOMMU_RW, + .translated_addr =3D 0xdeadbeefULL, + }; + + ATC *atc =3D 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 =3D { + .iova =3D 0xaabbccdde000ULL, + .addr_mask =3D 0x1fffULL, + .pasid =3D 1, + .perm =3D IOMMU_RW, + .translated_addr =3D 0x5eeeeeedULL, + }; + hwaddr i; + + ATC *atc =3D atc_new(8192, 43); + + atc_create_address_space_cache(atc, e1.pasid); + atc_update(atc, &e1); + + i =3D e1.iova & (~e1.addr_mask); + assert_lookup_equals(atc, NULL, e1.pasid, i - 1); + while (i <=3D 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 =3D { + .iova =3D 0xaabbccfff000ULL, + .addr_mask =3D 0xfffULL, + .pasid =3D 1, + .perm =3D IOMMU_RW, + .translated_addr =3D 0x5eeeeeedULL, + }; + + ATC *atc =3D atc_new(4096, 48); + g_assert(atc_update(atc, &e1) !=3D 0); + assert_lookup_equals(atc, NULL, e1.pasid, e1.iova); + atc_destroy(atc); +} + +static void test_invalidation(void) +{ + static uint64_t page_size =3D 4096; + IOMMUTLBEntry e1 =3D { + .iova =3D 0xaabbccddf000ULL, + .addr_mask =3D 0xfffULL, + .pasid =3D 1, + .perm =3D IOMMU_RW, + .translated_addr =3D 0x5eeeeeedULL, + }; + IOMMUTLBEntry e2 =3D { + .iova =3D 0xffe00000ULL, + .addr_mask =3D 0x1fffffULL, + .pasid =3D 1, + .perm =3D IOMMU_RW, + .translated_addr =3D 0xb000001ULL, + }; + IOMMUTLBEntry e3; + + ATC *atc =3D 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 =3D e2.iova; addr <=3D (e2.iova + e2.addr_mask); + addr +=3D page_size) { + atc_update(atc, &e2); + assert_lookup_equals(atc, &e2, e2.pasid, e2.iova); + e3 =3D (IOMMUTLBEntry){ + .iova =3D addr, + .addr_mask =3D page_size - 1, + .pasid =3D e2.pasid, + .perm =3D IOMMU_RW, + .translated_addr =3D 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 =3D 4096; + IOMMUTLBEntry e1 =3D { + .iova =3D 0xaabbccddf000ULL, + .addr_mask =3D 0xfffULL, + .pasid =3D 1, + .perm =3D IOMMU_RW, + .translated_addr =3D 0x5eeeeeedULL, + }; + IOMMUTLBEntry e2 =3D { + .iova =3D e1.iova, + .addr_mask =3D 0xfffULL, + .pasid =3D 2, + .perm =3D IOMMU_RW, + .translated_addr =3D 0x5eeeeeedULL, + }; + + ATC *atc =3D 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 =3D 4096; + IOMMUTLBEntry e1 =3D { + .iova =3D 0x1000ULL, + .addr_mask =3D 0xfffULL, + .pasid =3D 1, + .perm =3D IOMMU_RW, + .translated_addr =3D 0x5eedULL, + }; + IOMMUTLBEntry e2 =3D { + .iova =3D 0xfffffffff000ULL, + .addr_mask =3D 0xfffULL, + .pasid =3D 1, + .perm =3D IOMMU_RW, + .translated_addr =3D 0xbeefULL, + }; + IOMMUTLBEntry e3 =3D { + .iova =3D 0, + .addr_mask =3D 0xffffffffffffffffULL, + .pasid =3D 1, + .perm =3D IOMMU_RW, + .translated_addr =3D 0, + }; + + ATC *atc =3D 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 =3D 4096; + IOMMUTLBEntry e1 =3D { + .iova =3D 0x1000ULL, + .addr_mask =3D 0xfffULL, + .pasid =3D 1, + .perm =3D IOMMU_RW, + .translated_addr =3D 0x5eedULL, + }; + IOMMUTLBEntry e2 =3D { + .iova =3D 0xfffffffff000ULL, + .addr_mask =3D 0xfffULL, + .pasid =3D 2, + .perm =3D IOMMU_RW, + .translated_addr =3D 0xbeefULL, + }; + + ATC *atc =3D 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 =3D 4096; + hwaddr base =3D 0xc0fee000; /* aligned */ + ATC *atc =3D atc_new(page_size , 48); + g_assert(atc_get_max_number_of_pages(atc, base, page_size / 2) =3D=3D = 1); + g_assert(atc_get_max_number_of_pages(atc, base, page_size) =3D=3D 1); + g_assert(atc_get_max_number_of_pages(atc, base, page_size + 1) =3D=3D = 2); + + g_assert(atc_get_max_number_of_pages(atc, base + 10, 1) =3D=3D 1); + g_assert(atc_get_max_number_of_pages(atc, base + 10, page_size - 10) = =3D=3D 1); + g_assert(atc_get_max_number_of_pages(atc, base + 10, + page_size - 10 + 1) =3D=3D 2); + g_assert(atc_get_max_number_of_pages(atc, base + 10, + page_size - 10 + 2) =3D=3D 2); + + g_assert(atc_get_max_number_of_pages(atc, base + page_size - 1, 1) =3D= =3D 1); + g_assert(atc_get_max_number_of_pages(atc, base + page_size - 1, 2) =3D= =3D 2); + g_assert(atc_get_max_number_of_pages(atc, base + page_size - 1, 3) =3D= =3D 2); + + g_assert(atc_get_max_number_of_pages(atc, base + 10, page_size * 20) = =3D=3D 21); + g_assert(atc_get_max_number_of_pages(atc, base + 10, + (page_size * 20) + (page_size - 1= 0)) + =3D=3D 21); + g_assert(atc_get_max_number_of_pages(atc, base + 10, + (page_size * 20) + + (page_size - 10 + 1)) =3D=3D 22); +} + +int main(int argc, char **argv) +{ + g_test_init(&argc, &argv, NULL); + g_test_add_func("/atc/test_creation_parameters", test_creation_paramet= ers); + 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(); +} --=20 2.48.1 From nobody Sun Feb 23 05:49:05 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1740125438; cv=pass; d=zohomail.com; s=zohoarc; b=J8HOVF0wZ4/XtL/2NXRGTmZhfCVprJ9QUx80LVjaNPEDm5LrWU2CMCBOHo1QxWM61aTK5lt8OR0cZiuNtPGhYIuCKHGthqcmLWv3siWRwZnFQY/dkv4jQkDyPBqYcmskkAl4eTkp1aftPkjfVgmfh0PgQeXMygzwOyrKq5DdW3w= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1740125438; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Quf2k86fFz0ZYXnqnyMCqldIOYG9IMWVRxd9aH7T6rw=; b=S2kK4l4Zh0PIuRLduMYjJ3z2HLj3qzbJwiy/Pe3vwb72i7iRVjMQOv8HGrs+v9heEAIciPnPa/jstpY2KF4xrvS8jLWDCAoXd+7ZNbFKGR/2GS7A6L0vJszEjyw0XCwYX0L5aNgEOyw6JLYP+wBTDu89LgesPdA1oZgmiwvCl2s= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1740125438387767.6645031600094; Fri, 21 Feb 2025 00:10:38 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tlO4d-0004bI-I4; Fri, 21 Feb 2025 03:07:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tlO4b-0004aa-Vl for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:49 -0500 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 1tlO4a-0005j1-2F for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:49 -0500 Received: from mail-vi1eur05lp2170.outbound.protection.outlook.com (HELO EUR05-VI1-obe.outbound.protection.outlook.com) ([104.47.17.170]) by smarthost1.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 21 Feb 2025 09:07:44 +0100 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by DB8PR07MB6459.eurprd07.prod.outlook.com (2603:10a6:10:142::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.16; Fri, 21 Feb 2025 08:07: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%7]) with mapi id 15.20.8445.017; Fri, 21 Feb 2025 08:07:41 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1740125268; x=1771661268; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=L+qfiCqDv/FvxxOldZORUEjs2F9iRklyEARtcbtk2HM=; b=URF65CE1xySsucr/Xxp8+pFh5EHmXDhHkT882Z/AK03SgTT48zy/DMHh j4cTxLzcU41AMQRU8Xys83ta+FHdwxKEn0LjGRRKfcUl2a5XIxxkJ/xiZ +puuNBJx59NJ+fCk67Y0Bj1d+LrmXfDvCDJVE18Q5qcyvzr8n/81A0fvN gEv/4Txegvw3IJmErPAGQzcCC9lAz8KP0T2SIKL2OnZrPGzcTPi3GePWn MmXE+CI/ei5cPMUZF/TDZhNJuOY/QDcTAdYmVHUAg1gTkIT2g/HP+3c0V 0987mZoOMGJUskPPnNLThQ8RMw2eYhaW5F62MDIZCMPBL1OP897PcYO1c w==; X-CSE-ConnectionGUID: Wf/yfAdwTCuk2I05uBpjOw== X-CSE-MsgGUID: c0uuOi0zSvy5qzlj9aytxA== X-IronPort-AV: E=Sophos;i="6.13,304,1732575600"; d="scan'208";a="31394141" X-MGA-submission: =?us-ascii?q?MDGZIDiP26ztFt7uBd9Wqr1vW2XC1JFklEdlR1?= =?us-ascii?q?8T5Wz9PyVMRUcDhzMsoJBdicjSrnh7CA5poRlPNYNl1hXGD1Vy2JHguV?= =?us-ascii?q?0Uki7Q5yH3wZlfC47YPC4ePjyh0mA2aj0o+/uYHSzgx3mMT5wXq5Grmh?= =?us-ascii?q?9Zg+Mfug4Vj2jkbWkcdBPCHg=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=zSU/HnqJZFt5YOdQSlurdfXEAO7te+0Yp7vGLzK9cNDrJKkvJAWq6QQ05auNO4ohzUk/72seJPfVuAv3aMDMmCZbj2t9BGd/Jw4Wa0wOLiGGvoKDiKcCxq5M8lPGYCF+HEi0861DH0oivv0Vqm4XrvXP48MLz9p+I307AbL0WdqZqEAv6uZ8CBtMzR4CSXymICrN2cU7aUL1b0VE4MCqdAexUSS6OsxGsPeQKrW0zvz+e11AdTFGgug/1wWL9IzrnkZBt90RhD3/kx8Y/Bg4yGOqv4pLsVYc1FczY90EXIN+NZkXTaV5wrdTZUbmEHDs8/PWQCXPCFydk8XY5XAoOA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Quf2k86fFz0ZYXnqnyMCqldIOYG9IMWVRxd9aH7T6rw=; b=R4eWAivO6G+RV6LkKkszVAxT/RKxS049nCOv7ct0SLmh7kKKkKXfsVsDHOJHqSlsKiS4rhXvEP9f8Ankv8QTaPHfUDDcS3we390wCPHPoFmSJGjk1XF4d5Gc6hn/fEq4njGol670zavgpStwc29UIHCbHFNSFyYw2JpKA8bHXgZehh+2S7+8cXwPA0IZp8+7fo1n0UAg6q4k5D/pnshVrkeJ1i7IdpEn/ZCyxgq8mzGHYdg8+VATA3PixmFmwoniyecqxBYWvEKyRMGVpta08YSemYZFS7yPvKucJT8AlMF2oEt3EY0wHzGiHEmBb9LA1ma/GHqJ5rfhqbhmgd9fEw== 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=Quf2k86fFz0ZYXnqnyMCqldIOYG9IMWVRxd9aH7T6rw=; b=ay733PRMPTMOQnpFpijianmm1Bs/ur/cYCGUfI8uaFEkVp5Xp90TFyhP/nggRk87r5tW/RX+5OP/eC4q1qkUpl8ZR9HdAAS1H4calhrWODO8gvnrCfEnH6otH7ujaPMUy7DRli1b5q9vA/Xhz44nD7Y5DUO3mDdJQREuISu60n5n0B7Xk3ahYHW9UNooxeiD4COR4UXDEk8SeFx5DoQrNnRpO2Ns73JIyiqyKpDri0MSfMbW/Ah8a07YHJSdXU5iKE4KeocNzUr1vDMZc+LKybioDqr5ftXiL3iWC+uqDGjaCLLvOaJBULCoYSq77ZQE/aw4HqfzHHs4/enSiyJ6WA== 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" , "tjeznach@rivosinc.com" , "minwoo.im@samsung.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH v3 15/19] memory: Add an API for ATS support Thread-Topic: [PATCH v3 15/19] memory: Add an API for ATS support Thread-Index: AQHbhDetiRjXB89bjUaSrra2Zx/Lyw== Date: Fri, 21 Feb 2025 08:07:41 +0000 Message-ID: <20250221080331.186285-16-clement.mathieu--drif@eviden.com> References: <20250221080331.186285-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250221080331.186285-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_|DB8PR07MB6459:EE_ x-ms-office365-filtering-correlation-id: 8f67dd60-2edf-436c-af20-08dd524ed0ab x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|7416014|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?jlUvVhE5BcWhAztUZEqX5hOXai6aIbalJwLyWkH/os8GLiTKIODs+2Ei1O?= =?iso-8859-1?Q?aalJvJ97V82/aw98AihA4pkSggDV2/RqVPAAztgwP+gU/2u3AsHPS6Tvvq?= =?iso-8859-1?Q?NrWYp7NWMpSMNLrhzxt2tL3VWwHgQ9JJ+N6RsKd8uVaDgLD7HNcGQoHVcS?= =?iso-8859-1?Q?akiuJqDNWEv/mOZPUlO9Lx48SUjU+IsHbv06+NtYA3cLnlL9FM3rcx9uBI?= =?iso-8859-1?Q?+3F4G/ejJg3UANUAa7a1jNtvU1f76/cD2zvaxnGfn3ZC4M2jJPqccgtGJC?= =?iso-8859-1?Q?iGgnsn7ywMzBc/U5oMeLnl7+PZwIZx4bBX56SBEYDWhXMfhraVLQFh674n?= =?iso-8859-1?Q?UbLIF83YeVaR1+O1WiwuXOIXsbcZiSS4nKAHwZmk0YBV6iRzsOkVWGTxZs?= =?iso-8859-1?Q?W9O8/OV4KpDf4r0DcGwJFjyJ/yqEaiWizevOUZLdoZjYwgeijOMpusdpRM?= =?iso-8859-1?Q?iNZEgWQSO1N5tUufuA8CyguOagER3wbXlzFEcszngDz/VRx+q9sPTumyni?= =?iso-8859-1?Q?QrAWNmQ6pkj6GJNu9P1t6rvmpaghhCTFpMLcCeCh78Nunfvv6ZqRLtp1se?= =?iso-8859-1?Q?s+79FMH+aBu3j+OO6Bqz21vCXq2GYMhUfjPSNOGh0UyyAtZHsPAqC54RjR?= =?iso-8859-1?Q?GUVKNP5Mifc4kGpLpZssaPFCnq7vT57YoeBc7gSEQ2oygmOMhQaYjwqFeq?= =?iso-8859-1?Q?wtmx9yEYesSmtjgRE1tYMhIX3v9ZPz/4ArHwSZmywrvwM/cD+0kShIcVRT?= =?iso-8859-1?Q?yk1gpKSma6kW4gDgfqttp+q3a1hKAxif9Ry2BL0R9CDPKQWBSEL288MeAN?= =?iso-8859-1?Q?TbBrM/VMURrD+z8gayaHnemQ0CR/Df7sbaGZ3sMrqQCKpceDylav5utTww?= =?iso-8859-1?Q?y5P+CW6KnJY5Sv6k1rKKZH/Dc4ndy38dg9cA5ByoZTPKAhKLcn0M6YLguZ?= =?iso-8859-1?Q?G3+Au+thRkjcq22/ex/S+gVOypW13E87KXZgyxyz++LmvtO1ZM9Z59j28n?= =?iso-8859-1?Q?phrDHJdJANlza26Xun/gXK/EDCfjfdfWfSDF60kgCibCpmzZ2dF8fZ0HbI?= =?iso-8859-1?Q?1nHJUN6zpfiQY5/Lz4PAO+sUsrFjJ59/CoRpSdSlIs5/ftg4BNVrKeBHTY?= =?iso-8859-1?Q?VMbj7clrtHatPE1p8uCJfXVBZ4i4x2lPLSZ1HoFzNHJXd10+/8pNjwZQmN?= =?iso-8859-1?Q?YAkRW7aJL39jf7FCPE3zGuPUtmGq9v65jdGGEN2oPkNwT4O+aXnoFyo+Yq?= =?iso-8859-1?Q?hBw0eHy8Miothzomei1sq58bviP9zk2ZLMxJIRxiihKG6XosdFX0amwssT?= =?iso-8859-1?Q?2RKtEfc1hEJTEzNK6Ht+CPiv0SeinnvAapQpyqYX5haWRRdIOQGFs7HRVK?= =?iso-8859-1?Q?6WBjlozXT7HeLojoxkW30n0KQ/Snfr2KpVjX6IP2nDOVOJOJkQ3c31TS27?= =?iso-8859-1?Q?UOHBp5RlrYgfLwlip7KpaUWMO/5KI1WfrtKlJdU6y8sYout43zcYvru1DY?= =?iso-8859-1?Q?0fKzhn2zZy6GIL5uCs3kiA?= 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)(7416014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?xR3IaUU3Nlp1iFNuxu6/kaqzkBASecqLvGZtwj48937F3f0PM9sd7HAmoH?= =?iso-8859-1?Q?Qzk7jOQsmxkLp0TysNcBtI9L6PHNIlUqMYSQ9wBoKyZrPqo6tG92f4I25p?= =?iso-8859-1?Q?xxRjoa3pvpkSdpSyt2anEqUDc0/joIuZFmQJ69znPhJw6puM+bjdedMjXT?= =?iso-8859-1?Q?V2Fw744/+/lWF8zZTznDrOTApZ5Guw/uzAg5a4At9zLwJ2Lt/iZwCUKvZZ?= =?iso-8859-1?Q?vLlzWAkF5tefhGbjAQ2P1G2muhwERJMo7BJpAh7hN5z84TF9ywmSMPVbCS?= =?iso-8859-1?Q?b9nZsJhyrMASHZNKbWDmQr/KWWuB8k21lYjn89rfXmA3YXJFxUteffy8gU?= =?iso-8859-1?Q?bYglvyez17H9hRlVq1asavj/VAhNvFWGGPbrs2vaWhBAEVrEgAKqNFNROy?= =?iso-8859-1?Q?S42W3iwxzv5Dbi1fXu9RXDOv3PPu+OFmdKBav9lXVubuLvCfoy/Y7GAw0O?= =?iso-8859-1?Q?7EJj0X49X1dgAf8SzcvqMLoyrTETrL5jVDHCpAWHJIxe0/9Alf05RWim46?= =?iso-8859-1?Q?vPHUZ1PdSXbx7VpHYGr1d9URNzceLU3WSQ/nk84jqLnmFFz1YFHAAi69Gp?= =?iso-8859-1?Q?XsGo3Hqxkq66ao8u2Y/gq/ozCkB6NT0bHqG2sBA6aHhFWSMgirnmj9yK1e?= =?iso-8859-1?Q?qmBNR54eBYcVl6OK8EwwFAeq3BRFeEHdrfrqjc7IT+q+euf8TuUQ12DPlc?= =?iso-8859-1?Q?+yp2c71tHmRqwWGp7nKsCoSMkWlWt7HhHeXQaZIlvX4Cj2aG/7a0aVXWxT?= =?iso-8859-1?Q?7qof3Wa2y0OU2ZfhtxVWO9wTzcPQEzy2EVXrAsAnJAsWkN3h+aWKc4su7Z?= =?iso-8859-1?Q?uRgjQvfag4ddVD134o7iBRm8kYUC1bVkW+lMcchjuJyjIOwOTX+6Qq1aV3?= =?iso-8859-1?Q?M5Ok1ozZx150oy3s9rUDV+alkkrU0A9V1/lJJPusfetbJrSrogf0nVYVuF?= =?iso-8859-1?Q?fmzlB4VEv/K6vshQk4nDTOtNs5256I58bE9Oprz6iSm9bn9uRt3AlCRlH8?= =?iso-8859-1?Q?4RuYcs9vHrxsbOhgfFhSrqyBzz8iPoaIoX7tl8pe5mc/CWX9DCy5SD6aNp?= =?iso-8859-1?Q?LEm9qOkCbt6BenjMQWtq0tcAXnvCMLRUS8RozkX2WZZKg09YOfcuNtTS1W?= =?iso-8859-1?Q?lECGfaD6T9k5zeNR23TMx/AhzrJNW8jXTXrWNHiN8LTWXxqjGzcH48icxE?= =?iso-8859-1?Q?9mDhwm9XWEg1p3UWkYjERYVyzCoD/T4/vAWlrIX2vTN7cOebwfW6hu1aQI?= =?iso-8859-1?Q?RZ/vw+321pdvtd5LXomf4EQnf0iZhyMrkWiXPMD57xcLm/TQ82HaKtQ8X0?= =?iso-8859-1?Q?EHmF5CN6ElJfqTL3x9nwZ1Hlse481xH9H7EAPKvcNADtxV6KlBP62v/Nt4?= =?iso-8859-1?Q?AJqmOHN0gBeLvkmNwVVx0RUEBsR73Q2oacGddfy/B03cAGuqcA986IP6i3?= =?iso-8859-1?Q?SJs1u/4OyLT5n+Rwc1fEkfWWJUpg2GmT0rf9ENxUwtO1xXUCQGs0/bRaPo?= =?iso-8859-1?Q?jPZilygxdTRquRcqyK6V+By12O6YB2X/kyx+W+1FXCmhu46HOTvQtWU0aZ?= =?iso-8859-1?Q?W7FxYQqQkmfwOw0p/v4kA3McBmVN17oS4E+mI39KF4Nm2DlkKZP0Y38W+b?= =?iso-8859-1?Q?4kDiG0SIiiH6DbBQgAHJhA5Q1StJYG4ru6WsjeAMkfp+UyahuU81wNu8Ok?= =?iso-8859-1?Q?uSm8wGNiMmrEKmYSWr0=3D?= Content-Transfer-Encoding: quoted-printable 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: 8f67dd60-2edf-436c-af20-08dd524ed0ab X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2025 08:07:41.4874 (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: Dnq6yRAl1ttULGq3lYKYu1GOQ6jsz8dtry1sCHXOhnSkbsv955ByCJi54Jj+WCO2qyeAQFlDd0i5d73n+J3H8TbsJ/VhIs4NpLV116BHoyhy6J/N85qpca3dFXbFqOjO X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR07MB6459 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=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, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1740125439733019000 Content-Type: text/plain; charset="utf-8" From: Clement 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. We decided not to use the existing translation operation for 2 reasons. First, ATS is designed to translate ranges and not isolated addresses. Second, we need ATS-specific parameters. Signed-off-by: Clement Mathieu--Drif --- include/exec/memory.h | 26 ++++++++++++++++++++++++++ system/memory.c | 21 +++++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/include/exec/memory.h b/include/exec/memory.h index 4d240cad1c..9a8e765909 100644 --- a/include/exec/memory.h +++ b/include/exec/memory.h @@ -148,6 +148,10 @@ struct IOMMUTLBEntry { uint32_t pasid; }; =20 +/* Check if an IOMMU TLB entry indicates a translation error */ +#define IOMMU_TLB_ENTRY_TRANSLATION_ERROR(entry) ((((entry)->perm) & IOMMU= _RW) \ + =3D=3D IOMMU_NONE) + /* * Bitmap for different IOMMUNotifier capabilities. Each notifier can * register with one or multiple IOMMU Notifier capability bit(s). @@ -535,6 +539,20 @@ struct IOMMUMemoryRegionClass { * @iommu: the IOMMUMemoryRegion */ int (*num_indexes)(IOMMUMemoryRegion *iommu); + + /** + * @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); }; =20 typedef struct RamDiscardListener RamDiscardListener; @@ -1892,6 +1910,14 @@ void memory_region_iommu_replay(IOMMUMemoryRegion *i= ommu_mr, IOMMUNotifier *n); void memory_region_unregister_iommu_notifier(MemoryRegion *mr, IOMMUNotifier *n); =20 +ssize_t memory_region_iommu_ats_request_translation(IOMMUMemoryRegion *iom= mu_mr, + bool priv_req, bool exec_r= eq, + 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 4c829793a0..f95c602a46 100644 --- a/system/memory.c +++ b/system/memory.c @@ -2011,6 +2011,27 @@ void memory_region_unregister_iommu_notifier(MemoryR= egion *mr, memory_region_update_iommu_notify_flags(iommu_mr, NULL); } =20 +ssize_t memory_region_iommu_ats_request_translation(IOMMUMemoryRegion *iom= mu_mr, + bool priv_req, + bool exec_req, + hwaddr addr, size_t le= ngth, + bool no_write, + IOMMUTLBEntry *result, + size_t result_length, + uint32_t *err_count) +{ + IOMMUMemoryRegionClass *imrc =3D + 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_re= q, + addr, length, no_write, res= ult, + result_length, err_count); +} + void memory_region_notify_iommu_one(IOMMUNotifier *notifier, const IOMMUTLBEvent *event) { --=20 2.48.1 From nobody Sun Feb 23 05:49:05 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1740125396; cv=pass; d=zohomail.com; s=zohoarc; b=LOF+hZRAb5PfkLreeN4WhIbHXg/qpY9pZNkYkfjGffwIQY5QIizqWLzqzFYV1HD+KehfV7tsXXpyWwaKBmyymhZkyD3J5DMLg7WxT+HmQkOyY9u9NOi0x8XBy8FkBuZk57QORLPt/m1r9q+byBOZuN4+we5+5axAbxYaYPBfcIs= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1740125396; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=QfhltBH6apxt4PKk/fiqX0GKuSvhqsHT/xupMPVyhFk=; b=nGyVdZAS0MNFixKiDqO0ApLlp1KVy0R/aK1EqLpuQUIw9muub6TYE74VKOivfXmR562tpDtL8vtZEkVoZQmPukfhyOgvAkfNUcfaJ+L3ub8FIuc6HcfC2EKfTmslHAa/tikTvgN90ISPUdqhNnqaRwrUI+XVwJx8ej97xD8t3+Y= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1740125395869861.1555663434617; Fri, 21 Feb 2025 00:09:55 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tlO4f-0004ci-NR; Fri, 21 Feb 2025 03:07:53 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tlO4c-0004az-NY for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:50 -0500 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 1tlO4a-0005lK-Oi for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:50 -0500 Received: from mail-vi1eur05lp2170.outbound.protection.outlook.com (HELO EUR05-VI1-obe.outbound.protection.outlook.com) ([104.47.17.170]) by smarthost1.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 21 Feb 2025 09:07:45 +0100 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by DB8PR07MB6459.eurprd07.prod.outlook.com (2603:10a6:10:142::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.16; Fri, 21 Feb 2025 08:07: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%7]) with mapi id 15.20.8445.017; Fri, 21 Feb 2025 08:07:42 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1740125269; x=1771661269; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=thx/EhaMFSpCXXIfgOfxU1JCplMe9WF6IcJG11lYnsQ=; b=gsTtIgggJFjiI/rBm+UEhbttgznTjKf7451CEZfe8124GBwPr0UbAY1C XxrfvswFVEe9+b0szlfoHSfffaX2CD7Rpo6207HXDGGj1LslPxsqkrBFu nBxw3gwqv3Eby/McmdflQZvfIqWuirM/khH8ByQi0h0z6ZJKNvTu/Ijlq wwJlSpzZUfrvpUN9Edeut8zWI6iV28HoRO+iVZCBfGK67p6fp8qF9hJOe 5vAh5x3kADMbSDI8bQWmXn5y1XAT62l2gQyQOxxdSe8JwvKpH70W7izLO MDuQmzk62mtjXH7pPquPbZO8cv12OaLxkfNPzqnUYi4RYGh/oYX5GDveI g==; X-CSE-ConnectionGUID: g2VXE75BSGCFejAUCrrseQ== X-CSE-MsgGUID: UHnVoGz5R0OIdYV30DUUMw== X-IronPort-AV: E=Sophos;i="6.13,304,1732575600"; d="scan'208";a="31394143" X-MGA-submission: =?us-ascii?q?MDHFzkmhD1qEen6Y+FK5uN/UpVldkOd5F7iswr?= =?us-ascii?q?OL0whmDti5rQ+3TXkCeqWS2UFOQwi4SAsp+7O/syKEoX4acCEnbt+V7w?= =?us-ascii?q?sPzI16rT3auAwR08JaCD4aGKkvytX3qIWuavSYukjHzRTlW22bjFj8xH?= =?us-ascii?q?P3sfoKjEQA4Xt3zHHsy8woKg=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=OjX6e+A1Sc/8tOOqvl3vrX/vVGXfHhsvmuQU3NptiAWXpu7f4TnGQ0gmO3pXnJordKQKl1zYF6t19WazUGaNU35UNYqtut3JsXJtt+esxlrrhoTBQcFgN0d2ixKob2LY5UnnvQQ0EISsR3lTMHicFjgQql4PvEmfZZyqP2Rc3W0gwBKLm4qQaSLTmOlBDvS81cx3J/NciNUCEJ/6sMuZr/08ufoZcV+NTtCsWE8oe9STCVLzp+UB4v5GULy3xKo0f/+B99xZE6JzS4RKbv7KJ8c3Jp9lwtlAJngsOIQ51qKILDutL2yc5RpJ9aE0CrCK05DxArXvavn2X6DAaVCOtA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=QfhltBH6apxt4PKk/fiqX0GKuSvhqsHT/xupMPVyhFk=; b=E22Y3dYCl5AlkILbfo85TzWNFR8RzV75AOnZsKHZM7EFy/rrl57QGO3Kn8xwYm2W3gmB3r6h9pHvLUB5Ypj8VXgxN6peHZfakY7iFLDWAf4rPUtR2vKMp/T27sgxHCKeueFbXN1xTTNw11BLYqBE0ODv04PnnmNJy6SNpy7Itq5MApA6bwEtQ8H4hIkZVvaP20dQpWX2DlmvLlvc/LPz2imgN3iH9jvvjWikHQWtBLnYVav/9SgOChTcreqVCx9BmBpfny+x04/NGQRoDibxDrEeC9mBs92wgLBryIaFbcr3FuN1DQ9wAuy05zbe4KN1DgSKp0xYNytb3uNYylgs+g== 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=QfhltBH6apxt4PKk/fiqX0GKuSvhqsHT/xupMPVyhFk=; b=P6zMvFqOkrbAWyDOZaGbZS3b1KOe1fLs24SjZUCs38fhzVWa9jN/hMKFBEYboCzKNc6C65mJwCJB9dVOOvt/FvJLcKu26TJbYhdeNrHO+92Er5xr7wf3xV6DL1PgdEY01Jr3nQa0hSCiI+5wmIJtXoeAYqNwelLHktLuKn3vekLdVci0v/Kxen27NBw46lfz0q4zPzmRNjznoGESdKyZXIsdkPcqBUPOA5YGfPShRJZrlnTE9DQaN7UJBov8sEPDFzOuuQYkz+J5mkqdis0nhHGsih257PzlrUaCEArHd03+Vty8FYgEDPi/ErsM3f41AHQepvFUpY+w/XIgr7TdPg== 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" , "tjeznach@rivosinc.com" , "minwoo.im@samsung.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH v3 16/19] pci: Add a pci-level API for ATS Thread-Topic: [PATCH v3 16/19] pci: Add a pci-level API for ATS Thread-Index: AQHbhDeulsmv/QVTtU2P/5dyiWdZPw== Date: Fri, 21 Feb 2025 08:07:42 +0000 Message-ID: <20250221080331.186285-17-clement.mathieu--drif@eviden.com> References: <20250221080331.186285-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250221080331.186285-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_|DB8PR07MB6459:EE_ x-ms-office365-filtering-correlation-id: 3beef041-818f-406c-5925-08dd524ed0ef x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|4022899009|366016|376014|7416014|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?wZ2YKdQ+05YWjJaHwUsSALDfBDVfjo9it+nAaFFeQOtfAmVHL8jxUe48Zl?= =?iso-8859-1?Q?gFAFUZNgjog36x001kqIImRImuycLCEhUyCln2kduYumUzoWkM8GrDU5M9?= =?iso-8859-1?Q?jf3piR3ZqnlT8OVzv8nFi2aK57K15QZvKX1FAKMTylQPSpALJ1rX2mutg1?= =?iso-8859-1?Q?zWOew7p0HNJQ7Qmqz7PjasZiYlk8t4h0Lx8j0kZnAksP/WEI7wWEaPXFiB?= =?iso-8859-1?Q?moX8Ca1TqtVz11jLvonXWgw6fGa2LxrVf9BjCPpnlzsHw4yQxcm46LqGHU?= =?iso-8859-1?Q?cab7qo5DEroCGpuZLtrbai7PR6jPl9shanTCEkocekGO45DmzbwC3ZJJqI?= =?iso-8859-1?Q?G+h4+FICrnkyCgelBLijB1iQlWnd9UPhRXOUhHZesgpwXcXU7McPUqWuym?= =?iso-8859-1?Q?L3kiLwPquWefZXC0Fwg5rkfgAn2M5+kwUJ2pjDpP9uQnwd1VQKjaRZ+Voq?= =?iso-8859-1?Q?JFzeB7LPDP8fYPKK3mdcVhxfBZbCh/Vo2S8L6TEvXiNMxFpS4gnpmCNWoQ?= =?iso-8859-1?Q?6TkoUKSklbp7f+Rn9wEpE9SJK5GeOz2ukMib2Ne4qAREiC/Qfq30pDV8Pl?= =?iso-8859-1?Q?oQoirLPFKMr9j0wJYih3d/pcoFqol7vpgGXnuAULFWMyl76vppYBvN3CgQ?= =?iso-8859-1?Q?RCKjxw1rC5fiT2vWZI+tORojrDOvx4MvQIMHcqpWAlF5L6+JyufKR9Uc5s?= =?iso-8859-1?Q?9y67mGxC60+2QbAek3urPL+wMeFAHYS99D1SeubfrWwYQSy30ABZNJ3hue?= =?iso-8859-1?Q?a9Ci6L98zF35t746xCKhQsHA16IDjPzuxbtwFZ+5KaxmTCW/BOVUJvHsoJ?= =?iso-8859-1?Q?U1PJWv9rPSPnerkpka5IphbrvKwbcGTyIQSAlmHVF3JBlOD7l8dbjj9Dj3?= =?iso-8859-1?Q?BsYyDQKz2RBYVr9ZU3gX5Xx1NNovFsG0Gq3Y/E3RdNHf8/IlFL3ILZSW9f?= =?iso-8859-1?Q?BcFbJIB+6cNvBfPvaIvGvfIMULzSs6/uun7LSwzyA5vLa6biIaW6DAPoEO?= =?iso-8859-1?Q?H3sDmk23VqW4FtE87oW9gWkh9dmozj5FM3aExS875ZxI/N4eLoCLKFY6sh?= =?iso-8859-1?Q?zDQ04mOTZBA+oP512agbIO/8CuVAE0KRkH7I7JkhCooBmhFFgbN1SqHtk8?= =?iso-8859-1?Q?165Aqxu2gRzhZEpP1XuiY2n8ENhlqTkAKsTJOCJ0osCdHmjMrKTzUXrul8?= =?iso-8859-1?Q?I26OS3y0r9R22s+AzcA0QP+eMZlbIn+uDYobX5ClZL1n7T4XdQ4NJNR+DA?= =?iso-8859-1?Q?O8LShjt5df6tDtknMdPUpL0l5he00RBaZGScEmDRiOQHz0eZgi/U8ZM5q0?= =?iso-8859-1?Q?0JROtKbQuOo4JRCRil9g6UTiKeiYy2zG7zbKEXvQ5HNQRsNLcUV41IrFBm?= =?iso-8859-1?Q?5ssmZWeIwUKMe/Tur3t6L0ooaceTJC7xZsEXkalZUO5SuiTP910IkGaSwB?= =?iso-8859-1?Q?hiqSLlRY5xRyjM8/n9rQ9RkTqwtx9tzLLIhRdVppTTQtsHwaWU+pmh8uis?= =?iso-8859-1?Q?EB16OdF6RxIwLiDTjbPPwz?= 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)(4022899009)(366016)(376014)(7416014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?7DDyYPBzeIC1A3DBFrS4iKKhMqXGYdR9AKfrp42Jr226miCqOkaoJLnw2X?= =?iso-8859-1?Q?I598I25NF7i1T3Njplhdtqc4pfin9ujQvjymACzxEOKNIzajJNeTrveeXX?= =?iso-8859-1?Q?AmKSmylHNEGoE1SsQUjzTpRb2dUOaJbGlBuqUhra5z4eM9AZMS0mBaAj0a?= =?iso-8859-1?Q?lVh5GMahNhqPNoNtU0KI6ejVL7E1QGNkJ0bTjfZZKRQbBFUzKB7G5yKBHr?= =?iso-8859-1?Q?V/cMDlJbEHXriq0ZwkX0UmaJG2Y+g8FpVYCMHvmn5tCBdWXMH/SyIonr9E?= =?iso-8859-1?Q?kmr8KVbRBe0T6kxwqCFeRMrcn7zlU3S7w8yL8Y8UnFc+hi42NkPfCX+L8O?= =?iso-8859-1?Q?+bmKrwQbCZf85s+nIidmeY5vcHZNx6rEkon3rzt1QkjBY94lonqzaztGhk?= =?iso-8859-1?Q?nYK2f6iFH2zV6ldBiuRxiVZXgyHg9PqJ/fOBaUfgwOm41TIcvRR/fhp1w0?= =?iso-8859-1?Q?HOCrRUnn4xyGuSbqqbpt6tDfHrF37MulSE6jSNL81ysoKj8byDK5+lcB+2?= =?iso-8859-1?Q?KUIul75/aECBqXvCLxDwAUVY5xtSew2qLRE9nBCjOLJuwiibHqLrlh2SoX?= =?iso-8859-1?Q?P8vBJLy2ssa/aHRpxszuUnCXO1GVKtQPdTYs8+DMZhOpDoehk/CoJbpWxN?= =?iso-8859-1?Q?Fo8O3vnFhysW6DulnkMHV/Q+W3T6zK5yaN7xTsaGaUmq9zhCWcYlI6QWh/?= =?iso-8859-1?Q?z3Es8tD8gksfYE1oHxaIcD1bTVziv5gxZ5LcvwNpSGXDjRdR95Uj8Be9eG?= =?iso-8859-1?Q?b+qePK+UndL+GwEfeYNTzqpPmyDBjE3xyOBHKeWWa/aM1l1I1TP6dnGcum?= =?iso-8859-1?Q?z7/Cif1gXxav00LnRx7gmBQOCRpbllIxfOHPy0tzWeIcRtcoOCh9gBB8/6?= =?iso-8859-1?Q?OK1+LD3q5q9MM9cQIvROqFUNN9Eqiu/l+Vlj1ei+FMkZOqD2ESG0jUko48?= =?iso-8859-1?Q?Sh/PfyUw+9xbfuJJD8Y9fEokPbnIBOikkqqt3EaV0+MRD6Dwy1ewWctdSr?= =?iso-8859-1?Q?nxl73uFVgRiEslL3ZcJSCo+HOJj2E9sW2cTjAdsJjHWwTeFGCHnAZyiDvB?= =?iso-8859-1?Q?CTS9G36KymJ/zeTIsoUXBdz199s+gBPLFSOGOKIkYPqabLBAQz16Zemi4M?= =?iso-8859-1?Q?XevefozUqPExT1t/WFUjtUTveI93NvcvMS/AP/BYUX30ErN5RcEG9SUtQw?= =?iso-8859-1?Q?LcfeOtQHas+mtsZpOdpJ/FrHyKSO725pLWEM8stPouhJ3mr8UDnpaaJTEk?= =?iso-8859-1?Q?2VdtSSDyg3yqKoA/YFekganHVjn9Sclx89o0yKZg8yrUMwIbYjZMDRRDGt?= =?iso-8859-1?Q?98CeJLNfMmMKmNpropXqnKIkaEMP29zAOExoA1olcA2slKcrcRtsrB+P2W?= =?iso-8859-1?Q?DmGBYqXmgToI7dXbSZfk2+52JhLXMCRTWVntceooycUk6hfyb8U8IJf0Ug?= =?iso-8859-1?Q?wmg9CVhwcXlgoc6AwwYyh9fGkb5gzHuJeCRudOf22n/xHDizo73OdGZY+M?= =?iso-8859-1?Q?GnU7HWq0QUCxnPMWEfBRM5+gKaXt0BNislUcimjntc29sUlxezfhXiCAJp?= =?iso-8859-1?Q?A6SJDW6E6CfpMWvag0LawlmrAOcel65TxSRe0PECWlvWr40JrDsXc8WRYH?= =?iso-8859-1?Q?MPlPef6wHIwrUupGIQMkCkdrxZuMoKx5TgEdCMe71lOH6UMN6SCrk+VsjS?= =?iso-8859-1?Q?2nZu3LGiWCURXQHSQQk=3D?= Content-Transfer-Encoding: quoted-printable 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: 3beef041-818f-406c-5925-08dd524ed0ef X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2025 08:07:42.2146 (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: GcgMZxudSS5ZBq/r/2RBWKIA8Y/KIR0vNAtyin837ys9cXWnOAu9xopCaYtbeZjCd39BjijrpYEPg9r/crnIiOZ4aaS379FuFNg3i7cZry7+r71vPcaAtl3mhiXIeUUu X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR07MB6459 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=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, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1740125396784019100 Content-Type: text/plain; charset="utf-8" From: Clement 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: Clement Mathieu--Drif --- hw/pci/pci.c | 46 +++++++++++++++++++++++++++++++++++++++ include/hw/pci/pci.h | 52 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+) diff --git a/hw/pci/pci.c b/hw/pci/pci.c index be29c0375f..0ccd0656b7 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -2896,6 +2896,52 @@ void pci_device_unset_iommu_device(PCIDevice *dev) } } =20 +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 *re= sult, + size_t result_length, + uint32_t *err_count) +{ + IOMMUMemoryRegion *iommu_mr =3D pci_device_iommu_memory_region_pasid(d= ev, + pa= sid); + + assert(result_length); + + if (!iommu_mr || !pcie_ats_enabled(dev)) { + return -EPERM; + } + return memory_region_iommu_ats_request_translation(iommu_mr, priv_req, + exec_req, addr, len= gth, + no_write, result, + result_length, + err_count); +} + +int pci_register_iommu_tlb_event_notifier(PCIDevice *dev, uint32_t pasid, + IOMMUNotifier *n) +{ + IOMMUMemoryRegion *iommu_mr =3D pci_device_iommu_memory_region_pasid(d= ev, + pa= sid); + 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 =3D pci_device_iommu_memory_region_pasid(d= ev, + pa= sid); + 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 a11366e08d..592e72aee9 100644 --- a/include/hw/pci/pci.h +++ b/include/hw/pci/pci.h @@ -461,6 +461,58 @@ bool pci_iommu_init_iotlb_notifier(PCIDevice *dev, uin= t32_t pasid, IOMMUNotifier *n, IOMMUNotify fn, void *opaque); =20 +/** + * 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 *re= sult, + 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 * --=20 2.48.1 From nobody Sun Feb 23 05:49:05 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1740125416; cv=pass; d=zohomail.com; s=zohoarc; b=Itk04bEXdcRBpxi6mqWxq019+PkpH7YCjm8QVW6ba2WGkkOwuv+n9SXGGBQiFBsrezK1aYFcponfMadefkAhAkfoKeAtxGzewn0mBjh3t7ph8mXj4R6uDIzGTZTGzhORblWDdrgLe7qkwL+XGDAojU/dT+s2S/0xCJeuxdAiCyY= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1740125416; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=srhIn/WpdlVpAE2cNticNNYMCyk2sH0vssLZt9U3Azs=; b=SsieiPf+GEyXH4mp3be15UO9UCFszkMNMnm20BPXfTUg4J2fhr/jhXbgTmSClPOw1SNP0s2GHFwI1yEYq/XWqHYBBmcajQEx80qyOpw4csUPDHGAhj6WLURSjrM3GXqYmxjK+FQP7e/rTpNqdEHwzTpcl1ddgKf1d1KZZVzfQaU= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1740125416011361.2612848701766; Fri, 21 Feb 2025 00:10:16 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tlO4f-0004cG-3s; Fri, 21 Feb 2025 03:07:53 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tlO4c-0004ay-Mm for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:50 -0500 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 1tlO4a-0005ko-WD for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:50 -0500 Received: from mail-vi1eur05lp2170.outbound.protection.outlook.com (HELO EUR05-VI1-obe.outbound.protection.outlook.com) ([104.47.17.170]) by smarthost1.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 21 Feb 2025 09:07:47 +0100 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by DB8PR07MB6459.eurprd07.prod.outlook.com (2603:10a6:10:142::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.16; Fri, 21 Feb 2025 08:07: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%7]) with mapi id 15.20.8445.017; Fri, 21 Feb 2025 08:07:42 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1740125269; x=1771661269; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=BrG4y3xDgUJOKdvWUgQWbXUTo2tp+lMrO+qSWDscVRo=; b=memZNBwiLKK7AIDte16vo6MnkMVD2fvJ59yC40tzTME8AyHE4OSMNaxW z323FlrF5GQWozkfBidkk40EmxTrwKyk6BgJ2FI/gi9OheRlivPHlRrCo U3zaohaF+qJ7U1uQA+np39q8ewwcAg2BuBnQwWKa+gXd2SYlJlqsjtgkb NXMbAnLST51t0kmruSPWlqkHbYp6fv4P65vl3pNau3Z9t64TG0sX9nXFL EKeFp9uKflcMpDa5sQgxm6WzbYMiqXMpDc/x5ds87VypsfiJAuR7sGuDD vadlDoPup0nb+P+Kk6fk6/BzLlj2pUKqnPvrrWcCdTikRTyitPzIaDOet Q==; X-CSE-ConnectionGUID: vaOXLAvTTTW8m0n1+0fJaQ== X-CSE-MsgGUID: scMsAkXxSeGc6IWWpKbbmA== X-IronPort-AV: E=Sophos;i="6.13,304,1732575600"; d="scan'208";a="31394146" X-MGA-submission: =?us-ascii?q?MDEN2jHDneYqbeae3jxb5kBe0ShaTiDAxS9dzS?= =?us-ascii?q?mXOlxZ0ANpeD+t1B2pKEWIEU1dBG8cviNmR1hvfPdapr4G3iA5HQLN9v?= =?us-ascii?q?wPu75DqjV85/sStT4XHhvOIUR3WzbE5n5ca7sAXq5mO6WyYiBM3Wahut?= =?us-ascii?q?AHrYSSvEfzRF9Qx3biLqoYRQ=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dkMpXL4FvlRUSUYkxW+SQp4OFHLFkWJfWpSUjl5zWfs8V6MTT9M8KXijM3yWR5wo6+SW2/SeeWHY0GiMbi6COr98Ncnv9ocD9QzpWEgqEQRrKtNPnsQvZXx0/GI2w89r1TogkUJ8PFj0fEyLfPm5zjSTPVP6AkN1izUCuJ9Ue/coT0OV1sDR0G72fmN1acKIDltXOX5TXc5PxDUGHYU85vEAZ5Qvn6QtGe2lp9pqqiUDhugmtlUSderapGml5GugJ0/DKfhuQLxlcnAZ/1u2oXxIdg17dHD6oFuR9TfexGKCE9WucQGUQKkdTuFXhxRBY5AaYzSJmlR1PiHvCY/39g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=srhIn/WpdlVpAE2cNticNNYMCyk2sH0vssLZt9U3Azs=; b=wTKdASl9wIhFYquY/mAMUaet6Tvv0dp2iQAE7obkelAGAQkqfOf6cE9qKjvi3gcTmK7CH0i8srmPoYSjrCVpfvk2AM2UPpxDSu0IkCiuc+dkEcUWCbrUhtaRzIzSPM3TzNEznkZzdYUVgHObhV/aNnuwUVi/MLrtJWKh6bpk3cm9/352yP/ibR5UV8hOYP/6+xfi1Brf6LO3n0q04ITNGZ+CvA6wGYaF7A158vBf4n8TSDJD5602jDLL0kf55gC6nfIbm2E4oQKm+mGW7x2n6RRTBeuktTOXLecX4hI4YrVHepEWcRBjE7SHQrVjT+SKjv7fWQAxaAgpo9XACRghGQ== 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=srhIn/WpdlVpAE2cNticNNYMCyk2sH0vssLZt9U3Azs=; b=KQWg7AkaIuFYoGkER52wxSK3hP2Z/CAELR9XkWyi9KQdjQv1fC+6SEZJlfR9bWfhFeCwFwX2I0pBlsrzaCm+ZbYQ5ysitePejOEZd1LVlDjHDVny0yd39XI7/ZHZyM2+0OLHrjsZJ8qkhgIbFwC6gOZrvlSeBAvFeM9L6COD/zIBMlwbkADiFwEKgd/zOW3dxkfWExGhwujkkroMBptUn/zlHxEBBxXePwnPrQGkmjNbESTb0BTJls7sOSIJzPm6bu/a+e+kkxDCBKd0b9R5rn4dmnxu46cxce/swmzKFqNQeIxSiwQT4bkCLAjFuGMcPSPFznpPxLgial6ZTrjkwQ== 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" , "tjeznach@rivosinc.com" , "minwoo.im@samsung.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH v3 17/19] intel_iommu: Set address mask when a translation fails and adjust W permission Thread-Topic: [PATCH v3 17/19] intel_iommu: Set address mask when a translation fails and adjust W permission Thread-Index: AQHbhDeu169TFxh780WaPeBcIqbPLw== Date: Fri, 21 Feb 2025 08:07:42 +0000 Message-ID: <20250221080331.186285-18-clement.mathieu--drif@eviden.com> References: <20250221080331.186285-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250221080331.186285-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_|DB8PR07MB6459:EE_ x-ms-office365-filtering-correlation-id: 72974e0f-bdbc-43a0-4122-08dd524ed158 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|7416014|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?0YQ3OBIJ3r/cc6Kg7+0rIsBOJ4loLNlxIS0MC9owrneG6CLNyUR4oBcOQE?= =?iso-8859-1?Q?dLhPdWY00ZeFtvUazcWQeeBEQgy2PSm05KrOwdKskBX57KHHAFq8N8eYE0?= =?iso-8859-1?Q?LXI83bYZcyWnasrMMrgIPab3uhTkMrqCuRvDDodKW4WrgeUZY2bOFghA7u?= =?iso-8859-1?Q?OhDl1FQRqHKSe4bQCIk6VQanVNoxk8vqMHEul/gjD+SBiXNCaKRkJtGXNc?= =?iso-8859-1?Q?VJSmk1BORR5hP/IE2/nLgd+/9Ll3CUDR7qNlrtXlGfB2aUpnpgMKC1HhC6?= =?iso-8859-1?Q?J2i29JfCxxgfzCLZFOFQB9yz3XfLlOl4P+NaMygEafuCFDBX2lE0oWL4S+?= =?iso-8859-1?Q?AvPrDNPGKOt1eDS7PkjA2LIqaPmYmUO8byMjysCfPJPtOz/4AMiCb3Y7oZ?= =?iso-8859-1?Q?uCRXOwKqS2JbZYjv8P/d1Qt4/72gXPnlHnDMrycmWI/1a/mhYwylRmdoIt?= =?iso-8859-1?Q?gE4jKqDrR9ePWJTCa81gyDbk7hn2FiK6IN+QdS09e8twX3MJfrHLclnNkM?= =?iso-8859-1?Q?oGApbWzXhzJMTTIRm1bqec1mhuoCOCkQDAlS+FeSDec5zABJwa0oo/yUT0?= =?iso-8859-1?Q?4Vn2yyWWaVM8Coawz5ZsjWXVQ9X0mpg/rFMXYZwgSHIuVIO7gJgiHtT1o1?= =?iso-8859-1?Q?KfJybMgxQPyv38z4KTvjHoWMHjD29mv06tudijuNSYA4JobrEPgxrWhrWG?= =?iso-8859-1?Q?CWqh29hcgSkrTLAP5ufczdQrZBrh67YJrG/31FTjybihhwt6i4Y1HeDWXt?= =?iso-8859-1?Q?lZCIN8FOorTqLeApNaC9ZRUeVJkySofD1YfwcpJk0oiyp22ucf9RUPEwDD?= =?iso-8859-1?Q?9xjQvds+JD965aSu4kwknrN4Bz/BnRzEnT06c5wA5q8JBR4sVoT6PgnD+/?= =?iso-8859-1?Q?EAOHNAwIFk5uRyhJSf0GyX+z+RKhymoNsYrQJU3N5TOUHIg+kMmciEfl/M?= =?iso-8859-1?Q?0ysHwQL5xoIm/Psj4dgIhVqfnl5gSQ9CTWOA/HYtdtka9NHeSM2fhWQRUV?= =?iso-8859-1?Q?4MedrQ/R4JUNgpx6C+smL5k4ne2Yj5il3/oiRCjK/rt95xpFDgBGOzxRWT?= =?iso-8859-1?Q?fmg0/n8USfxbqVUwwiUBcwaIFzmQrhbkMqGsIMLScGHn8Q7WgCygrCCAfQ?= =?iso-8859-1?Q?DW9ltZBoVPDtvcFSml/m2TaSZEjuQg3WtN0i7oDgFMtHDAKmYEdeqz004V?= =?iso-8859-1?Q?jxfMymdMEsDgahD0ceis3omsTcZ8xXkVKbAXqNVXhvjQftgB4D4hEjbXWw?= =?iso-8859-1?Q?EMCbT+Ov5v/huJHo9qB5jcEKwhXWmXOzujKLQxufQiShPQnZ5rXnG0nlhD?= =?iso-8859-1?Q?bF/eOGLXJ06nklNeFR7lwNNFSpudaImWuCThJQuXAMrIo2kxkfkPZxsYNH?= =?iso-8859-1?Q?UcBO3/2J/tipGS6XCYvhn0PhBLXa9jHuBX0oKPL2ykjlmEKtmQD6kHq9Oe?= =?iso-8859-1?Q?6t1/YpcaWCDlE9kf6KdJnxWkaVE9JSHe8eYuFLiILZF69M44jRQkDxYeuQ?= =?iso-8859-1?Q?rppoLDgkuT67PbpdOuAIoh?= 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)(7416014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?mGn8lmtpcXtNlrt556d1Kx4cNjmIBtEC09gDnEqOJ+7t5d6ULfq8bCbtb+?= =?iso-8859-1?Q?0GjrxIrjHY6EXs8Ie59hJBuoWatK5NuzjkMKxa+ryRDmDKlBVoraSV9G+Y?= =?iso-8859-1?Q?7zwtVp3nO2Awp3hB2Y+J1bkU53siaio0KEmm/aH7ZjvnZgJVNZCPik7pac?= =?iso-8859-1?Q?qTkFXsZpN1Xz1E7xsP1gYv/DrwIqC9mAh75d26Mm/r3HFJ4D21JUmuyf/M?= =?iso-8859-1?Q?7aEl+HfDp/FE2e0d5mtzlxlXzOmb5OnQ5TFrxSNuzLh0hYyGON+o29xqhL?= =?iso-8859-1?Q?8aR7c4umzeSAqqlr2Mj6/S5f0RWkmNjpQrkdPNwxb+X7R5C0kuw+paiKO9?= =?iso-8859-1?Q?Ruvj+RVqJqKkOJFv3DPbRI9cXmXisI/xP6PXMETwaq9A2I2P9ZzmoHAbsc?= =?iso-8859-1?Q?YKeCGQS/FaO3ATWDyRuhO/pB5Fqdh0aocbC8FFxqWsv8aGgqgMGU8uXjEB?= =?iso-8859-1?Q?60QF0Ue4LV8N6cnn4FtuWPhoAeif37k2Juyl0En5mJM2ZLlGISG/fhd0GP?= =?iso-8859-1?Q?0GELlQ4C+YEOwa6D4DMvUVKlmBV0o4TcYHPMKeNGUqYwNImMQTvh9HYxa8?= =?iso-8859-1?Q?5tWEop44rQ5U8oNLsxmuqIzesHOqAQrudbtYfmljqIHSwaiNrCNKNYisyN?= =?iso-8859-1?Q?IfmF53RuBAMUhUJdg0SZmd+vaf2jUB3rUniruxMDnA3YufxaaGLFzp7DnM?= =?iso-8859-1?Q?Nt8MjuVqWWLujwZygbKk6alJHwFK0MzmHf1UBkedv2p5lo8D41DylaGcL4?= =?iso-8859-1?Q?duwZ1ak2foposjOl1EkQ3GFQcjRPsd/YSHraLqqFTrG5QKJew25ua4Rq/W?= =?iso-8859-1?Q?p9c2HZM0NTgU6GY5tNdFwjejn+Rd+1/K/5d9Awnek3gZOrgOTk6ZHx2Y+Z?= =?iso-8859-1?Q?6o9XBL1rpO+tNOrM5vjhKtC43EOvOHvxP4bATnHipJaLxWmeA0S/FJDSp/?= =?iso-8859-1?Q?9CT3OeKNoiwMhtdC8UKL2dFt+TZFiRbqfcR1hoH0hEyT2lSmfkz1ZV61U3?= =?iso-8859-1?Q?abX+lJAeQ3ZylwnqBZkmJB0p5CgbGrGmF+e89t+pVU8v8m+QQfzRjHAJie?= =?iso-8859-1?Q?6Nwo5lJVMaRq1HPDX6vHihrQV7H9b68xD13Wsv/IbLOuvfSIZeauz6MWe4?= =?iso-8859-1?Q?szE8C8eIZepqZVnMkZtVBneG30VVgi4qCsKw418MkXekqg4SQA3lpDXc6a?= =?iso-8859-1?Q?rIpOSUH8k6uRPaxSoFc2+6P5x6ZjM53/6mVtonU0HKSlatYt7AP6NqC/gt?= =?iso-8859-1?Q?McElFAnYJl0wmfNY0S8rjKprVvfvF3XwN4GlfO5bcd2ZUj6ESUmlZ8LSwm?= =?iso-8859-1?Q?6DHu2EcrIiGjEoUVR2bCZJAzanb6aQDmGxdNY4f3GqYLRCUQVlFuNrgv9D?= =?iso-8859-1?Q?B3LopflEmE4zK09YYxc+wI+OLgCFTPKV+k4o8zCgflYExT5khwEDRVIuRl?= =?iso-8859-1?Q?dYo0YkewrBywpmGtjBducgqw9GgUUWn/IE/UlrAi+BTT9dNl3L3G20hDkt?= =?iso-8859-1?Q?ZqT66PI70T/tmMV+/q1o/iK2fDYVzJ58BYi1cA1QqLaTOGtLvObPCDi70f?= =?iso-8859-1?Q?hWagoz17tRgSeXQMXRsdRBmjlXWLtgVpwYZDlufj5dvwJON9e/iw7CcbWV?= =?iso-8859-1?Q?W9wFm481YNdZz+W5s1S4hQwfnfbzYXnoKXfuz4tDK2iSGb/+74u6hspgZ8?= =?iso-8859-1?Q?5H7YbiYVp+cmXkBHJ9k=3D?= Content-Transfer-Encoding: quoted-printable 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: 72974e0f-bdbc-43a0-4122-08dd524ed158 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2025 08:07:42.9583 (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: dQYzHTkyuE2PiobLm35HuW08jGXa6ON2W9h0a4N2VVzMKqgCVbxnGTWQn94ZLdpBdiWZkTmmUm4fS8uoJPwW7O2p9Z4DTFx7CQRyF7Cs3hhMFzIeOpJBlgbY0QPPdnhb X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR07MB6459 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=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, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1740125418803019100 Content-Type: text/plain; charset="utf-8" From: Clement 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: Clement Mathieu--Drif --- hw/i386/intel_iommu.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index d3772d8902..b9b5d492f5 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -2100,7 +2100,8 @@ static bool vtd_do_iommu_translate(VTDAddressSpace *v= td_as, PCIBus *bus, uint8_t bus_num =3D pci_bus_num(bus); VTDContextCacheEntry *cc_entry; uint64_t pte, page_mask; - uint32_t level, pasid =3D vtd_as->pasid; + uint32_t level =3D UINT32_MAX; + uint32_t pasid =3D vtd_as->pasid; uint16_t source_id =3D PCI_BUILD_BDF(bus_num, devfn); int ret_fr; bool is_fpd_set =3D false; @@ -2259,14 +2260,19 @@ out: entry->iova =3D addr & page_mask; entry->translated_addr =3D vtd_get_pte_addr(pte, s->aw_bits) & page_ma= sk; entry->addr_mask =3D ~page_mask; - entry->perm =3D access_flags; + entry->perm =3D (is_write ? access_flags : (access_flags & (~IOMMU_WO)= )); return true; =20 error: vtd_iommu_unlock(s); entry->iova =3D 0; entry->translated_addr =3D 0; - entry->addr_mask =3D 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 =3D (level !=3D UINT32_MAX) ? + (~vtd_pt_level_page_mask(level)) : (~VTD_PAGE_MASK_= 4K); entry->perm =3D IOMMU_NONE; return false; } --=20 2.48.1 From nobody Sun Feb 23 05:49:05 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1740125359; cv=pass; d=zohomail.com; s=zohoarc; b=NK0BSkFRfurwtFiXZArYR1r6LtUr4sOvm0fb3C8eKXv1GJNCW/dr1d1omqu4J4OC+FCqoqBAX4dCEU4Cvt9raE87MB2gShPzRXdz2QNRzacVnrvcM9hIg8rzCnJiG3V0l6LBVqwf8D33pjWZnWn3mzdJmKbR2L0h8RjWbmGtWxo= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1740125359; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ptdj9NpRDTE1Jdjyv9AgOzOvidnvjV1MSr75mHV7AxY=; b=h7l27jyNpIiHFUr5piK40UkWP5WLXCMj7PgsCJQM8kIsbZQJ5CFVkKWZ3kjwvYLuJa/xg9mN2UgtqMmccElrSy5E4iDKE/p/gmoizC+xLppcKDPlhMxunpxDpaTmVuYy8r4kJKRHr9sIvg4S/3mUZEL82hICcfFG/EEA4jkGFyI= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1740125359196773.7393292062097; Fri, 21 Feb 2025 00:09:19 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tlO4g-0004d4-CI; Fri, 21 Feb 2025 03:07:54 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tlO4e-0004bk-6N for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:52 -0500 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 1tlO4c-0005j1-Aa for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:51 -0500 Received: from mail-vi1eur05lp2170.outbound.protection.outlook.com (HELO EUR05-VI1-obe.outbound.protection.outlook.com) ([104.47.17.170]) by smarthost1.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 21 Feb 2025 09:07:48 +0100 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by DB8PR07MB6459.eurprd07.prod.outlook.com (2603:10a6:10:142::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.16; Fri, 21 Feb 2025 08:07: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%7]) with mapi id 15.20.8445.017; Fri, 21 Feb 2025 08:07:43 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1740125270; x=1771661270; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=m5wBA/DKT2nuLCzYeyNMgxFYfXCnhkVt7sDapOAU8cc=; b=H4F+k/zQWaATeQ4/pzEwVLZQgE+rxHG6oWxj5NEUacOjn5tAHnT8uX4T tF4AA/ZfMxq9RbfkAH5Sh6QY68he76d4aujcwryl52/fhFxmkwWp59fR2 5g0dCdg1mElEwZPntbtUEtLdmvjGVUb5nHdw0aYvih5vrkkdTl1ViDoHt U0KhxJ+I/DY1aWn04n1z0hrhjwQCHLkA7DQbiMg+1sIV91envqaTeU2z/ f3hq0ikB8WAXtj2qQDZyBFrP7EZc3iY2+guCJXMX1ym+HvPB3eyPvCrRQ z2CtvCMkYJt9YMEbDIMYkj4pxR6WgB47zDujpYWJbns6JMuE5xjk3gS96 Q==; X-CSE-ConnectionGUID: ovr82eYpRGK8hvIU7hFzQw== X-CSE-MsgGUID: Uhil7dWUS9+m6ZoUv2DTRA== X-IronPort-AV: E=Sophos;i="6.13,304,1732575600"; d="scan'208";a="31394147" X-MGA-submission: =?us-ascii?q?MDFlxv8oBtL0NtsO3L41EpXZwsuPoLcqNltVUV?= =?us-ascii?q?+oaw2UwLmj/uVZby+HfMEBCxNCqC2mhZJFbq4IKokBGJvmjcH8YKQd+h?= =?us-ascii?q?pDHLovhY9mlb2FIiE8LBCn48oF0PSag5TGweA5JHSbaGtaYKUOlrTp/e?= =?us-ascii?q?XvwvmfHbFxLH+LHqDbnDxw6A=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=M89eJZrvdsH+vowawWmolNMg0G5sAqOOHzz7pLpc5JIerD0Rt+SfCS4xKgIbpk5AXq60Nnh8EDsWWAf8FuTUQ57GBmFmhBP5ygZ2dJqOCmQnKB4Ctwc5BouzsJFOLYwWLC8Sv52wcOWqn3GdxZZrBYLsVYHHDcAhMpXihU/VU3uzRa9KpwkcD1P1UiBwEFVL+fhSwaW8StDAio2OAwz8/MqoZYnhllFzR3X3t9sUMeqiTW+vcAnI6E/XnQQ4G1wgOxtbnEYzjnu6SgEoQlCy3vc2n6tyzFRm5LBpfV79qbeWGoy5e01G7QeOrHOeGqwo1iCFRp9lVrtOhGBdWUQ4Wg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ptdj9NpRDTE1Jdjyv9AgOzOvidnvjV1MSr75mHV7AxY=; b=F926SWoQjAUaScOLn87V9XvUKqvGHMoACR1FJIQiTYFxgshPW2P1fYzvE/Nkyoh39Ogb9m1jb8wbLxlCjm51Frg0/fEXbigdBbrAbhlFQRGBn3Curcg67upIleUpKyufFwmP8XAkB4+6UquTP+17Ar29PXiTIC7EFNTE3voK0uv/GG2FlZMzdPSUmFBEZbNEt6q8kHUM7497w3PJPZJ1wZODUzjCxGBW0nTMrERVQ4RXjf4Sk2wNH+dpQ3H4Ed34K6TQWr+3Eqvf++Zd0if5OGIkzzM/yHmVyXGztzziNCEC5q/b40qRlx2VApWa8MieVf8E++8P/JcVrtTvt3Skiw== 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=ptdj9NpRDTE1Jdjyv9AgOzOvidnvjV1MSr75mHV7AxY=; b=XAjZ1J/ZOrLt5LgPKEiHr1+rfUkZcjcgn9ZwhiWRl4uSfVuGMFoLyrsE/PQ6NRnRiY7hKnZ4Uthf8IpWYBwAHP87l7jCCW51xXT1BiMiozdXq9L9daRdlGi99UnscTbM+XYx03RZVHpCl5w4BAumXGl5GyFN6sze0ZvQuMbDmqxwTTV06LaQM2k3fII+q5ohV2SRFsQXrpd6u03pZ99RYWvudOdINrIaokuYVsCuPIGahqXPXWvanJWU+XmjU80FeW80hJMfp1rXNeHtolqGK4AVFxlomOrVoY4CP/tgiYuEljIlYZK9jrVb0HliizTEmTpPvLE7dB8s6V0+WLjh4Q== 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" , "tjeznach@rivosinc.com" , "minwoo.im@samsung.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH v3 18/19] intel_iommu: Return page walk level even when the translation fails Thread-Topic: [PATCH v3 18/19] intel_iommu: Return page walk level even when the translation fails Thread-Index: AQHbhDevAtMGTD3ASEiAbxvGiKR+qA== Date: Fri, 21 Feb 2025 08:07:43 +0000 Message-ID: <20250221080331.186285-19-clement.mathieu--drif@eviden.com> References: <20250221080331.186285-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250221080331.186285-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_|DB8PR07MB6459:EE_ x-ms-office365-filtering-correlation-id: f6eff158-90ec-420a-cc39-08dd524ed1ca x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|7416014|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?ICRsrooCIwhvUCxmuP67XxxculZyllc08NW1qvZGX2aSDJtZr81r+A+xWa?= =?iso-8859-1?Q?Chfdo2WEFq5ZatzyMfQ1RlGFVxQnjAW1nvUT7c6W994+jaV3VxpF8YWCMc?= =?iso-8859-1?Q?lEfTumwcuqM8Nq6oHOcoCPBsdSGkYeL4iHyhd7ZzHTx6w4FjvRxbHIPp09?= =?iso-8859-1?Q?vM2HNWzzrTdTaFDC5rmADwBkEpfz9FuYCoGZKGKwRNpFDvIcQcfCr/E8e+?= =?iso-8859-1?Q?CcIvuTLGdEBZVA7jkS7xB3gG48Jblu8pfwBsMCh44e0pjmlxUso4dB0LtH?= =?iso-8859-1?Q?nlF8hPJLoimUBCHqB21M6wEnKRFWyLaGSqc8uvto+sJO3ZTDo4/shxCAsJ?= =?iso-8859-1?Q?KPy04SqTKOQS7iXFuMwtcdd5UV28pyP6YpbEptzlpogqDhSQxAghNhp68x?= =?iso-8859-1?Q?fp0TGAE96fcGGLVdRTbdvfGfxQtqHYMcXtYW2sxG4Tf9vMsDxgVLViD4Ng?= =?iso-8859-1?Q?UiOvMHEIqE8R5NitHX+T55jFmCmbO+8/mZodX163EwsUGFlqSvd6a0Z+T1?= =?iso-8859-1?Q?k+i/iGUPTtmNb8Hih/cmuXBtUZN8DDvAD+tuaxgeDrFDP+/x8bokv8jb/d?= =?iso-8859-1?Q?Ipy72GoOUyxuTneCR4w72OA1ZAmz2Ek5THy+/lsFM/S1hKyJoYb1/WmarE?= =?iso-8859-1?Q?0o3031ZOFg8dxpJZEtYRtrEMckGss6HVwhjxRuqUgJbXtzi5lRxXHOCh/f?= =?iso-8859-1?Q?OBsYM67oBbJiHIuPrH00fQ4bFFD8NE4c7/7eCVpt0oexzRCRn2UJLrAE5h?= =?iso-8859-1?Q?PesctKf25Zd9SGTdThaswvQth+UZPjDEEKBOG7hV48KmDISPfV7kan0d4h?= =?iso-8859-1?Q?k/ACZZ599UTm3wlhVGXBiEm6HUoxfbuDyrEwGvELZPqS323DAiUt790Z5s?= =?iso-8859-1?Q?JImvJmD0DFfp09kzxC8EABHHDs6IfRyE24/XM1DZxj3cXb8qMbtON/vVsG?= =?iso-8859-1?Q?FGohY4oU+b64TZZN+/bphywKjP/r4bqJzE1fGVd4upxsn1ArpQ5OlzC3Nl?= =?iso-8859-1?Q?HLjVoaQ7zxnr8iPIhB5WBOLi9WS0nOBHX2G6SEvv4+kwMtUn9T5KwWbc9B?= =?iso-8859-1?Q?u7ojwKyi9KS6oAqPz45TqfFE56fva6X2ycWw0p2fqsxnsm4w20E6rqDLj4?= =?iso-8859-1?Q?8QV4QWSs5eASkcVpQdRRAAXeeIZKzuPY3qhpFY3WVoaIEsR5VSZeyy5maP?= =?iso-8859-1?Q?+nm/+HRleTocWU3rH7koDc1L8NYOFgOm6WyF9YO/kg4ZIAsMhj6ffaoTaz?= =?iso-8859-1?Q?yREMprOSMdKsYQxZYwA6E1Ci3KqmcII5ORUxFiUBt4wIogs4WjLj+/TmUD?= =?iso-8859-1?Q?Vcu5VFGB++YYAC3jb9+DdUMUQpuIAmPeubJfhGTYlVApUsBMdkesbOwXE4?= =?iso-8859-1?Q?oUA0hBn8XNOCp2831r4/FnU7D6lxqqD3bpPfTa0PjPBPDyCgCGdSkorIbm?= =?iso-8859-1?Q?gp2XtoUl3kagZO5nnTpr6N8rfdswfoTOg8Gqz/Ns6yOZOEylUyk++saNJi?= =?iso-8859-1?Q?PV0XP5B7B8nUtuRE+PcfB4?= 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)(7416014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?YbPiFVm65eTb9QKHUDPs2fb+NCCE8mHkgcoKkkhivQ0tWCEhQneqTAxXv9?= =?iso-8859-1?Q?3uzcp4cdXNfPqkEhSRzM6ECFyDfNw1gwtEYVPAva1VZrqt45GH3Uf7iCl3?= =?iso-8859-1?Q?YrobUGV3tM4GwED79fqT1tB/lT1AhINy39tJI+8uonsyXwyIaBcm+tI+vr?= =?iso-8859-1?Q?J8eMKcgn/IQTjLbHG4c+tSaxV2JU6lwCp+S+QMBJGgE8qvTSjq2UJrJ9Kx?= =?iso-8859-1?Q?KYl1p2OoIewvhbyTvO6iF1wuXvlSdIUs9cqQeFepvJrQBEphczAN+eag2k?= =?iso-8859-1?Q?O5/7Gre2VpJ/kWLV+Ow7Ux5gCZXZ/aePWgT+Fav0lmCxAA/ZuWF0bkFz7r?= =?iso-8859-1?Q?tHL3X+ECnMnE/ywzfkBH0KsbbaeUDDolLOu8VVawWgh7yrMIrEzu0Xptpd?= =?iso-8859-1?Q?DxWqzWiBk2omFYc7ZWAl+5F2A1f4/JIGlM14tqJv4ykyQsgQLHcnzM7/4i?= =?iso-8859-1?Q?dRAvm1p7FMlRSf/rhiAm8QN1Qz9dZiSOpZEQDWo/W8XXPaVcnkqZ3jl9VZ?= =?iso-8859-1?Q?WyNlGjRkh82jmi6DVS3ojWnJySWVq1TiQGR7oBaghde/VCo5b94haDg6vE?= =?iso-8859-1?Q?frRJ5n3ZmMalVtYlf6Fkdflp2d5SV9eOpVqYfT8onrO8ZvmLTBfKYAdMHw?= =?iso-8859-1?Q?/fLZ17gVjpkVmyJuEVGNHVD5/GAlwVsMMY6fbTernXI2uALtjcqyj8gTDW?= =?iso-8859-1?Q?FhLd0hG9OZlVzLtD1CQ0XTm02JKqoBA4xQy2vN3zX6DEh8dAhe2CCtRVWh?= =?iso-8859-1?Q?hSlczdMJuQHeWgBf/cR9hd21hS6m66/lzEMqOvgPAeBfXL0FLA1dvjYAIV?= =?iso-8859-1?Q?bSJuiA3iEKhJGU+0H42qeQWYYed3ul/o0jYo0BeFBplE++fxfEUXa9f32g?= =?iso-8859-1?Q?dJdN28a+n3cwhD0TeXKRhMNQ08jFCWu2ZaPTXUI/PQ5G+ikPe9ckNl71XP?= =?iso-8859-1?Q?BT0IcY1CWpfPlyaOaqWyDAFjg2SAFpiDDC2TLKEaza8ZTjlRXItrqBw+3a?= =?iso-8859-1?Q?/Vz5txOF7MVyiWQ4VixnEvhJcV/qXPZWHNC8QxnflUGYvidhOxAIhQjxDQ?= =?iso-8859-1?Q?oD14gb/AQ4Fy/JhnlSS3aw92bQtTr+8VRzIgHzJXEkSlcVdre2x+d0LBlj?= =?iso-8859-1?Q?wOHQesaiUV0OQ/qZATQByv0YOGZ1njLj1GxnDcC+gezXSYvYi6htmIA/6T?= =?iso-8859-1?Q?4eNaK4cjmtLouEDkVQEgfwOPCzt/1B8WdUc86BKko5+W2CIrmF1sIRNi8k?= =?iso-8859-1?Q?lGdbxA4qbeORR+IN+xRFvEiCaB5hdMlqJmpOof5GXO+Pze+BGslut3su+l?= =?iso-8859-1?Q?yNp2mQA/8Ry9h4d8d4nTf8a9c5J+t09D9m1m+OU6k9hB4AsweKf1Q2TBOf?= =?iso-8859-1?Q?95sevi4mbf5Q4w0kEOtNOtXCwmZrFX9+4vDlJpjBj+sTUQAbR48ntBZ1eE?= =?iso-8859-1?Q?XL3PplflWPtm/N1yvWHkfp2uquWhySj/39bWtQpRa4ws5a/5/MbFYNVi8t?= =?iso-8859-1?Q?aFqm+W4FeqE1tt/k2HjJwvPEFm3aL9qEBS6PgwNmx2PUTs3wSYJRYaLYA0?= =?iso-8859-1?Q?tYUwA4zlMxVFQHwAaZbjIUVpHAkTXhnFCULc8nTmvYmFNkT8tkBKNxlKTl?= =?iso-8859-1?Q?8QBvlcRW5grk2xoEK9bPXKImpR9aKaIrVIDSatvymg4RIMNgSojHSjP+Xy?= =?iso-8859-1?Q?tNWeSZtC9F9OPlzdsTs=3D?= Content-Transfer-Encoding: quoted-printable 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: f6eff158-90ec-420a-cc39-08dd524ed1ca X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2025 08:07:43.7011 (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: WdraUOMs4pD1GxNBB6uqfL9ZkUCKpXEXBAfzN0S6nhJmKS/XP3vKfyOeOTcpv3LHePjud5rYmHyXEKfc3jI+9lqxZvEyziUTwC0PvpQbkRpoxY3vvZXy8UP2S5nzawmM X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR07MB6459 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=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, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1740125361500019000 Content-Type: text/plain; charset="utf-8" From: Clement 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: Clement Mathieu--Drif --- hw/i386/intel_iommu.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index b9b5d492f5..9daf8025cc 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -1995,9 +1995,9 @@ static int vtd_iova_to_flpte(IntelIOMMUState *s, VTDC= ontextEntry *ce, uint32_t pasid) { dma_addr_t addr =3D vtd_get_iova_pgtbl_base(s, ce, pasid); - uint32_t level =3D vtd_get_iova_level(s, ce, pasid); uint32_t offset; uint64_t flpte, flag_ad =3D VTD_FL_A; + *flpte_level =3D vtd_get_iova_level(s, ce, pasid); =20 if (!vtd_iova_fl_check_canonical(s, iova, ce, pasid)) { error_report_once("%s: detected non canonical IOVA (iova=3D0x%" PR= Ix64 "," @@ -2006,11 +2006,11 @@ static int vtd_iova_to_flpte(IntelIOMMUState *s, VT= DContextEntry *ce, } =20 while (true) { - offset =3D vtd_iova_level_offset(iova, level); + offset =3D vtd_iova_level_offset(iova, *flpte_level); flpte =3D vtd_get_pte(addr, offset); =20 if (flpte =3D=3D (uint64_t)-1) { - if (level =3D=3D vtd_get_iova_level(s, ce, pasid)) { + if (*flpte_level =3D=3D vtd_get_iova_level(s, ce, pasid)) { /* Invalid programming of pasid-entry */ return -VTD_FR_PASID_ENTRY_FSPTPTR_INV; } else { @@ -2036,15 +2036,15 @@ static int vtd_iova_to_flpte(IntelIOMMUState *s, VT= DContextEntry *ce, if (is_write && !(flpte & VTD_FL_RW)) { return -VTD_FR_SM_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=3D0x%" PRIx64 ", level=3D0x%" PRIx32 "flpte=3D0x%" PRIx64 ", pasid=3D0x%" PRIX32 = ")", - __func__, iova, level, flpte, pasid); + __func__, iova, *flpte_level, flpte, pasid); return -VTD_FR_FS_PAGING_ENTRY_RSVD; } =20 - if (vtd_is_last_pte(flpte, level) && is_write) { + if (vtd_is_last_pte(flpte, *flpte_level) && is_write) { flag_ad |=3D VTD_FL_D; } =20 @@ -2052,14 +2052,13 @@ static int vtd_iova_to_flpte(IntelIOMMUState *s, VT= DContextEntry *ce, return -VTD_FR_FS_BIT_UPDATE_FAILED; } =20 - if (vtd_is_last_pte(flpte, level)) { + if (vtd_is_last_pte(flpte, *flpte_level)) { *flptep =3D flpte; - *flpte_level =3D level; return 0; } =20 addr =3D vtd_get_pte_addr(flpte, aw_bits); - level--; + (*flpte_level)--; } } =20 --=20 2.48.1 From nobody Sun Feb 23 05:49:05 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1740125392; cv=pass; d=zohomail.com; s=zohoarc; b=Fp2z/DEVsT1CMrwLVCsNnr0JPTwKp7vsV7rzJWsxzPeA4Cgc2YeRysDv8dyD+DTt1yunFfL9b4RXIAywi5xtDWH8ViNLXgjgwF4AP98z4UjIwoyi2hvmN41J6Wn6QfZbkvXMP3/wgKk/X0etd3dr5P/Nn8UutrWQNoBTzsoN0oo= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1740125392; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=v+ubVhNTRgk5dT7AxWnjpgCltzcIrfiIgdWhE8OQaus=; b=CzuT1nCPA6XsrvXqhO12icVDfU/HF/mIM4JZvkvoeInNXZle7G+jHL9hHGgFeFE9bunIWd5xt7uDV0LQWNiIoslAtnK3tGp3SNSDt5FQOCiisEztXggsQZy2FUuDPZxAJnYTXKde3Buc0/Syf85da/QNbrI/8V0EQEoY8FXTM2Y= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1740125392329320.474509283296; Fri, 21 Feb 2025 00:09:52 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tlO4g-0004cw-5o; Fri, 21 Feb 2025 03:07:54 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tlO4e-0004cH-U0 for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:53 -0500 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 1tlO4d-0005ko-1P for qemu-devel@nongnu.org; Fri, 21 Feb 2025 03:07:52 -0500 Received: from mail-vi1eur05lp2170.outbound.protection.outlook.com (HELO EUR05-VI1-obe.outbound.protection.outlook.com) ([104.47.17.170]) by smarthost1.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 21 Feb 2025 09:07:49 +0100 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by DB8PR07MB6459.eurprd07.prod.outlook.com (2603:10a6:10:142::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.16; Fri, 21 Feb 2025 08:07: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%7]) with mapi id 15.20.8445.017; Fri, 21 Feb 2025 08:07:44 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1740125271; x=1771661271; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=KHmNcLQuspPA0tQxBlqqLb1prhzBBBLWPp+69jOVVMM=; b=c5lqeDybkziVXB/I3UmCmZvTIuFZTLq9G3rmmaccRYZbNcbodwH3IJUq +l03qijnq8k0WZneq81eJia8yqspTkEsUfuhgoaP/wJXGH0/zbc8VW65r Dg0sOmk/cLqlZpBvgNEBj2nt6isowzfcyTFdEnLAxf4c/G//8HxY/2jD8 /Y9DraOzrWAbyW0Hf0besEX86FSgVGuVCcD5M6Q6YzSRRD/qYQDKI4T7A 9tf9FTcFrQRdrYoB2/VzWEruqXs+dGJd6C8u2qHRiE0ITDics/Vun1cRC bSNPjxTiWa+CIi5gokInWeFqfZUbZ0uiNXdA3jN1x/9zZKDX3H2ah6cwl g==; X-CSE-ConnectionGUID: qso0zA+OQKuyZuqL2ktcdQ== X-CSE-MsgGUID: RCREXZtIRWK8DlF5G6za+Q== X-IronPort-AV: E=Sophos;i="6.13,304,1732575600"; d="scan'208";a="31394149" X-MGA-submission: =?us-ascii?q?MDHA47w/AYhVxtld6njpZh5njzKU0rDEjVX4aQ?= =?us-ascii?q?/HHoeKPxqK7t4TdKvcvu8ekLWWzoiUHk8+CIpbRFW1qkr5sq9bqT1z5f?= =?us-ascii?q?fa+AExpJHpEGcJmtzO099RuLfXt6wCi+vFueirYxhEzCkRukSoAOYuY+?= =?us-ascii?q?aG+FrmXY+cyKsL42QaMo98ww=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LOA+y09ZwSa3sKm6wrdUdCVrengJCAkzKqDfw/IF5w0beIzyJpsCjKvLDD7wNPyCqGNykP7L1qQjjff1Fj9EjSRSuiY+KK7vvm4oxKSmez1YPbsnIhDfKmmpx5M9D7MAo0pAXKXRgxzgaCSc4SN2aT2fJykkdX0ezX02ZvjH7e/1kcpoEu1QFIoWFereuO5f+Jmj99yqYtMxY+ltabw+8U++RU89IhxXfKZCH/UyZzjwiCoNBT2Iiz8t0bBUtZYU8TUifLmZNgL82OGKtvTI27WDDuq9Qskl/fZlTtsBoxpHvNYeXs/+BpTbG7w5XBDhHli9b7o9zuGYIIO3uyenCw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=v+ubVhNTRgk5dT7AxWnjpgCltzcIrfiIgdWhE8OQaus=; b=a26NSut1d52WuWtNqIfRyioNu6Utx5APAMOa9UbHfiSpI+G2tMBHIVEtVhsxsSmAo7vWfFxOZnIQMMiAm0eHZBGFPJLFXKemmSpHVxmq16Sj4T8OLlvxl7HTSmC10YqPg9qgpBX4a1jvJb7F9G5D6unbkOap6e3lClR1uHSG3pfHA3cX0km2LEdQzm1SPG05Cp70ILD0wjUuW4M0tfktebzEkdu8UfRksFGTAoOkpAWLHXf5SoddrNgKdWkVh31JhV82ektz6l4V961HVxOjxAA1+V5iJibRfe0kW2x22v75VFNnlZASVgPxQbgy5g+B1cJuTKiIvrP+TafS76Fy8w== 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=v+ubVhNTRgk5dT7AxWnjpgCltzcIrfiIgdWhE8OQaus=; b=ILOWf/3khkEhoqATVU1meWgJhdJLSYwyslbvAV8XnEdJlveMoU6kU/PsUQiAmLrYi3nSwDQ69S4SMZBx+49aF2FIh0SmB2PGWuRAjGY3BgRuDzkd+lU7UoDvuOefiAkFsAbtX5esoy3Bx/REDGsVIlDwuC8QGNwOmZbGqjKiMH2TSC5+vHZ29FN9VZv5zwStuKJshu/y2f0bicuH27VYobDEAVp/nnxhE0lH2NBUGyo+9FTsNlcU0YF9QyBQkZlZnSYwCe+XY+VqDmehQSvAxlT38b8TqIydRngwjZBR1eBPWtxCb8CsNZ/I8RYZlJ4hC/1oTIeJs8QDPQSkWL54bw== 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" , "tjeznach@rivosinc.com" , "minwoo.im@samsung.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH v3 19/19] intel_iommu: Add support for ATS Thread-Topic: [PATCH v3 19/19] intel_iommu: Add support for ATS Thread-Index: AQHbhDev8G8UVR0uVECvb25nxR+40Q== Date: Fri, 21 Feb 2025 08:07:44 +0000 Message-ID: <20250221080331.186285-20-clement.mathieu--drif@eviden.com> References: <20250221080331.186285-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250221080331.186285-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_|DB8PR07MB6459:EE_ x-ms-office365-filtering-correlation-id: 69ffb061-887b-403e-2d97-08dd524ed23d x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|7416014|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?elngJkPjZgvKvFe+AlC7oFqW0DeE9TGEujveCHzPylBB6iOl9syVDymcQX?= =?iso-8859-1?Q?C1vOp2lxLNsvy54Npv6Ns8TAR+WN+Ry+DS4vNLWvi1gpv59H48m3bEobvY?= =?iso-8859-1?Q?YuLYWSldDdgfA85GwlMZmlxl7TAASTlyHC5634yZmk8oYKnIgKCVke1u/F?= =?iso-8859-1?Q?g+VJLGQTBSLY47OfUqyg/FcUo4xZ6aXeQ1RyJIPUl5iBaXAxn1MRDd0iR6?= =?iso-8859-1?Q?L1lfzN0vAlNoEHXrDDSDXtT9HZ+6H0nx9hucE8kXP0Og9dPAr1WfLi15gL?= =?iso-8859-1?Q?kMX3Y+YgjqJu6WIAqUMTpN4osI6xYkZZbro/nQFcwI07ZtJepeLNNwXR0u?= =?iso-8859-1?Q?2kYK2Lid5Q0QCZ8MRz3htiP9zb4fUBzSiwUCHdby+FhwySnMuG++Qu0ibi?= =?iso-8859-1?Q?Yfs+AxvIyqxhYPyaz+BvgfJKnvlCbZhibA/+7f4C5W0jtThEfu29ixmPen?= =?iso-8859-1?Q?ePYAyW+nPkQB/K92I9xZhtEJ7hzH91tbWRYTWgW2DbQ2h/Ous6yGRkyctV?= =?iso-8859-1?Q?jkKCdxie1qCvOwsntCC70Mfe8M47v7NHUdVpRkiOnCYV7NGZNL3qp1mRAv?= =?iso-8859-1?Q?QDD2m/Gk2rYeI0hgs//QRNTYNXHmdmd3PhLAmb2lTQAOk+Fhz1FZwD5uAp?= =?iso-8859-1?Q?w2laP0982SUSaJ694ekO8dux6nehym1rOvPMmqeOw50Y6DQcliOceXQHqS?= =?iso-8859-1?Q?YELrSzz6onPUNUZ0NjMzWPJ8gzWY7u7TFhwN60ZiBg8x6iFXqzCm3NRm3O?= =?iso-8859-1?Q?BpzIUiXG2eMrGSW2upJ2iTWTKus6K6vFf1cc/u9yM1+qDIHNAmxGF+88fM?= =?iso-8859-1?Q?BWuLIV26zYr5HGA73rGYstYGjloCaYm874heRDqJ5cJQ1dl/JHcE7o+T4f?= =?iso-8859-1?Q?b38xDC15LDDyXtGOIYZSPDwTRiGmG22k+V7vjSpLraNosy3wlP1GraKt48?= =?iso-8859-1?Q?YRo49jgPSSQTT2pbH0SEgMmLcZm7HnVP94AnW71Tf/euJo1pu2DZ58rAnf?= =?iso-8859-1?Q?G4La2kB81Eew334zL1o9sgZXZZnjHsq2sy6ABTUC02hUEbsQjZ/ety84Fz?= =?iso-8859-1?Q?okG9qP/GdEDbI1RWbQMLd2N8jPn2miTNFRso5Aaeqo7AU9fgWuE+Y+2bqu?= =?iso-8859-1?Q?alBtEG5FxVuE/ZOh1WYXzZpPHA/ZX3+rXg0uUsTFi18/necBnS3IZHcnx3?= =?iso-8859-1?Q?X5UIJHVkJksYNniNx1Ec0e875oQ4COrAjO1dnc0h2y6cACvT+LtrpZuHcw?= =?iso-8859-1?Q?uB4GbadsEiUSw4YiRPr2Y9j/EtXHsWnl4JNY0nTjB/wabU5NwIcIRHOZ89?= =?iso-8859-1?Q?3Lzqa02fhqQSr0Mi/IfjKFuEVJEketlg3+t/QR64l7QFYeyhGwyuk0l01x?= =?iso-8859-1?Q?PrjvcMp0Las/TKQuRdQ7Eb0t+4KmngPWCny08KxNrCpXcnEUojB2tEu1zL?= =?iso-8859-1?Q?sIoml/i62AY3+z7FrHCc/LyW/F2HToB/9RkD8KF3lWC7GN+7kiHqj1S+EC?= =?iso-8859-1?Q?qs6dumsczXdsO/XQ6r1M0v?= 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)(7416014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?JUUmdRD+gv/nJKWQxU5iP74p+CPZI1P1XweYmdvof8rAori2E3u0m/1aBi?= =?iso-8859-1?Q?KEYzg6JG3Grr09H5UT5yCLaGlWlAlexUXUgTrI4U3yKDxD4NwsQNPMubCG?= =?iso-8859-1?Q?4lZqmYy5tP9mChTr38v1GmY2TJqefjjgkAOu1v3UOUSv2Mtm87b57b5ibc?= =?iso-8859-1?Q?lzDrjxAZ/q6cw+RO6aPUEKGcOcUkO3RULW149/QaHeyd/vA1Cum7E6Igy7?= =?iso-8859-1?Q?gzvfjeG6Oj8BKPLjleHx4PIMkY289W/FBQh4rL3KIMEtpcygTcbFjEVOG5?= =?iso-8859-1?Q?Al7Dgac4dsu8Vt5PezxDUisTBondC03CWlmvVaDCoueIeSE3TN3Ue9QZav?= =?iso-8859-1?Q?9p+RkjJDKQowgmA7wqyJ5m/qGAY+JIPedZK7iT2wsW6vavkVJYNr5QUJ7f?= =?iso-8859-1?Q?TcoxzjcoXab2XdBr4J/N1vMSb/QLQvx4uSH/yvkExl164pPVtO/z0IWo5Y?= =?iso-8859-1?Q?ZNoBKIFtxyEKkzESKdYXQ8IenDVZyDedehVvUQoYvEFOj65KpyLF3h7Uhs?= =?iso-8859-1?Q?SFMO1UWo9gX68NsGu7SB2DJgBqBnyLhIg3imDlraBvyQlDqA8VpDA7Sro5?= =?iso-8859-1?Q?rOc9IJ+/nKEWiOLgVRniQl5ViPlOOMtGbZRPIHeu7jpRxHcHz2RkBsDpXw?= =?iso-8859-1?Q?ciBa9Y/QdNT01L9nZFyvcjfH1AhprWGEJKgpPo8Rn0Cb9zRJasEuhRiTH+?= =?iso-8859-1?Q?/Dksi3+73fCvHjH07soZno+Rnko8BlM4t68J7opuDI5pnhOqxRMbT1UhRo?= =?iso-8859-1?Q?eE2kNyXtPp4xAN4hUiaHL4NDim/+jtm1B5pIWnn7GptvFZWyoMZD+3fzvj?= =?iso-8859-1?Q?fchVWcriAOVX74fv1Y0qNO5VOfEggro1kGMe0YG02U+LnYkzmJ7XVYct0/?= =?iso-8859-1?Q?55A2Gvvxtk2DWhGqtvNn2LOEykQ3HmHyDhkgh8VR65Th+GSXgibMe0L23D?= =?iso-8859-1?Q?D/DVisVuoakk+O4Z0Al11luIyx3tuEwxdlZ9ocMj8Mi/3M/IU8acn/KIl1?= =?iso-8859-1?Q?aSHU9bEfwF8WadehHrCH2WOvQrkLEbrtAM+J7C7ht4NTb4zP8ik7hUtEzL?= =?iso-8859-1?Q?QNhuYSPUARnWt49tVU3Kd2C+tPNJXwEtXEesajho+1/Uv8LxSYeEWY+GcP?= =?iso-8859-1?Q?n+5W7dnPWiB16BwoA29tbBgMFDDIeFEqIgvTuDVFGKhSPGIBieciyBWFts?= =?iso-8859-1?Q?5ZYXiacklmSW7pXNfCSHu9t7dJ6T3LznoN5lDhTAxAAIfHpax6/5qjaEw4?= =?iso-8859-1?Q?r/3AVdeXibuyDcrBC0gPRSiUzM4ncHaJj0MtA0lkHVHu627rIMz5e8u/aM?= =?iso-8859-1?Q?0jc48dPfMHtgQPKKleJGsQ/c/TWd7KzqE5xI7/TIT+ZOw4cHfc9kFkXDa7?= =?iso-8859-1?Q?IJ1gDWFzXZJjiomd9v03Juer3zy4HZ9Uh49g+YtVlRGVMZnDzxJjwzW/l7?= =?iso-8859-1?Q?/DKmcVYtkvT/NmSi6mx8IkS2LBa0Y6p7NOolcC+KSoG3vZyWYcc/m5wfx3?= =?iso-8859-1?Q?8pGXpJGTGsPF5Hrc6bZuUMHwk5IbGi4MoW+ApURF2G02tpuZaNjmaYc8hL?= =?iso-8859-1?Q?9AuSN9ZiwM1a9x/4g7NFQGUvMB5fErhMFgrnHTqSZaVs2r5RAATVVXMxyQ?= =?iso-8859-1?Q?b05msOhkfksE5DG4YKWRpD6tU7hK+DTnotMMkK43eTDh+GiysFeza1QH04?= =?iso-8859-1?Q?xdRdsAtMhQn/UUr8/Qs=3D?= Content-Transfer-Encoding: quoted-printable 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: 69ffb061-887b-403e-2d97-08dd524ed23d X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2025 08:07:44.4584 (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: C2OHS2zPcC1p+pGLICnYJHMIFbdSAyY3ToQIjvFuVvX5QvoaSsybXtp7wGxWcDmWKSBZLshM+rp0hQe7Uz7wRWvnpwc4vHR4CWOL2oQ/Qy2tsSLHJf5vs+7fhkY5xhpN X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR07MB6459 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=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, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1740125393708019000 Content-Type: text/plain; charset="utf-8" From: Clement Mathieu--Drif Signed-off-by: Clement Mathieu--Drif --- hw/i386/intel_iommu.c | 74 ++++++++++++++++++++++++++++++++-- hw/i386/intel_iommu_internal.h | 1 + 2 files changed, 72 insertions(+), 3 deletions(-) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 9daf8025cc..2b1c733d86 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -4159,12 +4159,10 @@ static void vtd_report_ir_illegal_access(VTDAddress= Space *vtd_as, bool is_fpd_set =3D false; VTDContextEntry ce; =20 - assert(vtd_as->pasid !=3D 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) =3D=3D 0) { is_fpd_set =3D ce.lo & VTD_CONTEXT_ENTRY_FPD; - if (!is_fpd_set && s->root_scalable) { + if (!is_fpd_set && s->root_scalable && vtd_as->pasid !=3D PCI_NO_P= ASID) { vtd_ce_get_pasid_fpd(s, &ce, &is_fpd_set, vtd_as->pasid); } } @@ -4738,6 +4736,74 @@ static IOMMUMemoryRegion *vtd_get_memory_region_pasi= d(PCIBus *bus, return &vtd_as->iommu; } =20 +static IOMMUTLBEntry vtd_iommu_ats_do_translate(IOMMUMemoryRegion *iommu, + hwaddr addr, + IOMMUAccessFlags flags, + int iommu_idx) +{ + IOMMUTLBEntry entry; + VTDAddressSpace *vtd_as =3D container_of(iommu, VTDAddressSpace, iommu= ); + + if (vtd_is_interrupt_addr(addr)) { + vtd_report_ir_illegal_access(vtd_as, addr, flags & IOMMU_WO); + entry.target_as =3D &address_space_memory; + entry.iova =3D 0; + entry.translated_addr =3D 0; + entry.addr_mask =3D ~VTD_PAGE_MASK_4K; + entry.perm =3D IOMMU_NONE; + entry.pasid =3D PCI_NO_PASID; + } else { + entry =3D 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 lengt= h, + bool no_write, + IOMMUTLBEntry *result, + size_t result_length, + uint32_t *err_count) +{ + IOMMUAccessFlags flags =3D IOMMU_ACCESS_FLAG_FULL(true, !no_write, exe= c_req, + priv_req, false, false= ); + ssize_t res_index =3D 0; + hwaddr target_address =3D addr + length; + IOMMUTLBEntry entry; + + *err_count =3D 0; + + while ((addr < target_address) && (res_index < result_length)) { + entry =3D vtd_iommu_ats_do_translate(iommu, addr, flags, 0); + if (!IOMMU_TLB_ENTRY_TRANSLATION_ERROR(&entry)) { /* Translation d= one */ + /* + * 4.1.2 : Global Mapping (G) : Remapping hardware provides a = value + * of 0 in this field + */ + entry.perm &=3D ~IOMMU_GLOBAL; + } else { + *err_count +=3D 1; + } + result[res_index] =3D entry; + res_index +=3D 1; + addr =3D (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 =3D { .get_address_space =3D vtd_host_dma_iommu, .get_memory_region_pasid =3D vtd_get_memory_region_pasid, @@ -4913,6 +4979,8 @@ static void vtd_iommu_memory_region_class_init(Object= Class *klass, imrc->translate =3D vtd_iommu_translate; imrc->notify_flag_changed =3D vtd_iommu_notify_flag_changed; imrc->replay =3D vtd_iommu_replay; + imrc->iommu_ats_request_translation =3D vtd_iommu_ats_request_translat= ion; + imrc->get_min_page_size =3D vtd_get_min_page_size; } =20 static const TypeInfo vtd_iommu_memory_region_info =3D { diff --git a/hw/i386/intel_iommu_internal.h b/hw/i386/intel_iommu_internal.h index 238f1f443f..7e2071cd4d 100644 --- a/hw/i386/intel_iommu_internal.h +++ b/hw/i386/intel_iommu_internal.h @@ -192,6 +192,7 @@ #define VTD_ECAP_SC (1ULL << 7) #define VTD_ECAP_MHMV (15ULL << 20) #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) --=20 2.48.1