[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250704134740.GG1410929@nvidia.com>
Date: Fri, 4 Jul 2025 10:47:40 -0300
From: Jason Gunthorpe <jgg@...dia.com>
To: ankita@...dia.com
Cc: maz@...nel.org, oliver.upton@...ux.dev, joey.gouly@....com,
suzuki.poulose@....com, yuzenghui@...wei.com,
catalin.marinas@....com, will@...nel.org, ryan.roberts@....com,
shahuang@...hat.com, lpieralisi@...nel.org, david@...hat.com,
ddutile@...hat.com, seanjc@...gle.com, aniketa@...dia.com,
cjia@...dia.com, kwankhede@...dia.com, kjaju@...dia.com,
targupta@...dia.com, vsethi@...dia.com, acurrid@...dia.com,
apopple@...dia.com, jhubbard@...dia.com, danw@...dia.com,
zhiw@...dia.com, mochs@...dia.com, udhoke@...dia.com,
dnigam@...dia.com, alex.williamson@...hat.com,
sebastianene@...gle.com, coltonlewis@...gle.com,
kevin.tian@...el.com, yi.l.liu@...el.com, ardb@...nel.org,
akpm@...ux-foundation.org, gshan@...hat.com, linux-mm@...ck.org,
tabba@...gle.com, qperret@...gle.com, kvmarm@...ts.linux.dev,
linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
maobibo@...ngson.cn
Subject: Re: [PATCH v9 4/6] KVM: arm64: New function to determine hardware
cache management support
On Sat, Jun 21, 2025 at 04:21:09AM +0000, ankita@...dia.com wrote:
> From: Ankit Agrawal <ankita@...dia.com>
>
> VM_PFNMAP VMA's are allowed to contain PTE's which point to physical
> addresses that does not have a struct page and may not be in the kernel
> direct map.
>
> However ARM64 KVM relies on a simple conversion from physaddr to a
> kernel virtual address when it does cache maintenance as the CMO
> instructions work on virtual addresses. This simple approach does not
> work for physical addresses from VM_PFNMAP since those addresses may
> not have a kernel virtual address, or it may be difficult to find it.
>
> Fortunately if the ARM64 CPU has two features, S2FWB and CACHE DIC,
> then KVM no longer needs to do cache flushing and NOP's all the
> CMOs. This has the effect of no longer requiring a KVA for addresses
> mapped into the S2.
>
> Add a new function, kvm_arch_supports_cacheable_pfnmap(), to report
> this capability. From a core prespective it means the arch can accept
> a cachable VM_PFNMAP as a memslot. From an ARM64 perspective it means
> that no KVA is required.
>
> CC: Jason Gunthorpe <jgg@...dia.com>
> CC: David Hildenbrand <david@...hat.com>
> CC: Donald Dutile <ddutile@...hat.com>
> Reviewed-by: Catalin Marinas <catalin.marinas@....com>
> Signed-off-by: Ankit Agrawal <ankita@...dia.com>
> ---
> arch/arm64/kvm/mmu.c | 23 +++++++++++++++++++++++
> include/linux/kvm_host.h | 2 ++
> virt/kvm/kvm_main.c | 5 +++++
> 3 files changed, 30 insertions(+)
Reviewed-by: Jason Gunthorpe <jgg@...dia.com>
Jason
Powered by blists - more mailing lists