On Thu, 27 Feb 2025 at 11:34, John Hubbard <jhubbard@xxxxxxxxxx> wrote: > > On Wed Feb 26, 2025 at 5:02 PM PST, Greg KH wrote: > > On Wed, Feb 26, 2025 at 07:47:30PM -0400, Jason Gunthorpe wrote: > >> The way misc device works you can't unload the module until all the > >> FDs are closed and the misc code directly handles races with opening > >> new FDs while modules are unloading. It is quite a different scheme > >> than discussed in this thread. > > > > And I would argue that is it the _right_ scheme to be following overall > > here. Removing modules with in-flight devices/drivers is to me is odd, > > and only good for developers doing work, not for real systems, right? > > Right...I think. I'm not experienced with misc, but I do know that the > "run driver code after driver release" is very, very concerning. > > I'm quite new to drivers/gpu/drm, so this is the first time I've learned > about this DRM behavior... > > > > Yes, networking did add that functionality to allow modules to be > > unloaded with network connections open, and I'm guessing RDMA followed > > that, but really, why? > > > > What is the requirement that means that you have to do this for function > > pointers? I can understand the disconnect issue between devices and > > drivers and open file handles (or sockets), as that is a normal thing, > > but not removing code from the system, that is not normal. > > > > I really hope that this "run after release" is something that Rust for > Linux drivers, and in particular, the gpu/nova*, gpu/drm/nova* drivers, > can *leave behind*. > > DRM may have had ${reasons} for this approach, but this nova effort is > rebuilding from the ground up. So we should avoid just blindly following > this aspect of the original DRM design. > nova is just a drm driver, it's not a rewrite of the drm subsystem, that sort of effort would entail a much larger commitment. DRM has reasons for doing what drm does, that is a separate discussion of how a rust driver fits into the DRM. The rust code has to conform to the C expectations for the subsystems they are fitting into. The drm has spent years moving things to devm/drmm type constructs, adding hotplug with the unplug mechanisms, but it's a long journey and certainly not something nova would want to wait to reconstruct from scratch. Dave.