[Devel] [PATCH rh7 00/16] vsock: Allow Node/VM to be used as vsock client and server simultaneously

Konstantin Khorenko khorenko at virtuozzo.com
Wed Apr 21 15:50:18 MSK 2021


Right now a Node (VM) cannot work as vsock server and client at once,
this leads in particular to the following situation:

if a VM (L1) uses vsock transport for communications with Host
it cannot start L2 VMs (nested) with vsock as a transport.

The following message appears on nested VM start attempt:
  Starting the VM...
  Failed to start the VM: Operation failed. Failed to execute the operation.
  (Details: internal error: Failed to load vhost-vsock module: modprobe: ERROR:
  could not insert 'vhost_vsock': Device or resource busy)

The current patchset fixes this defect.

https://jira.sw.ru/browse/PSBM-128702

Ported-by: Konstantin Khorenko <khorenko at virtuozzo.com>

Jorge E. Moreira (1):
  ms/vsock/virtio: Initialize core virtio vsock before registering the
    driver

Stefano Garzarella (15):
  ms/vsock/vmci: remove unused VSOCK_DEFAULT_CONNECT_TIMEOUT
  ms/vsock: remove vm_sockets_get_local_cid()
  ms/vsock: remove include/linux/vm_sockets.h file
  ms/vsock: add 'transport' member in the struct vsock_sock
  ms/vsock/virtio: add transport parameter to the
    virtio_transport_reset_no_sock()
  ms/vsock: add 'struct vsock_sock *' param to
    vsock_core_get_transport()
  ms/vsock: handle buffer_size sockopts in the core
  ms/vsock: add vsock_create_connected() called by transports
  ms/vsock: move vsock_insert_unbound() in the vsock_create()
  ms/hv_sock: set VMADDR_CID_HOST in the hvs_remote_addr_init()
  ms/vsock: add multi-transports support
  ms/vsock/vmci: register vmci_transport only when VMCI guest/host are
    active
  ms/vsock: prevent transport modules unloading
  ms/vsock: fix bind() behaviour taking care of CID
  ms/vhost/vsock: refuse CID assigned to the guest->host transport

 drivers/misc/vmw_vmci/vmci_driver.c     |  67 +++++
 drivers/misc/vmw_vmci/vmci_driver.h     |   2 +
 drivers/misc/vmw_vmci/vmci_guest.c      |   2 +
 drivers/misc/vmw_vmci/vmci_host.c       |   7 +
 drivers/vhost/vsock.c                   | 100 ++++---
 include/linux/virtio_vsock.h            |  18 +-
 include/linux/vm_sockets.h              |  23 --
 include/linux/vmw_vmci_api.h            |   2 +
 include/net/af_vsock.h                  |  45 +--
 include/net/vsock_addr.h                |   2 +-
 net/vmw_vsock/af_vsock.c                | 382 ++++++++++++++++++------
 net/vmw_vsock/hyperv_transport.c        |  70 ++---
 net/vmw_vsock/virtio_transport.c        | 168 +++++------
 net/vmw_vsock/virtio_transport_common.c | 166 +++++-----
 net/vmw_vsock/vmci_transport.c          | 138 ++++-----
 net/vmw_vsock/vmci_transport.h          |   3 -
 net/vmw_vsock/vmci_transport_notify.h   |   1 -
 17 files changed, 672 insertions(+), 524 deletions(-)
 delete mode 100644 include/linux/vm_sockets.h

-- 
2.24.3



More information about the Devel mailing list