From patchwork Mon Apr 22 15:52:52 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: 13638650 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 0DB95C4345F for ; Mon, 22 Apr 2024 15:54:14 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ryvyY-0007DR-Bb; Mon, 22 Apr 2024 11:53:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ryvyW-0007DB-2p for qemu-devel@nongnu.org; Mon, 22 Apr 2024 11:53:00 -0400 Received: from smarthost4.eviden.com ([80.78.11.85]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ryvyU-0007bS-46 for qemu-devel@nongnu.org; Mon, 22 Apr 2024 11:52:59 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1713801178; x=1745337178; h=from:to:cc:subject:date:message-id:content-id: content-transfer-encoding:mime-version; bh=/VWap17kGxEX0rbNFsPIxcanCyMV/Wijnh/mMwEyXMg=; b=jGQZzcTun19p+QpI0p7WbTISdMFIgl4VhIaLV89aLSVapiAu+7yhSl87 vQOW/lVa0Mv/7XJJPp8ijyrwYAv0QguHaHN59pvAaEzfrx3yS9vcJbkQ5 +68P5d4iFn4GhJXcOu/gdQF6XVYYQ0o8hlDuYamoXTjVT4ivs43kLcMAO f+jUVctDRfLl2QSbYxcCuA2YBRtTjACvJfvgDPIgkjxbfTgfEfmXUi26K w0wGOGTxdzVcKT9KG/xHQ7+FagdbQlWTUWP98ydOy4uUm1hnz0qKg4LJZ dmgCQZyFhKajBLcKePIURTggVcuemZbRxw0kDH+z19Kj6XlWG9hfCJIiJ Q==; X-IronPort-AV: E=Sophos;i="6.07,220,1708383600"; d="scan'208";a="11027664" X-MGA-submission: MDFSlyJ22P+2476gyz6ubEpwj1+L4omaOTRuCrOHPdqZWCVGreV14B/GGyRlbEuGnDSXJ7TxXkqPvCEtX4Wz4YqHY1LH/qAtGIeH1M0D4AQX72lpZ0vrfSbUc6BOvGhM5VAbbYOexodBU0JFT3xWhZ2tXmWS+M4QpQRCzLuQUksIMw== Received: from mail-am0eur02lp2233.outbound.protection.outlook.com (HELO EUR02-AM0-obe.outbound.protection.outlook.com) ([104.47.11.233]) by smarthost4.eviden.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2024 17:52:54 +0200 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GromZcNgKszSrAM/ueaxvraH6xDj2o55AC8BmRwSB65l+YCEKQS98d3onUZCZIcW5WdI10ORcwF/3m9oGzdC7lGny1g13OAy6ZaFJCjHI4g5HzxFAqBW1anhlNmFRgM0u7aenwB+d4F99+xR2Vm8eTxoVd4mhBRI4VZWM+bgTSXnw2bmUcvZw8bwpDurpEbNzrfVbsqib1nD+gtVNElFDhFRAQJwn/Hj7Y0C56O2KOtknvuJf6ZcIwDDxQexuW1IV4UR/9i4hbBy0Hhs+UyrXex+D037+POntBUpRfiXHXa5kokGoqe8hO5jYIAIXm2qBAfIsZ4HCfSRJCc+4KBfRA== 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=/VWap17kGxEX0rbNFsPIxcanCyMV/Wijnh/mMwEyXMg=; b=jNoeD2f4COodaaB6g/dmNEyqE9Y4M9b4Xr+/wb7AYtcb9olhEeMv3suKFAUA1kfRd3QtAqZwuj4j0JzIoLLn3r+goYQ470/4hSDbRGO0izQQlooNKoLuWq2Phpc6nDt9Jvtrv7zkd0RsGH6CX073x5RTTaC/rBtZ1j7R562+XtY6o5WIzU6PV0jAZakw214CQhnf3XUBchAK7oOm4aA9LzPkMbLuqwPsVFUlCs9g1e7kmMgBhUhG/pQhNFXUAD/k/JcbsgFAvtAOhs3TDMrT2Luna4izOekBYfbniRfg9wlI+7juNa1+a+3QjsoCOcSZ8hPTt3EYj0sNOWiZ2Pamjw== 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 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by DU0PR07MB9626.eurprd07.prod.outlook.com (2603:10a6:10:31e::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7472.44; Mon, 22 Apr 2024 15:52:52 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%5]) with mapi id 15.20.7472.044; Mon, 22 Apr 2024 15:52:52 +0000 From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "jasowang@redhat.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH intel_iommu 0/7] FLTS for VT-d Thread-Topic: [PATCH intel_iommu 0/7] FLTS for VT-d Thread-Index: AQHalM0ix1VtZwm0bkmmtp6S6avLxA== Date: Mon, 22 Apr 2024 15:52:52 +0000 Message-ID: <20240422155236.129179-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_|DU0PR07MB9626:EE_ x-ms-office365-filtering-correlation-id: 459b25da-d9f7-4a71-3e9f-08dc62e444b4 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: =?utf-8?q?furwgklVFK9yknuNcu3tWJeFgzTvBfc?= =?utf-8?q?EJxRoLIjXiqBwTDMop7h0fQMdi2pZoCOATn949dJbNC7iCd0wnpabk1FBJO89F5kf?= =?utf-8?q?MwTWTwcDHFM7SOKQxKzGCDOQX3QAHOKUnnvOJDkXQR9I2U+AgGvcad802FGOChZVS?= =?utf-8?q?h3lU485W7OOdvQUqGedppJ6wTTgXUkb3eu5owgzkGOPSY8WX2eyRvRVJDD+1202i2?= =?utf-8?q?QYo6rlNZsZMgUdR4f5ARbak2eIYxb+kJX+PnfFoEO2F5Svk0qNzzrE3tCBOLsQiUp?= =?utf-8?q?+8LGJL3m9kmT/Gig/s+VNkrrUIptAyXXg7Jw44ZwozLq3kPyn4r5zrjfig7WdgWqw?= =?utf-8?q?EaGZInoO1XZEfFmtSlak4q6BMDDHwVJZGVbXoOO9zQDuZy6bK5FXXTd4hblUSjfdq?= =?utf-8?q?mPoQJ9BG2FSBWA+AlgvDr+9MPQoD8npMxxAAnnIG0MueEGyB31/ml+Gy7Pj3glmDP?= =?utf-8?q?FJU+eI2yA7w/gfv24Q7w+OpE7PL2dzw0fr1au96f3xLntk0auZ7iHiOVkFrJWxFGF?= =?utf-8?q?5WFsY3So2O0Jm+ZzfJues4Tdw7azSc3YTN9QT2MOhZFPQZKrza2AoyZEZMNwHm9mV?= =?utf-8?q?HydZ8RzI0yhNEM547G9zoFFQ5lpK43S7SJuEGWx5pWjmC4d3uVPufgKOCcy9HqboU?= =?utf-8?q?dLemO8odWqyS0rEJcKKan7afLoPc2EfoGTHzNEmXvKLrdVy24ClqmdaklsONshwn2?= =?utf-8?q?OM+XO6MAMhAp25uICAxyClgmuBx9eTklzwAL5zcEjPULhrlbLCxj/4qj/YJEWikf0?= =?utf-8?q?h4CSFvoYNZtoDbQtaq6cOnVKqiTKvHch0Jw/wxt16ybuJAPhn9HsdPVD1hU8N1PdJ?= =?utf-8?q?+X8moPqOXE53OOoHgEEaiDnhcDPwEmO7j6mYC8oSUAaAtR9o4iLZDSA9Jq3iwj2Kq?= =?utf-8?q?wdcLpMSrdKrqPdKx7O/m1Lb0h3yOSXM5ksA1yrgUWb8RXX9sqQBWhlBqWVgvibn4a?= =?utf-8?q?MG4NgZmlw4DyujwnFBTlaehz0cW9dB4uJR7SPmeYehwHBKlLjUOViwSg6rxDCHUiR?= =?utf-8?q?/Dr+ygOsP6rPDYv4YFITEJDrB8yW+BKOcUtFib414KPEDr9044BkCEaELcJfM5TDe?= =?utf-8?q?v5KwN2mxxQyr+jVqf95tsVcsqntaDIqI0M5U0z0nQsdLLOqtpaLvUEGN2TyZGam5q?= =?utf-8?q?QkDlOMhcXLumZq5w26BVXYxZZ716uljtmQM3Aw/lbcFh66blWSP9XAtzvaFKx1Fpr?= =?utf-8?q?ZYU45xAzglqzHXUgoeoV8Ctzo044OTaFJscpO2n2W11N+2drs6TQD3RP6Rvj0cn6T?= =?utf-8?q?b1wqS9x5MYywBicfwV8eLHy1UpIdZ9KD4lQ=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:(13230031)(1800799015)(366007)(376005)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?izKZ8ydChvNsKDNzbgU69lDIvBXj?= =?utf-8?q?9DYmLh8j/c30mbkrnxK0ZJWZSKW+R3sLScPJMME18KbI3yLQvhNX2c09iBJaC9rX9?= =?utf-8?q?X2vRyoVrv05Sv4zV1aSXOwrvbXRYVBRUl2Zj1pE1t9ii6kI2dMwLJ9mjHJJI8sE8t?= =?utf-8?q?G6RLMhLCpE5kBCZJsRA1j6mhvfEgNk4/p+8mzXS+Gr4pw/jGSMJdawv0SKP/oSs1D?= =?utf-8?q?opzfv8d5mu1rJzURToyKbfBPzs/ajcl6kRqI2iQySyweZ2MXTh1hOFseaGjIpVQ5z?= =?utf-8?q?8wHsR0JILi5zDX7QevMKHpB2PiaWhwTvA5NwtF0BEraBjGBeSHE7pXtz9dH2kRyYt?= =?utf-8?q?lgbatg5dVx50STn19IOw0L8uO3Mec4AGcvBWF/3tW3HEWjIwXhlfP6hoV2vdzosJ9?= =?utf-8?q?knGTnXVuUwtpoduxVh0lrJyKMgDc+LQRY9G1Xbp7524BYCiM9S59et+bSpXujEouV?= =?utf-8?q?XOZjwkzgxMPPoW+vdoZnqRsvec9QzOCo9F7zZ0RSzfBxtSO1WHCTmlWpG8S5RZHOE?= =?utf-8?q?8QoBgxs1veU7erv0T5XUAfQTV5NlAiK7J2H2dqO6Eq6MPlljvF08CQppKVkw8xa1P?= =?utf-8?q?K1UV3UXJIIwTHtmlRkfLt2Tgqzs3Vyya7z5NQ0thGHMOmhC4w3dkRxVaTjuDkN2B+?= =?utf-8?q?64/3MWPg8ad+JmmtsmWvBxMaeAh9862FC4CCUc8RaHG4pHJQXQMjhzQPoNThuaM0b?= =?utf-8?q?9i3bsWWOh6Zzsi0zV6UiCfMcACMYgdwbclR2uKl8f6/loykcpmJHdPWXJs7Pu5NWE?= =?utf-8?q?VheFG1Ku4eACJJejInD02pa8tBq3uqINkfb8DU89lXbwUmx1rulNk62EAPQmUjRig?= =?utf-8?q?ibF/9kFt3TInj6isgjPApmbbPRDn7jncpufLQpZ49kHVivunotpEI3ZIrz7vM0ukg?= =?utf-8?q?H1kXpJ8/kVJ2Z1WYtCW3WXRC+N0AkarVrx6WWaaYyy6Ea/N/hsBf1ta9LoP9olxqY?= =?utf-8?q?VEApCtEdkm62R2yRaebntvoLzsuWdvwmZ4k9kq+chBA78ryrIKGJroVKSCiIKlCSB?= =?utf-8?q?hPzGLb+uB7uv1AcEEMSq1VNL2BfgAI449D7M1XU3BWDWgeIz3vb3fF16IbSoSpLgG?= =?utf-8?q?UgvV5aBnVqW0s/LZ4pG8MKEtCgGghCIV90PuqVflTGhbbGJisI9GqZPGn03mQyPe3?= =?utf-8?q?wpa/GpbZyRvrKqobbaiiOuxb/h2iSIlFhCmbvUuskOTrzwKdnuDEE9h9KQiueDav4?= =?utf-8?q?0BSMb5sxu9Pgvud2t0Lkrtvc/lTNKKPfppW1v40REoKZA2XfsdsQB06Wse+6zM160?= =?utf-8?q?H7mmyYyuORCAyyMNwRhBL2L16l+o6TjTEV18Kxie7sdTz7YINlP00A6kFrFtb7Ba/?= =?utf-8?q?LcG0A9Zu6SUA92aNUHqiiffcio02oGaTUifQqADH1MxRIfesKktuN+UTMe5FP5OLu?= =?utf-8?q?Gd54HilNqCC0YF9ndceqXE3SP8dR1Jz9zykEVrgzmR81aGdVpRTjJwiSqR3opQKpb?= =?utf-8?q?qE5KdakvU8osQepuzwBqgILGsk2zo2Vm1R6+Zsv6LTRIqyO//iVsxphiUUecK5Pks?= =?utf-8?q?oEDUmzH5JD9tmaJrCXVc4OYLPz3xIe+hQ/TFq3hU9jGP3pleOiUHtbI=3D?= Content-ID: <9E4FEC0E51CB7E449FFFEEE23C21B594@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: 459b25da-d9f7-4a71-3e9f-08dc62e444b4 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Apr 2024 15:52:52.4451 (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: SFYS8TyTUldLDh9dZDZPNNUL1V9wg63ghYxnMABaATSHcJcqyyPvjJ3YdWFEhcvsrpbyK3oTac+W2NcadUYhbNTP4k1Te+K75/MY+YIM9esY+ZzQ+XjomwNYZtyjTeym X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR07MB9626 Received-SPF: pass client-ip=80.78.11.85; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost4.eviden.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org This series is the first of a list that add support for SVM in the Intel IOMMU. Here, we implement support for first-stage translation in VT-d. The PASID-based IOTLB invalidation is also added in this series as it is a requirement of FLTS. The last patch introduces the 'flts' option to enable the feature from the command line. Once enabled, several drivers of the Linux kernel use this feature. This work is based on the VT-d specification version 4.1 (March 2023) Here is a link to a GitHub repository where you can find the following elements : - Qemu with all the patches for SVM - ATS - PRI - PASID based IOTLB invalidation - Device IOTLB invalidations - First-stage translations - Requests with already translated addresses - A demo device - A simple driver for the demo device - A userspace program (for testing and demonstration purposes) https://github.com/BullSequana/Qemu-in-guest-SVM-demo Clément Mathieu--Drif (7): intel_iommu: fix FRCD construction macro. intel_iommu: rename slpte to pte before adding FLTS intel_iommu: make types match intel_iommu: add support for first-stage translation intel_iommu: extract device IOTLB invalidation logic intel_iommu: add PASID-based IOTLB invalidation intel_iommu: add a CLI option to enable FLTS hw/i386/intel_iommu.c | 655 ++++++++++++++++++++++++++------- hw/i386/intel_iommu_internal.h | 114 ++++-- include/hw/i386/intel_iommu.h | 3 +- 3 files changed, 609 insertions(+), 163 deletions(-)