[Qemu-devel] [PATCH 0/2] nbd server: drop old-style negotiation

Vladimir Sementsov-Ogievskiy posted 2 patches 5 years, 6 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20181003170228.95973-1-vsementsov@virtuozzo.com
Test docker-clang@ubuntu failed
Test checkpatch passed
include/block/nbd.h |  3 +--
blockdev-nbd.c      |  2 +-
nbd/server.c        | 53 +++++++++++++--------------------------------
qemu-nbd.c          | 25 +++++----------------
4 files changed, 23 insertions(+), 60 deletions(-)
[Qemu-devel] [PATCH 0/2] nbd server: drop old-style negotiation
Posted by Vladimir Sementsov-Ogievskiy 5 years, 6 months ago
It's unexpected behavior that without -x option qemu-nbd do old-style
negotiation. Let's use "" as a default name instead (as it is already
done if tls is used) and therefore, drop old-style negotiation from
Qemu NBD server.

Vladimir Sementsov-Ogievskiy (2):
  qemu-nbd: drop old-style negotiation
  nbd/server: drop old-style negotiation

 include/block/nbd.h |  3 +--
 blockdev-nbd.c      |  2 +-
 nbd/server.c        | 53 +++++++++++++--------------------------------
 qemu-nbd.c          | 25 +++++----------------
 4 files changed, 23 insertions(+), 60 deletions(-)

-- 
2.18.0


Re: [Qemu-devel] [PATCH 0/2] nbd server: drop old-style negotiation
Posted by Eric Blake 5 years, 6 months ago
On 10/3/18 12:02 PM, Vladimir Sementsov-Ogievskiy wrote:
> It's unexpected behavior that without -x option qemu-nbd do old-style
> negotiation. Let's use "" as a default name instead (as it is already
> done if tls is used) and therefore, drop old-style negotiation from
> Qemu NBD server.

Oddly enough, I wrote a similar patch in parallel, and am only now just 
seeing your mail. Yours is a bit stronger than mine (I added 'qemu-nbd 
-O' to allow explicit fallback to oldstyle, while you ripped it out 
altogether).  The client can negotiate either style, so we don't need an 
option on the client side; rather, this is all about what the server 
should do by default.

https://lists.gnu.org/archive/html/qemu-devel/2018-10/msg00568.html

Does anyone have a preference between the two? Here's the last time it 
was discussed:

https://lists.gnu.org/archive/html/qemu-devel/2018-08/msg03252.html

> 
> Vladimir Sementsov-Ogievskiy (2):
>    qemu-nbd: drop old-style negotiation
>    nbd/server: drop old-style negotiation
> 
>   include/block/nbd.h |  3 +--
>   blockdev-nbd.c      |  2 +-
>   nbd/server.c        | 53 +++++++++++++--------------------------------
>   qemu-nbd.c          | 25 +++++----------------
>   4 files changed, 23 insertions(+), 60 deletions(-)
> 

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org

Re: [Qemu-devel] [PATCH 0/2] nbd server: drop old-style negotiation
Posted by Vladimir Sementsov-Ogievskiy 5 years, 6 months ago
03.10.2018 20:32, Eric Blake wrote:
On 10/3/18 12:02 PM, Vladimir Sementsov-Ogievskiy wrote:
It's unexpected behavior that without -x option qemu-nbd do old-style
negotiation. Let's use "" as a default name instead (as it is already
done if tls is used) and therefore, drop old-style negotiation from
Qemu NBD server.

Oddly enough, I wrote a similar patch in parallel, and am only now just seeing your mail. Yours is a bit stronger than mine (I added 'qemu-nbd -O' to allow explicit fallback to oldstyle, while you ripped it out altogether).  The client can negotiate either style, so we don't need an option on the client side; rather, this is all about what the server should do by default.

https://lists.gnu.org/archive/html/qemu-devel/2018-10/msg00568.html

Does anyone have a preference between the two? Here's the last time it was discussed:

https://lists.gnu.org/archive/html/qemu-devel/2018-08/msg03252.html

Hm, I think everyone who like new-style should answer that he don't care (except stricter way is a bit better: don't have options and code which we don't need).
But if there is someone who has client which support only old-style negotiation his unhappiness (in case of strict way) will outweigh all our "bits":)

I'm from the first group). But let's chose your patch



Vladimir Sementsov-Ogievskiy (2):
   qemu-nbd: drop old-style negotiation
   nbd/server: drop old-style negotiation

  include/block/nbd.h |  3 +--
  blockdev-nbd.c      |  2 +-
  nbd/server.c        | 53 +++++++++++++--------------------------------
  qemu-nbd.c          | 25 +++++----------------
  4 files changed, 23 insertions(+), 60 deletions(-)





--
Best regards,
Vladimir
Re: [Qemu-devel] [PATCH 0/2] nbd server: drop old-style negotiation
Posted by Eric Blake 5 years, 6 months ago
On 10/3/18 12:59 PM, Vladimir Sementsov-Ogievskiy wrote:
> 03.10.2018 20:32, Eric Blake wrote:
> On 10/3/18 12:02 PM, Vladimir Sementsov-Ogievskiy wrote:
> It's unexpected behavior that without -x option qemu-nbd do old-style
> negotiation. Let's use "" as a default name instead (as it is already
> done if tls is used) and therefore, drop old-style negotiation from
> Qemu NBD server.

Hmm, your email quoting style changed from prior emails that used to 
prepend '>' when quoting, making it harder to tell where the text you 
are quoting ends,...

> 
> Oddly enough, I wrote a similar patch in parallel, and am only now just seeing your mail. Yours is a bit stronger than mine (I added 'qemu-nbd -O' to allow explicit fallback to oldstyle, while you ripped it out altogether).  The client can negotiate either style, so we don't need an option on the client side; rather, this is all about what the server should do by default.
> 
> https://lists.gnu.org/archive/html/qemu-devel/2018-10/msg00568.html
> 
> Does anyone have a preference between the two? Here's the last time it was discussed:
> 
> https://lists.gnu.org/archive/html/qemu-devel/2018-08/msg03252.html
> 

and your reply begins.

> Hm, I think everyone who like new-style should answer that he don't care (except stricter way is a bit better: don't have options and code which we don't need).
> But if there is someone who has client which support only old-style negotiation his unhappiness (in case of strict way) will outweigh all our "bits":)
> 
> I'm from the first group). But let's chose your patch

My argument in favor of your patch over mine: nbdkit is a GREAT testbed 
for forcing all sorts of integration testing scenarios, including 
oldstyle servers.  Also, it includes a plugin for translating between 
new and oldstyle at will.  That is, if we ever legitimately encounter a 
client that can only talk oldstyle, but qemu only talks newstyle, we 
just tell the user to connect:

old client => nbdkit -o nbd => newstyle qemu

and then qemu doesn't have to worry about oldstyle because nbdkit does 
instead.

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org

Re: [Qemu-devel] [PATCH 0/2] nbd server: drop old-style negotiation
Posted by Richard W.M. Jones 5 years, 6 months ago
FWIW I don't have anything to add - agree with what's been said already.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines.  Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v

Re: [Qemu-devel] [PATCH 0/2] nbd server: drop old-style negotiation
Posted by Vladimir Sementsov-Ogievskiy 5 years, 6 months ago
03.10.2018 21:08, Eric Blake wrote:
> On 10/3/18 12:59 PM, Vladimir Sementsov-Ogievskiy wrote:
>> 03.10.2018 20:32, Eric Blake wrote:
>> On 10/3/18 12:02 PM, Vladimir Sementsov-Ogievskiy wrote:
>> It's unexpected behavior that without -x option qemu-nbd do old-style
>> negotiation. Let's use "" as a default name instead (as it is already
>> done if tls is used) and therefore, drop old-style negotiation from
>> Qemu NBD server.
>
> Hmm, your email quoting style changed from prior emails that used to 
> prepend '>' when quoting, making it harder to tell where the text you 
> are quoting ends,...

I didn't change anything...

>
>>
>> Oddly enough, I wrote a similar patch in parallel, and am only now 
>> just seeing your mail. Yours is a bit stronger than mine (I added 
>> 'qemu-nbd -O' to allow explicit fallback to oldstyle, while you 
>> ripped it out altogether).  The client can negotiate either style, so 
>> we don't need an option on the client side; rather, this is all about 
>> what the server should do by default.
>>
>> https://lists.gnu.org/archive/html/qemu-devel/2018-10/msg00568.html
>>
>> Does anyone have a preference between the two? Here's the last time 
>> it was discussed:
>>
>> https://lists.gnu.org/archive/html/qemu-devel/2018-08/msg03252.html
>>
>
> and your reply begins.
>
>> Hm, I think everyone who like new-style should answer that he don't 
>> care (except stricter way is a bit better: don't have options and 
>> code which we don't need).
>> But if there is someone who has client which support only old-style 
>> negotiation his unhappiness (in case of strict way) will outweigh all 
>> our "bits":)
>>
>> I'm from the first group). But let's chose your patch
>
> My argument in favor of your patch over mine: nbdkit is a GREAT 
> testbed for forcing all sorts of integration testing scenarios, 
> including oldstyle servers.  Also, it includes a plugin for 
> translating between new and oldstyle at will.  That is, if we ever 
> legitimately encounter a client that can only talk oldstyle, but qemu 
> only talks newstyle, we just tell the user to connect:
>
> old client => nbdkit -o nbd => newstyle qemu
>
> and then qemu doesn't have to worry about oldstyle because nbdkit does 
> instead.
>

this is a bit more difficult and more overhead than option in Qemu.. But 
I don't sure we should care about

-- 
Best regards,
Vladimir

Re: [Qemu-devel] [PATCH 0/2] nbd server: drop old-style negotiation
Posted by Richard W.M. Jones 5 years, 6 months ago
On Thu, Oct 04, 2018 at 12:10:17PM +0000, Vladimir Sementsov-Ogievskiy wrote:
> this is a bit more difficult and more overhead than option in Qemu.. But 
> I don't sure we should care about

I think Eric's point is that dropping oldstyle in qemu-nbd isn't
really a problem because nbdkit has no plans to drop oldstyle.  So
there will remain a path for very old clients to keep working (whether
using nbdkit natively, or using nbdkit to proxy to qemu-nbd).  Eric's
example used the more complex proxy case.  By contrast the nbdkit
native case is very simple:

  nbdkit -o file disk.img

(where the ‘-o’ flag switches to oldstyle protocol).

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine.  Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/

Re: [Qemu-devel] [PATCH 0/2] nbd server: drop old-style negotiation
Posted by Eric Blake 5 years, 6 months ago
On 10/3/18 12:02 PM, Vladimir Sementsov-Ogievskiy wrote:
> It's unexpected behavior that without -x option qemu-nbd do old-style
> negotiation. Let's use "" as a default name instead (as it is already
> done if tls is used) and therefore, drop old-style negotiation from
> Qemu NBD server.
> 
> Vladimir Sementsov-Ogievskiy (2):
>    qemu-nbd: drop old-style negotiation
>    nbd/server: drop old-style negotiation
> 
>   include/block/nbd.h |  3 +--
>   blockdev-nbd.c      |  2 +-
>   nbd/server.c        | 53 +++++++++++++--------------------------------
>   qemu-nbd.c          | 25 +++++----------------
>   4 files changed, 23 insertions(+), 60 deletions(-)
> 

Thanks; applying this series to my NBD queue.

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org