[PATCH 000/156] drm/nouveau: replace "ioctl" interface between drm/nvkm
Dave Airlie
airlied at gmail.com
Wed Apr 17 04:15:29 UTC 2024
On Wed, 17 Apr 2024 at 10:57, Ben Skeggs <bskeggs at nvidia.com> wrote:
>
> This is a series of cleanups that I intended on doing after posting
> the initial GSP-RM support several months ago, and have now had the
> opportunity to work on again.
>
> The main intention here is to replace the ioctl-like interface that
> sits between NVKM and the nouveau DRM driver with more direct calls,
> to reduce the call-chain complexity (and overhead).
>
> This is achieved by having NVKM return structs of info and function
> pointers specific to each class, along with an opaque pointer to its
> private data. These are stored in the NVIF structs and used to call
> directly into an implementation without handle lookups and multiple
> layers of indirection.
>
> There's room for further cleanups and API changes from here, but for
> now most of the API usage is exactly as it was before, as the series
> has gotten quite large enough already.
>
> The first part of the series starts out by cleaning up some of the
> interfaces within the DRM driver, and reimplementing the subset of
> "ioctl" interfaces needed by userspace directly.
>
> A number of unused interfaces/function args are then removed so that
> they don't need to be ported, and some initial renames/preparations
> are made to the NVKM's user object implementations so that diffs of
> the next set of patches are more straightforward to read.
>
> I then go through each class in turn, starting from the root of the
> object tree (client), and working up from there. The object ctors/
> dtors are ported first, followed by sclass/map/etc, followed by the
> class's methods, and then repeating the process with each of their
> children.
>
> Objects remain accessible with the "ioctl" interface throughout the
> changes (until their last use, after which they're removed from the
> object rb entirely) to allow each change to be done independently.
>
> After all classes have been ported, some final cleanups are made to
> the DRM driver to complete the series.
Welcome back!
Do you have a git tree with this in it, since I think at least patch
25 got stuck in moderation.
Have you tested nouveau GL and nvk on top of this?
Dave.
More information about the Nouveau
mailing list