All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/6] Support exporting BDSs via VDUSE
@ 2022-02-15 10:59 Xie Yongji
  2022-02-15 10:59 ` [PATCH v2 1/6] block: Support passing NULL ops to blk_set_dev_ops() Xie Yongji
                   ` (6 more replies)
  0 siblings, 7 replies; 27+ messages in thread
From: Xie Yongji @ 2022-02-15 10:59 UTC (permalink / raw)
  To: mst, jasowang, stefanha, sgarzare, kwolf, mreitz, mlureau
  Cc: qemu-devel, qemu-block

Hi all,

Last few months ago, VDUSE (vDPA Device in Userspace) [1] has
been merged into Linux kernel as a framework that make it
possible to emulate a vDPA device in userspace. This series
aimed at implementing a VDUSE block backend based on the
qemu-storage-daemon infrastructure.

To support that, we firstly introduce a VDUSE library as a
subproject (like what libvhost-user does) to help implementing
VDUSE backends in QEMU. Then a VDUSE block export is implemented
based on this library. At last, we add resize and reconnect support
to the VDUSE block export and VDUSE library.

Since we don't support vdpa-blk in QEMU currently, the VM case is
tested with my previous patchset [2].

[1] https://www.kernel.org/doc/html/latest/userspace-api/vduse.html
[2] https://www.mail-archive.com/qemu-devel@nongnu.org/msg797569.html

Please review, thanks!

V1 to V2:
- Move vduse header to linux-headers [Stefan]
- Add two new API to support creating device from /dev/vduse/$NAME or
  file descriptor [Stefan]
- Check VIRTIO_F_VERSION_1 during intialization [Stefan]
- Replace malloc() + memset to calloc() [Stefan]
- Increase default queue size to 256 for vduse-blk [Stefan]
- Zero-initialize virtio-blk config space [Stefan]
- Add a patch to support reset blk->dev_ops
- Validate vq->log->inflight fields [Stefan]
- Add vduse_set_reconnect_log_file() API to support specifing the
  reconnect log file
- Fix some bugs [Stefan]

Xie Yongji (6):
  block: Support passing NULL ops to blk_set_dev_ops()
  linux-headers: Add vduse.h
  libvduse: Add VDUSE (vDPA Device in Userspace) library
  vduse-blk: implements vduse-blk export
  vduse-blk: Add vduse-blk resize support
  libvduse: Add support for reconnecting

 block/block-backend.c                       |    2 +-
 block/export/export.c                       |    6 +
 block/export/meson.build                    |    5 +
 block/export/vduse-blk.c                    |  462 +++++++
 block/export/vduse-blk.h                    |   20 +
 linux-headers/linux/vduse.h                 |  306 +++++
 meson.build                                 |   28 +
 meson_options.txt                           |    4 +
 qapi/block-export.json                      |   24 +-
 scripts/meson-buildoptions.sh               |    7 +
 scripts/update-linux-headers.sh             |    2 +-
 subprojects/libvduse/include/atomic.h       |    1 +
 subprojects/libvduse/libvduse.c             | 1374 +++++++++++++++++++
 subprojects/libvduse/libvduse.h             |  237 ++++
 subprojects/libvduse/linux-headers/linux    |    1 +
 subprojects/libvduse/meson.build            |   10 +
 subprojects/libvduse/standard-headers/linux |    1 +
 17 files changed, 2486 insertions(+), 4 deletions(-)
 create mode 100644 block/export/vduse-blk.c
 create mode 100644 block/export/vduse-blk.h
 create mode 100644 linux-headers/linux/vduse.h
 create mode 120000 subprojects/libvduse/include/atomic.h
 create mode 100644 subprojects/libvduse/libvduse.c
 create mode 100644 subprojects/libvduse/libvduse.h
 create mode 120000 subprojects/libvduse/linux-headers/linux
 create mode 100644 subprojects/libvduse/meson.build
 create mode 120000 subprojects/libvduse/standard-headers/linux

-- 
2.20.1



^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2022-03-17  8:59 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-15 10:59 [PATCH v2 0/6] Support exporting BDSs via VDUSE Xie Yongji
2022-02-15 10:59 ` [PATCH v2 1/6] block: Support passing NULL ops to blk_set_dev_ops() Xie Yongji
2022-03-14 17:23   ` Stefan Hajnoczi
2022-03-14 19:09     ` John Snow
2022-03-15  8:47       ` Stefan Hajnoczi
2022-03-15 19:30         ` John Snow
2022-03-16 12:18           ` Stefan Hajnoczi
2022-03-17  8:57             ` Kevin Wolf
2022-02-15 10:59 ` [PATCH v2 2/6] linux-headers: Add vduse.h Xie Yongji
2022-02-15 10:59 ` [PATCH v2 3/6] libvduse: Add VDUSE (vDPA Device in Userspace) library Xie Yongji
2022-03-15  9:48   ` Stefan Hajnoczi
2022-03-15 11:38     ` Yongji Xie
2022-03-16 13:28       ` Stefan Hajnoczi
2022-03-16 13:49         ` Yongji Xie
2022-03-16 15:51           ` Stefan Hajnoczi
2022-03-17  2:15             ` Yongji Xie
2022-02-15 10:59 ` [PATCH v2 4/6] vduse-blk: implements vduse-blk export Xie Yongji
2022-03-15 11:08   ` Stefan Hajnoczi
2022-03-15 11:52     ` Yongji Xie
2022-03-16 12:16       ` Stefan Hajnoczi
2022-03-16 13:24         ` Yongji Xie
2022-02-15 10:59 ` [PATCH v2 5/6] vduse-blk: Add vduse-blk resize support Xie Yongji
2022-03-15 13:36   ` Stefan Hajnoczi
2022-02-15 10:59 ` [PATCH v2 6/6] libvduse: Add support for reconnecting Xie Yongji
2022-03-15 13:48   ` Stefan Hajnoczi
2022-03-16  2:33     ` Yongji Xie
2022-03-09 15:37 ` [PATCH v2 0/6] Support exporting BDSs via VDUSE Stefan Hajnoczi

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.