From mboxrd@z Thu Jan 1 00:00:00 1970 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 6D872C48BC3 for ; Tue, 20 Feb 2024 08:27:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Content-ID:In-Reply-To: References:Message-ID:Date:Subject:CC:To:From:Reply-To:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=5XGZNrvlnrNSbBMK9/DEXmDrTIZUOqqF2J5V6XF6ix4=; b=dEle8+uJesBQhq g5/0LkEMQiaT96r/1k52lQOfoLSvOXU5updW/ayxIAZ0nkd76QLzCO+31HYEEjVVY6Eabv9st6EyZ pnq04bhJEzVwJWjVRNrAqSwwkOg3QbP9dUZRgHCNpC2BFgI9I2bhCxCBwfrCZ19X3/ablIaGQ/sJB idhYOxacltmawg6RRC47GulLe2DBVW0mCG7L8IjWPP12nLwsRGVEmYirzTdJO4ZWFlMeD389nc1/P S/RrG4cM/psI9C4qwc/mH5fSsfFPeFufgVzZr7I+pa5uz+otbV/vllyBQbE4dBvwJeKeTs4ZPx9gM 9qlq4wGZ8U6/tZZdr74A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rcLSo-0000000DhSm-3ZR7; Tue, 20 Feb 2024 08:26:54 +0000 Received: from mail-mw2nam12on20600.outbound.protection.outlook.com ([2a01:111:f403:200a::600] helo=NAM12-MW2-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rcLSk-0000000DhN7-2fVQ for linux-arm-kernel@lists.infradead.org; Tue, 20 Feb 2024 08:26:52 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ieLT3mQ5nue0xJ+cKHJtUh/IVE0wunNGAcpKB49YzehqI+fyU0vzraxi6mq+zQGCDcvfXfAz2m3SV80kCy2hhMuqfMfGnRnyCheUtrmLlzs/8HBlwr6t5IlVzCdHX8YSo1o1TbPj55quGFJTeUGyh5NqBmijqId/dwmbnWuNV99AZgNHVImI7ngLy0tevl7rVCsUu3++GnoEn0BF9M8seggk2dOfaa5KxxozKicA66x13mP1mxMgmqGPq/6sllEstg9fTiUnFqx/xZPwVioQ4U0K7tN9I4NhWRqftlBbb40PTADFjpp5Vjbl1d3ltzUFVJahaz7Kzdh8/B15Jt2dUg== 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=HEryPttJ6NkK5gzU6c2JNQ6F6PEYH/fo8m06qyAKsJE=; b=I8qdCQ4uQcHENKNCPRsGS+5jsEQY3d2thnNA6TZ76ubz8/6P//o7+psnvt9hlSEtJ8hPKNUMUXMF/Nih9xBZIr+UV5KSLtavW2cvPtvFcBlQiq+6BM1hfDNu0HJ+5j2N5TTMmhJKEvbjHs3g7Z0tO3Ngp/qz7DCIh74zO+55o3sR7MDKTjsApr/n3ybZcZ2LMaMzehne1Kh9iAarTWpTPQP4GFM6+93Ej9W78DXLiNtmCsYUVtnRpAUfomXaD56EzxI/ExZAz2ViNTLEIiX1EIhUmeqvjlu8owJrhxa9lu6ig4koOg36OemRSF/LFYUAmeLYr6mSwEYN06Kl2UYaDw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HEryPttJ6NkK5gzU6c2JNQ6F6PEYH/fo8m06qyAKsJE=; b=jwRNNqFaLu6gKy8kNTnFvf3IVA5ClqU0EC5KiswIYmCO2o6uL1delZP+rkv0yqxi7sgZRKfZ5zPvgTIZujcZl2+g1ElBogWxFq97GyKDJVWZ1NIPZyMWVlhUuTs8WFPizw7gfgULO9F/YUO+ncJcfudzMcIZ6t7n3T59tM4E2d8gOkldKrBhMwU6HgdVLTxOV7fDPTLY8G8LQ7pYtNHvx/x3/LR8Wiwj1AFhaSruOVZpZyjfcWRZr94yhiKZFK/PLNLV8CGIkAk+kYAHPWc6oQfvub15mGgBtbs4FL8f4mLxzYO4rpJw8xuDzP8q2Loj54VzLYJHT9E6kJlYiEffgg== Received: from SA1PR12MB6870.namprd12.prod.outlook.com (2603:10b6:806:25e::22) by SN7PR12MB7786.namprd12.prod.outlook.com (2603:10b6:806:349::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.21; Tue, 20 Feb 2024 08:26:39 +0000 Received: from SA1PR12MB6870.namprd12.prod.outlook.com ([fe80::97d8:a505:950c:6e89]) by SA1PR12MB6870.namprd12.prod.outlook.com ([fe80::97d8:a505:950c:6e89%4]) with mapi id 15.20.7316.018; Tue, 20 Feb 2024 08:26:39 +0000 From: Zhi Wang To: Ankit Agrawal , Jason Gunthorpe , "maz@kernel.org" , "oliver.upton@linux.dev" , "james.morse@arm.com" , "suzuki.poulose@arm.com" , "yuzenghui@huawei.com" , "reinette.chatre@intel.com" , "surenb@google.com" , "stefanha@redhat.com" , "brauner@kernel.org" , "catalin.marinas@arm.com" , "will@kernel.org" , "mark.rutland@arm.com" , "alex.williamson@redhat.com" , "kevin.tian@intel.com" , "yi.l.liu@intel.com" , "ardb@kernel.org" , "akpm@linux-foundation.org" , "andreyknvl@gmail.com" , "wangjinchao@xfusion.com" , "gshan@redhat.com" , "shahuang@redhat.com" , "ricarkol@google.com" , "linux-mm@kvack.org" , "lpieralisi@kernel.org" , "rananta@google.com" , "ryan.roberts@arm.com" , "david@redhat.com" , "linus.walleij@linaro.org" , "bhe@redhat.com" CC: Aniket Agashe , Neo Jia , Kirti Wankhede , "Tarun Gupta (SW-GPU)" , Vikram Sethi , Andy Currid , Alistair Popple , John Hubbard , Dan Williams , "kvmarm@lists.linux.dev" , Matt Ochs , "kvm@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" Subject: Re: [PATCH v8 2/4] mm: introduce new flag to indicate wc safe Thread-Topic: [PATCH v8 2/4] mm: introduce new flag to indicate wc safe Thread-Index: AQHaY86q3o4vxPMh/EWney6fGMJmL7ES5W4A Date: Tue, 20 Feb 2024 08:26:39 +0000 Message-ID: References: <20240220072926.6466-1-ankita@nvidia.com> <20240220072926.6466-3-ankita@nvidia.com> In-Reply-To: <20240220072926.6466-3-ankita@nvidia.com> Accept-Language: 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=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SA1PR12MB6870:EE_|SN7PR12MB7786:EE_ x-ms-office365-filtering-correlation-id: 975c1810-8e42-436a-d2a0-08dc31eda919 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: mV4sGb/0fFAmLyn2IjGaf2UyC+4O60CaIqbjiWXBwXWpwG4Kc29q9s/RQfga9pfIiEPlNDW6MGCSoSVFORN1bxoOuNt7Zh6vZkU3ySUBw1KplDqYityRYhBhuSgow0Fbx6WpRYq5kXMbUhc1EnOAiaAqDzA+lANUx1xUCLNgOefYs6m3WBvvcdrzNkj9mbvBwY/x0rGogZY5MGMzD45mieqduuolJy/4+Pw+AkmjqY2Nti+xHSHxkrTW8HxaYnP+MdJUoo33GIj0gHRzJs/jahTyDigokyMgKzr91QHSiAqh+PzRQk7uPG9iXw8p1ZLu3fnSNrFZ6yvQcluO8UlGqeDCeFI1dmb7JDo+JYDqRahyjWz8ZnB4rcafkCOHNynvIgmhHmMpWTxBScKqe6Ztmjd1zjofx3AB+pHmGwNR+Sy8xriBEmx4CVOVbtZAfWktYHpCPcNZvDX6khzSxuNEdF7ATKHKLrDI5abZPrzJ3Co89EYpIT01fM5C+480b4o0ajaG3TJTU8QkW9Ju+7Fbdt4M92RONbSmCIwz5OKWNy0Nx8AUWbMKjEq3qwg0O39wiopL7GyDWk5I75s6fGG4bQSvWlknbp5Ad9m7bMNFdwZahQL9/wbxA5RA1vGpgXsn/WZB7WI3/KsFbF1clK7VxA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA1PR12MB6870.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(38070700009)(921011);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?K0ZZZ0w3NTBjMHJGWUhDV0NNM2plaEFyb3lrazhCbTJ1NVFaSG1IMEd0MXdX?= =?utf-8?B?ZW5xU1F0RExMRU1Dand1WDVCNnpMSmNPdGxyeDMxZXJNY2Y2aHFOQ29MazdI?= =?utf-8?B?b1JVQVNJVUFtYi82WDcvSFlKblFSMmtlcmh1Mzh4Rm5NS0o3NERLU2UxVDF6?= =?utf-8?B?M0NmcFZ6M2dMV3dnYmUwTVRPbDNUbjVLbm4yV0VXR3pmSUwrM202OUNqSVRv?= =?utf-8?B?amhoU2pvRmdkRk1MKzc1Q1pON0ZRc1R5aEdRVEl3OHNYWE81ZzZ4N2ZHU1Z2?= =?utf-8?B?RHVxeDdweStNdWFkdmFzclNhb2J3d3RtL2RLTHNIcGtOVlZQTHFSRThORlhF?= =?utf-8?B?SEFIK0xTNUVTWEEzR2JoS3VCZjV4TWtBdXhHTUdOeGFwMi9RTUxUU2VEQWpj?= =?utf-8?B?QXQ4bTJwSWRyeHB4L1NweXdMY01TYld5OTRaZDBmdFY3QkNBWGwvQ0VCMDM3?= =?utf-8?B?SmhJTXdzUTByMEpYU3A5K2o3MlVoUUJtNG84Y2VEaHRkeUYyVlB6RGFBenR0?= =?utf-8?B?ZEVqRnFnd1FkNmpOQjJiSWx5RVAxUHdMYkgyVTQwc1FQY3dLTmRVa1JxQ3Fx?= =?utf-8?B?eWpNdXBaNFkxdTVUdnhvUUk0RzVtUVdsWnNVcFZpUjJZOXY4UlY2VmRFbnlp?= =?utf-8?B?WmlmemNDZFZidzlGU2pnSkdrY2theE9aakJ0ZVBtRWpOODBiUFJIczNROHFH?= =?utf-8?B?S2tScnROWEFXNHRpUDRqZ3N5Q0RkVENMWXJEaDVDNFFtQ2hjM1ZLT2ZqT1hw?= =?utf-8?B?U0l0SFAreWp0aTFnQU9yNWVtSSszQytKbmdaYUpVd2l0NldHU0xtcTM1ZStE?= =?utf-8?B?SVNOYmRJVmMwS2FCZGVhYklBVjN2ZmdhWG4xTVNCOUNRbkw4RXpKQ3Jwallq?= =?utf-8?B?eTVPSEVQbnM4dEhBWlExVzBWc05Vem5xVnpqcEx2T0tvY2xHVm9EdVRQSmVo?= =?utf-8?B?TGdHUkROMzZkUWR4ZUR1RXRMckxiUWZ5VWxoNXdJWHdMcnlobUlVenBnMHBp?= =?utf-8?B?NHJxTEs0YitJaWJrbHF5T3AzUXp2dmVHeTRndHBRVHA0bm1qZHRnVjZkNHhE?= =?utf-8?B?RWNWelIwcHJCV2JwRnA5NU9ZQ1ZjWHpFL1ZZT0djV2JDa2E1aUg2K3R2aERB?= =?utf-8?B?UVJyR1ErZFZnc1Q1eE44ZzY0NWZJSW1wZGV2T3RCU3JvZHlCWlFsczFucmN5?= =?utf-8?B?ZFJDOElINEJzenZBR1JGUUk1RWoyRU9LbnpDU0N0bkV6bDBFTnRMMHEwYldo?= =?utf-8?B?bE1sNmlhWVdnd1lhRStJUmxSVDM4OEQ0Wk9HWG4xUUFqcFdpUzlBK3JsUktD?= =?utf-8?B?OTVXc25ESDdvVVIzYjAramxTM0NUTWFiZXhNaWtTWE1jSmlyc1FjRitock1L?= =?utf-8?B?Z0Z5aFdkYm5hSHZCViszRUpwenlBcGV3ZzlwbStiYUdEdWg4RWI1M3VkZ2NY?= =?utf-8?B?OXFaRTlkTmhTVGFUOVFPNFgvY0ZqeVB6Z09pUkU5NkJkaWc5ZkNkdXVHMzFn?= =?utf-8?B?RDEwKytDUkkzWGhOTnZINm5UWWlGZW5VQXJycXdObkVXaS9pZHQ1YngxaitH?= =?utf-8?B?MjZPeXg2NWlHcmdUK2tjajFlbWlPSVZ6TjVXK2V3VWgrRDNDeEhodU5wN2dN?= =?utf-8?B?SVduL3FVeXVVcnE1VEx1SXA5MFR6YjVWTTV5VWFSV3k5aEIxLzR1dWdrRnlB?= =?utf-8?B?a2xnTGpya2d2QTB4RjJzbXRWZ242MDhNQ2loK3FGUUFTd1NzSjBhanZjbVRs?= =?utf-8?B?M21KSnMrdkJMQmhzdVFmVFR4LzRkMms5bTlTV2NuNG1yWGo5V2NIdUhKQmJl?= =?utf-8?B?OUNyanBoYVVacGpiMEdUanA1TjhMdEN2a2xMY1FrSUp4cFF5T3FvRXBIeWlE?= =?utf-8?B?Y3dRcHZWRnVKbjZFOWtIT3ZBdHU0bDZoSTVuZDJoYnRUb0dZSE5lanc5Vld3?= =?utf-8?B?elhaN3NpcnFzNDFRWmQxOVBSdHRUd0NpYWpZbnpVZ1AyTmFiOWFaSzQ1akhP?= =?utf-8?B?Yi9mZWtKRlVaWEhhd1ZEWGxlY0FlYWlMSEd1dGxrT0Y0a0FacVZIOU1IWjdL?= =?utf-8?B?TjRDUXFmWXp6ZGcyTUN1VHNpMjFyeEdHbjhBOVdhVklmRjhSNWdCWnVDZUdw?= =?utf-8?Q?RJwM=3D?= Content-ID: <35C6E47F78DE5D4BB6337DCE28D2A318@namprd12.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA1PR12MB6870.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 975c1810-8e42-436a-d2a0-08dc31eda919 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Feb 2024 08:26:39.3187 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: olilM5GN9Piaw9bqCRV5tlVL6EbdoxXTsWB2WM9C+7VW+R0nIlqFTh+qW7gBEz0g X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7786 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240220_002650_750010_EC97CEDF X-CRM114-Status: GOOD ( 27.56 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On 2/20/24 07:29, Ankit Agrawal wrote: > From: Ankit Agrawal > > The VM_ALLOW_ANY_UNCACHED flag is implemented for ARM64, allowing KVM > stage 2 device mapping attributes to use NormalNC rather than > DEVICE_nGnRE, which allows guest mappings supporting combining > attributes (WC). ARM does not architecturally guarantee this is safe, > and indeed some MMIO regions like the GICv2 VCPU interface can trigger > uncontained faults if NormalNC is used. > > Even worse we expect there are platforms where even DEVICE_nGnRE can > allow uncontained faults in corner cases. Unfortunately existing ARM IP > requires platform integration to take responsibility to prevent this. > > To safely use VFIO in KVM the platform must guarantee full safety in the > guest where no action taken against a MMIO mapping can trigger an > uncontained failure. We belive that most VFIO PCI platforms support this A nit, let's use passive voice in the patch comment. Also belive is mostly a typo. > for both mapping types, at least in common flows, based on some > expectations of how PCI IP is integrated. This can be enabled more broadly, > for instance into vfio-platform drivers, but only after the platform > vendor completes auditing for safety. > > The VMA flag VM_ALLOW_ANY_UNCACHED was found to be the simplest and > cleanest way to communicate the information from VFIO to KVM that > mapping the region in S2 as NormalNC is safe. KVM consumes it to > activate the code that does the S2 mapping as NormalNC. > > Suggested-by: Catalin Marinas > Reviewed-by: Jason Gunthorpe > Acked-by: David Hildenbrand > Signed-off-by: Ankit Agrawal > --- > include/linux/mm.h | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/include/linux/mm.h b/include/linux/mm.h > index f5a97dec5169..59576e56c58b 100644 > --- a/include/linux/mm.h > +++ b/include/linux/mm.h > @@ -391,6 +391,20 @@ extern unsigned int kobjsize(const void *objp); > # define VM_UFFD_MINOR VM_NONE > #endif /* CONFIG_HAVE_ARCH_USERFAULTFD_MINOR */ > > +/* > + * This flag is used to connect VFIO to arch specific KVM code. It > + * indicates that the memory under this VMA is safe for use with any > + * non-cachable memory type inside KVM. Some VFIO devices, on some > + * platforms, are thought to be unsafe and can cause machine crashes > + * if KVM does not lock down the memory type. > + */ > +#ifdef CONFIG_64BIT > +#define VM_ALLOW_ANY_UNCACHED_BIT 39 > +#define VM_ALLOW_ANY_UNCACHED BIT(VM_ALLOW_ANY_UNCACHED_BIT) > +#else > +#define VM_ALLOW_ANY_UNCACHED VM_NONE > +#endif > + > /* Bits set in the VMA until the stack is in its final location */ > #define VM_STACK_INCOMPLETE_SETUP (VM_RAND_READ | VM_SEQ_READ | VM_STACK_EARLY) > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel