qemu/docs
Johannes Berg 3348e7e34f docs: vhost-user: add in-band kick/call messages
For good reason, vhost-user is currently built asynchronously, that
way better performance can be obtained. However, for certain use
cases such as simulation, this is problematic.

Consider an event-based simulation in which both the device and CPU
have scheduled according to a simulation "calendar". Now, consider
the CPU sending I/O to the device, over a vring in the vhost-user
protocol. In this case, the CPU must wait for the vring interrupt
to have been processed by the device, so that the device is able to
put an entry onto the simulation calendar to obtain time to handle
the interrupt. Note that this doesn't mean the I/O is actually done
at this time, it just means that the handling of it is scheduled
before the CPU can continue running.

This cannot be done with the asynchronous eventfd based vring kick
and call design.

Extend the protocol slightly, so that a message can be used for kick
and call instead, if VHOST_USER_PROTOCOL_F_INBAND_NOTIFICATIONS is
negotiated. This in itself doesn't guarantee synchronisation, but both
sides can also negotiate VHOST_USER_PROTOCOL_F_REPLY_ACK and thus get
a reply to this message by setting the need_reply flag, and ensure
synchronisation this way.

To really use it in both directions, VHOST_USER_PROTOCOL_F_SLAVE_REQ
is also needed.

Since it is used for simulation purposes and too many messages on
the socket can lock up the virtual machine, document that this should
only be used together with the mentioned features.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Message-Id: <20200123081708.7817-6-johannes@sipsolutions.net>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2020-02-27 03:46:10 -05:00
..
config
devel fuzz: add documentation to docs/devel/ 2020-02-22 08:26:48 +00:00
interop docs: vhost-user: add in-band kick/call messages 2020-02-27 03:46:10 -05:00
specs docs/specs/tpm: reST-ify TPM documentation 2020-02-02 14:07:57 +11:00
sphinx docs/sphinx: Add new hxtool Sphinx extension 2020-02-03 10:46:32 +00:00
spin
system qemu-block-drivers: Convert to rST 2020-01-23 15:34:04 +00:00
tools docs: Move tools documentation to tools manual 2020-02-25 10:48:06 +00:00
amd-memory-encryption.txt doc: fix typos for documents in tree 2019-03-06 10:40:21 +01:00
arm-cpu-features.rst docs/arm-cpu-features: Make kvm-no-adjvtime comment clearer 2020-02-07 14:04:28 +00:00
barrier.txt ui: add an embedded Barrier client 2019-09-17 13:43:22 +02:00
block-replication.txt
bootindex.txt
can.txt doc: fix typos for documents in tree 2019-03-06 10:40:21 +01:00
ccid.txt
COLO-FT.txt doc: fix typos for documents in tree 2019-03-06 10:40:21 +01:00
colo-proxy.txt doc: fix typos for documents in tree 2019-03-06 10:40:21 +01:00
conf.py configure: Check that sphinx-build is using Python 3 2020-02-15 11:41:49 +01:00
cpu-hotplug.rst docs/cpu-hotplug.rst: Fix rST markup issues 2019-03-07 14:26:44 +00:00
generic-loader.txt
hyperv.txt i386/kvm: add NoNonArchitecturalCoreSharing Hyper-V enlightenment 2019-10-22 09:38:42 +02:00
igd-assign.txt
image-fuzzer.txt
index.html.in docs: Create new 'tools' manual 2020-02-25 10:48:04 +00:00
index.rst docs: Create new 'tools' manual 2020-02-25 10:48:04 +00:00
memory-hotplug.txt
microvm.rst docs/microvm.rst: add instructions for shutting down the guest 2019-11-19 10:01:34 +01:00
multi-thread-compression.txt
multiseat.txt tests/docker/test-mingw and docs: Remove --with-sdlabi=2.0 2019-02-04 15:25:21 +00:00
nvdimm.txt docs/nvdimm: add example on persistent backend setup 2019-09-16 06:27:35 -04:00
pci_expander_bridge.txt
pcie_pci_bridge.txt
pcie.txt
pr-manager.rst
pvrdma.txt hw/pvrdma: Remove max-sge command-line param 2019-01-19 10:31:24 +02:00
qcow2-cache.txt qcow2: Default to 4KB for the qcow2 cache entry size 2019-03-08 12:26:45 +01:00
qdev-device-use.txt qemu-options: Remove deprecated "-virtioconsole" option 2019-02-05 16:50:19 +01:00
qemu_logo.pdf
qemu-cpu-models.texi qemu-doc: Do not hard-code the name of the QEMU binary 2019-09-05 13:18:52 +02:00
qemu-option-trace.rst.inc docs: Move qemu-option-trace.rst.inc to docs/ 2020-02-25 10:48:05 +00:00
qemupciserial.inf
rdma.txt doc: fix typos for documents in tree 2019-03-06 10:40:21 +01:00
replay.txt replay: record and replay random number sources 2020-01-07 12:08:39 +01:00
security.texi doc: document that the monitor console is a privileged control interface 2019-07-19 14:21:08 +01:00
spice-port-fqdn.txt
throttle.txt
usb2.txt
usb-storage.txt
vfio-ap.txt doc: fix typos for documents in tree 2019-03-06 10:40:21 +01:00
virtio-balloon-stats.txt
virtio-net-failover.rst docs: fix rst syntax errors in unbuilt docs 2019-12-19 16:20:21 +00:00
virtio-pmem.rst docs: fix rst syntax errors in unbuilt docs 2019-12-19 16:20:21 +00:00
xbzrle.txt
xen-save-devices-state.txt