vsock: add mdoc page
Co-authored-by: Manos Pitsidianakis <manos@pitsidianak.is> Signed-off-by: Sandro Bonazzola <sbonazzo@redhat.com>
This commit is contained in:
parent
ed0f98e442
commit
c5ae1f38f2
2 changed files with 198 additions and 0 deletions
|
|
@ -2,6 +2,7 @@
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
- [#698](https://github.com/rust-vmm/vhost-device/pull/698) vsock: add mdoc page
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
|
|
|
||||||
197
vhost-device-vsock/vhost-device-vsock.1
Normal file
197
vhost-device-vsock/vhost-device-vsock.1
Normal file
|
|
@ -0,0 +1,197 @@
|
||||||
|
.Dd July 24, 2024
|
||||||
|
.Dt VHOST-DEVICE-VSOCK 1
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm vhost-device-vsock
|
||||||
|
.Nd A virtio-vsock device using the vhost-user protocol
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.Nm
|
||||||
|
.Fl \-socket Ar SOCKET
|
||||||
|
.Fl \-uds-path Ar UDS_PATH
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
The
|
||||||
|
.Nm
|
||||||
|
utility launches a daemon listening to
|
||||||
|
.Ar SOCKET
|
||||||
|
for incoming connections from
|
||||||
|
.Em vhost-user
|
||||||
|
front-ends.
|
||||||
|
Upon successful connection and protocol negotiation,
|
||||||
|
it starts a vhost-user backend instance.
|
||||||
|
The functionality of a VIRTIO vsock device is provided
|
||||||
|
using the specified unix socket,
|
||||||
|
.Ar UDS_PATH Ns
|
||||||
|
, to which a host-side application connects to.
|
||||||
|
.Bl -tag -width Ds
|
||||||
|
.It Fl -help | h
|
||||||
|
Print help information.
|
||||||
|
.It Fl -version | V
|
||||||
|
Print version information.
|
||||||
|
.It Fl \-guest-cid Pa GUEST_CID
|
||||||
|
Context identifier of the guest which uniquely identifies the
|
||||||
|
device for its lifetime
|
||||||
|
.Bq default: 3
|
||||||
|
.It Fl \-socket Pa SOCKET
|
||||||
|
Unix socket to which a hypervisor connects to and sets up the
|
||||||
|
control path with the device
|
||||||
|
.It Fl \-uds-path Pa UDS_PATH
|
||||||
|
Unix socket to which a host-side application connects to
|
||||||
|
.It Fl \-tx-buffer-size Pa TX_BUFFER_SIZE
|
||||||
|
The size of the buffer used for the TX virtqueue
|
||||||
|
.Bq default: 65536
|
||||||
|
.It Fl \-queue-size Pa QUEUE_SIZE
|
||||||
|
The size of the vring queue
|
||||||
|
.Bq default: 1024
|
||||||
|
.It Fl \-groups Pa GROUPS
|
||||||
|
The list of group names to which the device belongs.
|
||||||
|
A group is a set of devices that allow sibling communication between their
|
||||||
|
guests.
|
||||||
|
.Bq default: Qq default
|
||||||
|
.It Fl \-config Pa CONFIG
|
||||||
|
Load from a given configuration file
|
||||||
|
.sp
|
||||||
|
.Sy NOTE :
|
||||||
|
conflicts with
|
||||||
|
.Li --vm
|
||||||
|
.It Fl \-vm Pa VM
|
||||||
|
Device parameters corresponding to a VM in the form of comma
|
||||||
|
separated
|
||||||
|
.Li key=value
|
||||||
|
pairs.
|
||||||
|
Multiple instances of this option
|
||||||
|
can be provided to configure devices for multiple guests.
|
||||||
|
The allowed keys are:
|
||||||
|
.Bl -enum -compact -width 0 -offset 1n
|
||||||
|
.It
|
||||||
|
.Li guest_cid
|
||||||
|
.It
|
||||||
|
.Li socket
|
||||||
|
.It
|
||||||
|
.Li uds_path
|
||||||
|
.It
|
||||||
|
.Li tx_buffer_size
|
||||||
|
.It
|
||||||
|
.Li queue_size
|
||||||
|
.It
|
||||||
|
.Li group
|
||||||
|
.El
|
||||||
|
.Sy NOTE :
|
||||||
|
conflicts with
|
||||||
|
.Li --config
|
||||||
|
.El
|
||||||
|
.Sh EXIT STATUS
|
||||||
|
.Ex -std
|
||||||
|
.Sh EXAMPLES
|
||||||
|
.Ss Run the vhost-device-vsock device
|
||||||
|
.Bd -literal
|
||||||
|
vhost-device-vsock \\
|
||||||
|
--vm \\
|
||||||
|
guest_cid=<GUEST_CID>,\\
|
||||||
|
socket=<SOCKET_PATH>,\\
|
||||||
|
uds-path=<UDS_PATH>\\
|
||||||
|
[,tx-buffer-size=<TX_SIZE>][,queue-size=<QUEUE_SIZE>][,groups=<GROUPS_LIST>]
|
||||||
|
.Ed
|
||||||
|
.sp
|
||||||
|
Specify the
|
||||||
|
.Fa `--vm`
|
||||||
|
argument multiple times to specify multiple devices like this:
|
||||||
|
.Bd -literal
|
||||||
|
vhost-device-vsock \\
|
||||||
|
--vm guest-cid=3,socket=/tmp/vhost3.socket,uds-path=/tmp/vm3.vsock,groups=group1+groupA \\
|
||||||
|
--vm guest-cid=4,socket=/tmp/vhost4.socket,uds-path=/tmp/vm4.vsock,tx-buffer-size=32768,queue-size=256
|
||||||
|
.Ed
|
||||||
|
Or use a configuration file:
|
||||||
|
.Bd -literal
|
||||||
|
vhost-device-vsock --config=<path to the local yaml configuration file>
|
||||||
|
.Ed
|
||||||
|
Configuration file example in yaml format:
|
||||||
|
.Bd -literal
|
||||||
|
vms:
|
||||||
|
- guest_cid: 3
|
||||||
|
socket: /tmp/vhost3.socket
|
||||||
|
uds_path: /tmp/vm3.sock
|
||||||
|
tx_buffer_size: 65536
|
||||||
|
queue_size: 1024
|
||||||
|
groups: group1+groupA
|
||||||
|
- guest_cid: 4
|
||||||
|
socket: /tmp/vhost4.socket
|
||||||
|
uds_path: /tmp/vm4.sock
|
||||||
|
tx_buffer_size: 32768
|
||||||
|
queue_size: 256
|
||||||
|
groups: group2+groupB
|
||||||
|
.Ed
|
||||||
|
.sp
|
||||||
|
.Ss Run VMM (e.g. QEMU)
|
||||||
|
.Bd -literal
|
||||||
|
qemu-system-x86_64 \\
|
||||||
|
<normal QEMU options> \\
|
||||||
|
-object memory-backend-memfd,id=mem0,size=<Guest RAM size> \\ # size == -m size
|
||||||
|
-machine <machine options>,memory-backend=mem0 \\
|
||||||
|
-chardev socket,id=char0,reconnect=0,path=<vhost-user socket path> \\
|
||||||
|
-device vhost-user-vsock-pci,chardev=char0
|
||||||
|
.Ed
|
||||||
|
.sp
|
||||||
|
.Sy NOTE :
|
||||||
|
With QEMU you have to use a shareable memory-backend such as
|
||||||
|
.Li memory-backend-memfd
|
||||||
|
.sp
|
||||||
|
.Ss Working example
|
||||||
|
.Bd -literal
|
||||||
|
shell1$ vhost-device-vsock --vm guest-cid=4,uds-path=/tmp/vm4.vsock,socket=/tmp/vhost4.socket
|
||||||
|
.Ed
|
||||||
|
.sp
|
||||||
|
or if you want to configure the TX buffer size and vring queue size
|
||||||
|
.Bd -literal
|
||||||
|
shell1$ vhost-device-vsock --vm guest-cid=4,uds-path=/tmp/vm4.vsock,socket=/tmp/vhost4.socket,tx-buffer-size=65536,queue-size=1024
|
||||||
|
.Ed
|
||||||
|
.Bd -literal
|
||||||
|
shell2$ qemu-system-x86_64 \\
|
||||||
|
-drive file=vm.qcow2,format=qcow2,if=virtio -smp 2 \\
|
||||||
|
-object memory-backend-memfd,id=mem0,size=512M \\
|
||||||
|
-machine q35,accel=kvm,memory-backend=mem0 \\
|
||||||
|
-chardev socket,id=char0,reconnect=0,path=/tmp/vhost4.socket \\
|
||||||
|
-device vhost-user-vsock-pci,chardev=char0
|
||||||
|
.Ed
|
||||||
|
.Sh STANDARDS
|
||||||
|
.Bl -dash -compact
|
||||||
|
.It
|
||||||
|
.Rs
|
||||||
|
.%B Virtual I/O Device (VIRTIO)
|
||||||
|
.%O Version 1.2
|
||||||
|
.%A OASIS
|
||||||
|
.%U https://docs.oasis-open.org/virtio/virtio/v1.2/virtio-v1.2.html
|
||||||
|
.%D July 01, 2022
|
||||||
|
.Re
|
||||||
|
.It
|
||||||
|
.Rs
|
||||||
|
.%B Vhost-user Protocol
|
||||||
|
.%O Unversioned
|
||||||
|
.%A QEMU Project
|
||||||
|
.%U https://qemu.readthedocs.io/en/v9.0.0/interop/vhost-user.html
|
||||||
|
.%D Undated
|
||||||
|
.Re
|
||||||
|
.El
|
||||||
|
.Sh AUTHORS
|
||||||
|
Copyright 2023\(en2024
|
||||||
|
.Bl -item -compact
|
||||||
|
.It
|
||||||
|
.An Harshavardhan Unnibhavi Aq Mt harshanavkis@gmail.com>
|
||||||
|
.It
|
||||||
|
.An Stefano Garzarella Aq Mt sgarzare@redhat.com>
|
||||||
|
.El
|
||||||
|
.Pp
|
||||||
|
Released under Apache-2.0 OR BSD-3-Clause.
|
||||||
|
.Po
|
||||||
|
See files
|
||||||
|
.Pa LICENSE-APACHE Ns
|
||||||
|
,
|
||||||
|
.Pa LICENSE-BSD-3-Clause
|
||||||
|
for full copyright and warranty notices.
|
||||||
|
.Pc
|
||||||
|
.Ss Links
|
||||||
|
.Bl -item -compact
|
||||||
|
.It
|
||||||
|
.Lk https://github.com/rust-vmm/vhost-device "Main\ repository"
|
||||||
|
.It
|
||||||
|
.Lk https://crates.io/crates/vhost-device-vsock "on\ crates.io"
|
||||||
|
.El
|
||||||
Loading…
Add table
Add a link
Reference in a new issue