[libvirt] [PATCH v3 00/31] Implement sparse streams for libvirt

Michal Privoznik posted 31 patches 6 years, 11 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/cover.1494943031.git.mprivozn@redhat.com
daemon/remote.c                      |   2 +-
daemon/stream.c                      | 148 ++++++++-
daemon/stream.h                      |   3 +-
include/libvirt/libvirt-storage.h    |   9 +
include/libvirt/libvirt-stream.h     | 115 ++++++-
src/driver-stream.h                  |  25 ++
src/esx/esx_stream.c                 |  16 +-
src/libvirt-storage.c                |   4 +-
src/libvirt-stream.c                 | 526 ++++++++++++++++++++++++++++++
src/libvirt_internal.h               |   4 +
src/libvirt_private.syms             |   2 +
src/libvirt_public.syms              |   9 +
src/libvirt_remote.syms              |   3 +
src/remote/remote_driver.c           |  99 +++++-
src/remote/remote_protocol.x         |   2 +
src/rpc/gendispatch.pl               |  21 +-
src/rpc/virnetclient.c               |   1 +
src/rpc/virnetclientstream.c         | 238 +++++++++++++-
src/rpc/virnetclientstream.h         |  18 +-
src/rpc/virnetprotocol.x             |  17 +-
src/rpc/virnetserverprogram.c        |  35 ++
src/rpc/virnetserverprogram.h        |   8 +
src/storage/storage_driver.c         |   4 +-
src/storage/storage_util.c           |  10 +-
src/util/virfdstream.c               | 609 +++++++++++++++++++++++++++++++----
src/util/virfdstream.h               |   1 +
src/util/virfile.c                   |  82 +++++
src/util/virfile.h                   |   4 +
src/virnetprotocol-structs           |   5 +
tests/virfiletest.c                  | 203 ++++++++++++
tools/virsh-util.c                   |  65 ++++
tools/virsh-util.h                   |  29 ++
tools/virsh-volume.c                 |  50 ++-
tools/virsh.pod                      |   6 +-
tools/wireshark/src/packet-libvirt.c |  52 +++
tools/wireshark/src/packet-libvirt.h |   2 +
36 files changed, 2301 insertions(+), 126 deletions(-)
[libvirt] [PATCH v3 00/31] Implement sparse streams for libvirt
Posted by Michal Privoznik 6 years, 11 months ago
v3 of:

https://www.redhat.com/archives/libvir-list/2017-April/msg00671.html

All the patches can be found on my github:

  https://github.com/zippy2/libvirt/tree/sparse_streams2

diff to v2:
 - renamed APIs from Skip & GetHoleSize to SendHole & RecvHole
 - switched from 'unsigned long long len' to 'long long len' (where len is size of a hole)
 - introduced @flags to public APIs for future extensibility
 - couple of coding style fixes
 - couple of fixes suggested by John in review of v2

As expressed earlier, a lot of these patches should have Reviewed-by tag as
John reviewed majority of them. But we don't have a clear agreement when to use
the tag, so I'm not putting it in just yet. However, will do before pushing.

Some patches were ACKed. However, changes described above changed them, so I'm
not sure ACK still stands.

Michal Privoznik (31):
  virfdstream: Use messages instead of pipe
  util: Introduce virFileInData
  Introduce virStreamRecvFlags
  Implement virStreamRecvFlags to some drivers
  Introduce virStreamSendHole
  Introduce virStreamRecvHole
  Introduce VIR_STREAM_RECV_STOP_AT_HOLE flag
  Introduce virStreamSparseRecvAll
  Introduce virStreamSparseSendAll
  Introduce virStreamInData
  virNetClientStreamNew: Track origin stream
  Add new flag to daemonCreateClientStream and virNetClientStreamNew
  RPC: Introduce virNetStreamHole
  Introduce VIR_NET_STREAM_HOLE message type
  Teach wireshark plugin about VIR_NET_STREAM_HOLE
  daemon: Introduce virNetServerProgramSendStreamHole
  virnetclientstream: Introduce virNetClientStreamSendHole
  daemon: Implement VIR_NET_STREAM_HOLE handling
  virnetclientstream: Introduce virNetClientStreamHandleHole
  remote_driver: Implement virStreamSendHole
  virNetClientStreamRecvPacket: Introduce @flags argument
  Introduce virNetClientStreamRecvHole
  remote: Implement virStreamRecvHole
  virNetClientStream: Wire up VIR_NET_STREAM_HOLE
  remote_driver: Implement VIR_STREAM_RECV_STOP_AT_HOLE
  daemonStreamHandleRead: Wire up seekable stream
  fdstream: Implement sparse stream
  gendispatch: Introduce @sparseflag for our calls
  Introduce virStorageVol{Download,Upload}Flags
  virsh: Implement sparse stream to vol-download
  virsh: Implement sparse stream to vol-upload

 daemon/remote.c                      |   2 +-
 daemon/stream.c                      | 148 ++++++++-
 daemon/stream.h                      |   3 +-
 include/libvirt/libvirt-storage.h    |   9 +
 include/libvirt/libvirt-stream.h     | 115 ++++++-
 src/driver-stream.h                  |  25 ++
 src/esx/esx_stream.c                 |  16 +-
 src/libvirt-storage.c                |   4 +-
 src/libvirt-stream.c                 | 526 ++++++++++++++++++++++++++++++
 src/libvirt_internal.h               |   4 +
 src/libvirt_private.syms             |   2 +
 src/libvirt_public.syms              |   9 +
 src/libvirt_remote.syms              |   3 +
 src/remote/remote_driver.c           |  99 +++++-
 src/remote/remote_protocol.x         |   2 +
 src/rpc/gendispatch.pl               |  21 +-
 src/rpc/virnetclient.c               |   1 +
 src/rpc/virnetclientstream.c         | 238 +++++++++++++-
 src/rpc/virnetclientstream.h         |  18 +-
 src/rpc/virnetprotocol.x             |  17 +-
 src/rpc/virnetserverprogram.c        |  35 ++
 src/rpc/virnetserverprogram.h        |   8 +
 src/storage/storage_driver.c         |   4 +-
 src/storage/storage_util.c           |  10 +-
 src/util/virfdstream.c               | 609 +++++++++++++++++++++++++++++++----
 src/util/virfdstream.h               |   1 +
 src/util/virfile.c                   |  82 +++++
 src/util/virfile.h                   |   4 +
 src/virnetprotocol-structs           |   5 +
 tests/virfiletest.c                  | 203 ++++++++++++
 tools/virsh-util.c                   |  65 ++++
 tools/virsh-util.h                   |  29 ++
 tools/virsh-volume.c                 |  50 ++-
 tools/virsh.pod                      |   6 +-
 tools/wireshark/src/packet-libvirt.c |  52 +++
 tools/wireshark/src/packet-libvirt.h |   2 +
 36 files changed, 2301 insertions(+), 126 deletions(-)

-- 
2.13.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v3 00/31] Implement sparse streams for libvirt
Posted by John Ferlan 6 years, 11 months ago

On 05/16/2017 10:03 AM, Michal Privoznik wrote:

Don't forget the 32/31 patch which updates the news file...

John
> v3 of:
> 
> https://www.redhat.com/archives/libvir-list/2017-April/msg00671.html
> 
> All the patches can be found on my github:
> 
>   https://github.com/zippy2/libvirt/tree/sparse_streams2
> 
> diff to v2:
>  - renamed APIs from Skip & GetHoleSize to SendHole & RecvHole
>  - switched from 'unsigned long long len' to 'long long len' (where len is size of a hole)
>  - introduced @flags to public APIs for future extensibility
>  - couple of coding style fixes
>  - couple of fixes suggested by John in review of v2
> 
> As expressed earlier, a lot of these patches should have Reviewed-by tag as
> John reviewed majority of them. But we don't have a clear agreement when to use
> the tag, so I'm not putting it in just yet. However, will do before pushing.
> 
> Some patches were ACKed. However, changes described above changed them, so I'm
> not sure ACK still stands.
> 
> Michal Privoznik (31):
>   virfdstream: Use messages instead of pipe
>   util: Introduce virFileInData
>   Introduce virStreamRecvFlags
>   Implement virStreamRecvFlags to some drivers
>   Introduce virStreamSendHole
>   Introduce virStreamRecvHole
>   Introduce VIR_STREAM_RECV_STOP_AT_HOLE flag
>   Introduce virStreamSparseRecvAll
>   Introduce virStreamSparseSendAll
>   Introduce virStreamInData
>   virNetClientStreamNew: Track origin stream
>   Add new flag to daemonCreateClientStream and virNetClientStreamNew
>   RPC: Introduce virNetStreamHole
>   Introduce VIR_NET_STREAM_HOLE message type
>   Teach wireshark plugin about VIR_NET_STREAM_HOLE
>   daemon: Introduce virNetServerProgramSendStreamHole
>   virnetclientstream: Introduce virNetClientStreamSendHole
>   daemon: Implement VIR_NET_STREAM_HOLE handling
>   virnetclientstream: Introduce virNetClientStreamHandleHole
>   remote_driver: Implement virStreamSendHole
>   virNetClientStreamRecvPacket: Introduce @flags argument
>   Introduce virNetClientStreamRecvHole
>   remote: Implement virStreamRecvHole
>   virNetClientStream: Wire up VIR_NET_STREAM_HOLE
>   remote_driver: Implement VIR_STREAM_RECV_STOP_AT_HOLE
>   daemonStreamHandleRead: Wire up seekable stream
>   fdstream: Implement sparse stream
>   gendispatch: Introduce @sparseflag for our calls
>   Introduce virStorageVol{Download,Upload}Flags
>   virsh: Implement sparse stream to vol-download
>   virsh: Implement sparse stream to vol-upload
> 
>  daemon/remote.c                      |   2 +-
>  daemon/stream.c                      | 148 ++++++++-
>  daemon/stream.h                      |   3 +-
>  include/libvirt/libvirt-storage.h    |   9 +
>  include/libvirt/libvirt-stream.h     | 115 ++++++-
>  src/driver-stream.h                  |  25 ++
>  src/esx/esx_stream.c                 |  16 +-
>  src/libvirt-storage.c                |   4 +-
>  src/libvirt-stream.c                 | 526 ++++++++++++++++++++++++++++++
>  src/libvirt_internal.h               |   4 +
>  src/libvirt_private.syms             |   2 +
>  src/libvirt_public.syms              |   9 +
>  src/libvirt_remote.syms              |   3 +
>  src/remote/remote_driver.c           |  99 +++++-
>  src/remote/remote_protocol.x         |   2 +
>  src/rpc/gendispatch.pl               |  21 +-
>  src/rpc/virnetclient.c               |   1 +
>  src/rpc/virnetclientstream.c         | 238 +++++++++++++-
>  src/rpc/virnetclientstream.h         |  18 +-
>  src/rpc/virnetprotocol.x             |  17 +-
>  src/rpc/virnetserverprogram.c        |  35 ++
>  src/rpc/virnetserverprogram.h        |   8 +
>  src/storage/storage_driver.c         |   4 +-
>  src/storage/storage_util.c           |  10 +-
>  src/util/virfdstream.c               | 609 +++++++++++++++++++++++++++++++----
>  src/util/virfdstream.h               |   1 +
>  src/util/virfile.c                   |  82 +++++
>  src/util/virfile.h                   |   4 +
>  src/virnetprotocol-structs           |   5 +
>  tests/virfiletest.c                  | 203 ++++++++++++
>  tools/virsh-util.c                   |  65 ++++
>  tools/virsh-util.h                   |  29 ++
>  tools/virsh-volume.c                 |  50 ++-
>  tools/virsh.pod                      |   6 +-
>  tools/wireshark/src/packet-libvirt.c |  52 +++
>  tools/wireshark/src/packet-libvirt.h |   2 +
>  36 files changed, 2301 insertions(+), 126 deletions(-)
> 

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list