From: Ryan Roberts <ryan.roberts@arm.com>
To: Jason Gunthorpe <jgg@nvidia.com>, Jean-Philippe Brucker <jpb@kernel.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Arnd Bergmann <arnd@arndb.de>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Marc Zyngier <maz@kernel.org>, Oliver Upton <oupton@kernel.org>,
Alex Williamson <alex@shazbot.org>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Oded Gabbay <ogabbay@kernel.org>,
Jonathan Corbet <corbet@lwn.net>,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev,
kvm@vger.kernel.org, devicetree@vger.kernel.org,
dri-devel@lists.freedesktop.org, linux-doc@vger.kernel.org
Subject: Re: [RFC PATCH v2 15/15] misc/arm-cla: Add vfio-mdev user interface
Date: Tue, 20 Oct 2026 11:41:57 +0100 [thread overview]
Message-ID: <375868af-d0bd-4278-83e6-f8429df130e9@arm.com> (raw)
In-Reply-To: <20261016144202.GG13920@nvidia.com>
On 16/10/2026 15:42, Jason Gunthorpe wrote:
> On Fri, Oct 16, 2026 at 03:22:00PM +0100, Jean-Philippe Brucker wrote:
>> On Thu, 15 Oct 2026 at 17:41, Jason Gunthorpe <jgg@nvidia.com> wrote:
>>> I think I said this last time, please don't use vfio mdev for
>>> anything. There is nothing mediated about this.
>>
>> We don't multiplex a device between guests, but the host driver must
>> control part of the device registers while the remainder is assigned to
>> a guest. The host configures accelerator access, stage-2 translation,
>> handles CPUHP and context save/restore. So we can't bind the device to
>> vfio-platform.
>
> That's fine, you can make a proper vfio-cla driver.
Hi Jason,
Thanks for taking a look at this! I've been chewing on this comment and trying
to educate myself deeper on the subject. I have a proposal...
Currently we create a struct device per CLA device instance. But multiple CLA
device instances cooperate within a domain and the domain is the "unit of
isolation"; we can't have some CLAs from a domain assigned to a VM, while others
from the same domain are used by the host. Therefore it didn't feel like the
correct model to unbind one of these devices from the native driver and rebind
it to a cla-vfio driver. mdev seemed to solve this problem nicely for us.
But looking into it in more detail, I guess something like this might be a bit
more standard:
- Split the existing CLA driver into three components:
- cla-core: Hardware discovery, domain configuration, struct device
registration and CPU hotplug
- cla-native driver: Provides the user space accelerator interfaces
- cla-vfio driver: Enables domains to be assigned to virtual machines
- Each domain has a struct device (created by the core)
- An individual CLA is not represented by a struct device
- Either cla-native or cla-vfio can then bind to a domain device
- cla-native exposes a char device per domain, per accelerator class
- cla-vfio
For VFIO, I guess we could use one VFIO region per CLA, which would allow the
VMM to construct a device tree. But it would need to additionally determine
which CPU each CLA is bound to; perhaps that's a sysfs interface that cla-core
could expose?
Does this feel like it's going in the right direction?
Thanks,
Ryan
>
> Jason
next prev parent reply other threads:[~2026-10-20 10:42 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-15 14:25 [RFC PATCH v2 00/15] Arm Core Local Accelerator Driver Ryan Roberts
2026-10-15 14:25 ` [RFC PATCH v2 01/15] misc/arm-cla: Add driver skeleton and documentation Ryan Roberts
2026-10-15 14:25 ` [RFC PATCH v2 02/15] misc/arm-cla: Add launch operation helpers Ryan Roberts
2026-10-15 16:17 ` Greg Kroah-Hartman
2026-10-15 16:32 ` Ryan Roberts
2026-10-15 14:25 ` [RFC PATCH v2 03/15] dt-bindings: misc: Add Arm Core Local Accelerator Ryan Roberts
2026-10-15 14:25 ` [RFC PATCH v2 04/15] misc/arm-cla: Probe firmware-described devices Ryan Roberts
2026-10-15 14:25 ` [RFC PATCH v2 05/15] misc/arm-cla: Initialize devices on CPU bringup Ryan Roberts
2026-10-15 14:25 ` [RFC PATCH v2 06/15] misc/arm-cla: Accelerator context save and restore Ryan Roberts
2026-10-15 14:25 ` [RFC PATCH v2 07/15] misc/arm-cla: Set up memory translation context Ryan Roberts
2026-10-15 14:25 ` [RFC PATCH v2 08/15] misc/arm-cla: Manage domain contexts Ryan Roberts
2026-10-15 14:25 ` [RFC PATCH v2 09/15] misc/arm-cla: Add userspace interface Ryan Roberts
2026-10-15 14:25 ` [RFC PATCH v2 10/15] KVM: arm64: Introduce support to pin VMIDs Ryan Roberts
2026-10-15 14:25 ` [RFC PATCH v2 11/15] KVM: arm64: Export stage-2 MMU config Ryan Roberts
2026-10-22 15:43 ` Marc Zyngier
2026-10-23 15:56 ` Jean-Philippe Brucker
2026-10-15 14:25 ` [RFC PATCH v2 12/15] vfio: Support VFIO devices that access the CPU MMU Ryan Roberts
2026-10-15 16:44 ` Jason Gunthorpe
2026-10-20 11:51 ` Ryan Roberts
2026-10-20 14:09 ` Jason Gunthorpe
2026-10-20 15:06 ` Ryan Roberts
2026-10-20 15:13 ` Alex Williamson
2026-10-20 15:55 ` Ryan Roberts
2026-10-15 14:25 ` [RFC PATCH v2 13/15] misc/arm-cla: Add stage-2 MTC and VM context switch Ryan Roberts
2026-10-15 14:25 ` [RFC PATCH v2 14/15] misc/arm-cla: Support exclusive context assignment Ryan Roberts
2026-10-15 14:25 ` [RFC PATCH v2 15/15] misc/arm-cla: Add vfio-mdev user interface Ryan Roberts
2026-10-15 16:41 ` Jason Gunthorpe
2026-10-16 14:22 ` Jean-Philippe Brucker
2026-10-16 14:42 ` Jason Gunthorpe
2026-10-20 10:41 ` Ryan Roberts [this message]
2026-10-20 14:15 ` Jason Gunthorpe
2026-10-20 14:27 ` Ryan Roberts
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=375868af-d0bd-4278-83e6-f8429df130e9@arm.com \
--to=ryan.roberts@arm.com \
--cc=alex@shazbot.org \
--cc=arnd@arndb.de \
--cc=catalin.marinas@arm.com \
--cc=conor+dt@kernel.org \
--cc=corbet@lwn.net \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=gregkh@linuxfoundation.org \
--cc=jgg@nvidia.com \
--cc=jpb@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.linux.dev \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=maz@kernel.org \
--cc=ogabbay@kernel.org \
--cc=oupton@kernel.org \
--cc=robh@kernel.org \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®