From nobody Tue Feb 10 02:55:07 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail(p=none dis=none) header.from=oracle.com ARC-Seal: i=2; a=rsa-sha256; t=1651181159; cv=pass; d=zohomail.com; s=zohoarc; b=l4zGbpHFEzvQkWek/J3LbzSpnT7NElE8FO3cE5oqb5m6sD6z0vsSViTIbwg1rMoxqHPM2mQf2Grf/+A7DLPDxHppLf8fZY2pHD7bsDadb2CKiUA66ECmecj0lvBHbcXxJdHS7CRRL44ll0Z3vkh+hUrmJyHTyjtV4n58c/cytck= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1651181159; h=Content-Type:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=19+8wQdY7VNogk3Juc0dCtE2gVtLfYmUxah1u4a17X0=; b=Vh0fp/UTZThR7i58u+5Vdv2/82uyg9V/md3xzhudbmi8vl25SxUhoZZJeMJBjN8DExYzKnt1Xxyv1rMYtWelkW4wZWUFnrHoVC2qB6qWY23w2ppsv1xfX9ifYZclpEJTE3GsFkA4pvac7ihShn6Q7LBkDpr/jpyM/r6n/QQyXUk= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=oracle.com); dmarc=fail header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1651181159774904.19453986101; Thu, 28 Apr 2022 14:25:59 -0700 (PDT) Received: from localhost ([::1]:56900 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nkBeA-0006cL-AT for importer@patchew.org; Thu, 28 Apr 2022 17:25:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43478) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nkBTD-0000cU-FE for qemu-devel@nongnu.org; Thu, 28 Apr 2022 17:14:39 -0400 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:57384) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nkBTB-0005rK-Lp for qemu-devel@nongnu.org; Thu, 28 Apr 2022 17:14:39 -0400 Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 23SJYOGM015530; Thu, 28 Apr 2022 21:14:25 GMT Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fmb9aw635-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 28 Apr 2022 21:14:25 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 23SL6c5f028692; Thu, 28 Apr 2022 21:14:24 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2049.outbound.protection.outlook.com [104.47.66.49]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fp5ypebpc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 28 Apr 2022 21:14:24 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com (2603:10b6:208:331::11) by CH0PR10MB5289.namprd10.prod.outlook.com (2603:10b6:610:d8::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.14; Thu, 28 Apr 2022 21:14:21 +0000 Received: from BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::b9e5:d1b6:b4be:f9d]) by BLAPR10MB4835.namprd10.prod.outlook.com ([fe80::b9e5:d1b6:b4be:f9d%5]) with mapi id 15.20.5206.013; Thu, 28 Apr 2022 21:14:21 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-type : mime-version; s=corp-2021-07-09; bh=19+8wQdY7VNogk3Juc0dCtE2gVtLfYmUxah1u4a17X0=; b=aMuX64ghFcLiXpaoC9ylQ26YkB/Zy01BUM37OaWERGROief9K+7PZzdClqe8MApwX7xp mH5aKyhck16NpnwykwyTHcqUWrf7Ge9VxTX/J+m8MWvlQlgL49GpTCMjTQidSOi65inb 1HmgiC4A/tx6/mcYfce+p4JsdUGVYk9tGAyXw6EHLLKC57+La3an1B1WOgoD7eTgxSOR 8GazA/IG4ZqXc7OSvOhXJepvuK37uW41RxTfBNN4tSbxjxVBw0PVbWiyxOnzNwzm8EpL Vl/8jv0DsOa7dJU+22V4obo5mQB/p/rc2X9TOPohCy56e7Y9l/tD4E8yaKlxwfge9swp YQ== ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Vne7pH/E/lTVVhvr0Fn2dWJLwzxOpqGyiWwNRu0gbSCd+Jb+ae5hFvbAqDFV3NBHDhrAlfDnhHD5TmCsDIksyNQ5SUjeddrh+0u+4Qmz1Vs8/RY8e7ZJ86BGZv2ADAmfZ11KFLdk8gDRgWgFrQFYm/vrnpnqwKThPUxlkPa8h3I7P15MIpXFODYo58IUQNrn+hxA9iL9oHifXL379KRfmCLZS47SPVvsmgNCrUwbrzXk1J24vSMDcx4f32b/7YUq6p7out3gBs93DJ39S5K19MERr4PntTh4toZUN3GiC2RmToFKi6xnb4AJY8SXm11MZbSh/MK6+RDeG7nw2M3m3g== 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=19+8wQdY7VNogk3Juc0dCtE2gVtLfYmUxah1u4a17X0=; b=TPDohXvvN6suvzRDlytsYZILALBkxCu6u1IKgn2tXvyjVC8op14ZRAWbyTHT4wYv7qXkPLCqkQJmmdgZJlZDXa7pmZPBz9zUiMe1TzTOjCJQd5HnoKvV9RTUpkpKqF908nR1qMUwEM27t7CC8utOcGo3QcrdxE/Ro5rjQuBWnuLFLU9GXPumdgJDHVibgfitDpOs/50AZAbobiNWguSMppqhcfIHi4rBx+p615X5KE9yigmtXmroJIhF8O6WValDBvBkDSn0Tx4cdcZukZQo3DwZiN+0Q8JvhkpNAitSTKGPlTkuUprOsFvjSpsLxSGViasNpaySWCfTw/dSdwra5A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=19+8wQdY7VNogk3Juc0dCtE2gVtLfYmUxah1u4a17X0=; b=apsQv6XDpVhr/XFJCIXDyibmmkPTLF6ZhtB/Fhx5Lv6IJHj5A03RpGY1ZI+ktkjSK9NxTV51j3T++PwGQ69hYrxWhcJ+wqB12GyqFUzLd9RTO6P769cMsUBhoKoVVdxWLF8LS/S3suVZ7p99hgl5vpEqCdbWA2SPnEnM30srAaw= From: Joao Martins To: qemu-devel@nongnu.org Subject: [PATCH RFC 03/10] intel-iommu: Cache PASID entry flags Date: Thu, 28 Apr 2022 22:13:44 +0100 Message-Id: <20220428211351.3897-4-joao.m.martins@oracle.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20220428211351.3897-1-joao.m.martins@oracle.com> References: <20220428211351.3897-1-joao.m.martins@oracle.com> X-ClientProxiedBy: LO2P265CA0297.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:a5::21) To BLAPR10MB4835.namprd10.prod.outlook.com (2603:10b6:208:331::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7919b7c6-153d-4145-e7a2-08da295c1026 X-MS-TrafficTypeDiagnostic: CH0PR10MB5289:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ictRycHlInJCnVOLZBGdxI3LwNAA3ewlnTEmidENxkKfA9y7ksgmZEspwBpvR8v/f/SBpYj79OR8Q+F29k6ljwidQSAWs3LyNv5c04fLtgknmY5WCCul5kYOCECuXf0duPXkc2ClMsBPHZKv0bR4kSdkvN8pW0vzoK/bxyyY4suJzWrKKSPbkwxS6cU4jjb8pmeEGEtsfA0c/+k1Slm3hYQISwACZhT5o4pf1/8RwLQxnWh0Vv6QzpK5qJtOD+XNHM5u7y9XG7P4bocWxL1k/xwAgmt4huWocD9si7evxHfSOOmYkmVV+9YCoW5s24j+IKceAHsqUW3JsRqPw/sDpJTEKgn/qfUri++Rj14pZyzoUinZ0s3GIamfJ0hBPeECQ5z6kFmwyewWGcU154vziwnoxQE+h66xuYOnpGmwSQq2YlBpjtUiWTSCWWkQxvZJitRze5ivfZ9lRHw5BifRzpA8891hOwBKsggjYcHCSX/JY27GrU2NO+wTSRGHNcWOCLUgVfK0upfOaGmKw4t4lbBgNyEDzmDUXNh/RrbS/LztjE6NDbditm/NiMze505oYC1duDLt7YnCKdktMlwJcUdEOvXIBoKtgz1RZwNVgq01uLRXNVJwA5khX4exO/+lXooluBDTTh1Xn2l9kKTYu/WxuWzrjHhxnq8LELJ0LWA+N4K0p0SZKSt7io4WGCnswRjHn48GFUv2e1dm+LQhCw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BLAPR10MB4835.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(6666004)(54906003)(186003)(1076003)(38350700002)(38100700002)(5660300002)(2616005)(7416002)(103116003)(26005)(316002)(6916009)(36756003)(66946007)(8676002)(66476007)(4326008)(66556008)(8936002)(52116002)(86362001)(6512007)(2906002)(6486002)(508600001)(83380400001)(6506007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?13rahZpLq7ne2wdvcXXvZbNENBu3OCuHmzR63GS9+1rasFZUM+MsTlENPTpz?= =?us-ascii?Q?IzyYWgyczA46t+LJTm2XzrOOGYrpmi9TIbdFl5wsRkhtSANI2iJC33FWFdwt?= =?us-ascii?Q?IVyNA7h9CCI8x4YkQEounnpglx6XJeKg6Sx+RzIxbxLQr2guKrMjZc5m1k+E?= =?us-ascii?Q?8eFEDtN1AoxIJ5qYtUtzfEZ/H34B0OtgezMSeCIdTlIyjM4AT3DWWKvU05ci?= =?us-ascii?Q?InZl095SLVjpTV/jENTGM7L+d6DEwqUKsZaqRtJWjAEHLua9sb2kAqfsu2j5?= =?us-ascii?Q?tt5dPyjRCMNNbkNSYnXBxi6pXbayfIMbOIHVPgRjUTPN7sEWXihGo+jWD7a1?= =?us-ascii?Q?oiRHoj7vc7lETIF0mbCfW2Cwit0V5oYF6C4DctgRF1QO+MeDq1PETEoNd6/+?= =?us-ascii?Q?kHspZbZNg1A4ht2rawLdMl6zA5dhhxhfTqLcUyVWAxmrq4ZNvJYabZwt9coJ?= =?us-ascii?Q?+JuzrA7n2gIktbxv+qWlPbNA3YHmYjIIqCBbwYQVSbUbOJLkraT9NPhu0ipb?= =?us-ascii?Q?+wt7gJ4XsYyVdI8vP6+0LaBDY+eBezV4yQwUUUQeglBmDo01QWbUY1CMj1Q6?= =?us-ascii?Q?wpRwglaht5BGuONa2mEF0lW0S8Btj9hIjpqo+VuGVolHFXgEhzd7c8FZkFaG?= =?us-ascii?Q?VYBtsOySZA/Knxv1QNy9Jm7EFjS1IJNrZyy5nk/3JIrHXNquHOEZ0Auu8lqP?= =?us-ascii?Q?Py678+WN25ZkzKClO3Byg9wL/pOWQ3dNJlfAfwJsqLrJ+17Q/nBmBXGafc1Z?= =?us-ascii?Q?RUkatZE+JaeFhXj1Ocb8BfvRDUC/5HpmKp0q0Ig5/5vovjQ8agAWt+jt7WzK?= =?us-ascii?Q?nz2D3TU9u/O56RgfSnrKsw7Y2sg2wBn/viWFJVAjAi8FdDY6EeurWUA4/ugq?= =?us-ascii?Q?EkriPyHxcD/GHR9nLdvZikVomzCUOtzzAinjcZeqsUNtDUhyDfNO3yECTQES?= =?us-ascii?Q?bl94ZGO799ReTeeQN6+ORMh+b16gwfvBXXDaqp7K55ltsLpDuIbSl3yhvqqI?= =?us-ascii?Q?+dyPpPm5BvHWY2kq4jNX3zC0P5LeBGbSOi0a6uQAkAwhF9MYcgtCm7V1E2EW?= =?us-ascii?Q?YlSzqgZe9xpkJlqFpukE7qjPQZjIyYouQHpZzdcOpl1wb6f6FZNNYG1N97mA?= =?us-ascii?Q?5okCnxJwMg+8yjbWdHXAzkEND13xT4amDUxfi+PrnaxtzlD7rh0OfurymsYy?= =?us-ascii?Q?bp81Gd747Znq11+NgkvFy4bP3FaNY1ZypAH7JbBxqOXBDIqC8VZy8lFkO2Hy?= =?us-ascii?Q?7z6j3UzL+1di06nGau6RRAr0BHxTTJELarihrcZks3iWCCbaxTKBZ6mwk58u?= =?us-ascii?Q?F/aKdr9lpuMyslE8wjZPidkx7gZCDUSKI/cLmHt6QStJW5Pb4HsS/EOBSqtm?= =?us-ascii?Q?mVKOFseY2CAXReMKoInr89SfmdjvT/w19zIrbHXDTTUJznl0yVWQyD/p4hK6?= =?us-ascii?Q?Mo2b+pwHVwHShxD33IEqtL/mC8Lsk0Tkmom15XvjV+4nIJ58J4HqSLGfQqce?= =?us-ascii?Q?WZrbcN5gOl8sQ8JzjVtOv7817HLoT2/KoC8IcN8jZyGCCB0Ww3jqSxtWhqhQ?= =?us-ascii?Q?oQysmb/UZnOQlRSvA2bQSJAqqB74OJPk2hQOVq8hYkQZtfUtWEBrPgIXaQn5?= =?us-ascii?Q?sh6VZSWtrnGijRHvQ0lmb+5zpYBAhleyK8QRTgVuYmtdzLKKL0ktjUXYeA3/?= =?us-ascii?Q?5w+jnbVG7gb65ZAXvC4XwWHDexS4XaAAagK8X93T/Oa55V4SiHk5Gy2YpX5x?= =?us-ascii?Q?d7yQD4EqswjxihTdD+1ZCNC1+tyMRXg=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7919b7c6-153d-4145-e7a2-08da295c1026 X-MS-Exchange-CrossTenant-AuthSource: BLAPR10MB4835.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Apr 2022 21:14:21.5917 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: JPGHwru9LCSxjFr3BCF4olDCkcKDXsm6y7qedqfH0HxSzP8BpbLP2HmXxFBX0CMaguRUTTwnX0JLDn9Zr7MDXAs1H/bnab9cLWEazrLn0CI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5289 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486, 18.0.858 definitions=2022-04-28_04:2022-04-28, 2022-04-28 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxlogscore=843 mlxscore=0 suspectscore=0 malwarescore=0 spamscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2204280125 X-Proofpoint-ORIG-GUID: dp-NIMTM0YdDCDp1Y0vEaPAzTu6nwfuC X-Proofpoint-GUID: dp-NIMTM0YdDCDp1Y0vEaPAzTu6nwfuC 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=205.220.165.32; envelope-from=joao.m.martins@oracle.com; helo=mx0a-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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: , Cc: "John G . Johnson" , kvm@vger.kernel.org, "Michael S. Tsirkin" , Jason Wang , Peter Xu , Joao Martins , Eric Blake , Yi Liu , Juan Quintela , David Hildenbrand , Markus Armbruster , Nicolin Chen , Jason Gunthorpe , Kevin Tian , Richard Henderson , "Dr. David Alan Gilbert" , Eric Auger , Alex Williamson , Thanos Makatos , Eduardo Habkost , Yishai Hadas , Cornelia Huck , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @oracle.onmicrosoft.com) X-ZM-MESSAGEID: 1651181160243100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" On a successful translation, cache the PASID Table entry flags set at the context at the time i.e. the first 12bits. These bits contain read, write, dirty and access for example. This is a preparatory for SSADS which requires updating A/D bits on a translation based on the fact that SSADS was enabled on the given scalable mode PASID Table entry. Signed-off-by: Joao Martins --- hw/i386/intel_iommu.c | 18 ++++++++++++++++-- include/hw/i386/intel_iommu.h | 1 + 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c index c64aa81a83fc..752940fa4c0e 100644 --- a/hw/i386/intel_iommu.c +++ b/hw/i386/intel_iommu.c @@ -314,7 +314,7 @@ out: /* Must be with IOMMU lock held */ static void vtd_update_iotlb(IntelIOMMUState *s, uint16_t source_id, uint16_t domain_id, hwaddr addr, uint64_t slp= te, - uint8_t access_flags, uint32_t level) + uint8_t access_flags, uint32_t level, uint16_= t pe) { VTDIOTLBEntry *entry =3D g_malloc(sizeof(*entry)); uint64_t *key =3D g_malloc(sizeof(*key)); @@ -331,6 +331,7 @@ static void vtd_update_iotlb(IntelIOMMUState *s, uint16= _t source_id, entry->slpte =3D slpte; entry->access_flags =3D access_flags; entry->mask =3D vtd_slpt_level_page_mask(level); + entry->sm_pe_flags =3D pe; *key =3D vtd_get_iotlb_key(gfn, source_id, level); g_hash_table_replace(s->iotlb, key, entry); } @@ -965,6 +966,19 @@ static dma_addr_t vtd_get_iova_pgtbl_base(IntelIOMMUSt= ate *s, return vtd_ce_get_slpt_base(ce); } =20 +static uint64_t vtd_sm_pasid_entry_flags(IntelIOMMUState *s, + VTDContextEntry *ce) +{ + VTDPASIDEntry pe; + + if (!s->root_scalable) { + return 0; + } + + vtd_ce_get_rid2pasid_entry(s, ce, &pe); + return pe.val[0] & (~VTD_SM_PASID_ENTRY_SLPTPTR); +} + /* * Rsvd field masks for spte: * vtd_spte_rsvd 4k pages @@ -1789,7 +1803,7 @@ static bool vtd_do_iommu_translate(VTDAddressSpace *v= td_as, PCIBus *bus, page_mask =3D vtd_slpt_level_page_mask(level); access_flags =3D IOMMU_ACCESS_FLAG(reads, writes); vtd_update_iotlb(s, source_id, vtd_get_domain_id(s, &ce), addr, slpte, - access_flags, level); + access_flags, level, vtd_sm_pasid_entry_flags(s, &ce)= ); out: vtd_iommu_unlock(s); entry->iova =3D addr & page_mask; diff --git a/include/hw/i386/intel_iommu.h b/include/hw/i386/intel_iommu.h index 3b5ac869db6e..11446012a94c 100644 --- a/include/hw/i386/intel_iommu.h +++ b/include/hw/i386/intel_iommu.h @@ -123,6 +123,7 @@ struct VTDIOTLBEntry { uint64_t slpte; uint64_t mask; uint8_t access_flags; + uint16_t sm_pe_flags; }; =20 /* VT-d Source-ID Qualifier types */ --=20 2.17.2