summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
...
| * target/s390x: Fix determination of overflow condition code after additionBruno Haible2022-04-011-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This program currently prints different results when run with TCG instead of running on real s390x hardware: #include <stdio.h> int overflow_32 (int x, int y) { int sum; return ! __builtin_add_overflow (x, y, &sum); } int overflow_64 (long long x, long long y) { long sum; return ! __builtin_add_overflow (x, y, &sum); } int a1 = -2147483648; int b1 = -2147483648; long long a2 = -9223372036854775808L; long long b2 = -9223372036854775808L; int main () { { int a = a1; int b = b1; printf ("a = 0x%x, b = 0x%x\n", a, b); printf ("no_overflow = %d\n", overflow_32 (a, b)); } { long long a = a2; long long b = b2; printf ("a = 0x%llx, b = 0x%llx\n", a, b); printf ("no_overflow = %d\n", overflow_64 (a, b)); } } Signed-off-by: Bruno Haible <bruno@clisp.org> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/616 Message-Id: <20220323162621.139313-2-thuth@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
| * misc: Fixes MAINTAINERS's path .github/workflows/lockdown.ymlYonggang Luo2022-04-011-1/+1
| | | | | | | | | | | | | | Signed-off-by: Yonggang Luo <luoyonggang@gmail.com> Message-Id: <20220323080755.156-4-luoyonggang@gmail.com> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Thomas Huth <thuth@redhat.com>
* | Merge tag 'pull-target-arm-20220401' of ↵Peter Maydell2022-04-015-7/+25
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://git.linaro.org/people/pmaydell/qemu-arm into staging target-arm queue: * target/arm: Fix some bugs in secure EL2 handling * target/arm: Fix assert when !HAVE_CMPXCHG128 * MAINTAINERS: change Fred Konrad's email address # gpg: Signature made Fri 01 Apr 2022 15:59:59 BST # gpg: using RSA key E1A5C593CD419DE28E8315CF3C2525ED14360CDE # gpg: issuer "peter.maydell@linaro.org" # gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>" [ultimate] # gpg: aka "Peter Maydell <pmaydell@gmail.com>" [ultimate] # gpg: aka "Peter Maydell <pmaydell@chiark.greenend.org.uk>" [ultimate] # Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83 15CF 3C25 25ED 1436 0CDE * tag 'pull-target-arm-20220401' of https://git.linaro.org/people/pmaydell/qemu-arm: target/arm: Don't use DISAS_NORETURN in STXP !HAVE_CMPXCHG128 codegen MAINTAINERS: change Fred Konrad's email address target/arm: Determine final stage 2 output PA space based on original IPA target/arm: Take VSTCR.SW, VTCR.NSW into account in final stage 2 walk target/arm: Check VSTCR.SW when assigning the stage 2 output PA space target/arm: Fix MTE access checks for disabled SEL2 Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
| * | target/arm: Don't use DISAS_NORETURN in STXP !HAVE_CMPXCHG128 codegenPeter Maydell2022-04-011-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In gen_store_exclusive(), if the host does not have a cmpxchg128 primitive then we generate bad code for STXP for storing two 64-bit values. We generate a call to the exit_atomic helper, which never returns, and set is_jmp to DISAS_NORETURN. However, this is forgetting that we have already emitted a brcond that jumps over this call for the case where we don't hold the exclusive. The effect is that we don't generate any code to end the TB for the exclusive-not-held execution path, which falls into the "exit with TB_EXIT_REQUESTED" code that gen_tb_end() emits. This then causes an assert at runtime when cpu_loop_exec_tb() sees an EXIT_REQUESTED TB return that wasn't for an interrupt or icount. In particular, you can hit this case when using the clang sanitizers and trying to run the xlnx-versal-virt acceptance test in 'make check-acceptance'. This bug was masked until commit 848126d11e93ff ("meson: move int128 checks from configure") because we used to set CONFIG_CMPXCHG128=1 and avoid the buggy codepath, but after that we do not. Fix the bug by not setting is_jmp. The code after the exit_atomic call up to the fail_label is dead, but TCG is smart enough to eliminate it. We do need to set 'tmp' to some valid value, though (in the same way the exit_atomic-using code in tcg/tcg-op.c does). Resolves: https://gitlab.com/qemu-project/qemu/-/issues/953 Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20220331150858.96348-1-peter.maydell@linaro.org
| * | MAINTAINERS: change Fred Konrad's email addressFrederic Konrad2022-04-012-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | frederic.konrad@adacore.com and konrad@adacore.com will stop working starting 2022-04-01. Use my personal email instead. Signed-off-by: Frederic Konrad <frederic.konrad@adacore.com> Reviewed-by: Fabien Chouteau <chouteau@adacore.com <clg@kaod.org>> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-id: 1648643217-15811-1-git-send-email-frederic.konrad@adacore.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
| * | target/arm: Determine final stage 2 output PA space based on original IPAIdan Horowitz2022-04-011-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As per the AArch64.S2Walk() pseudo-code in the ARMv8 ARM, the final decision as to the output address's PA space based on the SA/SW/NSA/NSW bits needs to take the input IPA's PA space into account, and not the PA space of the result of the stage 2 walk itself. Signed-off-by: Idan Horowitz <idan.horowitz@gmail.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20220327093427.1548629-4-idan.horowitz@gmail.com [PMM: fixed commit message typo] Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
| * | target/arm: Take VSTCR.SW, VTCR.NSW into account in final stage 2 walkIdan Horowitz2022-04-011-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As per the AArch64.SS2InitialTTWState() psuedo-code in the ARMv8 ARM the initial PA space used for stage 2 table walks is assigned based on the SW and NSW bits of the VSTCR and VTCR registers. This was already implemented for the recursive stage 2 page table walks in S1_ptw_translate(), but was missing for the final stage 2 walk. Signed-off-by: Idan Horowitz <idan.horowitz@gmail.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20220327093427.1548629-3-idan.horowitz@gmail.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
| * | target/arm: Check VSTCR.SW when assigning the stage 2 output PA spaceIdan Horowitz2022-04-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As per the AArch64.SS2OutputPASpace() psuedo-code in the ARMv8 ARM when the PA space of the IPA is non secure, the output PA space is secure if and only if all of the bits VTCR.<NSW, NSA>, VSTCR.<SW, SA> are not set. Signed-off-by: Idan Horowitz <idan.horowitz@gmail.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20220327093427.1548629-2-idan.horowitz@gmail.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
| * | target/arm: Fix MTE access checks for disabled SEL2Idan Horowitz2022-04-012-2/+2
| |/ | | | | | | | | | | | | | | | | | | | | | | While not mentioned anywhere in the actual specification text, the HCR_EL2.ATA bit is treated as '1' when EL2 is disabled at the current security state. This can be observed in the psuedo-code implementation of AArch64.AllocationTagAccessIsEnabled(). Signed-off-by: Idan Horowitz <idan.horowitz@gmail.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20220328173107.311267-1-idan.horowitz@gmail.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
* | Merge tag 'pull-riscv-to-apply-20220401' of github.com:alistair23/qemu into ↵Peter Maydell2022-04-012-6/+13
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | staging Sixth RISC-V PR for QEMU 7.0 This is a last minute RISC-V PR for 7.0. It includes a fix to avoid leaking no translation TLB entries. This incorrectly cached uncachable baremetal entries. This would break Linux boot while single stepping. As the fix is pretty straight forward (flush the cache more often) it's being pulled in for 7.0. At the same time I have included a RISC-V vector extension fixup patch. # gpg: Signature made Fri 01 Apr 2022 00:33:58 BST # gpg: using RSA key F6C4AC46D4934868D3B8CE8F21E10D29DF977054 # gpg: Good signature from "Alistair Francis <alistair@alistair23.me>" [full] # Primary key fingerprint: F6C4 AC46 D493 4868 D3B8 CE8F 21E1 0D29 DF97 7054 * tag 'pull-riscv-to-apply-20220401' of github.com:alistair23/qemu: target/riscv: rvv: Add missing early exit condition for whole register load/store target/riscv: Avoid leaking "no translation" TLB entries Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
| * target/riscv: rvv: Add missing early exit condition for whole register ↵Yueh-Ting (eop) Chen2022-04-011-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | load/store According to v-spec (section 7.9): The instructions operate with an effective vector length, evl=NFIELDS*VLEN/EEW, regardless of current settings in vtype and vl. The usual property that no elements are written if vstart ≥ vl does not apply to these instructions. Instead, no elements are written if vstart ≥ evl. Signed-off-by: eop Chen <eop.chen@sifive.com> Reviewed-by: Frank Chang <frank.chang@sifive.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-Id: <164762720573.18409.3931931227997483525-0@git.sr.ht> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
| * target/riscv: Avoid leaking "no translation" TLB entriesPalmer Dabbelt2022-04-011-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The ISA doesn't allow bare mappings to be cached, as the caches are translations and bare mppings are not translated. We cache these translations in QEMU in order to utilize the TLB code, but that leaks out to the guest. Suggested-by: phantom@zju.edu.cn # no name in the From field Fixes: 1e0d985fa9 ("target/riscv: Only flush TLB if SATP.ASID changes") Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-Id: <20220330165913.8836-1-palmer@rivosinc.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
* | Merge tag 'trivial-branch-for-7.0-pull-request' of ↵Peter Maydell2022-04-015-154/+4
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://gitlab.com/laurent_vivier/qemu into staging Trivial branch pull request 20220401 Fix sh4 linux-user build on Alpine and some trivial updates # gpg: Signature made Thu 31 Mar 2022 23:18:21 BST # gpg: using RSA key CD2F75DDC8E3A4DC2E4F5173F30C38BD3F2FBE3C # gpg: issuer "laurent@vivier.eu" # gpg: Good signature from "Laurent Vivier <lvivier@redhat.com>" [full] # gpg: aka "Laurent Vivier <laurent@vivier.eu>" [full] # gpg: aka "Laurent Vivier (Red Hat) <lvivier@redhat.com>" [full] # Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F 5173 F30C 38BD 3F2F BE3C * tag 'trivial-branch-for-7.0-pull-request' of https://gitlab.com/laurent_vivier/qemu: tests/lcitool: Do not use a hard-coded /usr/bin/python3 as python interpreter vhost-vdpa: fix typo in a comment target/sh4: Remove old README.sh4 file linux-user/sh4/termbits: Silence warning about TIOCSER_TEMT double definition Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
| * tests/lcitool: Do not use a hard-coded /usr/bin/python3 as python interpreterThomas Huth2022-03-312-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When running "make lcitool-refresh", this currently uses the hard-coded /usr/bin/python3 from the script's shebang line for running Python. That's bad, since neither /usr/bin/python3 is guaranteed to exist, nor does it honor the python interpreter that the user might have chosen while running the "configure" script. Thus let's rather use $(PYTHON) in the Makefile, and improve the shebang line in the script in case someone runs this directly. Signed-off-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-Id: <20220329063958.262669-1-thuth@redhat.com> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
| * vhost-vdpa: fix typo in a commentStefano Garzarella2022-03-311-1/+1
| | | | | | | | | | | | | | | | | | Replace vpda with vdpa. Signed-off-by: Stefano Garzarella <sgarzare@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-Id: <20220328152022.73245-1-sgarzare@redhat.com> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
| * target/sh4: Remove old README.sh4 fileThomas Huth2022-03-311-150/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This file didn't have any non-trivial update since it was initially added in 2006, and looking at the content, it seems incredibly outdated, saying e.g. "The sh4 target is not ready at all yet for integration in qemu" or "A sh4 user-mode has also somewhat started but will be worked on afterwards"... Sounds like nobody is interested in this README file anymore, so let's simply remove it now. Signed-off-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Yoshinori Sato <ysato@users.sourceforge.jp> Message-Id: <20220329151955.472306-1-thuth@redhat.com> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
| * linux-user/sh4/termbits: Silence warning about TIOCSER_TEMT double definitionThomas Huth2022-03-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Seen while compiling on Alpine: In file included from ../linux-user/strace.c:17: In file included from ../linux-user/qemu.h:11: In file included from ../linux-user/syscall_defs.h:1247: ../linux-user/sh4/termbits.h:276:10: warning: 'TIOCSER_TEMT' macro redefined [-Wmacro-redefined] # define TIOCSER_TEMT 0x01 /* Transmitter physically empty */ ^ /usr/include/sys/ioctl.h:50:9: note: previous definition is here #define TIOCSER_TEMT 1 ^ 1 warning generated. Add the TARGET_ prefix here, too, like we do it on the other architectures. Signed-off-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Laurent Vivier <laurent@vivier.eu> Reviewed-by: Yoshinori Sato <ysato@users.sourceforge.jp> Message-Id: <20220330134302.979686-1-thuth@redhat.com> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
* | Merge tag 'pull-tcg-20220331' of https://gitlab.com/rth7680/qemu into stagingPeter Maydell2022-03-311-2/+2
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | Fix tcg/aarch64 buglet for Windows on ARM host (#947). # gpg: Signature made Thu 31 Mar 2022 18:05:46 BST # gpg: using RSA key 7A481E78868B4DB6A85A05C064DF38E8AF7E215F # gpg: issuer "richard.henderson@linaro.org" # gpg: Good signature from "Richard Henderson <richard.henderson@linaro.org>" [full] # Primary key fingerprint: 7A48 1E78 868B 4DB6 A85A 05C0 64DF 38E8 AF7E 215F * tag 'pull-tcg-20220331' of https://gitlab.com/rth7680/qemu: tcg/aarch64: Use 'ull' suffix to force 64-bit constant Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
| * tcg/aarch64: Use 'ull' suffix to force 64-bit constantRichard Henderson2022-03-311-2/+2
|/ | | | | | | | | Typo used only 'ul' suffix, which is still 32-bits for windows host. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/947 Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
* Merge tag 'pull-qapi-2022-03-31' of git://repo.or.cz/qemu/armbru into stagingPeter Maydell2022-03-3110-33/+49
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QAPI patches patches for 2022-03-31 # gpg: Signature made Thu 31 Mar 2022 11:51:34 BST # gpg: using RSA key 354BC8B3D7EB2A6B68674E5F3870B400EB918653 # gpg: issuer "armbru@redhat.com" # gpg: Good signature from "Markus Armbruster <armbru@redhat.com>" [full] # gpg: aka "Markus Armbruster <armbru@pond.sub.org>" [full] # Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867 4E5F 3870 B400 EB91 8653 * tag 'pull-qapi-2022-03-31' of git://repo.or.cz/qemu/armbru: qapi: fix example of dump-guest-memory qapi: fix example of ACPI_DEVICE_OST event qapi: ui examples: add missing @websocket member qapi: fix example of MEMORY_FAILURE qapi: run-state examples: add missing @timestamp qapi: fix examples: SHUTDOWN and RESET events qapi: fix example of FAILOVER_NEGOTIATED event qapi: fix example of UNPLUG_PRIMARY event qapi: fix example of MEMORY_DEVICE_SIZE_CHANGE event qapi: fix example of DUMP_COMPLETED event qapi: fix example of BLOCK_JOB_PENDING event qapi: fix example of BLOCK_IO_ERROR event qapi: fix example of BLOCK_IMAGE_CORRUPTED event qapi: BlockExportRemoveMode: move comments to TODO schemas: add missing vim modeline Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
| * qapi: fix example of dump-guest-memoryVictor Toso2022-03-311-1/+1
| | | | | | | | | | | | | | | | | | | | Example output lacks mandatory member @paging. Provide it. Signed-off-by: Victor Toso <victortoso@redhat.com> Reviewed-by: John Snow <jsnow@redhat.com> Message-Id: <20220328140604.41484-15-victortoso@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
| * qapi: fix example of ACPI_DEVICE_OST eventVictor Toso2022-03-311-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | Example output lacks mandatory member @timestamp. Provide it. Event's @data member is missing @info object. Provide it. Signed-off-by: Victor Toso <victortoso@redhat.com> Reviewed-by: John Snow <jsnow@redhat.com> Message-Id: <20220328140604.41484-14-victortoso@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
| * qapi: ui examples: add missing @websocket memberVictor Toso2022-03-311-6/+6
| | | | | | | | | | | | | | | | | | | | The examples were missing mandatory member @websocket. Provide it. Signed-off-by: Victor Toso <victortoso@redhat.com> Reviewed-by: John Snow <jsnow@redhat.com> Message-Id: <20220328140604.41484-13-victortoso@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
| * qapi: fix example of MEMORY_FAILUREVictor Toso2022-03-311-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Example output lacks mandatory member @timestamp. Provide it. Example output lacks mandatory member flags.recursive. Provide it. Minor: Change quotes from '' to "" in @action-required member. Signed-off-by: Victor Toso <victortoso@redhat.com> Reviewed-by: John Snow <jsnow@redhat.com> Message-Id: <20220328140604.41484-12-victortoso@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> [Commit message fixed up] Signed-off-by: Markus Armbruster <armbru@redhat.com>
| * qapi: run-state examples: add missing @timestampVictor Toso2022-03-311-2/+4
| | | | | | | | | | | | | | | | | | | | | | The changed examples were lacking mandatory member @timestamp. Provide it. Signed-off-by: Victor Toso <victortoso@redhat.com> Reviewed-by: John Snow <jsnow@redhat.com> Message-Id: <20220328140604.41484-11-victortoso@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
| * qapi: fix examples: SHUTDOWN and RESET eventsVictor Toso2022-03-311-2/+4
| | | | | | | | | | | | | | | | | | | | Example output lacks mandatory member @reason. Provide it. Signed-off-by: Victor Toso <victortoso@redhat.com> Reviewed-by: John Snow <jsnow@redhat.com> Message-Id: <20220328140604.41484-10-victortoso@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
| * qapi: fix example of FAILOVER_NEGOTIATED eventVictor Toso2022-03-311-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Example output lacks mandatory member @timestamp. Provide it. Event's documentation is not properly formatted. Fix it by: - Adding @ to "device-id" - Adding extra line for "Since" section Signed-off-by: Victor Toso <victortoso@redhat.com> Reviewed-by: John Snow <jsnow@redhat.com> Message-Id: <20220328140604.41484-9-victortoso@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
| * qapi: fix example of UNPLUG_PRIMARY eventVictor Toso2022-03-311-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Example output lacks mandatory member @timestamp. Provide it. Example output is not properly formatted. Fixing it by: - Adding '<-' to signalize it is receiving the data; - Breaking lines similar to the other examples. Signed-off-by: Victor Toso <victortoso@redhat.com> Reviewed-by: John Snow <jsnow@redhat.com> Message-Id: <20220328140604.41484-8-victortoso@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
| * qapi: fix example of MEMORY_DEVICE_SIZE_CHANGE eventVictor Toso2022-03-311-1/+2
| | | | | | | | | | | | | | | | | | | | Example output lacks mandatory member @qom-path. Provide it. Signed-off-by: Victor Toso <victortoso@redhat.com> Reviewed-by: John Snow <jsnow@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20220328140604.41484-7-victortoso@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
| * qapi: fix example of DUMP_COMPLETED eventVictor Toso2022-03-311-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Example output lacks mandatory member @timestamp. Provide it. Example output is not properly formatted. Fixing it by: - Adding '<-' to signalize it is receiving the data; - Adding extra spaces around members @result, @total and @completed Signed-off-by: Victor Toso <victortoso@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: John Snow <jsnow@redhat.com> Message-Id: <20220328140604.41484-6-victortoso@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
| * qapi: fix example of BLOCK_JOB_PENDING eventVictor Toso2022-03-311-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Example output has the wrong event's name in it. Fix it. Example output shows incorrect member @device. Fix it. Signed-off-by: Victor Toso <victortoso@redhat.com> Reviewed-by: John Snow <jsnow@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20220328140604.41484-5-victortoso@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
| * qapi: fix example of BLOCK_IO_ERROR eventVictor Toso2022-03-311-1/+2
| | | | | | | | | | | | | | | | | | | | Example output lacks mandatory member @reason. Provide it. Signed-off-by: Victor Toso <victortoso@redhat.com> Message-Id: <20220328140604.41484-4-victortoso@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: John Snow <jsnow@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
| * qapi: fix example of BLOCK_IMAGE_CORRUPTED eventVictor Toso2022-03-311-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Example output lacks mandatory member @fatal. Provide it. Example output shows a value of @msg no version of the code produces. No big deal, but replace it anyway by one that today's code does produce. Signed-off-by: Victor Toso <victortoso@redhat.com> Message-Id: <20220328140604.41484-3-victortoso@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: John Snow <jsnow@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
| * qapi: BlockExportRemoveMode: move comments to TODOVictor Toso2022-03-311-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | @hide and @soft are potential additions which fits the TODO section perfectly. The main motivation is to avoid this whole block of comment entering the wrong section in the python parser. Signed-off-by: Victor Toso <victortoso@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: John Snow <jsnow@redhat.com> Message-Id: <20220328140604.41484-2-victortoso@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
| * schemas: add missing vim modelineVictor Toso2022-03-311-0/+3
|/ | | | | | | | | | | This is the last qapi schema that is missing the modeline. Fixes 7e7237cd2b "schemas: add missing vim modeline" Signed-off-by: Victor Toso <victortoso@redhat.com> Message-Id: <20220325221605.53995-1-victortoso@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: John Snow <jsnow@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
* Update version for v7.0.0-rc2 releasePeter Maydell2022-03-291-1/+1
| | | | Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
* Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into stagingPeter Maydell2022-03-292-3/+5
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Build bugfixes. # gpg: Signature made Tue 29 Mar 2022 14:59:03 BST # gpg: using RSA key F13338574B662389866C7682BFFBD25F78C7AE83 # gpg: issuer "pbonzini@redhat.com" # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full] # gpg: aka "Paolo Bonzini <pbonzini@redhat.com>" [full] # Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4 E2F7 7E15 100C CD36 69B1 # Subkey fingerprint: F133 3857 4B66 2389 866C 7682 BFFB D25F 78C7 AE83 * tag 'for-upstream' of https://gitlab.com/bonzini/qemu: tests/tcg: really fix path to target configuration virtio: fix --enable-vhost-user build on non-Linux Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
| * tests/tcg: really fix path to target configurationPaolo Bonzini2022-03-291-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | This was attempted in commit 533b0a1a41 ("tests/tcg: Fix target-specific Makefile variables path for user-mode", 2022-01-12) but it also used the wrong path; default.mak is used for config/devices, not config/targets. While at it, explain what the inclusion is about. Cc: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
| * virtio: fix --enable-vhost-user build on non-LinuxPaolo Bonzini2022-03-291-2/+2
| | | | | | | | | | | | | | | | | | | | The vhost-shadow-virtqueue.c build requires include files from linux-headers/, so it cannot be built on non-Linux systems. Fortunately it is only needed by vhost-vdpa, so move it there. Acked-by: Eugenio Pérez <eperezma@redhat.com> Acked-by: Jason Wang <jasowang@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* | Merge tag 'pull-block-2022-03-29' of https://gitlab.com/hreitz/qemu into stagingPeter Maydell2022-03-2980-90/+136
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Block patches for 7.0-rc2: - Disable GLOBAL_STATE_CODE() assertion for the 7.0 release: We got another bug report for this, and we do not have the time to investigate before 7.0, so disable the assertion for the release, to re-enable and continue investigation in the 7.1 cycle - stream job fix (regarding interaction with concurrent block jobs) - iotests fixes # gpg: Signature made Tue 29 Mar 2022 15:55:33 BST # gpg: using RSA key CB62D7A0EE3829E45F004D34A1FA40D098019CDF # gpg: issuer "hreitz@redhat.com" # gpg: Good signature from "Hanna Reitz <hreitz@redhat.com>" [marginal] # gpg: WARNING: This key is not certified with sufficiently trusted signatures! # gpg: It is not certain that the signature belongs to the owner. # Primary key fingerprint: CB62 D7A0 EE38 29E4 5F00 4D34 A1FA 40D0 9801 9CDF * tag 'pull-block-2022-03-29' of https://gitlab.com/hreitz/qemu: iotests: Fix status checks block/stream: Drain subtree around graph change main-loop: Disable GLOBAL_STATE_CODE() assertions iotests: update test owner contact information Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
| * | iotests: Fix status checksHanna Reitz2022-03-292-12/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | An iotest's 'paused' condition is fickle; it will be reported as true whenever the job is drained, for example, or when it is in the process of completing. 030 and 041 contain such checks, we should replace them by checking the job status instead. (As was done for 129 in commit f9a6256b48f29c2816 for the 'busy' condition.) Additionally, when we want to test that a job is paused on error, we might want to give it some time to actually switch to the paused state. Do that by waiting on the corresponding JOB_STATUS_CHANGE event. (But only if they are not already paused; the loops these places are in fetch all VM events, so they may have already fetched that event from the queue.) Signed-off-by: Hanna Reitz <hreitz@redhat.com> Message-Id: <20220324180221.24508-1-hreitz@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
| * | block/stream: Drain subtree around graph changeHanna Reitz2022-03-292-1/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the stream block job cuts out the nodes between top and base in stream_prepare(), it does not drain the subtree manually; it fetches the base node, and tries to insert it as the top node's backing node with bdrv_set_backing_hd(). bdrv_set_backing_hd() however will drain, and so the actual base node might change (because the base node is actually not part of the stream job) before the old base node passed to bdrv_set_backing_hd() is installed. This has two implications: First, the stream job does not keep a strong reference to the base node. Therefore, if it is deleted in bdrv_set_backing_hd()'s drain (e.g. because some other block job is drained to finish), we will get a use-after-free. We should keep a strong reference to that node. Second, even with such a strong reference, the problem remains that the base node might change before bdrv_set_backing_hd() actually runs and as a result the wrong base node is installed. Both effects can be seen in 030's TestParallelOps.test_overlapping_5() case, which has five nodes, and simultaneously streams from the middle node to the top node, and commits the middle node down to the base node. As it is, this will sometimes crash, namely when we encounter the above-described use-after-free. Taking a strong reference to the base node, we no longer get a crash, but the resuling block graph is less than ideal: The expected result is obviously that all middle nodes are cut out and the base node is the immediate backing child of the top node. However, if stream_prepare() takes a strong reference to its base node (the middle node), and then the commit job finishes in bdrv_set_backing_hd(), supposedly dropping that middle node, the stream job will just reinstall it again. Therefore, we need to keep the whole subtree drained in stream_prepare(), so that the graph modification it performs is effectively atomic, i.e. that the base node it fetches is still the base node when bdrv_set_backing_hd() sets it as the top node's backing node. Verify this by asserting in said 030's test case that the base node is always the top node's immediate backing child when both jobs are done. Signed-off-by: Hanna Reitz <hreitz@redhat.com> Message-Id: <20220324140907.17192-1-hreitz@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Acked-by: Vladimir Sementsov-Ogievskiy <v.sementsov-og@mail.ru>
| * | main-loop: Disable GLOBAL_STATE_CODE() assertionsHanna Reitz2022-03-291-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These assertions are very useful for developers to find bugs, and so they have indeed pointed us towards bugs already. For users, it is not so useful to find these bugs. We should probably not enable them in releases until we are sufficiently certain that they will not fire during normal operation, unless something is going seriously wrong. For example, we have received a bug report that you cannot add an NBD server on a BDS in an I/O thread with `-incoming defer`. I am sure this is a real bug that needs investigation, but we do not really have that time right now, so close to release, and so I would rather disable the assertions to get time to investigate such reports. (I am just putting the link as "buglink" below, not "closes", because disabling the assertion will not fix the likely underlying bug.) Buglink: https://gitlab.com/qemu-project/qemu/-/issues/945 Signed-off-by: Hanna Reitz <hreitz@redhat.com> Message-Id: <20220329093545.52114-1-hreitz@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
| * | iotests: update test owner contact informationJohn Snow2022-03-2976-76/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Quite a few of these tests have stale contact information. This patch updates the stale ones that I happen to be aware of at the moment. Signed-off-by: John Snow <jsnow@redhat.com> Message-Id: <20220322174212.1169630-1-jsnow@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Hanna Reitz <hreitz@redhat.com>
* | | tests/qtest: failover: fix infinite loopLaurent Vivier2022-03-291-4/+25
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | If the migration is over before we cancel it, we are waiting in a loop a state that never comes because the state is already "completed". To avoid an infinite loop, skip the test if the migration is "completed" before we were able to cancel it. Signed-off-by: Laurent Vivier <lvivier@redhat.com> Acked-by: Thomas Huth <thuth@redhat.com> Message-id: 20220329124259.355995-1-lvivier@redhat.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
* | Merge tag 'darwin-20220329' of https://github.com/philmd/qemu into stagingPeter Maydell2022-03-294-1/+37
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Darwin patches - UI fixes # gpg: Signature made Mon 28 Mar 2022 23:42:21 BST # gpg: using RSA key FAABE75E12917221DCFD6BB2E3E32C2CDEADC0DE # gpg: Good signature from "Philippe Mathieu-Daudé (F4BUG) <f4bug@amsat.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: FAAB E75E 1291 7221 DCFD 6BB2 E3E3 2C2C DEAD C0DE * tag 'darwin-20220329' of https://github.com/philmd/qemu: ui/console: Check console before emitting GL event ui/cocoa: Respect left-command-key option main-loop: Disable block backend global state assertion on Cocoa gitattributes: Cover Objective-C source files Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
| * | ui/console: Check console before emitting GL eventAkihiko Odaki2022-03-291-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without this change, The GL output of a console overwrites the other consoles and makes them unusable. Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-Id: <20220325161216.74582-1-akihiko.odaki@gmail.com> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
| * | ui/cocoa: Respect left-command-key optionAkihiko Odaki2022-03-291-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Akihiko Odaki <akihiko.odaki@gmail.com> Fixes: 4797adce5f ("ui/cocoa: add option to swap Option and Command") Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-Id: <20220317152949.68666-1-akihiko.odaki@gmail.com> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
| * | main-loop: Disable block backend global state assertion on CocoaPhilippe Mathieu-Daudé2022-03-291-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 0439c5a462 ("block/block-backend.c: assertions for block-backend") QEMU crashes when using Cocoa on Darwin hosts. Example on macOS: $ qemu-system-i386 Assertion failed: (qemu_in_main_thread()), function blk_all_next, file block-backend.c, line 552. Abort trap: 6 Looking with lldb: Assertion failed: (qemu_in_main_thread()), function blk_all_next, file block-backend.c, line 552. Process 76914 stopped * thread #1, queue = 'com.apple.main-thread', stop reason = hit program assert frame #4: 0x000000010057c2d4 qemu-system-i386`blk_all_next.cold.1 at block-backend.c:552:5 [opt] 549 */ 550 BlockBackend *blk_all_next(BlockBackend *blk) 551 { --> 552 GLOBAL_STATE_CODE(); 553 return blk ? QTAILQ_NEXT(blk, link) 554 : QTAILQ_FIRST(&block_backends); 555 } Target 1: (qemu-system-i386) stopped. (lldb) bt * thread #1, queue = 'com.apple.main-thread', stop reason = hit program assert frame #0: 0x00000001908c99b8 libsystem_kernel.dylib`__pthread_kill + 8 frame #1: 0x00000001908fceb0 libsystem_pthread.dylib`pthread_kill + 288 frame #2: 0x000000019083a314 libsystem_c.dylib`abort + 164 frame #3: 0x000000019083972c libsystem_c.dylib`__assert_rtn + 300 * frame #4: 0x000000010057c2d4 qemu-system-i386`blk_all_next.cold.1 at block-backend.c:552:5 [opt] frame #5: 0x00000001003c00b4 qemu-system-i386`blk_all_next(blk=<unavailable>) at block-backend.c:552:5 [opt] frame #6: 0x00000001003d8f04 qemu-system-i386`qmp_query_block(errp=0x0000000000000000) at qapi.c:591:16 [opt] frame #7: 0x000000010003ab0c qemu-system-i386`main [inlined] addRemovableDevicesMenuItems at cocoa.m:1756:21 [opt] frame #8: 0x000000010003ab04 qemu-system-i386`main(argc=<unavailable>, argv=<unavailable>) at cocoa.m:1980:5 [opt] frame #9: 0x00000001012690f4 dyld`start + 520 As we are in passed release 7.0 hard freeze, disable the block backend assertion which, while being valuable during development, is not helpful to users. We'll restore this assertion immediately once 7.0 is released and work on a fix. Suggested-by: Akihiko Odaki <akihiko.odaki@gmail.com> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Akihiko Odaki <akihiko.odaki@gmail.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-Id: <20220325183707.85733-1-philippe.mathieu.daude@gmail.com>
| * | gitattributes: Cover Objective-C source filesPhilippe Mathieu-Daudé2022-03-291-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Apple's Git distribution actually carries a similar file which annotates *.m: https://github.com/apple-opensource/Git/blob/73/gitattributes See comments in commit 29cf16db23 ("buildsys: Help git-diff adding .gitattributes config file") for details. Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Christian Schoenebeck <qemu_oss@crudebyte.com> Message-Id: <20220317130326.39188-1-philippe.mathieu.daude@gmail.com>