On Mon, Apr 18, 2022 at 6:24 PM Jens Axboe <axboe@xxxxxxxxx> wrote: > > On 4/18/22 4:21 PM, Chaitanya Kulkarni wrote: > > On 4/18/22 15:14, Jens Axboe wrote: > >> On 4/18/22 3:54 PM, Chaitanya Kulkarni wrote: > >>> On 4/18/22 14:38, Josef Bacik wrote: > >>>> Hello, > >>>> > >>>> I'm trying to add a test to fsperf and it requires the use of nullblk. I'm > >>>> trying to use the configfs thing, and it's doing some odd things. My basic > >>>> reproducer is > >>>> > >>>> modprobe null_blk > >>>> mkdir /sys/kernel/config/nullb/nullb0 > >>>> echo some shit into the config > >>>> echo 1 > /sys/kernel/config/nullb/nullb0/power > >>>> > >>>> Now null_blk apparently defaults to nr_devices == 1, so it creates nullb0 on > >>>> modprobe. But this doesn't show up in the configfs directory. There's no way > >>>> to find this out until when I try to mkfs my nullb0 and it doesn't work. The > >>>> above steps gets my device created at /dev/nullb1, but there's no actual way to > >>>> figure out that's what happened. If I do something like > >>>> /sys/kernel/config/nullb/nullbfsperf I still just get nullb<number>, I don't get > >>>> my fancy name. > >>>> > >>> > >>> when you load module with default module parameter it will create a > >>> default device with no memory backed mode, that will not be visible in > >>> the configfs. > >> > >> Right, the problem is really that pre-configured devices (via nr_devices > >> being bigger than 0, which is the default) don't show up in configfs. > >> That, to me, is the real issue here, because it means you need to know > >> which ones are already setup before doing mkdir for a new one. > >> > >> On top of that, it's also odd that they don't show up there to begin > >> with. > >> > > > > it is indeed confusing, maybe we need to find a way to populate the > > configfs when loading the module? but I'm not sure if that is > > the right approach since configs ideally should be populated by > > user. > > > > OTOH we can make the memory_backed module param [1] so user can > > tentatively not use configfs and only rely on default configuration ? > > Arguably configfs should just be disabled if loading with nr_devices > larger than 0, as it's a mess of an API as it stands. But probably too > late for that. The fact that we also have an option that's specific to > configfs just makes it even worse. > > I don't know much about configfs, but pre-populating with the configured > devices and options would be ideal and completely solve this. I think > that would be the best solution given the current situation. Not that > it's THAT important, null_blk is a developer tool and as such can have > some sharper and rouger edges. Still would be nice to make it saner, > though. > I'd settle for a sysfs link to the device node that got created, so I can maybe just do mdkir nullb/lolmine dev=$(find nullb/lolmine --maxdepth 1 -type l) devname=$(basename $dev) so I know what my device actually got created as. Thanks, Josef