Re: Nullblk configfs oddities

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux