All of lore.kernel.org
 help / color / mirror / Atom feed
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: Mon, 23 Jan 2017 10:52:42 -0500	[thread overview]
Message-ID: <1485186762.21123.1@smtp.office365.com> (raw)
In-Reply-To: <20170123150325.GB26884@kroah.com>

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.  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.  Thanks,

Josef


  reply	other threads:[~2017-01-23 15:53 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 [this message]
2017-01-24  7:11               ` Greg KH
2017-01-25  8:55                 ` [Nbd] " Wouter Verhelst
2017-01-25 13:47                 ` Josef Bacik
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=1485186762.21123.1@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.