Re: [PATCH 000/156] drm/nouveau: replace "ioctl" interface between drm/nvkm

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]<

 



On 17/4/24 14:15, Dave Airlie wrote:

On Wed, 17 Apr 2024 at 10:57, Ben Skeggs <bskeggs@xxxxxxxxxx> 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!

Hey!  Thank you :)



Do you have a git tree with this in it, since I think at least patch
25 got stuck in moderation.

I've pushed a tree to https://gitlab.freedesktop.org/bskeggs/nouveau/-/tree/remove-ioctl



Have you tested nouveau GL and nvk on top of this?

Yes I have, nvk mostly via zink (and vkcube ;)).


Ben.


Dave.



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux