From: Josef Bacik <jbacik@fb.com>
To: Greg KH <gregkh@linuxfoundation.org>
Cc: <arnd@arndb.de>, <axboe@fb.com>,
<nbd-general@lists.sourceforge.net>,
<linux-block@vger.kernel.org>, <kernel-team@fb.com>
Subject: Re: [PATCH 4/4] nbd: add a nbd-control interface
Date: Wed, 25 Jan 2017 08:47:33 -0500 [thread overview]
Message-ID: <1485352053.5902.0@smtp.office365.com> (raw)
In-Reply-To: <20170124071152.GB13251@kroah.com>
On Tue, Jan 24, 2017 at 2:11 AM, Greg KH <gregkh@linuxfoundation.org>
wrote:
> On Mon, Jan 23, 2017 at 10:52:42AM -0500, Josef Bacik wrote:
>> On Mon, Jan 23, 2017 at 10:03 AM, Greg KH
>> <gregkh@linuxfoundation.org>
>> wrote:
>> > On Mon, Jan 23, 2017 at 09:57:52AM -0500, Josef Bacik wrote:
>> > > On Mon, Jan 23, 2017 at 9:52 AM, Greg KH
>> > > <gregkh@linuxfoundation.org> wrote:
>> > > > On Mon, Jan 23, 2017 at 09:42:08AM -0500, Josef Bacik wrote:
>> > > > >
>> > > > >
>> > > > > On Sat, Jan 21, 2017 at 4:05 AM, Greg KH
>> > > > > <gregkh@linuxfoundation.org> wrote:
>> > > > > > On Fri, Jan 20, 2017 at 04:56:52PM -0500, Josef Bacik
>> wrote:
>> > > > > > > This patch mirrors the loop back device behavior
>> with a
>> > > few
>> > > > > > > changes. First
>> > > > > > > there is no DEL operation as NBD doesn't get as much
>> > > churn as
>> > > > > loop
>> > > > > > > devices do.
>> > > > > > > Secondly the GET_NEXT operation can optionally
>> create a
>> > > new NBD
>> > > > > > > device or not.
>> > > > > > > Our infrastructure people want to not allow NBD to
>> create
>> > > new
>> > > > > > > devices as it
>> > > > > > > causes problems for them in containers. However
>> allow
>> > > this to
>> > > > > be
>> > > > > > > optional as
>> > > > > > > things like the OSS NBD client probably doesn't care
>> and
>> > > would
>> > > > > like
>> > > > > > > to just be
>> > > > > > > given a device to use.
>> > > > > > >
>> > > > > > > Signed-off-by: Josef Bacik <jbacik@fb.com>
>> > > > > >
>> > > > > > A random char device with odd ioctls? Why? There's no
>> other
>> > > > > > configuration choice you could possibly use? Where is
>> the
>> > > > > userspace
>> > > > > > tool that uses this new kernel api?
>> > > > > >
>> > > > > > You aren't passing in structures to the ioctl, so why
>> does
>> > > this
>> > > > > HAVE to
>> > > > > > be an ioctl?
>> > > > >
>> > > > > Again, this is how loop does it so I assumed a known,
>> regularly
>> > > > > used API was
>> > > > > the best bet. I can do literally anything, but these
>> > > interfaces
>> > > > > have to be
>> > > > > used by other people, including internal people. The
>> > > > > /dev/whatever-control
>> > > > > is a well established way for interacting with dynamic
>> device
>> > > > > drivers (loop,
>> > > > > DM, btrfs), so that's what I went with. Thanks,
>> > > >
>> > > > Again, please don't duplicate what loop did, we must _learn_
>> from
>> > > > history, not repeat it :(
>> > >
>> > > Sure but what am I supposed to do? Have some random sysfs
>> knobs?
>> > > Thanks,
>> >
>> > It all depends on what you are trying to do. I have yet to
>> figure that
>> > out at all here :(
>>
>> I explained it in the changelog and my response to Wouter. NBD
>> preallocates
>> all of its /dev/nbd# devices at modprobe time, so there's no way to
>> add new
>> devices as we need them.
>
> Why not fix that odd restriction?
That's the entire point of this patchset, adding the ability to create
new devices on the fly as needed.
>
>
>> Loop accomplishes this with the /dev/loop-control
>> and an ioctl. Then we also need a way to figure out what is the
>> first
>> /dev/nbd# device that isn't currently in use in order to pick the
>> next one
>> to configure. Keep in mind that all of the configuration for
>> /dev/nbd#
>> devices is done through ioctls to those devices, so having a ioctl
>> interface
>> for the control device is consistent with the rest of how NBD works.
>
> But adding a random char device node and using ioctls on it is
> different
> than using an ioctl on an existing block device node that is already
> there.
>
> So what _exactly_ do you need to do with this interface? What data do
> you need sent/received to/from the kernel? Specifics please.
I need to say "Hey kernel, can you setup some new nbd devices for me?"
and "Hey kernel, what is the first free nbd device I can use for this
new connection and (optionally) create a new device for me if one does
not exist?" Loop accomplished this (in 2011 btw, not some far off
date) with /dev/loop-control. Btrfs has it's scanning stuff controlled
by /dev/btrfs-control. Device mapper has /dev/mapper/control. This is
a well established and widely used way for control block based device
drivers. Thanks,
Josef
next prev parent reply other threads:[~2017-01-25 13:47 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-20 21:56 [PATCH 1/4] nbd: use our own workqueue for recv threads Josef Bacik
2017-01-20 21:56 ` [PATCH 2/4] miscdevice: add a minor number for nbd-control Josef Bacik
2017-01-21 9:03 ` Greg KH
2017-01-21 13:25 ` Josef Bacik
2017-01-22 11:09 ` Greg KH
2017-01-20 21:56 ` [PATCH 3/4] nbd: use an idr to keep track of nbd devices Josef Bacik
2017-01-20 21:56 ` [PATCH 4/4] nbd: add a nbd-control interface Josef Bacik
2017-01-21 9:05 ` Greg KH
2017-01-23 14:42 ` Josef Bacik
2017-01-23 14:52 ` Greg KH
2017-01-23 14:57 ` Josef Bacik
2017-01-23 15:03 ` Greg KH
2017-01-23 15:52 ` Josef Bacik
2017-01-24 7:11 ` Greg KH
2017-01-25 8:55 ` [Nbd] " Wouter Verhelst
2017-01-25 13:47 ` Josef Bacik [this message]
2017-01-25 14:23 ` Arnd Bergmann
2017-01-25 16:48 ` Alex Gartrell
2017-01-25 18:21 ` [Nbd] " Wouter Verhelst
2017-01-25 18:25 ` Alex Bligh
2017-01-25 21:30 ` Greg KH
2017-01-25 21:36 ` Eric Blake
2017-01-26 8:40 ` Christoph Hellwig
2017-01-26 9:17 ` Greg KH
2017-01-26 13:17 ` Christoph Hellwig
2017-01-25 18:24 ` Paul Clements
2017-01-21 12:11 ` Wouter Verhelst
2017-01-21 13:44 ` Josef Bacik
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1485352053.5902.0@smtp.office365.com \
--to=jbacik@fb.com \
--cc=arnd@arndb.de \
--cc=axboe@fb.com \
--cc=gregkh@linuxfoundation.org \
--cc=kernel-team@fb.com \
--cc=linux-block@vger.kernel.org \
--cc=nbd-general@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.