[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <86bkb4bn2v.wl-maz@kernel.org>
Date: Tue, 05 Dec 2023 17:01:28 +0000
From: Marc Zyngier <maz@...nel.org>
To: Jason Gunthorpe <jgg@...dia.com>
Cc: Catalin Marinas <catalin.marinas@....com>, ankita@...dia.com,
Shameerali Kolothum Thodi
<shameerali.kolothum.thodi@...wei.com>, oliver.upton@...ux.dev,
suzuki.poulose@....com, yuzenghui@...wei.com, will@...nel.org,
ardb@...nel.org, akpm@...ux-foundation.org, gshan@...hat.com,
aniketa@...dia.com, cjia@...dia.com, kwankhede@...dia.com,
targupta@...dia.com, vsethi@...dia.com, acurrid@...dia.com,
apopple@...dia.com, jhubbard@...dia.com, danw@...dia.com,
mochs@...dia.com, kvmarm@...ts.linux.dev, kvm@...r.kernel.org,
lpieralisi@...nel.org, linux-kernel@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org
Subject: Re: [PATCH v2 1/1] KVM: arm64: allow the VM to select DEVICE_* and NORMAL_NC for IO memory
On Tue, 05 Dec 2023 16:43:18 +0000,
Jason Gunthorpe <jgg@...dia.com> wrote:
>
> On Tue, Dec 05, 2023 at 04:22:33PM +0000, Catalin Marinas wrote:
> > That's an argument to restrict this feature to PCIe. It's really about
> > fewer arguments on the behaviour of other devices. Marc did raise
> > another issue with the GIC VCPU interface (does this even have a vma in
> > the host VMM?). That's a class of devices where the mapping is
> > context-switched, so the TLBI+DSB rules don't help.
There is no vma. The CPU interface is entirely under control of KVM.
Userspace only provides the IPA for the mapping.
>
> I don't know anything about the GIC VCPU interface, to give any
> comment unfortunately. Since it seems there is something to fix here I
> would appreciate some background..
>
> When you say it is context switched do you mean kvm does a register
> write on every vm entry to set the proper HW context for the vCPU?
The CPU interface is mapped in every guest S2 page tables as a per-CPU
device, and under complete control of the guest. There is no KVM
register write to that frame (unless we're proxying it, but that's for
another day).
>
> We are worrying that register write will possibly not order after
> NORMAL_NC?
Guest maps the device as Normal-NC (because it now can), which means
that there is no control over the alignment or anything like that. The
accesses could also be reordered, and/or hit after a context switch to
another guest. Which is why KVM has so far used nGnRE as the mapping
type.
M.
--
Without deviation from the norm, progress is not possible.
Powered by blists - more mailing lists