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! 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.