[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-commits] [qemu/qemu] 00e3b2: hw/audio/es1370: reset current sample
From: |
Alex Bennée |
Subject: |
[Qemu-commits] [qemu/qemu] 00e3b2: hw/audio/es1370: reset current sample counter |
Date: |
Wed, 11 Oct 2023 10:04:30 -0700 |
Branch: refs/heads/master
Home: https://github.com/qemu/qemu
Commit: 00e3b29d065f3b88bb3726afbd5c73f8b2bff1b4
https://github.com/qemu/qemu/commit/00e3b29d065f3b88bb3726afbd5c73f8b2bff1b4
Author: Volker Rümelin <vr_qemu@t-online.de>
Date: 2023-10-10 (Tue, 10 Oct 2023)
Changed paths:
M hw/audio/es1370.c
Log Message:
-----------
hw/audio/es1370: reset current sample counter
Reset the current sample counter when writing the Channel Sample
Count Register. The Linux ens1370 driver and the AROS sb128
driver expect the current sample counter counts down from sample
count to 0 after a write to the Channel Sample Count Register.
Currently the current sample counter starts from 0 after a reset
or the last count when the counter was stopped.
The current sample counter is used to raise an interrupt whenever
a complete buffer was transferred. When the counter starts with a
value lower than the reload value, the interrupt triggeres before
the buffer was completly transferred. This may lead to corrupted
audio streams.
Tested-by: Rene Engel <ReneEngel80@emailn.de>
Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Tested-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <20230917065813.6692-1-vr_qemu@t-online.de>
Commit: 0116f746d054a87864397fa45267cbcfe0aa89fc
https://github.com/qemu/qemu/commit/0116f746d054a87864397fa45267cbcfe0aa89fc
Author: Volker Rümelin <vr_qemu@t-online.de>
Date: 2023-10-10 (Tue, 10 Oct 2023)
Changed paths:
M hw/audio/es1370.c
M hw/audio/trace-events
Log Message:
-----------
hw/audio/es1370: replace bit-rotted code with tracepoints
It seems that nobody has enabled the debug code of the ES1370
device for a long time. Since then, the code has bit-rotted.
Replace the bit-rotten code with tracepoints.
Tested-by: Rene Engel <ReneEngel80@emailn.de>
Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Tested-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <20230917065813.6692-2-vr_qemu@t-online.de>
Commit: 190514258c337d0763f43ba55363b820a32c1dd7
https://github.com/qemu/qemu/commit/190514258c337d0763f43ba55363b820a32c1dd7
Author: Volker Rümelin <vr_qemu@t-online.de>
Date: 2023-10-10 (Tue, 10 Oct 2023)
Changed paths:
M hw/audio/es1370.c
Log Message:
-----------
hw/audio/es1370: remove unused dolog macro
The dolog macro is unused. Remove the macro and use the now unused
ES1370_VERBOSE macro to replace its inverse ES1370_SILENT macro.
Tested-by: Rene Engel <ReneEngel80@emailn.de>
Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Tested-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <20230917065813.6692-3-vr_qemu@t-online.de>
Commit: 480e4c7abc9cb9e45b32563081841407016ed6aa
https://github.com/qemu/qemu/commit/480e4c7abc9cb9e45b32563081841407016ed6aa
Author: Volker Rümelin <vr_qemu@t-online.de>
Date: 2023-10-10 (Tue, 10 Oct 2023)
Changed paths:
M hw/audio/es1370.c
Log Message:
-----------
hw/audio/es1370: remove #ifdef ES1370_DEBUG to avoid bit rot
Replace the #ifdef ES1370_DEBUG code with code that the compiler
can optimize away to avoid bit rot. While at it, replace strcat()
with pstrcat().
Tested-by: Rene Engel <ReneEngel80@emailn.de>
Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Tested-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <20230917065813.6692-4-vr_qemu@t-online.de>
Commit: a4b342a3318667bb962ca28e2286dc2e53397c7a
https://github.com/qemu/qemu/commit/a4b342a3318667bb962ca28e2286dc2e53397c7a
Author: Volker Rümelin <vr_qemu@t-online.de>
Date: 2023-10-10 (Tue, 10 Oct 2023)
Changed paths:
M hw/audio/es1370.c
Log Message:
-----------
hw/audio/es1370: remove #ifdef ES1370_VERBOSE to avoid bit rot
Replace the #ifdef ES1370_VERBOSE code with code that the compiler
can optimize away to avoid bit rot and fix the already rotten code.
Tested-by: Rene Engel <ReneEngel80@emailn.de>
Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Tested-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <20230917065813.6692-5-vr_qemu@t-online.de>
Commit: 02e7de686ae6d1ac3419e1c5bfc038599c493f4a
https://github.com/qemu/qemu/commit/02e7de686ae6d1ac3419e1c5bfc038599c493f4a
Author: Volker Rümelin <vr_qemu@t-online.de>
Date: 2023-10-10 (Tue, 10 Oct 2023)
Changed paths:
M hw/audio/es1370.c
Log Message:
-----------
hw/audio/es1370: block structure coding style fixes
Change the block structure according to the QEMU Coding Style
documentation.
Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Tested-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <20230917065813.6692-6-vr_qemu@t-online.de>
Commit: ca98851835645f46eaa5b98bbfb307650b42fc64
https://github.com/qemu/qemu/commit/ca98851835645f46eaa5b98bbfb307650b42fc64
Author: Volker Rümelin <vr_qemu@t-online.de>
Date: 2023-10-10 (Tue, 10 Oct 2023)
Changed paths:
M hw/audio/es1370.c
Log Message:
-----------
hw/audio/es1370: change variable type and name
Change the type of the variable temp to size_t to avoid a type
cast. While at it, rename the variable name to to_transfer. This
improves the readability of the code.
Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Tested-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <20230917065813.6692-7-vr_qemu@t-online.de>
Commit: 5bf1a71c5b7b2d1999f65c08b4d82b5dec9f3013
https://github.com/qemu/qemu/commit/5bf1a71c5b7b2d1999f65c08b4d82b5dec9f3013
Author: Volker Rümelin <vr_qemu@t-online.de>
Date: 2023-10-10 (Tue, 10 Oct 2023)
Changed paths:
M hw/audio/es1370.c
M hw/audio/trace-events
Log Message:
-----------
hw/audio/es1370: trace lost interrupts
It turns out that there are drivers which assume that interrupts
can't be lost. E.g. the AROS sb128 driver is such a driver. Add
a lost interrupt tracepoint to debug this kind of issues.
Signed-off-by: Volker Rümelin <vr_qemu@t-online.de>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Tested-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <20230917065813.6692-8-vr_qemu@t-online.de>
Commit: 404b78446aedbc660f41f7737bef3e8b1ec7d90d
https://github.com/qemu/qemu/commit/404b78446aedbc660f41f7737bef3e8b1ec7d90d
Author: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M tests/avocado/machine_aarch64_sbsaref.py
Log Message:
-----------
tests/avocado: update firmware to enable OpenBSD test on sbsa-ref
Update prebuilt firmware images:
- Neoverse V1/N2 cpu support
- non-secure EL2 virtual timer
- XHCI controller in DSDT
With those changes we can now run OpenBSD as part of sbsa-ref tests.
Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
Message-Id: <20230927120050.210187-2-marcin.juszkiewicz@linaro.org>
[AJB: fix whitespace and longline]
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-2-alex.bennee@linaro.org>
Commit: a956ea5b3473cfbaf90a8525ec78dd9c62fd8e03
https://github.com/qemu/qemu/commit/a956ea5b3473cfbaf90a8525ec78dd9c62fd8e03
Author: Alex Bennée <alex.bennee@linaro.org>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M tests/avocado/machine_aarch64_sbsaref.py
Log Message:
-----------
tests/avocado: remove flaky test marking for test_sbsaref_edk2_firmware
After testing locally I decided to revert a5754847e0 (tests/avocado: Disable the
test_sbsaref_edk2_firmware by default) as the test seems pretty
stable:
env QEMU_TEST_FLAKY_TESTS=1 retry.py -n 50 -c -- \
./tests/venv/bin/avocado run \
./tests/avocado/machine_aarch64_sbsaref.py:Aarch64SbsarefMachine.test_sbsaref_edk2_firmware
yields:
Results summary:
0: 50 times (100.00%), avg time 2.064 (0.04 varience/0.19 deviation)
Ran command 50 times, 50 passes
Maybe f0ec14c78c (tests/avocado: Fix console data loss) has made it
more reliable?
Cc: Thomas Huth <thuth@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-3-alex.bennee@linaro.org>
Commit: 3e3df0d84f8e23c56d64eef802c79d3de383b62f
https://github.com/qemu/qemu/commit/3e3df0d84f8e23c56d64eef802c79d3de383b62f
Author: Alex Bennée <alex.bennee@linaro.org>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M .gitlab-ci.d/cirrus/macos-12.vars
M tests/docker/dockerfiles/alpine.docker
M tests/docker/dockerfiles/centos8.docker
M tests/docker/dockerfiles/debian-amd64-cross.docker
M tests/docker/dockerfiles/debian-amd64.docker
M tests/docker/dockerfiles/debian-arm64-cross.docker
M tests/docker/dockerfiles/debian-armhf-cross.docker
M tests/docker/dockerfiles/debian-ppc64el-cross.docker
M tests/docker/dockerfiles/debian-s390x-cross.docker
M tests/docker/dockerfiles/fedora-win32-cross.docker
M tests/docker/dockerfiles/fedora-win64-cross.docker
M tests/docker/dockerfiles/fedora.docker
M tests/docker/dockerfiles/opensuse-leap.docker
M tests/docker/dockerfiles/ubuntu2204.docker
M tests/lcitool/libvirt-ci
M tests/lcitool/projects/qemu.yml
Log Message:
-----------
tests/lcitool: add swtpm to the package list
We need this to test some TPM stuff.
Reviewed-by: "Daniel P. Berrangé" <berrange@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-4-alex.bennee@linaro.org>
Commit: 78ebc00b068131d2e3c0f8e66c0ded3fadb248d0
https://github.com/qemu/qemu/commit/78ebc00b068131d2e3c0f8e66c0ded3fadb248d0
Author: Alex Bennée <alex.bennee@linaro.org>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M .gitlab-ci.d/buildtest.yml
Log Message:
-----------
gitlab: shuffle some targets and reduce avocado noise
We move a couple of targets out of the avocado runs because there are
no tests to run. Tricore already has some coverage. The cris target
only really has check-tcg tests but its getting harder to find
anything that packages the compiler.
To reduce the noise of CANCEL messages we also set AVOCADO_TAGS
appropriately so we filter down the number of tests we attempt.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-5-alex.bennee@linaro.org>
Commit: c6919250921c4794f4029bfe3f9f1c5263328899
https://github.com/qemu/qemu/commit/c6919250921c4794f4029bfe3f9f1c5263328899
Author: Alex Bennée <alex.bennee@linaro.org>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M configure
M tests/docker/Makefile.include
Log Message:
-----------
tests/docker: make docker engine choice entirely configure driven
Since 0b1a649047 (tests/docker: use direct RUNC call to build
containers) we ended up with the potential for the remaining docker.py
script calls to deviate from the direct RUNC calls. Fix this by
dropping the use of ENGINE in the makefile and rely entirely on what
we detect at configure time.
We also tweak the RUNC detection so podman users can still run things
from the source tree.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20231009164104.369749-6-alex.bennee@linaro.org>
Commit: 42ede11aeeb1c87e8121bbaafa3aa7b242e99a25
https://github.com/qemu/qemu/commit/42ede11aeeb1c87e8121bbaafa3aa7b242e99a25
Author: Alex Bennée <alex.bennee@linaro.org>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M configure
Log Message:
-----------
configure: allow user to override docker engine
If you have both engines installed but one is broken you are stuck
with the automagic. Allow the user to override the engine for this
case.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20231009164104.369749-7-alex.bennee@linaro.org>
Commit: e0f8951235b991eaa7a0e617976848b88d84c360
https://github.com/qemu/qemu/commit/e0f8951235b991eaa7a0e617976848b88d84c360
Author: Alex Bennée <alex.bennee@linaro.org>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M configure
Log Message:
-----------
configure: remove gcc version suffixes
The modern packaging of cross GCC's doesn't need the explicit version
number at the end.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-8-alex.bennee@linaro.org>
Commit: af2e06c9f122a3bb83d11df85d21257808c414cb
https://github.com/qemu/qemu/commit/af2e06c9f122a3bb83d11df85d21257808c414cb
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M gdbstub/system.c
Log Message:
-----------
gdbstub: Fix target_xml initialization
target_xml is no longer a fixed-length array but a pointer to a
variable-length memory.
Fixes: 56e534bd11 ("gdbstub: refactor get_feature_xml")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20230912224107.29669-2-akihiko.odaki@daynix.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-9-alex.bennee@linaro.org>
Commit: 5d1ab242067cdff30a8fc875933b14e21bb53308
https://github.com/qemu/qemu/commit/5d1ab242067cdff30a8fc875933b14e21bb53308
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M gdbstub/gdbstub.c
Log Message:
-----------
gdbstub: Fix target.xml response
It was failing to return target.xml after the first request.
Fixes: 56e534bd11 ("gdbstub: refactor get_feature_xml")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-Id: <20230912224107.29669-3-akihiko.odaki@daynix.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-10-alex.bennee@linaro.org>
Commit: fb13735ab418ef8a5f86a5fd6b056bdbafed0daa
https://github.com/qemu/qemu/commit/fb13735ab418ef8a5f86a5fd6b056bdbafed0daa
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M plugins/core.c
Log Message:
-----------
plugins: Check if vCPU is realized
The created member of CPUState tells if the vCPU thread is started, and
will be always false for the user space emulation that manages threads
independently. Use the realized member of DeviceState, which is valid
for both of the system and user space emulation.
Fixes: 54cb65d858 ("plugin: add core code")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-Id: <20230912224107.29669-4-akihiko.odaki@daynix.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-11-alex.bennee@linaro.org>
Commit: 1063693e1c503517a489e38fca489525eaea26c1
https://github.com/qemu/qemu/commit/1063693e1c503517a489e38fca489525eaea26c1
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M contrib/plugins/execlog.c
Log Message:
-----------
contrib/plugins: Use GRWLock in execlog
execlog had the following comment:
> As we could have multiple threads trying to do this we need to
> serialise the expansion under a lock. Threads accessing already
> created entries can continue without issue even if the ptr array
> gets reallocated during resize.
However, when the ptr array gets reallocated, the other threads may have
a stale reference to the old buffer. This results in use-after-free.
Use GRWLock to properly fix this issue.
Fixes: 3d7caf145e ("contrib/plugins: add execlog to log instruction execution
and memory access")
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20230912224107.29669-5-akihiko.odaki@daynix.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-12-alex.bennee@linaro.org>
Commit: 956af7daad5a97ca20f8e24d0f4d91a8fca650ad
https://github.com/qemu/qemu/commit/956af7daad5a97ca20f8e24d0f4d91a8fca650ad
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M MAINTAINERS
M gdbstub/gdbstub.c
M include/exec/gdbstub.h
M meson.build
A scripts/feature_to_c.py
R scripts/feature_to_c.sh
M stubs/gdbstub.c
Log Message:
-----------
gdbstub: Introduce GDBFeature structure
Before this change, the information from a XML file was stored in an
array that is not descriptive. Introduce a dedicated structure type to
make it easier to understand and to extend with more fields.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230912224107.29669-6-akihiko.odaki@daynix.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-13-alex.bennee@linaro.org>
Commit: 48de6462809587a2165260b4daa8e6477fbd7b75
https://github.com/qemu/qemu/commit/48de6462809587a2165260b4daa8e6477fbd7b75
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M target/arm/cpu.c
Log Message:
-----------
target/arm: Move the reference to arm-core.xml
Some subclasses overwrite gdb_core_xml_file member but others don't.
Always initialize the member in the subclasses for consistency.
This especially helps for AArch64; in a following change, the file
specified by gdb_core_xml_file is always looked up even if it's going to
be overwritten later. Looking up arm-core.xml results in an error as
it will not be embedded in the AArch64 build.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230912224107.29669-7-akihiko.odaki@daynix.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-14-alex.bennee@linaro.org>
Commit: a650683871ba728ebce3d320941f48bac91f0f6a
https://github.com/qemu/qemu/commit/a650683871ba728ebce3d320941f48bac91f0f6a
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M gdbstub/gdbstub.c
M include/hw/core/cpu.h
M target/arm/cpu.c
M target/arm/cpu64.c
M target/i386/cpu.c
M target/loongarch/cpu.c
M target/ppc/gdbstub.c
M target/ppc/internal.h
M target/riscv/cpu.c
M target/s390x/cpu.c
M target/tricore/cpu.c
Log Message:
-----------
hw/core/cpu: Return static value with gdb_arch_name()
All implementations of gdb_arch_name() returns dynamic duplicates of
static strings. It's also unlikely that there will be an implementation
of gdb_arch_name() that returns a truly dynamic value due to the nature
of the function returning a well-known identifiers. Qualify the value
gdb_arch_name() with const and make all of its implementations return
static strings.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20230912224107.29669-8-akihiko.odaki@daynix.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-15-alex.bennee@linaro.org>
Commit: 6d8f77a6a152c1c64c5ee79e31fe3510b020cd0e
https://github.com/qemu/qemu/commit/6d8f77a6a152c1c64c5ee79e31fe3510b020cd0e
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M gdbstub/gdbstub.c
Log Message:
-----------
gdbstub: Use g_markup_printf_escaped()
g_markup_printf_escaped() is a safer alternative to simple printf() as
it automatically escapes values.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-Id: <20230912224107.29669-9-akihiko.odaki@daynix.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-16-alex.bennee@linaro.org>
Commit: dd2f7e2974b1cefe00cb5077ae58134ef973070d
https://github.com/qemu/qemu/commit/dd2f7e2974b1cefe00cb5077ae58134ef973070d
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M target/arm/gdbstub.c
Log Message:
-----------
target/arm: Remove references to gdb_has_xml
GDB has XML support since 6.7 which was released in 2007.
It's time to remove support for old GDB versions without XML support.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Acked-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20230912224107.29669-10-akihiko.odaki@daynix.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-17-alex.bennee@linaro.org>
Commit: 8e6d3ea2f5163e12baf86692b1fb1de2fea66625
https://github.com/qemu/qemu/commit/8e6d3ea2f5163e12baf86692b1fb1de2fea66625
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M target/ppc/gdbstub.c
Log Message:
-----------
target/ppc: Remove references to gdb_has_xml
GDB has XML support since 6.7 which was released in 2007.
It's time to remove support for old GDB versions without XML support.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-Id: <20230912224107.29669-11-akihiko.odaki@daynix.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-18-alex.bennee@linaro.org>
Commit: 213316d401e72b218d8edd9b88d72df6ecf0cc49
https://github.com/qemu/qemu/commit/213316d401e72b218d8edd9b88d72df6ecf0cc49
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M gdbstub/gdbstub.c
M gdbstub/internals.h
M include/exec/gdbstub.h
Log Message:
-----------
gdbstub: Remove gdb_has_xml variable
GDB has XML support since 6.7 which was released in 2007.
It's time to remove support for old GDB versions without XML support.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20230912224107.29669-12-akihiko.odaki@daynix.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-19-alex.bennee@linaro.org>
Commit: 73c392c26b0c96eb07272ea21cc0062ce534b6a3
https://github.com/qemu/qemu/commit/73c392c26b0c96eb07272ea21cc0062ce534b6a3
Author: Akihiko Odaki <akihiko.odaki@daynix.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M gdbstub/gdbstub.c
M include/hw/core/cpu.h
Log Message:
-----------
gdbstub: Replace gdb_regs with an array
An array is a more appropriate data structure than a list for gdb_regs
since it is initialized only with append operation and read-only after
initialization.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20230912224107.29669-13-akihiko.odaki@daynix.com>
[AJB: fixed a checkpatch violation]
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-20-alex.bennee@linaro.org>
Commit: 28a4f0bacf62f10c6f258c753df1f5d04cd17bd8
https://github.com/qemu/qemu/commit/28a4f0bacf62f10c6f258c753df1f5d04cd17bd8
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M accel/tcg/translator.c
M include/exec/translator.h
Log Message:
-----------
accel/tcg: Add plugin_enabled to DisasContextBase
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230824181233.1568795-2-richard.henderson@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-21-alex.bennee@linaro.org>
Commit: 4f9ef4eebcc366fee20cce55aac659c6913bbf49
https://github.com/qemu/qemu/commit/4f9ef4eebcc366fee20cce55aac659c6913bbf49
Author: Richard Henderson <richard.henderson@linaro.org>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M target/sh4/translate.c
Log Message:
-----------
target/sh4: Disable decode_gusa when plugins enabled
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230824181233.1568795-3-richard.henderson@linaro.org>
[AJB: fixed s/cpu_env/tcg_env/ during re-base]
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-22-alex.bennee@linaro.org>
Commit: a392277dcf00e7bf6f7a0ecc9075ea154532c436
https://github.com/qemu/qemu/commit/a392277dcf00e7bf6f7a0ecc9075ea154532c436
Author: Matt Borgerson <contact@mborgerson.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M accel/tcg/plugin-gen.c
M accel/tcg/translator.c
M include/exec/plugin-gen.h
Log Message:
-----------
plugins: Set final instruction count in plugin_gen_tb_end
Translation logic may partially decode an instruction, then abort and
remove the instruction from the TB. This can happen for example when an
instruction spans two pages. In this case, plugins may get an incorrect
result when calling qemu_plugin_tb_n_insns to query for the number of
instructions in the TB. This patch updates plugin_gen_tb_end to set the
final instruction count.
Signed-off-by: Matt Borgerson <contact@mborgerson.com>
[AJB: added g_assert to defed API]
Message-Id: <CADc=-s5RwGViNTR-h5cq3np673W3RRFfhr4vCGJp0EoDUxvhog@mail.gmail.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-23-alex.bennee@linaro.org>
Commit: 60cb16c0d87ae0939f4c53c2444a168fdf790a44
https://github.com/qemu/qemu/commit/60cb16c0d87ae0939f4c53c2444a168fdf790a44
Author: Alex Bennée <alex.bennee@linaro.org>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M contrib/plugins/cache.c
Log Message:
-----------
contrib/plugins: fix coverity warning in cache
Coverity complains that appends_stats_line can be fed a 0 leading
to the undefined behaviour of a divide by 0.
Fixes: CID 1519044
Fixes: CID 1519047
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-24-alex.bennee@linaro.org>
Commit: ec7ee95db90984509bb0824d62d1272f53cbec19
https://github.com/qemu/qemu/commit/ec7ee95db90984509bb0824d62d1272f53cbec19
Author: Alex Bennée <alex.bennee@linaro.org>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M contrib/plugins/lockstep.c
Log Message:
-----------
contrib/plugins: fix coverity warning in lockstep
Coverity complains that e don't check for a truncation when copying in
the path. Bail if we can't copy the whole path into sockaddr.
Fixes: CID 1519045
Fixes: CID 1519046
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-25-alex.bennee@linaro.org>
Commit: 5b982f3bdeee8f0b2215d53012fea4da7c558cc6
https://github.com/qemu/qemu/commit/5b982f3bdeee8f0b2215d53012fea4da7c558cc6
Author: Alex Bennée <alex.bennee@linaro.org>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M contrib/plugins/hotblocks.c
Log Message:
-----------
contrib/plugins: fix coverity warning in hotblocks
Coverity complains that we have an unbalance use of mutex leading to
potential deadlocks.
Fixes: CID 1519048
Fixes: a208ba09bd ("tests/plugin: add a hotblocks plugin")
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20231009164104.369749-26-alex.bennee@linaro.org>
Commit: 86dec715a7339fc61c3bdb9715993b277b2089db
https://github.com/qemu/qemu/commit/86dec715a7339fc61c3bdb9715993b277b2089db
Author: Peter Xu <peterx@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/options.c
Log Message:
-----------
migration/qmp: Fix crash on setting tls-authz with null
QEMU will crash if anyone tries to set tls-authz (which is a type
StrOrNull) with 'null' value. Fix it in the easy way by converting it to
qstring just like the other two tls parameters.
Cc: qemu-stable@nongnu.org # v4.0+
Fixes: d2f1d29b95 ("migration: add support for a "tls-authz" migration
parameter")
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230905162335.235619-2-peterx@redhat.com>
Commit: 9d47929034eb8f3e67411926bdd1e8246d2797ed
https://github.com/qemu/qemu/commit/9d47929034eb8f3e67411926bdd1e8246d2797ed
Author: Fabiano Rosas <farosas@suse.de>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M tests/qtest/migration-helpers.c
M tests/qtest/migration-helpers.h
M tests/qtest/migration-test.c
Log Message:
-----------
tests/qtest: migration: Expose migrate_set_capability
The following patch will make use of this function from within
migrate-helpers.c, so move it there.
Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230712190742.22294-2-farosas@suse.de>
Commit: 28fa97e00698eecc9a7f7eeca43ccbdee3d33b3e
https://github.com/qemu/qemu/commit/28fa97e00698eecc9a7f7eeca43ccbdee3d33b3e
Author: Fabiano Rosas <farosas@suse.de>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M tests/qtest/migration-helpers.c
M tests/qtest/migration-helpers.h
Log Message:
-----------
tests/qtest: migration: Add migrate_incoming_qmp helper
file-based migration requires the target to initiate its migration after
the source has finished writing out the data in the file. Currently
there's no easy way to initiate 'migrate-incoming', allow this by
introducing migrate_incoming_qmp helper, similarly to migrate_qmp.
Also make sure migration events are enabled and wait for the incoming
migration to start before returning. This avoid a race when querying
the migration status too soon after issuing the command.
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230712190742.22294-3-farosas@suse.de>
Commit: 6830e53b4bd96fe00b72730a3546c5b65ea840a6
https://github.com/qemu/qemu/commit/6830e53b4bd96fe00b72730a3546c5b65ea840a6
Author: Fabiano Rosas <farosas@suse.de>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M tests/qtest/meson.build
M tests/qtest/migration-test.c
M tests/qtest/virtio-net-failover.c
Log Message:
-----------
tests/qtest: migration: Use migrate_incoming_qmp where appropriate
Use the new migrate_incoming_qmp helper in the places that currently
open-code calling migrate-incoming.
Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230712190742.22294-4-farosas@suse.de>
Commit: 4111a732e80894256c9053577f0e9369eeea807b
https://github.com/qemu/qemu/commit/4111a732e80894256c9053577f0e9369eeea807b
Author: Fabiano Rosas <farosas@suse.de>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/migration.c
Log Message:
-----------
migration: Set migration status early in incoming side
We are sending a migration event of MIGRATION_STATUS_SETUP at
qemu_start_incoming_migration but never actually setting the state.
This creates a window between qmp_migrate_incoming and
process_incoming_migration_co where the migration status is still
MIGRATION_STATUS_NONE. Calling query-migrate during this time will
return an empty response even though the incoming migration command
has already been issued.
Commit 7cf1fe6d68 ("migration: Add migration events on target side")
has added support to the 'events' capability to the incoming part of
migration, but chose to send the SETUP event without setting the
state. I'm assuming this was a mistake.
This introduces a change in behavior, any QMP client waiting for the
SETUP event will hang, unless it has previously enabled the 'events'
capability. Having the capability enabled is sufficient to continue to
receive the event.
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230712190742.22294-5-farosas@suse.de>
Commit: 5274274c262edc6738ddc5c590dc0a08dd1090b1
https://github.com/qemu/qemu/commit/5274274c262edc6738ddc5c590dc0a08dd1090b1
Author: Fabiano Rosas <farosas@suse.de>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M tests/qtest/libqtest.c
M tests/qtest/libqtest.h
M tests/qtest/migration-helpers.c
M tests/qtest/migration-helpers.h
M tests/qtest/migration-test.c
Log Message:
-----------
tests/qtest: migration: Add support for negative testing of qmp_migrate
There is currently no way to write a test for errors that happened in
qmp_migrate before the migration has started.
Add a version of qmp_migrate that ensures an error happens. To make
use of it a test needs to set MigrateCommon.result as
MIG_TEST_QMP_ERROR.
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230712190742.22294-6-farosas@suse.de>
Commit: 0e99bb8f54418231baa084f1d8270e7500e48245
https://github.com/qemu/qemu/commit/0e99bb8f54418231baa084f1d8270e7500e48245
Author: Peter Xu <peterx@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/savevm.c
Log Message:
-----------
migration: Allow RECOVER->PAUSED convertion for dest qemu
There's a bug on dest that if a double fault triggered on dest qemu (a
network issue during postcopy-recover), we won't set PAUSED correctly
because we assumed we always came from ACTIVE.
Fix that by always overwriting the state to PAUSE.
We could also check for these two states, but maybe it's an overkill. We
did the same on the src QEMU to unconditionally switch to PAUSE anyway.
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231004220240.167175-10-peterx@redhat.com>
Commit: b72eacf3c014ba7cbccee57a791589822e175580
https://github.com/qemu/qemu/commit/b72eacf3c014ba7cbccee57a791589822e175580
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Clean up qemu_rdma_poll()'s return type
qemu_rdma_poll()'s return type is uint64_t, even though it returns 0,
-1, or @ret, which is int. Its callers assign the return value to int
variables, then check whether it's negative. Unclean.
Return int instead.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-2-armbru@redhat.com>
Commit: c07d19622ce5ece8097c393ad5974f0ecea50185
https://github.com/qemu/qemu/commit/c07d19622ce5ece8097c393ad5974f0ecea50185
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Clean up qemu_rdma_data_init()'s return type
qemu_rdma_data_init() return type is void *. It actually returns
RDMAContext *, and all its callers assign the value to an
RDMAContext *. Unclean.
Return RDMAContext * instead.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-3-armbru@redhat.com>
Commit: 1720a2a8758431810a1d7bdb51780d87bb55b4b4
https://github.com/qemu/qemu/commit/1720a2a8758431810a1d7bdb51780d87bb55b4b4
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Clean up rdma_delete_block()'s return type
rdma_delete_block() always returns 0, which its only caller ignores.
Return void instead.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-4-armbru@redhat.com>
Commit: b5631d5bda04b8653c9232682bebad9584c9857c
https://github.com/qemu/qemu/commit/b5631d5bda04b8653c9232682bebad9584c9857c
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
M migration/trace-events
Log Message:
-----------
migration/rdma: Drop fragile wr_id formatting
wrid_desc[] uses 4001 pointers to map four integer values to strings.
print_wrid() accesses wrid_desc[] out of bounds when passed a negative
argument. It returns null for values 2..1999 and 2001..3999.
qemu_rdma_poll() and qemu_rdma_block_for_wrid() print wrid_desc[wr_id]
and passes print_wrid(wr_id) to tracepoints. Could conceivably crash
trying to format a null string. I believe access out of bounds is not
possible.
Not worth cleaning up. Dumb down to show just numeric wr_id.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-5-armbru@redhat.com>
Commit: 87a24ca3f2054d1b3268ceb141751a1fff32cc9c
https://github.com/qemu/qemu/commit/87a24ca3f2054d1b3268ceb141751a1fff32cc9c
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
M migration/trace-events
Log Message:
-----------
migration/rdma: Consistently use uint64_t for work request IDs
We use int instead of uint64_t in a few places. Change them to
uint64_t.
This cleans up a comparison of signed qemu_rdma_block_for_wrid()
parameter @wrid_requested with unsigned @wr_id. Harmless, because the
actual arguments are non-negative enumeration constants.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-6-armbru@redhat.com>
Commit: 25352b371b37b038d50b75ec0a3557e77f1d74e3
https://github.com/qemu/qemu/commit/25352b371b37b038d50b75ec0a3557e77f1d74e3
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Fix unwanted integer truncation
qio_channel_rdma_readv() assigns the size_t value of qemu_rdma_fill()
to an int variable before it adds it to @done / subtracts it from
@want, both size_t. Truncation when qemu_rdma_fill() copies more than
INT_MAX bytes. Seems vanishingly unlikely, but needs fixing all the
same.
Fixes: 6ddd2d76ca6f (migration: convert RDMA to use QIOChannel interface)
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-7-armbru@redhat.com>
Commit: 8ff58b05a3f6294731b9defb1d821e2f8703c8f1
https://github.com/qemu/qemu/commit/8ff58b05a3f6294731b9defb1d821e2f8703c8f1
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Clean up two more harmless signed vs. unsigned issues
qemu_rdma_exchange_get_response() compares int parameter @expecting
with uint32_t head->type. Actual arguments are non-negative
enumeration constants, RDMAControlHeader uint32_t member type, or
qemu_rdma_exchange_recv() int parameter expecting. Actual arguments
for the latter are non-negative enumeration constants. Change both
parameters to uint32_t.
In qio_channel_rdma_readv(), loop control variable @i is ssize_t, and
counts from 0 up to @niov, which is size_t. Change @i to size_t.
While there, make qio_channel_rdma_readv() and
qio_channel_rdma_writev() more consistent: change the former's @done
to ssize_t, and delete the latter's useless initialization of @len.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-8-armbru@redhat.com>
Commit: 36cc822d857ddf151a32a9f6fe851209ef4f089d
https://github.com/qemu/qemu/commit/36cc822d857ddf151a32a9f6fe851209ef4f089d
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Give qio_channel_rdma_source_funcs internal linkage
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-9-armbru@redhat.com>
Commit: 9a6afb11705b5bd6332289d226fae783ffcc0e1d
https://github.com/qemu/qemu/commit/9a6afb11705b5bd6332289d226fae783ffcc0e1d
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Fix qemu_rdma_accept() to return failure on errors
qemu_rdma_accept() returns 0 in some cases even when it didn't
complete its job due to errors. Impact is not obvious. I figure the
caller will soon fail again with a misleading error message.
Fix it to return -1 on any failure.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-10-armbru@redhat.com>
Commit: 3c03f21cb5ee0ded870987ea32217297f639afa0
https://github.com/qemu/qemu/commit/3c03f21cb5ee0ded870987ea32217297f639afa0
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Put @errp parameter last
include/qapi/error.h demands:
* - Functions that use Error to report errors have an Error **errp
* parameter. It should be the last parameter, except for functions
* taking variable arguments.
qemu_rdma_connect() does not conform. Clean it up.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-11-armbru@redhat.com>
Commit: b16defbbfe3ffe9601edda4f7886a295dea8f408
https://github.com/qemu/qemu/commit/b16defbbfe3ffe9601edda4f7886a295dea8f408
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Eliminate error_propagate()
When all we do with an Error we receive into a local variable is
propagating to somewhere else, we can just as well receive it there
right away.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-12-armbru@redhat.com>
Commit: 0610d7a1d84f97e764474f5f5b65019640f73f4f
https://github.com/qemu/qemu/commit/0610d7a1d84f97e764474f5f5b65019640f73f4f
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Drop rdma_add_block() error handling
rdma_add_block() can't fail. Return void, and drop the unreachable
error handling.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-13-armbru@redhat.com>
Commit: 87e6bdabf033b681370d634226f1416bfcd9478a
https://github.com/qemu/qemu/commit/87e6bdabf033b681370d634226f1416bfcd9478a
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Drop qemu_rdma_search_ram_block() error handling
qemu_rdma_search_ram_block() can't fail. Return void, and drop the
unreachable error handling.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-14-armbru@redhat.com>
Commit: 6a3792d78dab35002120cd5aa468103c38cf9590
https://github.com/qemu/qemu/commit/6a3792d78dab35002120cd5aa468103c38cf9590
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Make qemu_rdma_buffer_mergeable() return bool
qemu_rdma_buffer_mergeable() is semantically a predicate. It returns
int 0 or 1. Return bool instead, and fix the function name's
spelling.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-15-armbru@redhat.com>
Commit: 89997ac31839cde1746bf5d8d830e1d2db595e98
https://github.com/qemu/qemu/commit/89997ac31839cde1746bf5d8d830e1d2db595e98
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Use bool for two RDMAContext flags
@error_reported and @received_error are flags. The latter is even
assigned bool true. Change them from int to bool.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-16-armbru@redhat.com>
Commit: 0bc2604508462184fa0ffb9a6c62c6f9a40a428d
https://github.com/qemu/qemu/commit/0bc2604508462184fa0ffb9a6c62c6f9a40a428d
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Fix or document problematic uses of errno
We use errno after calling Libibverbs functions that are not
documented to set errno (manual page does not mention errno), or where
the documentation is unclear ("returns [...] the value of errno on
failure"). While this could be read as "sets errno and returns it",
a glance at the source code[*] kills that hope:
static inline int ibv_post_send(struct ibv_qp *qp, struct ibv_send_wr *wr,
struct ibv_send_wr **bad_wr)
{
return qp->context->ops.post_send(qp, wr, bad_wr);
}
The callback can be
static int mana_post_send(struct ibv_qp *ibqp, struct ibv_send_wr *wr,
struct ibv_send_wr **bad)
{
/* This version of driver supports RAW QP only.
* Posting WR is done directly in the application.
*/
return EOPNOTSUPP;
}
Neither of them touches errno.
One of these errno uses is easy to fix, so do that now. Several more
will go away later in the series; add temporary FIXME commments.
Three will remain; add TODO comments. TODO, not FIXME, because the
bug might be in Libibverbs documentation.
[*] https://github.com/linux-rdma/rdma-core.git
commit 55fa316b4b18f258d8ac1ceb4aa5a7a35b094dcf
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-17-armbru@redhat.com>
Commit: 1b6e1da6e7505f9b152ca2d0be2059eeb7e55708
https://github.com/qemu/qemu/commit/1b6e1da6e7505f9b152ca2d0be2059eeb7e55708
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Ditch useless numeric error codes in error messages
Several error messages include numeric error codes returned by failed
functions:
* ibv_poll_cq() returns an unspecified negative value. Useless.
* rdma_accept and rdma_get_cm_event() return -1. Useless.
* qemu_rdma_poll() returns either -1 or an unspecified negative
value. Useless.
* qemu_rdma_block_for_wrid(), qemu_rdma_write_flush(),
qemu_rdma_exchange_send(), qemu_rdma_exchange_recv(),
qemu_rdma_write() return a negative value that may or may not be an
errno value. While reporting human-readable errno
information (which a number is not) can be useful, reporting an
error code that may or may not be an errno value is useless.
Drop these error codes from the error messages.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-18-armbru@redhat.com>
Commit: 8e262e0b3d41ade37354cf9fa28bcbba2e273caf
https://github.com/qemu/qemu/commit/8e262e0b3d41ade37354cf9fa28bcbba2e273caf
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Fix io_writev(), io_readv() methods to obey contract
QIOChannelClass methods qio_channel_rdma_readv() and
qio_channel_rdma_writev() violate their method contract when
rdma->error_state is non-zero:
1. They return whatever is in rdma->error_state then. Only -1 will be
fine. -2 will be misinterpreted as "would block". Anything less
than -2 isn't defined in the contract. A positive value would be
misinterpreted as success, but I believe that's not actually
possible.
2. They neglect to set an error then. If something up the call stack
dereferences the error when failure is returned, it will crash. If
it ignores the return value and checks the error instead, it will
miss the error.
Crap like this happens when return statements hide in macros,
especially when their uses are far away from the definition.
I elected not to investigate how callers are impacted.
Expand the two bad macro uses, so we can set an error and return -1.
The next commit will then get rid of the macro altogether.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-19-armbru@redhat.com>
Commit: de3e05e8b9c21dd70c34b744d1b14ec5f5707512
https://github.com/qemu/qemu/commit/de3e05e8b9c21dd70c34b744d1b14ec5f5707512
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Replace dangerous macro CHECK_ERROR_STATE()
Hiding return statements in macros is a bad idea. Use a function
instead, and open code the return part.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-20-armbru@redhat.com>
Commit: 142bd685ae10e1354b579a92db02c473f57080f0
https://github.com/qemu/qemu/commit/142bd685ae10e1354b579a92db02c473f57080f0
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Fix qemu_rdma_broken_ipv6_kernel() to set error
qemu_rdma_resolve_host() and qemu_rdma_dest_init() try addresses until
they find on that works. If none works, they return the first Error
set by qemu_rdma_broken_ipv6_kernel(), or else return a generic one.
qemu_rdma_broken_ipv6_kernel() neglects to set an Error when
ibv_open_device() fails. If a later address fails differently, we use
that Error instead, or else the generic one. Harmless enough, but
needs fixing all the same.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-21-armbru@redhat.com>
Commit: f35c0d9b0773e3ad143eeaf8d7ef3d4ce85a7e7f
https://github.com/qemu/qemu/commit/f35c0d9b0773e3ad143eeaf8d7ef3d4ce85a7e7f
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Fix qemu_get_cm_event_timeout() to always set error
qemu_get_cm_event_timeout() neglects to set an error when it fails
because rdma_get_cm_event() fails. Harmless, as its caller
qemu_rdma_connect() substitutes a generic error then. Fix it anyway.
qemu_rdma_connect() also sets the generic error when its own call of
rdma_get_cm_event() fails. Make the error handling more obvious: set
a specific error right after rdma_get_cm_event() fails. Delete the
generic error.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-22-armbru@redhat.com>
Commit: d63f4016b1d154e9ab62e849e6fbb6ded344bcb2
https://github.com/qemu/qemu/commit/d63f4016b1d154e9ab62e849e6fbb6ded344bcb2
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Drop dead qemu_rdma_data_init() code for !@host_port
qemu_rdma_data_init() neglects to set an Error when it fails because
@host_port is null. Fortunately, no caller passes null, so this is
merely a latent bug. Drop the flawed code handling null argument.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-23-armbru@redhat.com>
Commit: 0110c6b86a828c9c2f42fbed4fc0da30ad7bf6eb
https://github.com/qemu/qemu/commit/0110c6b86a828c9c2f42fbed4fc0da30ad7bf6eb
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Fix QEMUFileHooks method return values
The QEMUFileHooks methods don't come with a written contract. Digging
through the code calling them, we find:
* save_page():
Negative values RAM_SAVE_CONTROL_DELAYED and
RAM_SAVE_CONTROL_NOT_SUPP are special. Any other negative value is
an unspecified error.
qemu_rdma_save_page() returns -EIO or rdma->error_state on error. I
believe the latter is always negative. Nothing stops either of them
to clash with the special values, though. Feels unlikely, but fix
it anyway to return only the special values and -1.
* before_ram_iterate(), after_ram_iterate():
Negative value means error. qemu_rdma_registration_start() and
qemu_rdma_registration_stop() comply as far as I can tell. Make
them comply *obviously*, by returning -1 on error.
* hook_ram_load:
Negative value means error. rdma_load_hook() already returns -1 on
error. Leave it alone.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-24-armbru@redhat.com>
Commit: 07249822212ec56484ecfb5594d2ec94c84961fa
https://github.com/qemu/qemu/commit/07249822212ec56484ecfb5594d2ec94c84961fa
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Fix rdma_getaddrinfo() error checking
rdma_getaddrinfo() returns 0 on success. On error, it returns one of
the EAI_ error codes like getaddrinfo() does, or -1 with errno set.
This is broken by design: POSIX implicitly specifies the EAI_ error
codes to be non-zero, no more. They could clash with -1. Nothing we
can do about this design flaw.
Both callers of rdma_getaddrinfo() only recognize negative values as
error. Works only because systems elect to make the EAI_ error codes
negative.
Best not to rely on that: change the callers to treat any non-zero
value as failure. Also change them to return -1 instead of the value
received from getaddrinfo() on failure, to avoid positive error
values.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-25-armbru@redhat.com>
Commit: 8c6513f75048e6cc55d9e6db2c2e0e7b02a166bc
https://github.com/qemu/qemu/commit/8c6513f75048e6cc55d9e6db2c2e0e7b02a166bc
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Return -1 instead of negative errno code
Several functions return negative errno codes on failure. Callers
check for specific codes exactly never. For some of the functions,
callers couldn't check even if they wanted to, because the functions
also return negative values that aren't errno codes, leaving readers
confused on what the function actually returns.
Clean up and simplify: return -1 instead of negative errno code.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-26-armbru@redhat.com>
Commit: ec486974539d84bf04bc65dfda1844accfcb6c28
https://github.com/qemu/qemu/commit/ec486974539d84bf04bc65dfda1844accfcb6c28
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Dumb down remaining int error values to -1
This is just to make the error value more obvious. Callers don't
mind.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-27-armbru@redhat.com>
Commit: b86c94a49ea54653015edcc5f32603abbf2aa556
https://github.com/qemu/qemu/commit/b86c94a49ea54653015edcc5f32603abbf2aa556
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Replace int error_state by bool errored
All we do with the value of RDMAContext member @error_state is test
whether it's zero. Change to bool and rename to @errored.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-28-armbru@redhat.com>
Commit: c0d77702d2e787053d2b139e07220208d6e635c6
https://github.com/qemu/qemu/commit/c0d77702d2e787053d2b139e07220208d6e635c6
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Drop superfluous assignments to @ret
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-29-armbru@redhat.com>
Commit: 4a1021796252598957876a530c8d5d2ed7fd693e
https://github.com/qemu/qemu/commit/4a1021796252598957876a530c8d5d2ed7fd693e
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Check negative error values the same way everywhere
When a function returns 0 on success, negative value on error,
checking for non-zero suffices, but checking for negative is clearer.
So do that.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-30-armbru@redhat.com>
Commit: e518b0050d41adf764aa06373acf0fbd696b8a0e
https://github.com/qemu/qemu/commit/e518b0050d41adf764aa06373acf0fbd696b8a0e
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Plug a memory leak and improve a message
When migration capability @rdma-pin-all is true, but the server cannot
honor it, qemu_rdma_connect() calls macro ERROR(), then returns
success.
ERROR() sets an error. Since qemu_rdma_connect() returns success, its
caller rdma_start_outgoing_migration() duly assumes @errp is still
clear. The Error object leaks.
ERROR() additionally reports the situation to the user as an error:
RDMA ERROR: Server cannot support pinning all memory. Will register memory
dynamically.
Is this an error or not? It actually isn't; we disable @rdma-pin-all
and carry on. "Correcting" the user's configuration decisions that
way feels problematic, but that's a topic for another day.
Replace ERROR() by warn_report(). This plugs the memory leak, and
emits a clearer message to the user.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-31-armbru@redhat.com>
Commit: 1718f238d1ee3c40496a36d6e4dc88ad21a04896
https://github.com/qemu/qemu/commit/1718f238d1ee3c40496a36d6e4dc88ad21a04896
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Delete inappropriate error_report() in macro ERROR()
Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job. When the caller does, the error is reported twice. When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.
Macro ERROR() violates this principle. Delete the error_report()
there.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Tested-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-32-armbru@redhat.com>
Commit: 8fd471bd777d70dce7826c2b903e0e791ead764e
https://github.com/qemu/qemu/commit/8fd471bd777d70dce7826c2b903e0e791ead764e
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Retire macro ERROR()
ERROR() has become "error_setg() unless an error has been set
already". Hiding the conditional in the macro is in the way of
further work. Replace the macro uses by their expansion, and delete
the macro.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-33-armbru@redhat.com>
Commit: 071d5ae4f35c4d4b80553feaa3786b9ff7a32b02
https://github.com/qemu/qemu/commit/071d5ae4f35c4d4b80553feaa3786b9ff7a32b02
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Fix error handling around rdma_getaddrinfo()
qemu_rdma_resolve_host() and qemu_rdma_dest_init() iterate over
addresses to find one that works, holding onto the first Error from
qemu_rdma_broken_ipv6_kernel() for use when no address works. Issues:
1. If @errp was &error_abort or &error_fatal, we'd terminate instead
of trying the next address. Can't actually happen, since no caller
passes these arguments.
2. When @errp is a pointer to a variable containing NULL, and
qemu_rdma_broken_ipv6_kernel() fails, the variable no longer
contains NULL. Subsequent iterations pass it again, violating
Error usage rules. Dangerous, as setting an error would then trip
error_setv()'s assertion. Works only because
qemu_rdma_broken_ipv6_kernel() and the code following the loops
carefully avoids setting a second error.
3. If qemu_rdma_broken_ipv6_kernel() fails, and then a later iteration
finds a working address, @errp still holds the first error from
qemu_rdma_broken_ipv6_kernel(). If we then run into another error,
we report the qemu_rdma_broken_ipv6_kernel() failure instead.
4. If we don't run into another error, we leak the Error object.
Use a local error variable, and propagate to @errp. This fixes 3. and
also cleans up 1 and partly 2.
Free this error when we have a working address. This fixes 4.
Pass the local error variable to qemu_rdma_broken_ipv6_kernel() only
until it fails. Pass null on any later iterations. This cleans up
the remainder of 2.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-34-armbru@redhat.com>
Commit: dcf07e72a4c929a06a5735e80b429f49b2278b9f
https://github.com/qemu/qemu/commit/dcf07e72a4c929a06a5735e80b429f49b2278b9f
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Drop "@errp is clear" guards around error_setg()
These guards are all redundant now.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-35-armbru@redhat.com>
Commit: 96f363d839f5fdae370afb9a9f843782dd1b38f8
https://github.com/qemu/qemu/commit/96f363d839f5fdae370afb9a9f843782dd1b38f8
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Convert qemu_rdma_exchange_recv() to Error
Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job. When the caller does, the error is reported twice. When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.
qio_channel_rdma_readv() violates this principle: it calls
error_report() via qemu_rdma_exchange_recv(). I elected not to
investigate how callers handle the error, i.e. precise impact is not
known.
Clean this up by converting qemu_rdma_exchange_recv() to Error.
Necessitates setting an error when qemu_rdma_exchange_get_response()
failed. Since this error will go away later in this series, simply
use "FIXME temporary error message" there.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-36-armbru@redhat.com>
Commit: c4c78dce0b5ebf28c2b54a79905e44f47544aeee
https://github.com/qemu/qemu/commit/c4c78dce0b5ebf28c2b54a79905e44f47544aeee
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Convert qemu_rdma_exchange_send() to Error
Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job. When the caller does, the error is reported twice. When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.
qio_channel_rdma_writev() violates this principle: it calls
error_report() via qemu_rdma_exchange_send(). I elected not to
investigate how callers handle the error, i.e. precise impact is not
known.
Clean this up by converting qemu_rdma_exchange_send() to Error.
Necessitates setting an error when qemu_rdma_post_recv_control(),
callback(), or qemu_rdma_exchange_get_response() failed. Since these
errors will go away later in this series, simply use "FIXME temporary
error message" there.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-37-armbru@redhat.com>
Commit: 3765ec1f432065e451fe86c54b93fc19a49f0cf4
https://github.com/qemu/qemu/commit/3765ec1f432065e451fe86c54b93fc19a49f0cf4
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Convert qemu_rdma_exchange_get_response() to Error
Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job. When the caller does, the error is reported twice. When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.
qemu_rdma_exchange_send() and qemu_rdma_exchange_recv() violate this
principle: they call error_report() via
qemu_rdma_exchange_get_response(). I elected not to investigate how
callers handle the error, i.e. precise impact is not known.
Clean this up by converting qemu_rdma_exchange_get_response() to
Error.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-38-armbru@redhat.com>
Commit: de1aa35f8dbb9666360648148e57ceacb1bf8b5b
https://github.com/qemu/qemu/commit/de1aa35f8dbb9666360648148e57ceacb1bf8b5b
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Convert qemu_rdma_reg_whole_ram_blocks() to Error
Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job. When the caller does, the error is reported twice. When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.
qemu_rdma_exchange_send() violates this principle: it calls
error_report() via callback qemu_rdma_reg_whole_ram_blocks(). I
elected not to investigate how callers handle the error, i.e. precise
impact is not known.
Clean this up by converting the callback to Error.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-39-armbru@redhat.com>
Commit: 56095477812860325295609fbeaf15741e01f53c
https://github.com/qemu/qemu/commit/56095477812860325295609fbeaf15741e01f53c
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Convert qemu_rdma_write_flush() to Error
Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job. When the caller does, the error is reported twice. When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.
qio_channel_rdma_writev() violates this principle: it calls
error_report() via qemu_rdma_write_flush(). I elected not to
investigate how callers handle the error, i.e. precise impact is not
known.
Clean this up by converting qemu_rdma_write_flush() to Error.
Necessitates setting an error when qemu_rdma_write_one() failed.
Since this error will go away later in this series, simply use "FIXME
temporary error message" there.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-40-armbru@redhat.com>
Commit: 557c34ca60d863047320a178ebcd06ba8d30c057
https://github.com/qemu/qemu/commit/557c34ca60d863047320a178ebcd06ba8d30c057
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Convert qemu_rdma_write_one() to Error
Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job. When the caller does, the error is reported twice. When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.
qemu_rdma_write_flush() violates this principle: it calls
error_report() via qemu_rdma_write_one(). I elected not to
investigate how callers handle the error, i.e. precise impact is not
known.
Clean this up by converting qemu_rdma_write_one() to Error. Bonus:
resolves a FIXME about problematic use of errno.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-41-armbru@redhat.com>
Commit: 446e559c433184b797bf3f3e1b4366c908a4fb6d
https://github.com/qemu/qemu/commit/446e559c433184b797bf3f3e1b4366c908a4fb6d
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Convert qemu_rdma_write() to Error
Just for consistency with qemu_rdma_write_one() and
qemu_rdma_write_flush(), and for slightly simpler code.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-42-armbru@redhat.com>
Commit: f3805964f8cd79a534c20dfc95ed3000145a5d82
https://github.com/qemu/qemu/commit/f3805964f8cd79a534c20dfc95ed3000145a5d82
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Convert qemu_rdma_post_send_control() to Error
Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job. When the caller does, the error is reported twice. When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.
qemu_rdma_exchange_send() violates this principle: it calls
error_report() via qemu_rdma_post_send_control(). I elected not to
investigate how callers handle the error, i.e. precise impact is not
known.
Clean this up by converting qemu_rdma_post_send_control() to Error.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-43-armbru@redhat.com>
Commit: 3c0c3eba8d9279249b451ff9d9a14e3f8a14bba8
https://github.com/qemu/qemu/commit/3c0c3eba8d9279249b451ff9d9a14e3f8a14bba8
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Convert qemu_rdma_post_recv_control() to Error
Just for symmetry with qemu_rdma_post_send_control(). Error messages
lose detail I consider of no use to users.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-44-armbru@redhat.com>
Commit: 07d5b946539694e8a91b0153514c126649d2da3e
https://github.com/qemu/qemu/commit/07d5b946539694e8a91b0153514c126649d2da3e
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Convert qemu_rdma_alloc_pd_cq() to Error
Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job. When the caller does, the error is reported twice. When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.
qemu_rdma_source_init() violates this principle: it calls
error_report() via qemu_rdma_alloc_pd_cq(). I elected not to
investigate how callers handle the error, i.e. precise impact is not
known.
Clean this up by converting qemu_rdma_alloc_pd_cq() to Error.
The conversion loses a piece of advice on one of two failure paths:
Your mlock() limits may be too low. Please check $ ulimit -a # and search
for 'ulimit -l' in the output
Not worth retaining.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-45-armbru@redhat.com>
Commit: e6696d3ee9b8a0632dd12b20081ebd21bb7b646d
https://github.com/qemu/qemu/commit/e6696d3ee9b8a0632dd12b20081ebd21bb7b646d
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Silence qemu_rdma_resolve_host()
Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job. When the caller does, the error is reported twice. When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.
qemu_rdma_resolve_host() violates this principle: it calls
error_report().
Clean this up: drop error_report().
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-46-armbru@redhat.com>
Commit: 35b1561e3ec56fc3cae283d1b00053be6445a2db
https://github.com/qemu/qemu/commit/35b1561e3ec56fc3cae283d1b00053be6445a2db
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Silence qemu_rdma_connect()
Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job. When the caller does, the error is reported twice. When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.
qemu_rdma_connect() violates this principle: it calls error_report()
and perror(). I elected not to investigate how callers handle the
error, i.e. precise impact is not known.
Clean this up: replace perror() by changing error_setg() to
error_setg_errno(), and drop error_report(). I believe the callers'
error reports suffice then. If they don't, we need to convert to
Error instead.
Bonus: resolves a FIXME about problematic use of errno.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-47-armbru@redhat.com>
Commit: 01efb106373551e92efde579b16c1b8aa4ee9354
https://github.com/qemu/qemu/commit/01efb106373551e92efde579b16c1b8aa4ee9354
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Silence qemu_rdma_reg_control()
Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job. When the caller does, the error is reported twice. When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.
qemu_rdma_source_init() and qemu_rdma_accept() violate this principle:
they call error_report() via qemu_rdma_reg_control(). I elected not
to investigate how callers handle the error, i.e. precise impact is
not known.
Clean this up by dropping the error reporting from
qemu_rdma_reg_control(). I believe the callers' error reports
suffice. If they don't, we need to convert to Error instead.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-48-armbru@redhat.com>
Commit: 8dee156c1d60fd386bf19ac6bbccc04ef56a9f02
https://github.com/qemu/qemu/commit/8dee156c1d60fd386bf19ac6bbccc04ef56a9f02
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Don't report received completion events as error
When qemu_rdma_wait_comp_channel() receives an event from the
completion channel, it reports an error "receive cm event while wait
comp channel,cm event is T", where T is the numeric event type.
However, the function fails only when T is a disconnect or device
removal. Events other than these two are not actually an error, and
reporting them as an error is wrong. If we need to report them to the
user, we should use something else, and what to use depends on why we
need to report them to the user.
For now, report this error only when the function actually fails.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-49-armbru@redhat.com>
Commit: 7555c7713d4bf03caa610ed2d2df481c2150b044
https://github.com/qemu/qemu/commit/7555c7713d4bf03caa610ed2d2df481c2150b044
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Silence qemu_rdma_block_for_wrid()
Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job. When the caller does, the error is reported twice. When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.
qemu_rdma_post_send_control(), qemu_rdma_exchange_get_response(), and
qemu_rdma_write_one() violate this principle: they call
error_report(), fprintf(stderr, ...), and perror() via
qemu_rdma_block_for_wrid(), qemu_rdma_poll(), and
qemu_rdma_wait_comp_channel(). I elected not to investigate how
callers handle the error, i.e. precise impact is not known.
Clean this up by dropping the error reporting from qemu_rdma_poll(),
qemu_rdma_wait_comp_channel(), and qemu_rdma_block_for_wrid(). I
believe the callers' error reports suffice. If they don't, we need to
convert to Error instead.
Bonus: resolves a FIXME about problematic use of errno.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-50-armbru@redhat.com>
Commit: b765d21e4aba49dc5c87f3b05532b6b9cc64a2a5
https://github.com/qemu/qemu/commit/b765d21e4aba49dc5c87f3b05532b6b9cc64a2a5
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Silence qemu_rdma_register_and_get_keys()
Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job. When the caller does, the error is reported twice. When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.
qemu_rdma_write_one() violates this principle: it reports errors to
stderr via qemu_rdma_register_and_get_keys(). I elected not to
investigate how callers handle the error, i.e. precise impact is not
known.
Clean this up: silence qemu_rdma_register_and_get_keys(). I believe
the caller's error reports suffice. If they don't, we need to convert
to Error instead.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-51-armbru@redhat.com>
Commit: 5cec563d0cc4d2ce4983f31c472f022f9fd57d7a
https://github.com/qemu/qemu/commit/5cec563d0cc4d2ce4983f31c472f022f9fd57d7a
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Downgrade qemu_rdma_cleanup() errors to warnings
Functions that use an Error **errp parameter to return errors should
not also report them to the user, because reporting is the caller's
job. When the caller does, the error is reported twice. When it
doesn't (because it recovered from the error), there is no error to
report, i.e. the report is bogus.
qemu_rdma_source_init(), qemu_rdma_connect(),
rdma_start_incoming_migration(), and rdma_start_outgoing_migration()
violate this principle: they call error_report() via
qemu_rdma_cleanup().
Moreover, qemu_rdma_cleanup() can't fail. It is called on error
paths, and QIOChannel close and finalization. Are the conditions it
reports really errors? I doubt it.
Downgrade qemu_rdma_cleanup()'s errors to warnings.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-52-armbru@redhat.com>
Commit: ff4c9194599fff94164e0ffa4b5da968973d0523
https://github.com/qemu/qemu/commit/ff4c9194599fff94164e0ffa4b5da968973d0523
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
Log Message:
-----------
migration/rdma: Use error_report() & friends instead of stderr
error_report() obeys -msg, reports the current error location if any,
and reports to the current monitor if any. Reporting to stderr
directly with fprintf() or perror() is wrong, because it loses all
this.
Fix the offenders. Bonus: resolves a FIXME about problematic use of
errno.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-53-armbru@redhat.com>
Commit: 2c88739cfd6f8b499c60e1384507e011721ae467
https://github.com/qemu/qemu/commit/2c88739cfd6f8b499c60e1384507e011721ae467
Author: Markus Armbruster <armbru@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/rdma.c
M migration/trace-events
Log Message:
-----------
migration/rdma: Replace flawed device detail dump by tracing
qemu_rdma_dump_id() dumps RDMA device details to stdout.
rdma_start_outgoing_migration() calls it via qemu_rdma_source_init()
and qemu_rdma_resolve_host() to show source device details.
rdma_start_incoming_migration() arranges its call via
rdma_accept_incoming_migration() and qemu_rdma_accept() to show
destination device details.
Two issues:
1. rdma_start_outgoing_migration() can run in HMP context. The
information should arguably go the monitor, not stdout.
2. ibv_query_port() failure is reported as error. Its callers remain
unaware of this failure (qemu_rdma_dump_id() can't fail), so
reporting this to the user as an error is problematic.
Fixable, but the device detail dump is noise, except when
troubleshooting. Tracing is a better fit. Similar function
qemu_rdma_dump_id() was converted to tracing in commit
733252deb8b (Tracify migration/rdma.c).
Convert qemu_rdma_dump_id(), too.
While there, touch up qemu_rdma_dump_gid()'s outdated comment.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20230928132019.2544702-54-armbru@redhat.com>
Commit: c94143e587875bd70c280d72b1b70d9eefaf6854
https://github.com/qemu/qemu/commit/c94143e587875bd70c280d72b1b70d9eefaf6854
Author: Peter Xu <peterx@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/migration.c
M qapi/migration.json
Log Message:
-----------
migration: Display error in query-migrate irrelevant of status
Display it as long as being set, irrelevant of FAILED status. E.g., it may
also be applicable to PAUSED stage of postcopy, to provide hint on what has
gone wrong.
The error_mutex seems to be overlooked when referencing the error, add it
to be very safe.
This will change QAPI behavior by showing up error message outside !FAILED
status, but it's intended and doesn't expect to break anyone.
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2018404
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231004220240.167175-2-peterx@redhat.com>
Commit: 2b2f6f411efa83c70409fa6de2e61ec28221c757
https://github.com/qemu/qemu/commit/2b2f6f411efa83c70409fa6de2e61ec28221c757
Author: Peter Xu <peterx@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/migration.c
M migration/migration.h
Log Message:
-----------
migration: Introduce migrate_has_error()
Introduce a helper to detect whether MigrationState.error is set for
whatever reason.
This is preparation work for any thread (e.g. source return path thread) to
setup errors in an unified way to MigrationState, rather than relying on
its own way to set errors (mark_source_rp_bad()).
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231004220240.167175-3-peterx@redhat.com>
Commit: f4b897f4854c579cedc4d5ebb6db16c03a1eaeb1
https://github.com/qemu/qemu/commit/f4b897f4854c579cedc4d5ebb6db16c03a1eaeb1
Author: Peter Xu <peterx@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/qemu-file.c
Log Message:
-----------
qemufile: Always return a verbose error
There're a lot of cases where we only have an errno set in last_error but
without a detailed error description. When this happens, try to generate
an error contains the errno as a descriptive error.
This will be helpful in cases where one relies on the Error*. E.g.,
migration state only caches Error* in MigrationState.error. With this,
we'll display correct error messages in e.g. query-migrate when the error
was only set by qemu_file_set_error().
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231004220240.167175-6-peterx@redhat.com>
Commit: 1015ff5476ceed0ff76156c1b60e76f9d21db497
https://github.com/qemu/qemu/commit/1015ff5476ceed0ff76156c1b60e76f9d21db497
Author: Peter Xu <peterx@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/ram.c
Log Message:
-----------
migration: Remember num of ramblocks to sync during recovery
Instead of only relying on the count of rp_sem, make the counter be part of
RAMState so it can be used in both threads to synchronize on the process.
rp_sem will be further reused in follow up patches, as a way to kick the
main thread, e.g., on recovery failures.
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231004220240.167175-7-peterx@redhat.com>
Commit: 5e79a4bf032213fd59aa614781751fe76584f8e8
https://github.com/qemu/qemu/commit/5e79a4bf032213fd59aa614781751fe76584f8e8
Author: Peter Xu <peterx@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/migration.c
M migration/migration.h
M migration/ram.c
Log Message:
-----------
migration: Add migration_rp_wait|kick()
It's just a simple wrapper for rp_sem on either wait() or kick(), make it
even clearer on how it is used. Prepared to be used even for other things.
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Peter Xu <peterx@redhat.com>
Message-ID: <20231004220240.167175-8-peterx@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Commit: 67d2486c0ea4b9408854371dc7741f3c223ddb25
https://github.com/qemu/qemu/commit/67d2486c0ea4b9408854371dc7741f3c223ddb25
Author: Stefan Hajnoczi <stefanha@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M hw/audio/es1370.c
M hw/audio/trace-events
Log Message:
-----------
Merge tag 'audio-pull-request' of https://gitlab.com/marcandre.lureau/qemu
into staging
Audio es1370 fix & cleanups
# -----BEGIN PGP SIGNATURE-----
#
# iQJQBAABCAA6FiEEh6m9kz+HxgbSdvYt2ujhCXWWnOUFAmUmQIQcHG1hcmNhbmRy
# ZS5sdXJlYXVAcmVkaGF0LmNvbQAKCRDa6OEJdZac5UiED/0VjK4J6I+MYljyJePj
# ki62XC/dtojuxkE+nwsTrU54u86776TLmthRYyHOffSs8mDpk0ynY6sWD99T4r1b
# 9Szmm9FJM658RSpN9i128JAiHKD9Vth7UUpekrLIBgRsW5lGuQFapHouTB1wa3hm
# 8ZszUNAGEpAgGM2My9t+pvGy8lrOZan2ZAlQzKfMc+msYTnivK6huzjVw/xUc0kD
# vzfpVMgKntvl391IBf9hFBBrJCWRtDrydtPl1/PxpVj/96FGIxlx+o30X8z9hSzA
# yg96XfwmS/mgqFsw8QqtFyrkSE3iD2yzcrepjtK+erwcv6M0BVG38wn89F571Lcl
# Ga8PcqBd7pP0nMXrgjbX8qB6t58TPipEbFMeS2iabO4pwz0jy9aCVQJ2GZqHNqaF
# VoMN5hEDBhanxFcNEcjSWZEfJOvK7uVLAZ2Xdqcrsm50ESTu55H/BIQWFipTGlqu
# +BlvfpwVYXGziuDsj8h4cUGvyuMY02XWsBU9qvl5aCiyWoyED0ZlR2UJ0jVjn68K
# RUbTrxSMF9hLgI1j8FYkNgXMBuR4+Sopc7vp//AXpp92/yxTNCbe44Y06C9iaib1
# 0zrYhd4rfTn0MX+YM9IUKzvoNSVY6VxHoTucyTM9HcT7XtCnmwnMzjY4yGxQ6k3V
# X0WBPpH4mCyXla7TJ0zwbnvH0A==
# =B/KL
# -----END PGP SIGNATURE-----
# gpg: Signature made Wed 11 Oct 2023 02:28:20 EDT
# gpg: using RSA key 87A9BD933F87C606D276F62DDAE8E10975969CE5
# gpg: issuer "marcandre.lureau@redhat.com"
# gpg: Good signature from "Marc-André Lureau <marcandre.lureau@redhat.com>"
[full]
# gpg: aka "Marc-André Lureau <marcandre.lureau@gmail.com>"
[full]
# Primary key fingerprint: 87A9 BD93 3F87 C606 D276 F62D DAE8 E109 7596 9CE5
* tag 'audio-pull-request' of https://gitlab.com/marcandre.lureau/qemu:
hw/audio/es1370: trace lost interrupts
hw/audio/es1370: change variable type and name
hw/audio/es1370: block structure coding style fixes
hw/audio/es1370: remove #ifdef ES1370_VERBOSE to avoid bit rot
hw/audio/es1370: remove #ifdef ES1370_DEBUG to avoid bit rot
hw/audio/es1370: remove unused dolog macro
hw/audio/es1370: replace bit-rotted code with tracepoints
hw/audio/es1370: reset current sample counter
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Commit: 48747938d1b72f492a7921e9b83e9065deb44f14
https://github.com/qemu/qemu/commit/48747938d1b72f492a7921e9b83e9065deb44f14
Author: Stefan Hajnoczi <stefanha@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M migration/migration.c
M migration/migration.h
M migration/options.c
M migration/qemu-file.c
M migration/ram.c
M migration/rdma.c
M migration/savevm.c
M migration/trace-events
M qapi/migration.json
M tests/qtest/libqtest.c
M tests/qtest/libqtest.h
M tests/qtest/meson.build
M tests/qtest/migration-helpers.c
M tests/qtest/migration-helpers.h
M tests/qtest/migration-test.c
M tests/qtest/virtio-net-failover.c
Log Message:
-----------
Merge tag 'migration-20231011-pull-request' of
https://gitlab.com/juan.quintela/qemu into staging
Migration Pull request (20231011 edition)
Hi
In this pull request:
- Markus RDMA cleanup series
- recover fixes from peter
- migration capability from fabiano
- negative migration test from fabiano.
Please, pull.
Thanks, Juan.
# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCAAdFiEEGJn/jt6/WMzuA0uC9IfvGFhy1yMFAmUmaQ8ACgkQ9IfvGFhy
# 1yN9fA//SBnea3Wl2158J673l5aaI8Vp/1PjfzvNdcr/6EQbXZBgug+haQ3n5Hhf
# USNRhemrCkpZAGCUf07g9pfF4R/Jsq1OkOrWF4e6gAaZPNU4V5F7VKBk8pmFMLtr
# Kk2XgnH2ZPaFEvts0qBrOfvDHH8gOzzjpF2HGrioM8Zr3p1JHz9OqJoSyawLF0U7
# YFTq2jJSgaOQ6ax1+L8hLLuXlmNccBaTWT8Cv0rbPEgcwrJOM/wMfmd6O39ps929
# yS5NnxqqkrprTDjmeGOgOQd0Cy/flinnzmu+BVMO6/ns9Hu6q1TGG6D+DOBdgmHH
# jq7Ej5VILtXWOoZtXLHqA1Xt73ciVlmditVupoC+5vtIJou2JseClutOp98qxxzV
# llMF7ldHbRTWnu7qIrwv2OINarowR0pIZfkJqBc6dNHHScwMCnX5L9YAvNePEo2V
# 1oJpbqW7mmgwdlFAiKFD+AE6qUWxcnzOvPf+fzWrJMi507Kv5nmxQWTHw9dsFs7k
# neWnK21t0s2t77+vVBtLlr06JESG+WndzvQsXKZu8Pd0+ASnzpX8pRVzxEPk5EiH
# fT9bhXOCvxTTHulznjkOApODE5NF+KlHAFXU87cSIkdi/6JfzcvTe6KeeIPC248Q
# jk3nVlhds1xajTcPAK7HF5Ta6R8rNdTZ6q/kFNhLaTGqv9agxDU=
# =hekO
# -----END PGP SIGNATURE-----
# gpg: Signature made Wed 11 Oct 2023 05:21:19 EDT
# gpg: using RSA key 1899FF8EDEBF58CCEE034B82F487EF185872D723
# gpg: Good signature from "Juan Quintela <quintela@redhat.com>" [full]
# gpg: aka "Juan Quintela <quintela@trasno.org>" [full]
# Primary key fingerprint: 1899 FF8E DEBF 58CC EE03 4B82 F487 EF18 5872 D723
* tag 'migration-20231011-pull-request' of
https://gitlab.com/juan.quintela/qemu: (65 commits)
migration: Add migration_rp_wait|kick()
migration: Remember num of ramblocks to sync during recovery
qemufile: Always return a verbose error
migration: Introduce migrate_has_error()
migration: Display error in query-migrate irrelevant of status
migration/rdma: Replace flawed device detail dump by tracing
migration/rdma: Use error_report() & friends instead of stderr
migration/rdma: Downgrade qemu_rdma_cleanup() errors to warnings
migration/rdma: Silence qemu_rdma_register_and_get_keys()
migration/rdma: Silence qemu_rdma_block_for_wrid()
migration/rdma: Don't report received completion events as error
migration/rdma: Silence qemu_rdma_reg_control()
migration/rdma: Silence qemu_rdma_connect()
migration/rdma: Silence qemu_rdma_resolve_host()
migration/rdma: Convert qemu_rdma_alloc_pd_cq() to Error
migration/rdma: Convert qemu_rdma_post_recv_control() to Error
migration/rdma: Convert qemu_rdma_post_send_control() to Error
migration/rdma: Convert qemu_rdma_write() to Error
migration/rdma: Convert qemu_rdma_write_one() to Error
migration/rdma: Convert qemu_rdma_write_flush() to Error
...
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Commit: a51e5124a655b3dad80b36b18547cb1eca2c5eb2
https://github.com/qemu/qemu/commit/a51e5124a655b3dad80b36b18547cb1eca2c5eb2
Author: Stefan Hajnoczi <stefanha@redhat.com>
Date: 2023-10-11 (Wed, 11 Oct 2023)
Changed paths:
M .gitlab-ci.d/buildtest.yml
M .gitlab-ci.d/cirrus/macos-12.vars
M MAINTAINERS
M accel/tcg/plugin-gen.c
M accel/tcg/translator.c
M configure
M contrib/plugins/cache.c
M contrib/plugins/execlog.c
M contrib/plugins/hotblocks.c
M contrib/plugins/lockstep.c
M gdbstub/gdbstub.c
M gdbstub/internals.h
M gdbstub/system.c
M include/exec/gdbstub.h
M include/exec/plugin-gen.h
M include/exec/translator.h
M include/hw/core/cpu.h
M meson.build
M plugins/core.c
A scripts/feature_to_c.py
R scripts/feature_to_c.sh
M stubs/gdbstub.c
M target/arm/cpu.c
M target/arm/cpu64.c
M target/arm/gdbstub.c
M target/i386/cpu.c
M target/loongarch/cpu.c
M target/ppc/gdbstub.c
M target/ppc/internal.h
M target/riscv/cpu.c
M target/s390x/cpu.c
M target/sh4/translate.c
M target/tricore/cpu.c
M tests/avocado/machine_aarch64_sbsaref.py
M tests/docker/Makefile.include
M tests/docker/dockerfiles/alpine.docker
M tests/docker/dockerfiles/centos8.docker
M tests/docker/dockerfiles/debian-amd64-cross.docker
M tests/docker/dockerfiles/debian-amd64.docker
M tests/docker/dockerfiles/debian-arm64-cross.docker
M tests/docker/dockerfiles/debian-armhf-cross.docker
M tests/docker/dockerfiles/debian-ppc64el-cross.docker
M tests/docker/dockerfiles/debian-s390x-cross.docker
M tests/docker/dockerfiles/fedora-win32-cross.docker
M tests/docker/dockerfiles/fedora-win64-cross.docker
M tests/docker/dockerfiles/fedora.docker
M tests/docker/dockerfiles/opensuse-leap.docker
M tests/docker/dockerfiles/ubuntu2204.docker
M tests/lcitool/libvirt-ci
M tests/lcitool/projects/qemu.yml
Log Message:
-----------
Merge tag 'pull-omnibus-111023-1' of https://gitlab.com/stsquad/qemu into
staging
testing, gdbstub and plugin updates
- enable more sbsa-ref tests in avocado
- add swtpm to the package lists
- reduce avocado noise in gitlab by limiting tests
- make docker engine choice driven by configure and enable override
- remove unneeded gcc suffix on some cross compilers
- fix some NULL returns in gdbstub
- improve locking in execlog plugin
- introduce the GDBFeature structure
- consistently set gdb_core_xml_file
- use cleaner escaping for gdb xml
- drop ancient gdb_has_xml() test
- disable multi-instruction GUSA emulation when plugins enabled
- fix some coverity issues in plugins
# -----BEGIN PGP SIGNATURE-----
#
# iQEzBAABCgAdFiEEZoWumedRZ7yvyN81+9DbCVqeKkQFAmUmVJkACgkQ+9DbCVqe
# KkTfNggAiS02FcL3faGjAN9+60xhvEQ3DJjI473hjvFWu0bSkQTjObcQqGc+V7Cw
# 9yNtnxOOWB6KdAU8At7HlVqiUXeyTCJB7Att5/UgNUZj63j+cs7PXb4p7cVCcJOc
# 17zni22tnmCBcC8wZaz0yj68jaftL3hz1QNUZOmv6CBt42q0+/4g1WKfaJ+w+SbK
# T7cJEiMDObm8qeNAAXpDLB+9v3bRDxMZ8hFJ3p3CatQC8jbDrkuH7RrVPHDWiWQx
# w0uXpUHlZEOVX23v6+iIoeb8YQW2bZI9UsfeyIHJlENaVgyL200LHgLvvAE4Qd63
# dCtfQUZzj4t9sfoL4XgxaB7G4qtXTg==
# =7PLI
# -----END PGP SIGNATURE-----
# gpg: Signature made Wed 11 Oct 2023 03:54:01 EDT
# gpg: using RSA key 6685AE99E75167BCAFC8DF35FBD0DB095A9E2A44
# gpg: Good signature from "Alex Bennée (Master Work Key)
<alex.bennee@linaro.org>" [unknown]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg: There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 6685 AE99 E751 67BC AFC8 DF35 FBD0 DB09 5A9E 2A44
* tag 'pull-omnibus-111023-1' of https://gitlab.com/stsquad/qemu: (25 commits)
contrib/plugins: fix coverity warning in hotblocks
contrib/plugins: fix coverity warning in lockstep
contrib/plugins: fix coverity warning in cache
plugins: Set final instruction count in plugin_gen_tb_end
target/sh4: Disable decode_gusa when plugins enabled
accel/tcg: Add plugin_enabled to DisasContextBase
gdbstub: Replace gdb_regs with an array
gdbstub: Remove gdb_has_xml variable
target/ppc: Remove references to gdb_has_xml
target/arm: Remove references to gdb_has_xml
gdbstub: Use g_markup_printf_escaped()
hw/core/cpu: Return static value with gdb_arch_name()
target/arm: Move the reference to arm-core.xml
gdbstub: Introduce GDBFeature structure
contrib/plugins: Use GRWLock in execlog
plugins: Check if vCPU is realized
gdbstub: Fix target.xml response
gdbstub: Fix target_xml initialization
configure: remove gcc version suffixes
configure: allow user to override docker engine
...
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Compare: https://github.com/qemu/qemu/compare/0ad0d9dcd16f...a51e5124a655