qemu/tests
Leonardo Bras b88651cb4d QIOChannel: Add flags on io_writev and introduce io_flush callback
Add flags to io_writev and introduce io_flush as optional callback to
QIOChannelClass, allowing the implementation of zero copy writes by
subclasses.

How to use them:
- Write data using qio_channel_writev*(...,QIO_CHANNEL_WRITE_FLAG_ZERO_COPY),
- Wait write completion with qio_channel_flush().

Notes:
As some zero copy write implementations work asynchronously, it's
recommended to keep the write buffer untouched until the return of
qio_channel_flush(), to avoid the risk of sending an updated buffer
instead of the buffer state during write.

As io_flush callback is optional, if a subclass does not implement it, then:
- io_flush will return 0 without changing anything.

Also, some functions like qio_channel_writev_full_all() were adapted to
receive a flag parameter. That allows shared code between zero copy and
non-zero copy writev, and also an easier implementation on new flags.

Signed-off-by: Leonardo Bras <leobras@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Message-Id: <20220513062836.965425-3-leobras@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
2022-05-16 13:56:24 +01:00
..
avocado test/avocado/machine_aspeed.py: Add ast1030 test case 2022-05-02 17:03:04 +02:00
bench osdep: Move memalign-related functions to their own header 2022-03-07 13:16:49 +00:00
data tests/acpi: update expected data files 2022-03-15 09:31:44 +01:00
decode decodetree: Extend argument set syntax to allow types 2021-05-01 11:45:35 -07:00
docker Testing, docs and gdbstub updates: 2022-04-20 11:13:08 -07:00
fp compiler.h: replace QEMU_NORETURN with G_NORETURN 2022-04-21 17:03:51 +04:00
guest-debug tests/guest-debug: better handle gdb crashes 2022-04-20 16:04:20 +01:00
image-fuzzer
include
keys tests/vm: Add Haiku test based on their vagrant images 2020-11-17 09:45:24 +01:00
lcitool tests: Drop perl-Test-Harness from the CI containers / VMs 2022-04-20 08:54:16 +02:00
migration tests/migration: fix unix socket migration 2021-07-14 14:15:52 +01:00
multiboot
perf/block/qcow2
plugin tests/plugins: add instruction matching to libinsn.so 2022-02-09 12:08:42 +00:00
qapi-schema qapi-schema: test: add a unit test for parsing array alternates 2022-04-21 10:11:25 +02:00
qemu-iotests qemu-iotests: inline common.config into common.rc 2022-05-12 15:42:49 +02:00
qtest tests: ensure migration status isn't reported as failed 2022-05-16 11:46:04 +01:00
rocker
tcg tests/tcg/xtensa: fix vectors and checks in timer test 2022-05-06 15:27:40 -07:00
tsan
uefi-test-tools
unit QIOChannel: Add flags on io_writev and introduce io_flush callback 2022-05-16 13:56:24 +01:00
vm tests/vm: update openbsd to release 7.1 2022-05-09 08:21:14 +02:00
vmstate-static-checker-data hw: Replace anti-social QOM type names 2021-03-19 15:18:43 +01:00
check-block.sh tests/qemu-iotests: Move the bash and sanitizer checks to meson.build 2022-04-20 09:46:54 +02:00
dbus-vmstate-daemon.sh
Makefile.include tests/tcg: invoke Makefile.target directly from QEMU's makefile 2022-04-20 16:04:20 +01:00
meson.build meson: create have_vhost_* variables 2022-05-07 07:46:58 +02:00
requirements.txt acceptance tests: bump Avocado version to 88.1 2021-06-01 16:21:21 -04:00
test-qht-par.c
vhost-user-bridge.c Replace qemu_real_host_page variables with inlined functions 2022-04-06 10:50:38 +02:00