From patchwork Tue Jul 2 05:52:42 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: CLEMENT MATHIEU--DRIF X-Patchwork-Id: 13718988 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 069CFC3064D for ; Tue, 2 Jul 2024 05:54:49 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sOWRe-00080V-K1; Tue, 02 Jul 2024 01:52:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOWRc-0007yV-Ec for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:48 -0400 Received: from smarthost3.eviden.com ([80.78.11.84]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sOWRZ-0006V4-1n for qemu-devel@nongnu.org; Tue, 02 Jul 2024 01:52:48 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1719899565; x=1751435565; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=30mWL99EU/bKEd4mW/PXJAURbObnxCCAckkShhac82U=; b=QHp6Uaic75IewZJFCO6NwT+Z3Qk7cR70AGQLHQNT8v46QM0JxIL5deZX FfVsNJfwWnuXUzEic8fVZujebhW6pFI9Lti3FjV7zqMpBKU/UZa/pC5lk BFVkAIAuITzUkUwlTJx4ho6OlzUFn1ebKWQG67oFk+1NWr7Ugp9V/XtR8 kcBM0RuITlu2nScpLeqFnLh7dCSiCsHPjkROYdjSVqKLDi6NjX8sWKCtq vyIhcRnsij/cSoo7psafWHVxQUoY01Em130ncFb0giROo+lIoNew9GUeo NRXxe6iZIzjoxcCCXeNoFaRqjRrBU8/TR0ay/vclfmGAYwZP/Q9vS/Jfm w==; X-IronPort-AV: E=Sophos;i="6.09,178,1716242400"; d="scan'208";a="15721596" X-MGA-submission: MDGDSU3g5kD10kDibOoNvR6hO2a7hyU4EGG/wyvkiq68zxZ/Wg2hTId13a7K/HxXMpYitY8l8KxpE0vH80hbXUzcmGrqIlKySPIRqjDfgZWJXmvD7rRgkS2Qy8iRiBCABQdjWzN6FLx314KoWTdXUcVgF/sqLCLXFEmILIThQVGjyA== Received: from mail-am6eur05lp2104.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([104.47.18.104]) by smarthost3.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jul 2024 07:52:43 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DCoxLz/9xfS47CWC7YMXbZXdixz2YxCoStpSbU7JLu637KmFXGIcNyVkGv+BA7RwexF0jxxCDElGmsssdGkW13R8iWQlBdUxmWJM+0dmLtnHPYLchbsNi9ukvoCMpeotV91/S2HwHriFXR4Zf8JfTOaLLFttcF6WUYwKGN8h+plhq+zpweY6XPiZPMMexUGpjRfSuHtrK1VJ8clkLoits3JxJx7cVToolQOZXhNF5nOqu4HmwotTHC3SDSWFLv+B6dXCsu4c78Pbyz0h2bJIIuyY+nCsyprsxj5PHW/lREzIq5I14DGDCYVpT1IFTh7drKg4Pa3VjxGGIc0tL/yhng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=30mWL99EU/bKEd4mW/PXJAURbObnxCCAckkShhac82U=; b=O3Aq0HRNxEef6qDjsZKDiAximTm+JkBO0j7J0WHzpzJjQnikPhH3DeYiH8oEb39U/oh7IiWJrJ5hRTqACt1i86zo7OasScKmYC/pHJC1o9Fj/X9wxkMFsROC/Ux6KOf/S3wUYpXfG9r1wYC8fEfm6DTvs2Edf7VzokNkFI9+shAP6DTwp9eLCIj4q4WNmSaI1jlXNN/ovA47yAMYViXoQEITqG46sQYgYsVvQsiBBm+aDSF2SLmv+oWOxo/zTOsWkL2xpJPcrSSuEWvNDhtJ+rxPo7/5XAYLzH1NAN8K/MVju2VjvdAAd+BfAU5QalGzVhxE6WNY0EsBr4K42yvBKw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=30mWL99EU/bKEd4mW/PXJAURbObnxCCAckkShhac82U=; b=Nmkb03BPLWDV0FkIzo6okYn1ShwbfIOFeJ47IdK5MWzbc1Kzt9t/1A7apSu/USdKxHhEyEq5UAfoBi1d5IoT/ZBE2Nwy9WHM7fivxddwsCCMLH/mCnltyZVJ/nTU+DFg8EDKoW7l/Sib0YpwAlSfMypSGo2kKkpy7R1w9AlBaT55Y+r7ZO1oHHQzctcl7Phj74GBJu/BZzWQoRdXK2FEU6FHYBiGCJICQEILS0G7aIGalnYe9uA98xzGHFigzdmMsLy2LMYAWNNJWWNwwmMMZbEFKbHYNcOnnQUwJScdffPyPi2/MGgt10wLOD4+8W9qSSXGL0o6j7m7sRcLe6zDTQ== Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB7080.eurprd07.prod.outlook.com (2603:10a6:20b:239::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.21; Tue, 2 Jul 2024 05:52:42 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.7741.017; Tue, 2 Jul 2024 05:52:42 +0000 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , "zhenzhong.duan@intel.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "joao.m.martins@oracle.com" , "peterx@redhat.com" , "mst@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH ats_vtd v5 16/22] intel_iommu: fill the PASID field when creating an instance of IOMMUTLBEntry Thread-Topic: [PATCH ats_vtd v5 16/22] intel_iommu: fill the PASID field when creating an instance of IOMMUTLBEntry Thread-Index: AQHazEQNQYz3PeHS6kG65cht4wNBcQ== Date: Tue, 2 Jul 2024 05:52:42 +0000 Message-ID: <20240702055221.1337035-17-clement.mathieu--drif@eviden.com> References: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20240702055221.1337035-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AS8PR07MB7080:EE_ x-ms-office365-filtering-correlation-id: 7bec113f-f8ef-424e-623e-08dc9a5b3061 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?q?/rYpcpjgU3UBhoSQedJ1H37bamRqEcr?= =?utf-8?q?Jj5qU1uvHxxSre1427LmZakTAZO3W+EV40v8twgQucJntRzQYbRTaM2m5dShmncrA?= =?utf-8?q?tVyvVtlRUlPhhpeDRfb8FaK9MBtp9sgKnHRSw8Q/r0/T7YQVXwzPudqTCC0Tgjh3U?= =?utf-8?q?ISmk9cS4qUNr3fQE35wijDo7X+G7FkuAWgcwAU5D1p5VTJbOh5OcMqWqsBU6+drjJ?= =?utf-8?q?rE5f5caqO5Lmj5hccmKFpJYDLwGKQKeObsEmYBoYLMEOkrI1HTAgKbID8D/fYt/lY?= =?utf-8?q?1WuuiYODatoPPVit3bs39x05Tk+m3nzMFb4Qvmi396KFoxBpRUOlHJ05+7YvJsJMk?= =?utf-8?q?LbE5gHmN4xnenVnn7OjjWWGudgFPtFP6P6KV+x7P4MzVXbf2IR7tp9yqbMWG/eAIX?= =?utf-8?q?TampYhQEzuZ5UI91XQKbIu+fOv6V2jNeQmzhTnSFRqTONhp7HbIkjFTnrav+abaif?= =?utf-8?q?hmZ5Zm3bQZByP1HXMYivg5Nqun9jhTMcoHd08ctt5XsYrn4nXb/nTDWBj8Zu0fPWR?= =?utf-8?q?dCPxsn+5kut5/To6nrYE++zfB+eD86DUa5utlo3XM0UWCs+wfnKeYUMOYjFKsXq0D?= =?utf-8?q?95sStoVCOEQyveKIyvazVEFXqnZNYgRm4n2KOXmK78n+JFXkU7T+KSqntXfCXZlBd?= =?utf-8?q?6dSh5GR23X5boDM9DEq9KBfffFO2jfntPb3hBDIHOcFhFNdCjG3bni7CR82FnA4JM?= =?utf-8?q?RrH+IUMxU3iX4MWklM4uA/EYMzpDgIs+9CEBZAWl70xAsYPsp7x8W5sqdsNE8ygAP?= =?utf-8?q?i4Y37qrV2247RyJbTjVIMoVgJIPyzkwcjKhKr9mxjdS4mjhEzyuozyvt6J6KQ9YE4?= =?utf-8?q?gZOFE/4HcRnOyjGr5YQwpMBbJLusuHZbScQarLVs2iuggtyCYcBS8jUc0FMMZr/hO?= =?utf-8?q?1oQkMMcSoPz85zrMghTGtaGXDH1lpw/8aN0pi5rrveXewKGu+bu9XllNESCsyE16m?= =?utf-8?q?oytJHxjSaQybIClQicGFj9IbyyaSLOnNKcZH6RpQMrd7VmS2B126aKg04gDLPW4dC?= =?utf-8?q?XRIcrY+PGOvhQxjdqtbGN/XVKF3gla2QOlNk7XNQbSslCrRbwutdmJaysv4mRufp/?= =?utf-8?q?e4iWAUF8RW9HrvG1VmHqS35jH85imfSkXDsgYYib40IZon/ep7p2hU/yBU0Oqhr3R?= =?utf-8?q?q8tvnBsWmOebPj3mYdOwMZSYrHpnrFTK3JuZvq7qGGR9+SuqlOeVCiur3GyaOvFZc?= =?utf-8?q?SGwJ1VW7z4++S1KfCxyZpuZMxEGZnuR8wEXna5ROhVdt1wti3sCknqk4fHiCybai8?= =?utf-8?q?HwO4UQELmuHmjGqrNF18vWQzobrCrU7/LQ28pGha7fBWtP+t6rON5x4kmpymuXe+p?= =?utf-8?q?6IYHfLO0GFpS8fw43HfDEnywwbf/h9JwEA=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?z+6QsSDNuaf13dexgwJTY9/I+cc8?= =?utf-8?q?CG/efkMREZisqZ4/KCw1aPIeyWmZDkZ2Al3uqirPVZ5bpGgDX8kv4GPy7fzBHSxjR?= =?utf-8?q?nVVw39r8d3LALmgWxF8MXuFye9Z/erIopC4nUixwPMzaxOz4OXbkU+WR3VQT22VN8?= =?utf-8?q?HtxI10V39cVasCcVRNxUBb52iT0ldpVnkQ+godFoD40gLqJom0mhP0KPrssJo6W4+?= =?utf-8?q?vJab4ShXIxqiIQ/oLb/+Cot99C4I+QJr9n9DUm/Ca2R0ICBnEbEuLDSeXpON7T6qG?= =?utf-8?q?PgL2OaDVXgzqnLhTFntNEn8WSe1k3sYO7EdWbYoE6f23VmoEst9boD8bpAccED5AD?= =?utf-8?q?vqX7EuE/9uAXhGj1TwWFfksmCSGslwuZrq2js+EAUw56UEeWyuqUfwHPnKnsBQjUq?= =?utf-8?q?g6SXf77ZEDXNzIJbszNmMjpEzp7RM11OoJNhbDRH46De9u+CtqGWaowFVzX6MfOCZ?= =?utf-8?q?B2a3KPDMqjZPvHGNn7F6CL88pcEqOq3cqOECk2Li8WYbDsSHsjSHoMypPPsL0poPp?= =?utf-8?q?Hp0NiAc9bWNAYavgWWxBD92mCYEbA9roz7Zorm+GK0W24p6l6BNNJjtUax2h0AMWb?= =?utf-8?q?HXZihTmiufZgA3jiYp1AV17uL2BoYbK9ucEpz4GkrFRKtebfO8R9trop0m8ZiE50f?= =?utf-8?q?By9djV0gYdPzbbt4cKC7UUGYj7Ckw1H26zcyA5uaCQZVZ4n3eQakqRHSQiRZ2HXwG?= =?utf-8?q?T18u7y9a2hBC8V2tX5wzE7rbLNazhO/fIEXulTasWDp+FyDlhIhWXvppTgK8nl23l?= =?utf-8?q?I7Doy9P5t09YavrX6ngfQf4GWm2wVme2kLyxVCq3CyHSxuLQX0mHfPxRfXGHYWLl6?= =?utf-8?q?5lqT4BPhuZH0zg1y5+U8F1z4qwkznlO6P6PIZpd+9zxqm1utYf2cmp3QCq0d3lMbg?= =?utf-8?q?jac3tFYBAfnl0NhGvcJM0IzK6qYq4xXGLYMlcdpHHJckvLSBTyKu9IS6iHCDcVl+G?= =?utf-8?q?D/AM/IznRo9QbeYrPdeEbZQZmHf6UuB80sJx8B2BCW8hguQDiAAshFalWGImnEWqu?= =?utf-8?q?dxfxgYdveDYQ1BfCUQVGn0A9OfyzfQNiMmcG/ANunVHQRG9o0Fy5nUpoNqDl4YOM4?= =?utf-8?q?gdAMSzc8q6yAzfxP815x/vVbBoTUWqR8V6ArOlf5aiiEif7lEqwMUQQsa9p5W7MeS?= =?utf-8?q?Su1cohGNpC8DE9Lr0TiYb/Tr5DHqc+YFNXLIFFlPdU2ZVTfaMKlaLl87SRjrAfeI8?= =?utf-8?q?imiXAf/cdgXAqmoMSu9PIaZMsEFMr1k2KrF9e9COC5x5ZGYiI/cVUQr7cEmB2Fhbm?= =?utf-8?q?lfUWVamPhbEsx+SWLaXPEaeOnd4dgLSSr+0K6f5Vjl/4oY/5AwM7IMIZvuNuPr0j2?= =?utf-8?q?6iDcY1nV7hPNnURJk4vvsUvzBudF9HmwCmH4v9kUUzxsmnBzr4aNua0RmucPhlsgd?= =?utf-8?q?ay9nSDloAyW+qEYTOombTKaYK/T9Xn2xHXlGneufQt3s0crS6at1KLun9PtA3jbRg?= =?utf-8?q?jlHfWwFwcKHKQJrRDEW3rMIs4NQD4xlvy2vb9cULAXTYVxxlYLPX8fbdVB0HguPId?= =?utf-8?q?c14AGpe8hUjzrf/JfYqnfhvsKv0vx7YyRF+GGtVT3qw/uEb4J7v95js=3D?= Content-ID: <6A64D841B770834BBB77DBBC9210C4FF@eurprd07.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7bec113f-f8ef-424e-623e-08dc9a5b3061 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2024 05:52:42.3775 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: uLJ++DSFComEYZWvxKbAvfnJpQrS/P8AtoqObrEiv8tN2UA2DN7h3tpzuEjXfFs+PHqyMrXu2Tu4MoXTEQN3fRKXVqXNZtmJNmbwJEXokP5YmrAmXOxsnjvRbSZAusJn X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7080 Received-SPF: pass client-ip=80.78.11.84; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost3.eviden.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: Clément Mathieu--Drif Signed-off-by: Clément Mathieu--Drif --- hw/i386/intel_iommu.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index 2e4f535dd1..f77972130f 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -2210,6 +2210,9 @@ static bool vtd_do_iommu_translate(VTDAddressSpace *vtd_as, PCIBus *bus, vtd_iommu_lock(s); + /* fill the pasid before getting rid2pasid */ + entry->pasid = pasid; + cc_entry = &vtd_as->context_cache_entry; /* Try to fetch pte form IOTLB, we don't need RID2PASID logic */ @@ -2328,6 +2331,7 @@ out: entry->translated_addr = vtd_get_pte_addr(pte, s->aw_bits) & page_mask; entry->addr_mask = ~page_mask; entry->perm = access_flags; + /* pasid already set */ return true; error: @@ -2336,6 +2340,7 @@ error: entry->translated_addr = 0; entry->addr_mask = 0; entry->perm = IOMMU_NONE; + entry->pasid = PCI_NO_PASID; return false; } @@ -3697,6 +3702,7 @@ static void vtd_piotlb_page_invalidate(IntelIOMMUState *s, uint16_t domain_id, event.entry.target_as = &address_space_memory; event.entry.iova = addr; event.entry.perm = IOMMU_NONE; + event.entry.pasid = pasid; event.entry.addr_mask = size - 1; event.entry.translated_addr = 0; memory_region_notify_iommu(&vtd_as->iommu, 0, event); @@ -4344,6 +4350,7 @@ static void do_invalidate_device_tlb(VTDAddressSpace *vtd_dev_as, event.entry.iova = addr; event.entry.perm = IOMMU_NONE; event.entry.translated_addr = 0; + event.entry.pasid = vtd_dev_as->pasid; memory_region_notify_iommu(&vtd_dev_as->iommu, 0, event); } @@ -4920,6 +4927,7 @@ static IOMMUTLBEntry vtd_iommu_translate(IOMMUMemoryRegion *iommu, hwaddr addr, IOMMUTLBEntry iotlb = { /* We'll fill in the rest later. */ .target_as = &address_space_memory, + .pasid = vtd_as->pasid, }; bool success; @@ -4932,6 +4940,7 @@ static IOMMUTLBEntry vtd_iommu_translate(IOMMUMemoryRegion *iommu, hwaddr addr, iotlb.translated_addr = addr & VTD_PAGE_MASK_4K; iotlb.addr_mask = ~VTD_PAGE_MASK_4K; iotlb.perm = IOMMU_RW; + iotlb.pasid = PCI_NO_PASID; success = true; }