On Mon, Nov 19, 2018 at 10:03:37PM +0000, Jason Gunthorpe wrote: > On Sun, Nov 18, 2018 at 04:29:32PM +0200, Leon Romanovsky wrote: > > Hi, > > > > I want to clarify why IB device rename functionality didn't change > > debugfs and would like to ask what to do next. > > > > In drivers/infiniband/hw/*, we have 6 devices which are calling > > to debugfs_create_dir() in order to create debugfs root. > > > > The output is located in /sys/kernel/debug/. > > > > Such folders are created during driver module load and some of the drivers > > creates subfolders for every device initialized, during device probe. > > > > 1. PCI-based connection > > MLX5 and cxgb4 drivers separate the different device by their PCIs. > > [leonro@server ~]$ sudo ls /sys/kernel/debug/mlx5/ > > 0000:00:0c.0 > > > > 2. Based on IB device name > > HFI1, ocrdma and qib create subfolders with device index embedded in it, > > like hfi1_0,...,hfi1_N > > > > 3. No-separation between devices > > USNIC like this. > > > > So device rename works seamlessly for type #1 and #3. Wile for type #2, > > the debugfs entries don't change. > > > > Right now, I see three options: > > 1. Do nothing. > > I don't think this is an option. If we don't also rename debugfs > entries then debugfs entry add will fail during hotplug as the names > will be in use. > > The name assigner chooses the lowest number, so, ie, if it plug in > hfi0, and rename it to rdma0 then the next plugin will be hfi0 and the > debugfs will fail. Presumably the driver will then fail to load. "Presumably the driver will then fail to load" <- It is violation of debugfs API contract. In many email threads, Greg KH repeated that Failure to create debugfs shouldn't fail driver initialization. > > Since this is basically a race condition with userspace it has to be > fixed. The driver failure should be fixed, but it is not related to debugfs rename. > > Jason
Attachment:
signature.asc
Description: PGP signature