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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id DA075C71157 for ; Sat, 21 Jun 2025 04:21:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9EF816B0093; Sat, 21 Jun 2025 00:21:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9C7406B0095; Sat, 21 Jun 2025 00:21:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 88E656B0096; Sat, 21 Jun 2025 00:21:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 7477D6B0093 for ; Sat, 21 Jun 2025 00:21:31 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 3E568A4761 for ; Sat, 21 Jun 2025 04:21:31 +0000 (UTC) X-FDA: 83578108782.06.55D9AA6 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2061.outbound.protection.outlook.com [40.107.220.61]) by imf22.hostedemail.com (Postfix) with ESMTP id 41046C0004 for ; Sat, 21 Jun 2025 04:21:28 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=maGoUXxJ; spf=pass (imf22.hostedemail.com: domain of ankita@nvidia.com designates 40.107.220.61 as permitted sender) smtp.mailfrom=ankita@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750479688; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=9qPPZZJ2UBQ842rogNTNRFs1AK2i4MWc6cZYer/+iGk=; b=TpSpRJfvlhNmY/nN/u7EWEm7Wgn2hg+vzlTMXh7lVpbE3U4y3TUvcanvBPMYzRwzZxb76P r34wMXem9EFGrQaYIz45sDkSAPAMcW61CsmcBDF4lrjBBWvopRxA6CidDntyXTzlzgSxL3 pGirq0GVjm1c9mdwWAIkBWMdh0ufFj8= ARC-Authentication-Results: i=2; imf22.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=maGoUXxJ; spf=pass (imf22.hostedemail.com: domain of ankita@nvidia.com designates 40.107.220.61 as permitted sender) smtp.mailfrom=ankita@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1750479688; a=rsa-sha256; cv=pass; b=wVEiEwvJqt1zVl5faW2PS7qVZQ25fxOiFcP3cZJfNj4RVgAK9OGTcez4L8zuEXIu9oyeqE TN4wgu0XWFo7M7tiD/k0VInKjoesYDv26uAofWsrfL5HoCgucj+YIOclbFOdYLw6m7JdtU eCTlZPimNcxgA08UVXib2inHYCU9M8E= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vHl7tygYNZj95cwjF0MmDCqscxArfAgC1Y3sWLUv2yI3E7b79S1DDcmmX3bmMLjxWrhLfuGKDfaj6yg2iJtL5sHrTR6qDmDYAByqtm8re/k7CFkfN0WMcvuyHy82vp7PHN261oa0RlhKdTuPYJA1AGRLlEuT+5dHYFszZ8juuFtv1AIiN5lL7Zyl6M0sIsHE5DhmGwL6asCHDYohE1FPL2WlsH0PyUdaPJOFdg7l7BVZcY/1Yht6beOvwFIiopvfQbtF5HRmphgqKdDRwtJnGMDfcHhZKgkuhgUnHOWJgDcnJVcXeBhzaGfVU9U6ajJ5fAKA+4AOQbHIyzxVb0wiVA== 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=9qPPZZJ2UBQ842rogNTNRFs1AK2i4MWc6cZYer/+iGk=; b=W9iyLAF+gqYQqKv5LaewFGJWMTxFOWOS3O7dF4unUfRBoL/3/4Mz+8J5rfXh2f9oSd2MOgIeGX6G7WN2ChT5ajj8YMpj+ZXbnRzwEi2yrh7r+NvYhY6dONqtK7Wr1GLdrm9a3qu98oXrxdBbMif0e038kMLNvdlc/kVvSt0JdJLJSDffXLEU+8WCE0K4TPXNWh8jnMLmvMsHdl0m2a3aeGKmv8bx0agzc2ZkF0u686w/RmTlC72gpjKWjM9+PgOSFoDTd7zz+Rot8xk5k3pCd3nb1URp6E5QtiCBin5sU9iuCF4xEh2yWO/OGylefyECQcBi5LGYU60uI3Uhw85pEg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=redhat.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) 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=9qPPZZJ2UBQ842rogNTNRFs1AK2i4MWc6cZYer/+iGk=; b=maGoUXxJLIG+il24OKHmWwSLFQE/qW9oG7x19a/XFyPLLxJkspugEPGhqCuPx2KeaWcXmohQ38LcN42+M5XjjKhY04YMfDLpEb7lf1CqxQeWcGRg9YW1kXG4LGnwm4b5QnMWs5G2nAVVMAD2AfvcgL+177YC7irZDMrzp49uZoxmtgsQAXa0Lh6mo6xZnb03pjNg1s7iaRPl2But5icX2xN+A7R6BGcIAePsszsxRjB06H3oJvfA0VixREwnGsph6WMkeoZvD32CU6j7KyGri538/khnwfi9RiHdhjwuZaU96oFu46NF6/mEzf4yqG9txYbQHf2ZLuycxCHZxOnYzg== Received: from CH2PR14CA0031.namprd14.prod.outlook.com (2603:10b6:610:56::11) by CY8PR12MB7513.namprd12.prod.outlook.com (2603:10b6:930:91::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8857.23; Sat, 21 Jun 2025 04:21:23 +0000 Received: from CH2PEPF0000013F.namprd02.prod.outlook.com (2603:10b6:610:56:cafe::69) by CH2PR14CA0031.outlook.office365.com (2603:10b6:610:56::11) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8857.26 via Frontend Transport; Sat, 21 Jun 2025 04:21:23 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by CH2PEPF0000013F.mail.protection.outlook.com (10.167.244.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8857.21 via Frontend Transport; Sat, 21 Jun 2025 04:21:23 +0000 Received: from drhqmail201.nvidia.com (10.126.190.180) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Fri, 20 Jun 2025 21:21:13 -0700 Received: from drhqmail203.nvidia.com (10.126.190.182) by drhqmail201.nvidia.com (10.126.190.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Fri, 20 Jun 2025 21:21:12 -0700 Received: from localhost.nvidia.com (10.127.8.12) by mail.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14 via Frontend Transport; Fri, 20 Jun 2025 21:21:12 -0700 From: To: , , , , , , , , , , , , , , CC: , , , , , , , , , , , , , , , , , , , , , , , , , , , , Subject: [PATCH v9 2/6] KVM: arm64: Update the check to detect device memory Date: Sat, 21 Jun 2025 04:21:07 +0000 Message-ID: <20250621042111.3992-3-ankita@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250621042111.3992-1-ankita@nvidia.com> References: <20250621042111.3992-1-ankita@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PEPF0000013F:EE_|CY8PR12MB7513:EE_ X-MS-Office365-Filtering-Correlation-Id: 844f9cbc-9bd3-43de-ac89-08ddb07b1502 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|36860700013|376014|7416014|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?GR8kjlXRk/HvAszTrkjUYC+3CSKXCyGhm/5g0hhupJlvA/5XavvvfRu9l4xg?= =?us-ascii?Q?Ub7tSyEXmGFLsluVFWKeqa3y0sZ8m+vvDWY670wA+L29NkQhQRBj75ViQPyx?= =?us-ascii?Q?9xNfGad7oIqUuU6rK3IKKYKF3nFYQRWN5Thbd38OMx2R/8M2ygmjEOJHyesT?= =?us-ascii?Q?GjN60Tk8xWkALY8nk/mtCgKlvw8qHjJiBeOLEwBncWlLm0Le+tSEgP40RMsR?= =?us-ascii?Q?XoNxBhpbvFQ7b4bb33ZY6IOsISl+khtOswFAC8k9A1DjxaCtM92evT5GRuTt?= =?us-ascii?Q?4FFQq+Gb/zEpZ5cbuqeDybFBkfPyNr0sBUU/+J0UHegLYdQFi5yY5KlJjI4G?= =?us-ascii?Q?492vVwzVEbqD9PVRgo5JsQ5N4nqnBXyVgFAJiiepqtTNpl/pz1G/MqJq6W9Q?= =?us-ascii?Q?AYV3TWuJC59riy1prSMSSUDbuG0y5lE2/G3XqEM86jcr6XW2jIdFkOjj3kml?= =?us-ascii?Q?3YUKyZ/EAjU4RprbwNVu6Cpi+4ySjM9tbVVRskDfzAYozgQrAoa1G/f34md/?= =?us-ascii?Q?6Wg2WRjQWg+U46Shr/57nDhUvAZncGXZqhrrN1rmbwL/MOn3enoi4lBvVXoA?= =?us-ascii?Q?22HNxA/FTyZ4Fl3SQW+rrrzrQBFVi0GLHsZB3g3DibmjqPjs+zTy1KTXVfH7?= =?us-ascii?Q?W1OnfJKbjXfaI1OOkEFZak8ko1yvYKF7IIrn5/D8AE4zyzPqQfXWZ67jXdJt?= =?us-ascii?Q?0ryCO6lKkTg2OCVQunche2QqJPWe3F7RzJ5mN+vy4alBDTaa3V/OQm8QpxnA?= =?us-ascii?Q?lz0/aHWdxPl8WjBia1NAP62evAVk7ZgxnC7QGLV+DSqy+Vxa4KMbxIcsA+ld?= =?us-ascii?Q?5uAhZb6IzFlguUNqOd/CrP9PWvx9U4nJY8dq/ImR0Ll+QxliH9y7cy7lAS5B?= =?us-ascii?Q?HjyAcW+GvkCxorh6lcmMOSHX23kN7UtDsTOOVfxpZp9jnt5JaTOZbnnV4WdK?= =?us-ascii?Q?a31fI9pWDE99/Uwav666pW7lp1WU6pGR3qo6lrl+7ZvRRlkIiMko9i+rxTg8?= =?us-ascii?Q?KRwetstcv+fb8gW02g+WyghHeWNWZUOYT3L1vzxATE7J1zbUrhCjjwRQLsUc?= =?us-ascii?Q?bQX2dalzX1Jbq2IiYBhMV0GTwSX6DIntVi8m7W+Ji450eV4OV8NP1gdZGrxs?= =?us-ascii?Q?1SSgNQTZRvlBZRcfMEBtvpbEsF9TNwleBNWbBGaQKUrJjL/0OwXzWkpG4AwQ?= =?us-ascii?Q?2ZS6wZ13aO4h01nRWXrtpo4k6QPxmF4Cv2rlalWXePwCGoDpCjXq4Vi6D6xQ?= =?us-ascii?Q?eEs2qthQkp4hz22RvHLYzjm9G9+DCUdGlgDnq6aYlzQczGFsgsE4gIGm0gH2?= =?us-ascii?Q?3xSthB5z0IRog2+8igjs0uZkHq8DFPViZ7cx7J4U2UgdUIILh3ycvJqXaTwO?= =?us-ascii?Q?pqT3vLvulBx/w8/XPaEDD9xfWX0brbnytYlP5mjzZCdGmOqCJcYqbFtLAgbd?= =?us-ascii?Q?NmAibyG4TmSPka3OcnzDu/dj0Pr5eAnpN7LVF9ywMYMmv0hwk/Sy86KqQIEH?= =?us-ascii?Q?m1dv61azicXwLi+uZnWKxmflMrF3hrmAHV4zILJQ2V6MAvqgvNm50S5BMA?= =?us-ascii?Q?=3D=3D?= X-Forefront-Antispam-Report: CIP:216.228.118.232;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge1.nvidia.com;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014)(7416014)(921020);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jun 2025 04:21:23.5781 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 844f9cbc-9bd3-43de-ac89-08ddb07b1502 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.232];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CH2PEPF0000013F.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7513 X-Rspamd-Queue-Id: 41046C0004 X-Stat-Signature: au7kd96xs9wo934ant7rgf8soticykui X-Rspam-User: X-Rspamd-Server: rspam04 X-HE-Tag: 1750479688-50772 X-HE-Meta: U2FsdGVkX18CsyZP4TtMxYo8XFtvFqbsC3ArV3TeOiVNwwcGEBxfyaX4aLr1ZJpLqaD5tDFxNA+p72ZfcN6wFDYiIaGGeE91SnOH/ScB12gQO9cGiJsKI7nymYZBQBCEhaaqSq2FORz23F751TAhMLWZwV0MbX7YSQkwu3fpZJi/M4EVJWHSDRsBlHtWhMsBRP4wsO6osWSDTxThygyaixHWKcKRstuSbQsJ//D2HGQTwdQiwqKY+5ObGzbd91ORfvEF9xAcmk46lng031Tm14MY1hqH3+nMfpnw5isWCAkt7uE4GKfW8JzOA2VCaVFxOcguD//33en+i0Mtb5wA66uaWYj2Gfg7GwIED0FPaUM4m9PzPfuj2GIM4GPef1MvLt6KL05G94JC1Ga/OQ4DpzqgjhAmrxsvLwkZ5uh6DeCl732ChbrzlYzd94++bzV98uuG1lY+48SSSSBbUwN9PPrkkJAahblx3X2ay6DYICTXVB8X6vtu3rfpV0dIw0zzASlwsNOepb2SG49bfnKKbZCdBLYzKU4MlhyYbPGnEGrJwqD+J9tiJCgZ0FDh38SApRqjfFHA0bk/xpy+Vj1jHfSEtlBXwcKls++qv/37PEZ/WkyFt7EyANyjrLusniOUz6YGNKOzf9gRVJd9ek25tbwgyBKs6sCX4UGB/R/QAZtA809/JZHxR+4cOlTP3tcC2vqEXB6HSf+PyGB2UBsLMbhOJ/oj8OXbUjvw04K1ZymvEWVOnCbA7Sf7ecEu4kxjxQMGVXhtm5YBfT10RrcJVbJgzrhNmMplYNdrLGFQrVWgh7E95tVKwurSOQ8o6u9wQa0r59pfOq98vaXD3J9P0UtIYUaGQYn0jPZ0wZvGZDb/tvbRRVAxZ7YVjq0GQQWlJGT4856b20i+nz1myf0WOgwzx88sJmO1XkwJi7es40nZ0bhPHQEgI2lNVFYHRTuUAb5E1wDtoyoC6oGec6H yl3UmvSh Pb+hkARRozZefjpMcM4CrL4keVHtbexMJDfKUrlAHEOe0BbXZ0oSRX9XpzGqsq64PsbZTy7H0xjxJwapl6Ldv3S/0ODtwzgKPj9Dvk7tvtS8PVMGKm3inOqTRYw5rKAOitmSohONPynFZmNUVrAa3j5lHCNTcaWuIbkhLE+Vt5mCHPCaqyPev2/H5mvCgHCucJQQI5gIqHlQeR2h5BumLQUoPkyGfxbbfsoa8wUcWjW33u/VM0oJpqRwI47DFcNubBj8Bj+YhHCf6ODIZPQIxu2Ps8qNpWAf0XsbRoNQhW06XSaEHYfobSZmpncF6nA6goA9CYP+errj6JRWC5AG/SvTJBirUo2g44l4Ts0Y/wlA0LVQpbB0J4XvrITz4zdNSY3Gd1I5cKCRtVHrrMrQHRPgEovl7RTyOAGeb99fJdcHcgMV6c7vefEUocw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: From: Ankit Agrawal Currently, the kvm_is_device_pfn() detects if the memory is kernel mapped through pfn_is_map_memory. It thus implies whether KVM can use Cache Maintenance Operations (CMOs) on that PFN. It is a bit of a misnomer as it does not necessarily detect whether a PFN is for a device memory. Moreover, the function is only used at one place. It would be better to directly call pfn_is_map_memory. Moreover we should restrict this call to VM_PFNMAP or VM_MIXEDMAP. Otherwise the VMA has struct pages in it and mapped in the kernel VA. Suggested-by: Jason Gunthorpe Signed-off-by: Ankit Agrawal --- arch/arm64/kvm/mmu.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/arch/arm64/kvm/mmu.c b/arch/arm64/kvm/mmu.c index 1601ab9527d4..5fe24f30999d 100644 --- a/arch/arm64/kvm/mmu.c +++ b/arch/arm64/kvm/mmu.c @@ -193,11 +193,6 @@ int kvm_arch_flush_remote_tlbs_range(struct kvm *kvm, return 0; } -static bool kvm_is_device_pfn(unsigned long pfn) -{ - return !pfn_is_map_memory(pfn); -} - static void *stage2_memcache_zalloc_page(void *arg) { struct kvm_mmu_memory_cache *mc = arg; @@ -1492,6 +1487,7 @@ static int user_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa, enum kvm_pgtable_prot prot = KVM_PGTABLE_PROT_R; struct kvm_pgtable *pgt; struct page *page; + vm_flags_t vm_flags; enum kvm_pgtable_walk_flags flags = KVM_PGTABLE_WALK_HANDLE_FAULT | KVM_PGTABLE_WALK_SHARED; if (fault_is_perm) @@ -1619,6 +1615,8 @@ static int user_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa, vfio_allow_any_uc = vma->vm_flags & VM_ALLOW_ANY_UNCACHED; + vm_flags = vma->vm_flags; + /* Don't use the VMA after the unlock -- it may have vanished */ vma = NULL; @@ -1642,7 +1640,7 @@ static int user_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa, if (is_error_noslot_pfn(pfn)) return -EFAULT; - if (kvm_is_device_pfn(pfn)) { + if (vm_flags & (VM_PFNMAP | VM_MIXEDMAP) && !pfn_is_map_memory(pfn)) { /* * If the page was identified as device early by looking at * the VMA flags, vma_pagesize is already representing the -- 2.34.1