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. thanks, -- John Hubbard