[PATCH v8 0/4] vhost-user block device backend implementation

Coiby Xu posted 4 patches 3 years, 11 months ago
Test docker-mingw@fedora passed
Test checkpatch passed
Test asan passed
Test docker-quick@centos7 passed
Test FreeBSD passed
Failed in applying to current master (apply log)
There is a newer version of this series
block/Makefile.objs                        |   1 +
block/export/vhost-user-blk-server.c       | 716 ++++++++++++++++++++
block/export/vhost-user-blk-server.h       |  34 +
contrib/libvhost-user/libvhost-user-glib.c |   2 +-
contrib/libvhost-user/libvhost-user.c      |  11 +-
contrib/libvhost-user/libvhost-user.h      |  21 +
softmmu/vl.c                               |   4 +
tests/Makefile.include                     |   3 +-
tests/qtest/Makefile.include               |   2 +
tests/qtest/libqos/vhost-user-blk.c        | 130 ++++
tests/qtest/libqos/vhost-user-blk.h        |  44 ++
tests/qtest/libqtest.c                     |  54 +-
tests/qtest/libqtest.h                     |  38 ++
tests/qtest/vhost-user-blk-test.c          | 737 +++++++++++++++++++++
tests/vhost-user-bridge.c                  |   2 +
tools/virtiofsd/fuse_virtio.c              |   4 +-
util/Makefile.objs                         |   1 +
util/vhost-user-server.c                   | 406 ++++++++++++
util/vhost-user-server.h                   |  59 ++
19 files changed, 2229 insertions(+), 40 deletions(-)
create mode 100644 block/export/vhost-user-blk-server.c
create mode 100644 block/export/vhost-user-blk-server.h
create mode 100644 tests/qtest/libqos/vhost-user-blk.c
create mode 100644 tests/qtest/libqos/vhost-user-blk.h
create mode 100644 tests/qtest/vhost-user-blk-test.c
create mode 100644 util/vhost-user-server.c
create mode 100644 util/vhost-user-server.h
[PATCH v8 0/4] vhost-user block device backend implementation
Posted by Coiby Xu 3 years, 11 months ago
v8
 - re-try connecting to socket server to fix asan error
 - fix license naming issue

v7
 - fix docker-test-debug@fedora errors by freeing malloced memory

v6
 - add missing license header and include guard
 - vhost-user server only serve one client one time
 - fix a bug in custom vu_message_read
 - using qemu-storage-daemon to start vhost-user-blk-server
 - a bug fix to pass docker-test-clang@ubuntu

v5:
 * re-use vu_kick_cb in libvhost-user
 * keeping processing VhostUserMsg in the same coroutine until there is
   detachment/attachment of AIOContext
 * Spawn separate coroutine for each VuVirtqElement
 * Other changes including relocating vhost-user-blk-server.c, coding
   style etc.

v4:
 * add object properties in class_init
 * relocate vhost-user-blk-test
 * other changes including using SocketAddress, coding style, etc.

v3:
 * separate generic vhost-user-server code from vhost-user-blk-server
   code
 * re-write vu_message_read and kick hander function as coroutines to
   directly call blk_co_preadv, blk_co_pwritev, etc.
 * add aio_context notifier functions to support multi-threading model
 * other fixes regarding coding style, warning report, etc.

v2:
 * Only enable this feature for Linux because eventfd is a Linux-specific
   feature


This patch series is an implementation of vhost-user block device
backend server, thanks to Stefan and Kevin's guidance.

Vhost-user block device backend server is a UserCreatable object and can be
started using object_add,

 (qemu) object_add vhost-user-blk-server,id=ID,unix-socket=/tmp/vhost-user-blk_vhost.socket,node-name=DRIVE_NAME,writable=off,blk-size=512
 (qemu) object_del ID

or appending the "-object" option when starting QEMU,

  $ -object vhost-user-blk-server,id=disk,unix-socket=/tmp/vhost-user-blk_vhost.socket,node-name=DRIVE_NAME,writable=off,blk-size=512

Then vhost-user client can connect to the server backend.
For example, QEMU could act as a client,

  $ -m 256 -object memory-backend-memfd,id=mem,size=256M,share=on -numa node,memdev=mem -chardev socket,id=char1,path=/tmp/vhost-user-blk_vhost.socket -device vhost-user-blk-pci,id=blk0,chardev=char1

And guest OS could access this vhost-user block device after mounting it.

Coiby Xu (4):
  Allow vu_message_read to be replaced
  generic vhost user server
  vhost-user block device backend server
  new qTest case to test the vhost-user-blk-server

 block/Makefile.objs                        |   1 +
 block/export/vhost-user-blk-server.c       | 716 ++++++++++++++++++++
 block/export/vhost-user-blk-server.h       |  34 +
 contrib/libvhost-user/libvhost-user-glib.c |   2 +-
 contrib/libvhost-user/libvhost-user.c      |  11 +-
 contrib/libvhost-user/libvhost-user.h      |  21 +
 softmmu/vl.c                               |   4 +
 tests/Makefile.include                     |   3 +-
 tests/qtest/Makefile.include               |   2 +
 tests/qtest/libqos/vhost-user-blk.c        | 130 ++++
 tests/qtest/libqos/vhost-user-blk.h        |  44 ++
 tests/qtest/libqtest.c                     |  54 +-
 tests/qtest/libqtest.h                     |  38 ++
 tests/qtest/vhost-user-blk-test.c          | 737 +++++++++++++++++++++
 tests/vhost-user-bridge.c                  |   2 +
 tools/virtiofsd/fuse_virtio.c              |   4 +-
 util/Makefile.objs                         |   1 +
 util/vhost-user-server.c                   | 406 ++++++++++++
 util/vhost-user-server.h                   |  59 ++
 19 files changed, 2229 insertions(+), 40 deletions(-)
 create mode 100644 block/export/vhost-user-blk-server.c
 create mode 100644 block/export/vhost-user-blk-server.h
 create mode 100644 tests/qtest/libqos/vhost-user-blk.c
 create mode 100644 tests/qtest/libqos/vhost-user-blk.h
 create mode 100644 tests/qtest/vhost-user-blk-test.c
 create mode 100644 util/vhost-user-server.c
 create mode 100644 util/vhost-user-server.h

--
2.26.2


Re: [PATCH v8 0/4] vhost-user block device backend implementation
Posted by Stefano Garzarella 3 years, 10 months ago
Hi Coiby Xu,

On Fri, Jun 05, 2020 at 07:35:34AM +0800, Coiby Xu wrote:
> v8
>  - re-try connecting to socket server to fix asan error
>  - fix license naming issue
> 
> v7
>  - fix docker-test-debug@fedora errors by freeing malloced memory
> 
> v6
>  - add missing license header and include guard
>  - vhost-user server only serve one client one time
>  - fix a bug in custom vu_message_read
>  - using qemu-storage-daemon to start vhost-user-blk-server
>  - a bug fix to pass docker-test-clang@ubuntu
> 
> v5:
>  * re-use vu_kick_cb in libvhost-user
>  * keeping processing VhostUserMsg in the same coroutine until there is
>    detachment/attachment of AIOContext
>  * Spawn separate coroutine for each VuVirtqElement
>  * Other changes including relocating vhost-user-blk-server.c, coding
>    style etc.
> 
> v4:
>  * add object properties in class_init
>  * relocate vhost-user-blk-test
>  * other changes including using SocketAddress, coding style, etc.
> 
> v3:
>  * separate generic vhost-user-server code from vhost-user-blk-server
>    code
>  * re-write vu_message_read and kick hander function as coroutines to
>    directly call blk_co_preadv, blk_co_pwritev, etc.
>  * add aio_context notifier functions to support multi-threading model
>  * other fixes regarding coding style, warning report, etc.
> 
> v2:
>  * Only enable this feature for Linux because eventfd is a Linux-specific
>    feature
> 
> 
> This patch series is an implementation of vhost-user block device
> backend server, thanks to Stefan and Kevin's guidance.
> 
> Vhost-user block device backend server is a UserCreatable object and can be
> started using object_add,
> 
>  (qemu) object_add vhost-user-blk-server,id=ID,unix-socket=/tmp/vhost-user-blk_vhost.socket,node-name=DRIVE_NAME,writable=off,blk-size=512
>  (qemu) object_del ID
> 
> or appending the "-object" option when starting QEMU,
> 
>   $ -object vhost-user-blk-server,id=disk,unix-socket=/tmp/vhost-user-blk_vhost.socket,node-name=DRIVE_NAME,writable=off,blk-size=512
> 
> Then vhost-user client can connect to the server backend.
> For example, QEMU could act as a client,
> 
>   $ -m 256 -object memory-backend-memfd,id=mem,size=256M,share=on -numa node,memdev=mem -chardev socket,id=char1,path=/tmp/vhost-user-blk_vhost.socket -device vhost-user-blk-pci,id=blk0,chardev=char1
> 
> And guest OS could access this vhost-user block device after mounting it.
> 
> Coiby Xu (4):
>   Allow vu_message_read to be replaced
>   generic vhost user server
>   vhost-user block device backend server
>   new qTest case to test the vhost-user-blk-server
> 
>  block/Makefile.objs                        |   1 +
>  block/export/vhost-user-blk-server.c       | 716 ++++++++++++++++++++
>  block/export/vhost-user-blk-server.h       |  34 +
>  contrib/libvhost-user/libvhost-user-glib.c |   2 +-
>  contrib/libvhost-user/libvhost-user.c      |  11 +-
>  contrib/libvhost-user/libvhost-user.h      |  21 +
>  softmmu/vl.c                               |   4 +
>  tests/Makefile.include                     |   3 +-
>  tests/qtest/Makefile.include               |   2 +
>  tests/qtest/libqos/vhost-user-blk.c        | 130 ++++
>  tests/qtest/libqos/vhost-user-blk.h        |  44 ++
>  tests/qtest/libqtest.c                     |  54 +-
>  tests/qtest/libqtest.h                     |  38 ++
>  tests/qtest/vhost-user-blk-test.c          | 737 +++++++++++++++++++++
>  tests/vhost-user-bridge.c                  |   2 +
>  tools/virtiofsd/fuse_virtio.c              |   4 +-
>  util/Makefile.objs                         |   1 +
>  util/vhost-user-server.c                   | 406 ++++++++++++
>  util/vhost-user-server.h                   |  59 ++
>  19 files changed, 2229 insertions(+), 40 deletions(-)
>  create mode 100644 block/export/vhost-user-blk-server.c
>  create mode 100644 block/export/vhost-user-blk-server.h
>  create mode 100644 tests/qtest/libqos/vhost-user-blk.c
>  create mode 100644 tests/qtest/libqos/vhost-user-blk.h
>  create mode 100644 tests/qtest/vhost-user-blk-test.c
>  create mode 100644 util/vhost-user-server.c
>  create mode 100644 util/vhost-user-server.h
> 

Should we add an entry in the MAINTAINERS file for some of the new files?
(e.g. util/vhost-user-server.*)

Thanks,
Stefano


Re: [PATCH v8 0/4] vhost-user block device backend implementation
Posted by Coiby Xu 3 years, 10 months ago
Hi Stefano Garzarella,

On Thu, Jun 11, 2020 at 02:37:03PM +0200, Stefano Garzarella wrote:
>Hi Coiby Xu,
>
>On Fri, Jun 05, 2020 at 07:35:34AM +0800, Coiby Xu wrote:
>> v8
>>  - re-try connecting to socket server to fix asan error
>>  - fix license naming issue
>>
>> v7
>>  - fix docker-test-debug@fedora errors by freeing malloced memory
>>
>> v6
>>  - add missing license header and include guard
>>  - vhost-user server only serve one client one time
>>  - fix a bug in custom vu_message_read
>>  - using qemu-storage-daemon to start vhost-user-blk-server
>>  - a bug fix to pass docker-test-clang@ubuntu
>>
>> v5:
>>  * re-use vu_kick_cb in libvhost-user
>>  * keeping processing VhostUserMsg in the same coroutine until there is
>>    detachment/attachment of AIOContext
>>  * Spawn separate coroutine for each VuVirtqElement
>>  * Other changes including relocating vhost-user-blk-server.c, coding
>>    style etc.
>>
>> v4:
>>  * add object properties in class_init
>>  * relocate vhost-user-blk-test
>>  * other changes including using SocketAddress, coding style, etc.
>>
>> v3:
>>  * separate generic vhost-user-server code from vhost-user-blk-server
>>    code
>>  * re-write vu_message_read and kick hander function as coroutines to
>>    directly call blk_co_preadv, blk_co_pwritev, etc.
>>  * add aio_context notifier functions to support multi-threading model
>>  * other fixes regarding coding style, warning report, etc.
>>
>> v2:
>>  * Only enable this feature for Linux because eventfd is a Linux-specific
>>    feature
>>
>>
>> This patch series is an implementation of vhost-user block device
>> backend server, thanks to Stefan and Kevin's guidance.
>>
>> Vhost-user block device backend server is a UserCreatable object and can be
>> started using object_add,
>>
>>  (qemu) object_add vhost-user-blk-server,id=ID,unix-socket=/tmp/vhost-user-blk_vhost.socket,node-name=DRIVE_NAME,writable=off,blk-size=512
>>  (qemu) object_del ID
>>
>> or appending the "-object" option when starting QEMU,
>>
>>   $ -object vhost-user-blk-server,id=disk,unix-socket=/tmp/vhost-user-blk_vhost.socket,node-name=DRIVE_NAME,writable=off,blk-size=512
>>
>> Then vhost-user client can connect to the server backend.
>> For example, QEMU could act as a client,
>>
>>   $ -m 256 -object memory-backend-memfd,id=mem,size=256M,share=on -numa node,memdev=mem -chardev socket,id=char1,path=/tmp/vhost-user-blk_vhost.socket -device vhost-user-blk-pci,id=blk0,chardev=char1
>>
>> And guest OS could access this vhost-user block device after mounting it.
>>
>> Coiby Xu (4):
>>   Allow vu_message_read to be replaced
>>   generic vhost user server
>>   vhost-user block device backend server
>>   new qTest case to test the vhost-user-blk-server
>>
>>  block/Makefile.objs                        |   1 +
>>  block/export/vhost-user-blk-server.c       | 716 ++++++++++++++++++++
>>  block/export/vhost-user-blk-server.h       |  34 +
>>  contrib/libvhost-user/libvhost-user-glib.c |   2 +-
>>  contrib/libvhost-user/libvhost-user.c      |  11 +-
>>  contrib/libvhost-user/libvhost-user.h      |  21 +
>>  softmmu/vl.c                               |   4 +
>>  tests/Makefile.include                     |   3 +-
>>  tests/qtest/Makefile.include               |   2 +
>>  tests/qtest/libqos/vhost-user-blk.c        | 130 ++++
>>  tests/qtest/libqos/vhost-user-blk.h        |  44 ++
>>  tests/qtest/libqtest.c                     |  54 +-
>>  tests/qtest/libqtest.h                     |  38 ++
>>  tests/qtest/vhost-user-blk-test.c          | 737 +++++++++++++++++++++
>>  tests/vhost-user-bridge.c                  |   2 +
>>  tools/virtiofsd/fuse_virtio.c              |   4 +-
>>  util/Makefile.objs                         |   1 +
>>  util/vhost-user-server.c                   | 406 ++++++++++++
>>  util/vhost-user-server.h                   |  59 ++
>>  19 files changed, 2229 insertions(+), 40 deletions(-)
>>  create mode 100644 block/export/vhost-user-blk-server.c
>>  create mode 100644 block/export/vhost-user-blk-server.h
>>  create mode 100644 tests/qtest/libqos/vhost-user-blk.c
>>  create mode 100644 tests/qtest/libqos/vhost-user-blk.h
>>  create mode 100644 tests/qtest/vhost-user-blk-test.c
>>  create mode 100644 util/vhost-user-server.c
>>  create mode 100644 util/vhost-user-server.h
>>
>
>Should we add an entry in the MAINTAINERS file for some of the new files?
>(e.g. util/vhost-user-server.*)

Yes, please. Thank you!

--
Best regards,
Coiby

Re: [PATCH v8 0/4] vhost-user block device backend implementation
Posted by Stefano Garzarella 3 years, 10 months ago
On Mon, Jun 15, 2020 at 02:46:40AM +0800, Coiby Xu wrote:
> Hi Stefano Garzarella,
> 
> On Thu, Jun 11, 2020 at 02:37:03PM +0200, Stefano Garzarella wrote:
> > Hi Coiby Xu,
> > 
> > On Fri, Jun 05, 2020 at 07:35:34AM +0800, Coiby Xu wrote:
> > > v8
> > >  - re-try connecting to socket server to fix asan error
> > >  - fix license naming issue
> > > 
> > > v7
> > >  - fix docker-test-debug@fedora errors by freeing malloced memory
> > > 
> > > v6
> > >  - add missing license header and include guard
> > >  - vhost-user server only serve one client one time
> > >  - fix a bug in custom vu_message_read
> > >  - using qemu-storage-daemon to start vhost-user-blk-server
> > >  - a bug fix to pass docker-test-clang@ubuntu
> > > 
> > > v5:
> > >  * re-use vu_kick_cb in libvhost-user
> > >  * keeping processing VhostUserMsg in the same coroutine until there is
> > >    detachment/attachment of AIOContext
> > >  * Spawn separate coroutine for each VuVirtqElement
> > >  * Other changes including relocating vhost-user-blk-server.c, coding
> > >    style etc.
> > > 
> > > v4:
> > >  * add object properties in class_init
> > >  * relocate vhost-user-blk-test
> > >  * other changes including using SocketAddress, coding style, etc.
> > > 
> > > v3:
> > >  * separate generic vhost-user-server code from vhost-user-blk-server
> > >    code
> > >  * re-write vu_message_read and kick hander function as coroutines to
> > >    directly call blk_co_preadv, blk_co_pwritev, etc.
> > >  * add aio_context notifier functions to support multi-threading model
> > >  * other fixes regarding coding style, warning report, etc.
> > > 
> > > v2:
> > >  * Only enable this feature for Linux because eventfd is a Linux-specific
> > >    feature
> > > 
> > > 
> > > This patch series is an implementation of vhost-user block device
> > > backend server, thanks to Stefan and Kevin's guidance.
> > > 
> > > Vhost-user block device backend server is a UserCreatable object and can be
> > > started using object_add,
> > > 
> > >  (qemu) object_add vhost-user-blk-server,id=ID,unix-socket=/tmp/vhost-user-blk_vhost.socket,node-name=DRIVE_NAME,writable=off,blk-size=512
> > >  (qemu) object_del ID
> > > 
> > > or appending the "-object" option when starting QEMU,
> > > 
> > >   $ -object vhost-user-blk-server,id=disk,unix-socket=/tmp/vhost-user-blk_vhost.socket,node-name=DRIVE_NAME,writable=off,blk-size=512
> > > 
> > > Then vhost-user client can connect to the server backend.
> > > For example, QEMU could act as a client,
> > > 
> > >   $ -m 256 -object memory-backend-memfd,id=mem,size=256M,share=on -numa node,memdev=mem -chardev socket,id=char1,path=/tmp/vhost-user-blk_vhost.socket -device vhost-user-blk-pci,id=blk0,chardev=char1
> > > 
> > > And guest OS could access this vhost-user block device after mounting it.
> > > 
> > > Coiby Xu (4):
> > >   Allow vu_message_read to be replaced
> > >   generic vhost user server
> > >   vhost-user block device backend server
> > >   new qTest case to test the vhost-user-blk-server
> > > 
> > >  block/Makefile.objs                        |   1 +
> > >  block/export/vhost-user-blk-server.c       | 716 ++++++++++++++++++++
> > >  block/export/vhost-user-blk-server.h       |  34 +
> > >  contrib/libvhost-user/libvhost-user-glib.c |   2 +-
> > >  contrib/libvhost-user/libvhost-user.c      |  11 +-
> > >  contrib/libvhost-user/libvhost-user.h      |  21 +
> > >  softmmu/vl.c                               |   4 +
> > >  tests/Makefile.include                     |   3 +-
> > >  tests/qtest/Makefile.include               |   2 +
> > >  tests/qtest/libqos/vhost-user-blk.c        | 130 ++++
> > >  tests/qtest/libqos/vhost-user-blk.h        |  44 ++
> > >  tests/qtest/libqtest.c                     |  54 +-
> > >  tests/qtest/libqtest.h                     |  38 ++
> > >  tests/qtest/vhost-user-blk-test.c          | 737 +++++++++++++++++++++
> > >  tests/vhost-user-bridge.c                  |   2 +
> > >  tools/virtiofsd/fuse_virtio.c              |   4 +-
> > >  util/Makefile.objs                         |   1 +
> > >  util/vhost-user-server.c                   | 406 ++++++++++++
> > >  util/vhost-user-server.h                   |  59 ++
> > >  19 files changed, 2229 insertions(+), 40 deletions(-)
> > >  create mode 100644 block/export/vhost-user-blk-server.c
> > >  create mode 100644 block/export/vhost-user-blk-server.h
> > >  create mode 100644 tests/qtest/libqos/vhost-user-blk.c
> > >  create mode 100644 tests/qtest/libqos/vhost-user-blk.h
> > >  create mode 100644 tests/qtest/vhost-user-blk-test.c
> > >  create mode 100644 util/vhost-user-server.c
> > >  create mode 100644 util/vhost-user-server.h
> > > 
> > 
> > Should we add an entry in the MAINTAINERS file for some of the new files?
> > (e.g. util/vhost-user-server.*)
> 
> Yes, please. Thank you!

I think the best thing should be to edit MAINTAINERS in this series,
since you're adding new files, but I don't know who will maintain them ;-)

Thanks,
Stefano


Re: [PATCH v8 0/4] vhost-user block device backend implementation
Posted by Coiby Xu 3 years, 10 months ago
On Mon, Jun 15, 2020 at 10:46:10AM +0200, Stefano Garzarella wrote:
>On Mon, Jun 15, 2020 at 02:46:40AM +0800, Coiby Xu wrote:
>> Hi Stefano Garzarella,
>>
>> On Thu, Jun 11, 2020 at 02:37:03PM +0200, Stefano Garzarella wrote:
>> > Hi Coiby Xu,
>> >
>> > On Fri, Jun 05, 2020 at 07:35:34AM +0800, Coiby Xu wrote:
>> > > v8
>> > >  - re-try connecting to socket server to fix asan error
>> > >  - fix license naming issue
>> > >
>> > > v7
>> > >  - fix docker-test-debug@fedora errors by freeing malloced memory
>> > >
>> > > v6
>> > >  - add missing license header and include guard
>> > >  - vhost-user server only serve one client one time
>> > >  - fix a bug in custom vu_message_read
>> > >  - using qemu-storage-daemon to start vhost-user-blk-server
>> > >  - a bug fix to pass docker-test-clang@ubuntu
>> > >
>> > > v5:
>> > >  * re-use vu_kick_cb in libvhost-user
>> > >  * keeping processing VhostUserMsg in the same coroutine until there is
>> > >    detachment/attachment of AIOContext
>> > >  * Spawn separate coroutine for each VuVirtqElement
>> > >  * Other changes including relocating vhost-user-blk-server.c, coding
>> > >    style etc.
>> > >
>> > > v4:
>> > >  * add object properties in class_init
>> > >  * relocate vhost-user-blk-test
>> > >  * other changes including using SocketAddress, coding style, etc.
>> > >
>> > > v3:
>> > >  * separate generic vhost-user-server code from vhost-user-blk-server
>> > >    code
>> > >  * re-write vu_message_read and kick hander function as coroutines to
>> > >    directly call blk_co_preadv, blk_co_pwritev, etc.
>> > >  * add aio_context notifier functions to support multi-threading model
>> > >  * other fixes regarding coding style, warning report, etc.
>> > >
>> > > v2:
>> > >  * Only enable this feature for Linux because eventfd is a Linux-specific
>> > >    feature
>> > >
>> > >
>> > > This patch series is an implementation of vhost-user block device
>> > > backend server, thanks to Stefan and Kevin's guidance.
>> > >
>> > > Vhost-user block device backend server is a UserCreatable object and can be
>> > > started using object_add,
>> > >
>> > >  (qemu) object_add vhost-user-blk-server,id=ID,unix-socket=/tmp/vhost-user-blk_vhost.socket,node-name=DRIVE_NAME,writable=off,blk-size=512
>> > >  (qemu) object_del ID
>> > >
>> > > or appending the "-object" option when starting QEMU,
>> > >
>> > >   $ -object vhost-user-blk-server,id=disk,unix-socket=/tmp/vhost-user-blk_vhost.socket,node-name=DRIVE_NAME,writable=off,blk-size=512
>> > >
>> > > Then vhost-user client can connect to the server backend.
>> > > For example, QEMU could act as a client,
>> > >
>> > >   $ -m 256 -object memory-backend-memfd,id=mem,size=256M,share=on -numa node,memdev=mem -chardev socket,id=char1,path=/tmp/vhost-user-blk_vhost.socket -device vhost-user-blk-pci,id=blk0,chardev=char1
>> > >
>> > > And guest OS could access this vhost-user block device after mounting it.
>> > >
>> > > Coiby Xu (4):
>> > >   Allow vu_message_read to be replaced
>> > >   generic vhost user server
>> > >   vhost-user block device backend server
>> > >   new qTest case to test the vhost-user-blk-server
>> > >
>> > >  block/Makefile.objs                        |   1 +
>> > >  block/export/vhost-user-blk-server.c       | 716 ++++++++++++++++++++
>> > >  block/export/vhost-user-blk-server.h       |  34 +
>> > >  contrib/libvhost-user/libvhost-user-glib.c |   2 +-
>> > >  contrib/libvhost-user/libvhost-user.c      |  11 +-
>> > >  contrib/libvhost-user/libvhost-user.h      |  21 +
>> > >  softmmu/vl.c                               |   4 +
>> > >  tests/Makefile.include                     |   3 +-
>> > >  tests/qtest/Makefile.include               |   2 +
>> > >  tests/qtest/libqos/vhost-user-blk.c        | 130 ++++
>> > >  tests/qtest/libqos/vhost-user-blk.h        |  44 ++
>> > >  tests/qtest/libqtest.c                     |  54 +-
>> > >  tests/qtest/libqtest.h                     |  38 ++
>> > >  tests/qtest/vhost-user-blk-test.c          | 737 +++++++++++++++++++++
>> > >  tests/vhost-user-bridge.c                  |   2 +
>> > >  tools/virtiofsd/fuse_virtio.c              |   4 +-
>> > >  util/Makefile.objs                         |   1 +
>> > >  util/vhost-user-server.c                   | 406 ++++++++++++
>> > >  util/vhost-user-server.h                   |  59 ++
>> > >  19 files changed, 2229 insertions(+), 40 deletions(-)
>> > >  create mode 100644 block/export/vhost-user-blk-server.c
>> > >  create mode 100644 block/export/vhost-user-blk-server.h
>> > >  create mode 100644 tests/qtest/libqos/vhost-user-blk.c
>> > >  create mode 100644 tests/qtest/libqos/vhost-user-blk.h
>> > >  create mode 100644 tests/qtest/vhost-user-blk-test.c
>> > >  create mode 100644 util/vhost-user-server.c
>> > >  create mode 100644 util/vhost-user-server.h
>> > >
>> >
>> > Should we add an entry in the MAINTAINERS file for some of the new files?
>> > (e.g. util/vhost-user-server.*)
>>
>> Yes, please. Thank you!
>
>I think the best thing should be to edit MAINTAINERS in this series,
>since you're adding new files, but I don't know who will maintain them ;-)

Thank you for the explanation! I thought the MAINTAINERS file is supposed
to be treated in a special way:)

--
Best regards,
Coiby

Re: [PATCH v8 0/4] vhost-user block device backend implementation
Posted by Stefan Hajnoczi 3 years, 10 months ago
On Fri, Jun 05, 2020 at 07:35:34AM +0800, Coiby Xu wrote:
> v8
>  - re-try connecting to socket server to fix asan error
>  - fix license naming issue

Great, thanks for posting these patches!

I have posted feedback. I'd like to merge this soon. If you are busy I
can send you patches that address the comments I've made, please let me
know.

Thanks,
Stefan
Re: [PATCH v8 0/4] vhost-user block device backend implementation
Posted by Coiby Xu 3 years, 10 months ago
On Thu, Jun 11, 2020 at 04:27:44PM +0100, Stefan Hajnoczi wrote:
>On Fri, Jun 05, 2020 at 07:35:34AM +0800, Coiby Xu wrote:
>> v8
>>  - re-try connecting to socket server to fix asan error
>>  - fix license naming issue
>
>Great, thanks for posting these patches!
>
>I have posted feedback. I'd like to merge this soon. If you are busy I
>can send you patches that address the comments I've made, please let me
>know.

Thank you for reviewing my work! I'll post v9 to address all the comments this
weekend, does you think it's soon enough?

Best regards,
Coiby