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 865D5E7718B for ; Fri, 20 Dec 2024 15:42:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F1E436B0088; Fri, 20 Dec 2024 10:42:46 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id ECDCC6B0089; Fri, 20 Dec 2024 10:42:46 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D6F376B008C; Fri, 20 Dec 2024 10:42:46 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id BA9F76B0088 for ; Fri, 20 Dec 2024 10:42:46 -0500 (EST) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 643BA160B53 for ; Fri, 20 Dec 2024 15:42:46 +0000 (UTC) X-FDA: 82915754124.12.B4BAAA3 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf15.hostedemail.com (Postfix) with ESMTP id 9B346A002E for ; Fri, 20 Dec 2024 15:41:50 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=fLl78GL2; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf15.hostedemail.com: domain of david@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=david@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1734709331; a=rsa-sha256; cv=none; b=sD4syfn3eMMXHTlhCwfn6phjojffYNQwVZNpsGTEovgHgPNH1D0OhVP8lchu5xecj/drp3 rv7blqdJjG1o6BGOJd+IzYDdxiBcIMoxsGcsx6KCPG3FpKGBwJhvcXBWPO4gDUxpqn4yD4 OTuoXPKFJ+rMXZ5Xz+vxsj9PUMOKyIo= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=fLl78GL2; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf15.hostedemail.com: domain of david@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=david@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1734709331; 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=76JkOCTX+61iBdbOfTSQ69p0QN49NOsEyzL0RHTQ/q4=; b=AQ7JtvIGETEYNXNrjYb04GlCq1pqY5USzYF7qvYp1KZssvVRnpX1biwkoklyMkz2Q35Nsw azV5yGO0mf0bmhuaZvUsAsazpERcllLf5s8ub2D0OvaO3OoTNtQfs/VVoxnsoiOwFnah3J fwZ62fpqVVZxC2jeOAZ43xVpYepEnYk= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1734709363; h=from:from: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:autocrypt:autocrypt; bh=76JkOCTX+61iBdbOfTSQ69p0QN49NOsEyzL0RHTQ/q4=; b=fLl78GL2NfczIuNPcPclM+OqNznhnoczc+C9luygK9S+1ryaZw63ORGp/JyN9az9NfYaRH gYyv50OzReV8OnCd6kaSbi4QnGbCPYbnZM8+Q7PbfApOAjbgygMDiDsHBEBGFCJ5KSdfXn s4diAxIYGPbY97xwgiuC+jyIlQ4/nDw= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-656-DJqh70OFN3qnTZOIXXCCWw-1; Fri, 20 Dec 2024 10:42:41 -0500 X-MC-Unique: DJqh70OFN3qnTZOIXXCCWw-1 X-Mimecast-MFC-AGG-ID: DJqh70OFN3qnTZOIXXCCWw Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-4361efc9d23so17316445e9.3 for ; Fri, 20 Dec 2024 07:42:40 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734709360; x=1735314160; h=content-transfer-encoding:in-reply-to:organization:autocrypt :content-language:from:references:cc:to:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=76JkOCTX+61iBdbOfTSQ69p0QN49NOsEyzL0RHTQ/q4=; b=E8WNnq/NBi4WtHM8FKXsH6+tO8s+5VfFEOiD0i3W7oLLqTgcPzh0fZBcfvmpvDOuXp xegVmVHzb0VOQWZ5FAZq4VOKutrRGkI2RLnn490KbYvc9/t9Lg7XtmLYLers3vZ9lfT7 +Pwxm/3Upz45k2WxcHiJVYdSqggP4ulUKrsd44ttlE2FfuRqeWX9SYzSGv61s5+jBjiF Fy9FTUY29qCIgRYN6qsfmKuS8CUY6ZcyHyO4QPCFqx3eO49oy16ushfwqj8mIHDOFIeJ v8Hel/Vk0V71XHb1Q9cV1giuciZegvYXqimOq17PcLAkoxU/CTn9rGD8NpFuGAXGQf0z mrGw== X-Forwarded-Encrypted: i=1; AJvYcCU+iJoJSjTxXJC/kYQ+VktQcY6QhjnJaxCWRFAWLMp2Mz/a+0czWSRcQ+vJ6q80v9ALgyL6oSVwjA==@kvack.org X-Gm-Message-State: AOJu0Yx1EyH2faThk4gZNwwSoeTpl5UkEOLiY2ymDI/YxDKOOoodgcIN enewbxSVN1GZuflU12PJkiN32DMcztCc2/XLHIcM2HBoROvjfv6Kjki346krKTdxIUr1sBx17SG NMvlmDUGWV9AVBoHfIP2arDksTvCQ7cQL3qjBW+uVG0gMOxrb X-Gm-Gg: ASbGncsyDDcAHCJP/P7XEoczlW7GX9w6q2r0kuc1rTkK6hz/FESL/5vylN+6ZXKvOEj +DD4iqZ05wTz4hWg60oP8mg14eAlpNXwA97TZKt92VUrP+1P8IIl7gmhXR8z5c9b52EJYiDgoTE y1+bX6Lj2ZtymZwat7eDOoy4/TPmRqqL6whLx2F1R4c1OSn1eJ4BjjsD6TFeayVboRHn2Z0bY1O vfaIUtyHmNzRZgmVArkcd14ii5KPeYT7Yop+cfMkuKGTuNP66T0AkEIrDBcpkZvyFvD9DYBVFsW iBLeIn7NcJ8Aj3DC0dbAqIB9WdzXaWPwRQNj8EiGaIHOnsfUVe06IHiICUnkz6wsCH+F7tMgAYM YKzMwAOn8 X-Received: by 2002:a05:600c:a0a:b0:434:a04d:1670 with SMTP id 5b1f17b1804b1-436678f5775mr37979595e9.0.1734709359573; Fri, 20 Dec 2024 07:42:39 -0800 (PST) X-Google-Smtp-Source: AGHT+IFAN5T2i4qsjhDcC2lmS0U6OKdZwvAAA1+bS7ixeIsq/XePopkOgZMGgNPC00dsJF//r7wHOg== X-Received: by 2002:a05:600c:a0a:b0:434:a04d:1670 with SMTP id 5b1f17b1804b1-436678f5775mr37979185e9.0.1734709359110; Fri, 20 Dec 2024 07:42:39 -0800 (PST) Received: from ?IPV6:2003:cb:c708:9d00:edd9:835b:4bfb:2ce3? (p200300cbc7089d00edd9835b4bfb2ce3.dip0.t-ipconnect.de. [2003:cb:c708:9d00:edd9:835b:4bfb:2ce3]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38a1c828897sm4277175f8f.20.2024.12.20.07.42.35 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 20 Dec 2024 07:42:37 -0800 (PST) Message-ID: Date: Fri, 20 Dec 2024 16:42:35 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 1/1] KVM: arm64: Allow cacheable stage 2 mapping using VMA flags To: ankita@nvidia.com, jgg@nvidia.com, maz@kernel.org, oliver.upton@linux.dev, joey.gouly@arm.com, suzuki.poulose@arm.com, yuzenghui@huawei.com, catalin.marinas@arm.com, will@kernel.org, ryan.roberts@arm.com, shahuang@redhat.com, lpieralisi@kernel.org Cc: aniketa@nvidia.com, cjia@nvidia.com, kwankhede@nvidia.com, targupta@nvidia.com, vsethi@nvidia.com, acurrid@nvidia.com, apopple@nvidia.com, jhubbard@nvidia.com, danw@nvidia.com, zhiw@nvidia.com, mochs@nvidia.com, udhoke@nvidia.com, dnigam@nvidia.com, alex.williamson@redhat.com, sebastianene@google.com, coltonlewis@google.com, kevin.tian@intel.com, yi.l.liu@intel.com, ardb@kernel.org, akpm@linux-foundation.org, gshan@redhat.com, linux-mm@kvack.org, kvmarm@lists.linux.dev, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org References: <20241118131958.4609-1-ankita@nvidia.com> <20241118131958.4609-2-ankita@nvidia.com> From: David Hildenbrand Autocrypt: addr=david@redhat.com; keydata= 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 WNyWQQ== Organization: Red Hat In-Reply-To: <20241118131958.4609-2-ankita@nvidia.com> X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: lEoR0P2MQGmx-C7EgbhEJ_sUvX7uGPCeABjaGguEShw_1734709360 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Stat-Signature: 5j15s4z3nhq9ftoenpt93zgm7thjt7jj X-Rspam-User: X-Rspamd-Queue-Id: 9B346A002E X-Rspamd-Server: rspam08 X-HE-Tag: 1734709310-668136 X-HE-Meta: U2FsdGVkX186B8wI12ruU5WCv/LceIFy+XKMx5fCeok0WgkoeDQMRFGd1u6niYyRphKxltE4chKlpPtWdNK3pQbRowLn+tkGtCkAJEwcrBsmmRUASMPjGfwBiV4oYua9CMPkkbVb6b36lIRPQVkqjz7m5Q/nCOTszvkNzjUGe9KdQJVMrKqfMJv5rnJw9ND3c5DZ95dxvIQOZFctD2n3srczAa6iWkQq1iMRfm1Cpaqc8JxfH9J472SdGciHO+L7rADe+ZXecoI4OvZ49AN2Le9wZdG04Rai9mtZ4ihXSIO8ZMfA8OHuvhQ7r1MGf2cUItfA4SQwI2wKZrDLsDQtiVZjlsB1B/MBWfZKkZy9yev5VuE9qEhzpqxLpP+VUlEwou+QkZiKrQY3NbdXSEmjBNuB6AP/otsqIPbDeAFLbJEFnMgONhxgffD1D8BAmH9bbgYKkk/4eg5+m8SdXcRGQN1iHbROCzxGIW/R9XaF7156egAhSkRdnj9A0ehwwvmBCevUT5IYiYr8or5vraOEXx8inEewPNAW0TlNVwQYuJOxyMboATECXfd0oNoa6eOuy1eCAXlbpsVyTrlDVLz7e6XWd56o7pw/WENu1JM5JDBdbgFDAPIHxcyyBF3g1Q7KcnV11Ipy+YkBG8ThaF0gc3LJmmBRiiHptVbsfC+mnCK+34AUOlDjc93aKjgx9uJAvFFUHjOxkJpD/Jmj+lc9eL73kFqcdszZMfV82NosZrtZikI0tj9aHIr/JEMgVHDH7QeM7zxXY+FjoJc5fVs3tiKbha8msbdwK4eeeuiVIaUSmVtmIauTIO3Lj+6bQ5C4/pAMRgeMwH5Fk4TKc53Wqrw/lS6ztXOZRLt4SzYH2g/545DIVjKUXxWLVQN1j1kWXDdTBEA1NjwZPDBeAHo3xIqG6xhWzsFgd/DcfZrCYlyVAg/7xoCCDMcTpVlxE5KMtNVc0Chhv9KKyQO6vDu 3aYwTtk3 ZeZyqcbL1uIcHSjlCgOpxlrxZSqrOzaSrihym2DXLxlzPDh5YaTo0hz6qnMkIjnhw6F6eWKgDfVGfk3gCNP8seudqJnVF4DBimoZOLkGR5hl21TA9mNrslrDEcxEBiFmnhYr6PlxywWueT6GRGZALEwUG50sxaQtOsZ42kpZ9PzJLHV2bV4dvyIRxelbb5RHhJdS492hPg9Ia8PvxG9koFIG1egJO93sBnJxFOc9aP5qy725sBNY0lcoQuEtRoql4pBmwqj3DXRlLnf+dYMrY4u8azWN5Kv8ZWqwkFxCq0NY1Fy3aeydBEwlylKSiD47D+dAJLIRT1Y8c6pRkmvQwUDAKd9an9qW5FZcljIHPxPgMVDWvUhADLt8114+PNH5/gFNQFsoXmllUrOug8rYWxOAs70jsMX3ssHv6O57/AO3DRgtFNptWVFZ0bfPdhvWv+3s/7beyMHIJN4XpY9wC78ojNsbu4OqerR0V X-Bogosity: Ham, tests=bogofilter, spamicity=0.004624, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On 18.11.24 14:19, ankita@nvidia.com wrote: > From: Ankit Agrawal > > Currently KVM determines if a VMA is pointing at IO memory by checking > pfn_is_map_memory(). However, the MM already gives us a way to tell what > kind of memory it is by inspecting the VMA. Do you primarily care about VM_PFNMAP/VM_MIXEDMAP VMAs, or also other VMA types? > > This patch solves the problems where it is possible for the kernel to > have VMAs pointing at cachable memory without causing > pfn_is_map_memory() to be true, eg DAX memremap cases and CXL/pre-CXL > devices. This memory is now properly marked as cachable in KVM. Does this only imply in worse performance, or does this also affect correctness? I suspect performance is the problem, correct? > > The pfn_is_map_memory() is restrictive and allows only for the memory > that is added to the kernel to be marked as cacheable. In most cases > the code needs to know if there is a struct page, or if the memory is > in the kernel map and pfn_valid() is an appropriate API for this. > Extend the umbrella with pfn_valid() to include memory with no struct> pages for consideration to be mapped cacheable in stage 2. A !pfn_valid() > implies that the memory is unsafe to be mapped as cacheable. I do wonder, are there ways we could have a !(VM_PFNMAP/VM_MIXEDMAP) where kvm_is_device_pfn() == true? Are these the "DAX memremap cases and CXL/pre-CXL" things you describe above, or are they VM_PFNMAP/VM_MIXEDMAP? It's worth nothing that COW VM_PFNMAP/VM_MIXEDMAP mappings are possible right now, where we could have anon pages mixed with PFN mappings. Of course, VMA pgrpot only partially apply to the anon pages (esp. caching attributes). Likely you assume to never end up with COW VM_PFNMAP -- I think it's possible when doing a MAP_PRIVATE /dev/mem mapping on systems that allow for mapping /dev/mem. Maybe one could just reject such cases (if KVM PFN lookup code not already rejects them, which might just be that case IIRC). > > Moreover take account of the mapping type in the VMA to make a decision > on the mapping. The VMA's pgprot is tested to determine the memory type > with the following mapping: > pgprot_noncached MT_DEVICE_nGnRnE device (or Normal_NC) > pgprot_writecombine MT_NORMAL_NC device (or Normal_NC) > pgprot_device MT_DEVICE_nGnRE device (or Normal_NC) > pgprot_tagged MT_NORMAL_TAGGED RAM / Normal > - MT_NORMAL RAM / Normal > > Also take care of the following two cases that prevents the memory to > be safely mapped as cacheable: > 1. The VMA pgprot have VM_IO set alongwith MT_NORMAL or > MT_NORMAL_TAGGED. Although unexpected and wrong, presence of such > configuration cannot be ruled out. > 2. Configurations where VM_MTE_ALLOWED is not set and KVM_CAP_ARM_MTE > is enabled. Otherwise a malicious guest can enable MTE at stage 1 > without the hypervisor being able to tell. This could cause external > aborts. > > Introduce a new variable noncacheable to represent whether the memory > should not be mapped as cacheable. The noncacheable as false implies > the memory is safe to be mapped cacheable. Why not use ... "cacheable" ? This sentence would then read as: "Introduce a new variable "cachable" to represent whether the memory should be mapped as cacheable." and maybe even could be dropped completely. :) But maybe there is a reason for that in the code. > Use this to handle the > aforementioned potentially unsafe cases for cacheable mapping. > > Note when FWB is not enabled, the kernel expects to trivially do > cache management by flushing the memory by linearly converting a > kvm_pte to phys_addr to a KVA, see kvm_flush_dcache_to_poc(). This is > only possibile for struct page backed memory. Do not allow non-struct > page memory to be cachable without FWB. > > The device memory such as on the Grace Hopper systems is interchangeable > with DDR memory and retains its properties. Allow executable faults > on the memory determined as Normal cacheable. > > Signed-off-by: Ankit Agrawal > Suggested-by: Catalin Marinas > Suggested-by: Jason Gunthorpe > --- -- Cheers, David / dhildenb