[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-commits] [qemu/qemu] dfae62: docker.py/build: support -t and -f ar
From: |
Peter Maydell |
Subject: |
[Qemu-commits] [qemu/qemu] dfae62: docker.py/build: support -t and -f arguments |
Date: |
Sat, 13 Jun 2020 09:30:28 -0700 |
Branch: refs/heads/master
Home: https://github.com/qemu/qemu
Commit: dfae62845961556935c6b8ccbb4285d4688c42b4
https://github.com/qemu/qemu/commit/dfae62845961556935c6b8ccbb4285d4688c42b4
Author: Paolo Bonzini <pbonzini@redhat.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M tests/docker/Makefile.include
M tests/docker/docker.py
Log Message:
-----------
docker.py/build: support -t and -f arguments
The docker.py command line is subtly different from docker and podman's,
in that the tag and Dockerfile are passed via positional arguments.
Remove this gratuitous difference and just parse -f and -t.
-f was previously used by --extra-files, only keep the long option.
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: af509738f8e4400c26d321abeac924efb04fbfa0
https://github.com/qemu/qemu/commit/af509738f8e4400c26d321abeac924efb04fbfa0
Author: Paolo Bonzini <pbonzini@redhat.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M tests/docker/docker.py
Log Message:
-----------
docker.py/build: support binary files in --extra-files
Read the --extra-files in binary mode to avoid encoding errors.
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 6ed4075c3c06b35cbd8316f2121073c600fcc089
https://github.com/qemu/qemu/commit/6ed4075c3c06b35cbd8316f2121073c600fcc089
Author: Paolo Bonzini <pbonzini@redhat.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M scripts/coverity-scan/run-coverity-scan
Log Message:
-----------
run-coverity-scan: get Coverity token and email from special git config
section
Support a [coverity] section in .git/config. It can be used to retrieve the
token and also, if it is different from user.email, the username of the
submitter.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 726590594071a458643a00160aa659dd5f663b72
https://github.com/qemu/qemu/commit/726590594071a458643a00160aa659dd5f663b72
Author: Paolo Bonzini <pbonzini@redhat.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M scripts/coverity-scan/coverity-scan.docker
M scripts/coverity-scan/run-coverity-scan
Log Message:
-----------
run-coverity-scan: use docker.py
Our trusted docker wrapper allows run-coverity-scan to run with both
docker and podman.
For the "run" phase this is transparent; for the "build" phase however
scripts are replaced with a bind mount (-v). This is not an issue
because the secret option is meant for secrets stored globally in the
system and bind mounts are a valid substitute for secrets that are known
to whoever builds the container.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: b99b007905f06042435ebc6fbcbe66ee34a7b596
https://github.com/qemu/qemu/commit/b99b007905f06042435ebc6fbcbe66ee34a7b596
Author: Paolo Bonzini <pbonzini@redhat.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M scripts/coverity-scan/run-coverity-scan
Log Message:
-----------
run-coverity-scan: add --no-update-tools option
Provide a quick way to skip building the container while we figure out how
to get caching right.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 3077453cf965c999ae0aaab46c566edf74f8e0b4
https://github.com/qemu/qemu/commit/3077453cf965c999ae0aaab46c566edf74f8e0b4
Author: Paolo Bonzini <pbonzini@redhat.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M scripts/coverity-scan/run-coverity-scan
Log Message:
-----------
run-coverity-scan: use --no-update-tools in docker run
Tools are already updated via the docker build.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 2e90470e90d660ed03321ba677fba2d5208bc6e4
https://github.com/qemu/qemu/commit/2e90470e90d660ed03321ba677fba2d5208bc6e4
Author: Paolo Bonzini <pbonzini@redhat.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M scripts/coverity-scan/coverity-scan.docker
M scripts/coverity-scan/run-coverity-scan
Log Message:
-----------
run-coverity-scan: download tools outside the container
This lets us look at coverity_tool.md5 across executions of run-coverity-scan
and skip the download.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: fbb84f074174aa3bb6fde4a63b569a1f7e64f264
https://github.com/qemu/qemu/commit/fbb84f074174aa3bb6fde4a63b569a1f7e64f264
Author: Paolo Bonzini <pbonzini@redhat.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M scripts/coverity-scan/run-coverity-scan
Log Message:
-----------
run-coverity-scan: support --update-tools-only --docker
Just build the container when run-coverity-scan is invoked with
--update-tools-only --docker. This requires moving the "docker build"
logic into the update_coverity_tools function.
The only snag is that --update-tools-only --docker requires access to
the dockerfile. For now just report an error for --src-tarball, and
"docker build" will fail if not in a source tree. Another possibility
could be to host our container images on a public registry, and use
"FROM qemu:fedora" to make the Dockerfile small enough that it can be
included directly in the run-coverity-scan script.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 59d55a16edfac087248dc60dd9525bdfcc057bb1
https://github.com/qemu/qemu/commit/59d55a16edfac087248dc60dd9525bdfcc057bb1
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M softmmu/vl.c
Log Message:
-----------
vl.c: run preconfig loop before creating default RAM backend
Default RAM backend depends on numa_uses_legacy_mem(), which is
infulenced by -numa options on CLI or set-numa-node QMP command
at preconfig time. If QEMU is started with '-preconfig'
without -numa, it will lead to creating default RAM backend
even if later set-numa-node is used to assing RAM to NUMA nodes
using 'memdev' NUMA option.
That at best will waste RAM object created by default and with
next patch adding a check to prevent usage of conflicting
'-M memory-backend' and '-numa memdev'
options, it will make QEMU error out if user tries to configure
NUMA at preconfig time with memdev option, making set-numa-node
unusable.
To fix issue, move preconfig loop before default RAM backend is
created, so that numa_uses_legacy_mem() would take into account
effects of set-numa-node commands executed at preconfig time.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200511141103.43768-2-imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: ea81f98bce48fc424960ca180fe2ccad0427bfc7
https://github.com/qemu/qemu/commit/ea81f98bce48fc424960ca180fe2ccad0427bfc7
Author: Igor Mammedov <imammedo@redhat.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M hw/core/numa.c
Log Message:
-----------
numa: prevent usage of -M memory-backend and -numa memdev at the same time
Options -M memory-backend and -numa memdev are mutually exclusive,
and if used together, it might lead to a crash in the worst case.
For example when the same backend is used with these options together:
-m 4G \
-object memory-backend-ram,id=mem0,size=4G \
-M pc,memory-backend=mem0 \
-numa node,memdev=mem0
QEMU will abort with:
exec.c:2006: qemu_ram_set_idstr: Assertion `!new_block->idstr[0]' failed.
and following backtrace:
abort ()
qemu_ram_set_idstr ()
vmstate_register_ram ()
vmstate_register_ram_global ()
machine_consume_memdev ()
numa_init_memdev_container ()
numa_complete_configuration ()
machine_run_board_init ()
add a check to error out in case the user tries to use both options at
the same time.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20200511141103.43768-3-imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: b8164e68e5f91325821d413fec84b9a0956e95bb
https://github.com/qemu/qemu/commit/b8164e68e5f91325821d413fec84b9a0956e95bb
Author: Pavel Dovgalyuk <Pavel.Dovgaluk@gmail.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M cpus.c
Log Message:
-----------
icount: fix shift=auto for record/replay
This patch fixes shift=auto when record/replay is enabled.
Now user does not need to guess the best shift value.
Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>
--
v2:
moved icount_time_shift to vmstate subsection
Message-Id: <158988500050.15192.692077802469400393.stgit@pasha-ThinkPad-X280>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 4a39181db284167111ff1b27bffe7599543e930f
https://github.com/qemu/qemu/commit/4a39181db284167111ff1b27bffe7599543e930f
Author: Cédric Le Goater <clg@kaod.org>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M qom/object.c
Log Message:
-----------
qom/object: Fix object_child_foreach_recursive() return value
When recursing, the return value of do_object_child_foreach() is not
taken into account.
Cc: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Fixes: d714b8de7747 ("qom: Add recursive version of object_child_for_each")
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200404153340.164861-1-clg@kaod.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: ce8540fde2cb535923a52a012f57b418eea85e1b
https://github.com/qemu/qemu/commit/ce8540fde2cb535923a52a012f57b418eea85e1b
Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M target/i386/misc_helper.c
Log Message:
-----------
target/i386: Fix OUTL debug output
Fix OUTL instructions incorrectly displayed as OUTW.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20200517110147.26026-1-f4bug@amsat.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: ca27b5eb7cdd112ed465bd757358af4c06e135ea
https://github.com/qemu/qemu/commit/ca27b5eb7cdd112ed465bd757358af4c06e135ea
Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M hw/block/vhost-user-blk.c
M hw/pci-host/pam.c
M hw/scsi/vhost-user-scsi.c
M include/hw/display/edid.h
M include/qemu/typedefs.h
M include/qom/object.h
M include/qom/qom-qobject.h
M include/sysemu/sysemu.h
M stubs/qmp_memory_device.c
Log Message:
-----------
qom/object: Move Object typedef to 'qemu/typedefs.h'
We use the Object type all over the place.
Forward declare it in "qemu/typedefs.h".
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20200504115656.6045-2-f4bug@amsat.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 78f8d4975c5d035e2e2447e6e499629b96142db0
https://github.com/qemu/qemu/commit/78f8d4975c5d035e2e2447e6e499629b96142db0
Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M include/io/task.h
M io/task.c
M tests/test-io-task.c
Log Message:
-----------
io/task: Move 'qom/object.h' header to source
We need "qom/object.h" to call object_ref()/object_unref(),
and to test the TYPE_DUMMY.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20200504115656.6045-3-f4bug@amsat.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: fdbff6bd145c1e27520cfe206f04cc664fbb2b30
https://github.com/qemu/qemu/commit/fdbff6bd145c1e27520cfe206f04cc664fbb2b30
Author: Philippe Mathieu-Daudé <philmd@redhat.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M Makefile
M configure
Log Message:
-----------
Makefile: Let the 'help' target list the helper targets
List the name of the helper targets when calling 'make help',
along with the tool targets:
$ make help
[...]
Helper targets:
fsdev/virtfs-proxy-helper - Build virtfs-proxy-helper
scsi/qemu-pr-helper - Build qemu-pr-helper
qemu-bridge-helper - Build qemu-bridge-helper
vhost-user-gpu - Build vhost-user-gpu
virtiofsd - Build virtiofsd
Tools targets:
qemu-ga - Build qemu-ga tool
qemu-keymap - Build qemu-keymap tool
elf2dmp - Build elf2dmp tool
ivshmem-client - Build ivshmem-client tool
ivshmem-server - Build ivshmem-server tool
qemu-nbd - Build qemu-nbd tool
qemu-storage-daemon - Build qemu-storage-daemon tool
qemu-img - Build qemu-img tool
qemu-io - Build qemu-io tool
qemu-edid - Build qemu-edid tool
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: d42cd96100724bc9fbac18cc17c5f5f9b9b2f181
https://github.com/qemu/qemu/commit/d42cd96100724bc9fbac18cc17c5f5f9b9b2f181
Author: Jon Doron <arilou@gmail.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M hw/hyperv/hyperv.c
M include/hw/hyperv/hyperv.h
Log Message:
-----------
hyperv: expose API to determine if synic is enabled
Signed-off-by: Jon Doron <arilou@gmail.com>
Message-Id: <20200424123444.3481728-2-arilou@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 973b1fbd862c848dde7f710ba1b9ca340235e75f
https://github.com/qemu/qemu/commit/973b1fbd862c848dde7f710ba1b9ca340235e75f
Author: Jon Doron <arilou@gmail.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
A include/hw/hyperv/vmbus-proto.h
Log Message:
-----------
vmbus: add vmbus protocol definitions
Add a header with data structures and constants used in Hyper-V VMBus
hypervisor <-> guest interactions.
Based on the respective stuff from Linux kernel.
Signed-off-by: Roman Kagan <rkagan@virtuozzo.com>
Signed-off-by: Maciej S. Szmigiero <maciej.szmigiero@oracle.com>
Signed-off-by: Jon Doron <arilou@gmail.com>
Message-Id: <20200424123444.3481728-3-arilou@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 0d71f7082d7aeec8d9767e32dbf7dd86b94b8260
https://github.com/qemu/qemu/commit/0d71f7082d7aeec8d9767e32dbf7dd86b94b8260
Author: Jon Doron <arilou@gmail.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M Makefile.objs
M hw/hyperv/Kconfig
M hw/hyperv/Makefile.objs
A hw/hyperv/trace-events
A hw/hyperv/vmbus.c
A include/hw/hyperv/vmbus-bridge.h
A include/hw/hyperv/vmbus.h
Log Message:
-----------
vmbus: vmbus implementation
Add the VMBus infrastructure -- bus, devices, root bridge, vmbus state
machine, vmbus channel interactions, etc.
VMBus is a collection of technologies. At its lowest layer, it's a message
passing and signaling mechanism, allowing efficient passing of messages to and
from guest VMs. A layer higher, it's a mechanism for defining channels of
communication, where each channel is tagged with a type (which implies a
protocol) and a instance ID. A layer higher than that, it's a bus driver,
serving as the basis of device enumeration within a VM, where a channel can
optionally be exposed as a paravirtual device. When a server-side (paravirtual
back-end) component wishes to offer a channel to a guest VM, it does so by
specifying a channel type, a mode, and an instance ID. VMBus then exposes this
in the guest.
More information about VMBus can be found in the file
vmbuskernelmodeclientlibapi.h in Microsoft's WDK.
TODO:
- split into smaller palatable pieces
- more comments
- check and handle corner cases
Kudos to Evgeny Yakovlev (formerly eyakovlev@virtuozzo.com) and Andrey
Smetatin (formerly asmetanin@virtuozzo.com) for research and
prototyping.
Signed-off-by: Roman Kagan <rkagan@virtuozzo.com>
Signed-off-by: Maciej S. Szmigiero <maciej.szmigiero@oracle.com>
Signed-off-by: Jon Doron <arilou@gmail.com>
Message-Id: <20200424123444.3481728-4-arilou@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: cab78e7cb298c247c1749125001362a586c45c1f
https://github.com/qemu/qemu/commit/cab78e7cb298c247c1749125001362a586c45c1f
Author: Jon Doron <arilou@gmail.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M hw/i386/pc_piix.c
M hw/i386/pc_q35.c
Log Message:
-----------
i386:pc: whitelist dynamic vmbus-bridge
As vmbus-bridge is derived from sysbus device, it has to be whitelisted
to be allowed to be created with -device.
Signed-off-by: Roman Kagan <rkagan@virtuozzo.com>
Signed-off-by: Maciej S. Szmigiero <maciej.szmigiero@oracle.com>
Signed-off-by: Jon Doron <arilou@gmail.com>
Message-Id: <20200424123444.3481728-5-arilou@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 6775d15de18268718c2f971c2b2d255c76ff2240
https://github.com/qemu/qemu/commit/6775d15de18268718c2f971c2b2d255c76ff2240
Author: Jon Doron <arilou@gmail.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M hw/hyperv/vmbus.c
M hw/i386/acpi-build.c
M include/hw/hyperv/vmbus-bridge.h
Log Message:
-----------
i386: Hyper-V VMBus ACPI DSDT entry
Guest OS uses ACPI to discover VMBus presence. Add a corresponding
entry to DSDT in case VMBus has been enabled.
Experimentally Windows guests were found to require this entry to
include two IRQ resources. They seem to never be used but they still
have to be there.
Make IRQ numbers user-configurable via corresponding properties; use 7
and 13 by default.
Signed-off-by: Evgeny Yakovlev <eyakovlev@virtuozzo.com>
Signed-off-by: Roman Kagan <rkagan@virtuozzo.com>
Signed-off-by: Maciej S. Szmigiero <maciej.szmigiero@oracle.com>
Signed-off-by: Jon Doron <arilou@gmail.com>
Message-Id: <20200424123444.3481728-6-arilou@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 4dd8a7064b8a6527f99a62be11a5124e65cae270
https://github.com/qemu/qemu/commit/4dd8a7064b8a6527f99a62be11a5124e65cae270
Author: Jon Doron <arilou@gmail.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M hw/hyperv/vmbus.c
M include/hw/hyperv/vmbus.h
Log Message:
-----------
vmbus: add infrastructure to save/load vmbus requests
This can be allow to include controller-specific data while
saving/loading in-flight scsi requests of the vmbus scsi controller.
Signed-off-by: Roman Kagan <rkagan@virtuozzo.com>
Signed-off-by: Maciej S. Szmigiero <maciej.szmigiero@oracle.com>
Signed-off-by: Jon Doron <arilou@gmail.com>
Message-Id: <20200424123444.3481728-7-arilou@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: cac9edfc4dad2a7d2ad7e23e0de4edc41801e346
https://github.com/qemu/qemu/commit/cac9edfc4dad2a7d2ad7e23e0de4edc41801e346
Author: Babu Moger <babu.moger@amd.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M target/i386/cpu.c
Log Message:
-----------
target/i386: Fix the CPUID leaf CPUID_Fn80000008
CPUID leaf CPUID_Fn80000008_ECX provides information about the
number of threads supported by the processor. It was found that
the field ApicIdSize(bits 15-12) was not set correctly.
ApicIdSize is defined as the number of bits required to represent
all the ApicId values within a package.
Valid Values: Value Description
3h-0h Reserved.
4h up to 16 threads.
5h up to 32 threads.
6h up to 64 threads.
7h up to 128 threads.
Fh-8h Reserved.
Fix the bit appropriately.
This came up during following thread.
https://lore.kernel.org/qemu-devel/158643709116.17430.15995069125716778943.malonedeb@wampee.canonical.com/#t
Refer the Processor Programming Reference (PPR) for AMD Family 17h
Model 01h, Revision B1 Processors. The documentation is available
from the bugzilla Link below.
Link: https://bugzilla.kernel.org/show_bug.cgi?id=206537
Reported-by: Philipp Eppelt <1871842@bugs.launchpad.net>
Signed-off-by: Babu Moger <babu.moger@amd.com>
Message-Id: <20200417215345.64800.73351.stgit@localhost.localdomain>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 2dfbea1a872727fb747ca6adf2390e09956cdc6e
https://github.com/qemu/qemu/commit/2dfbea1a872727fb747ca6adf2390e09956cdc6e
Author: Janne Grunau <j@jannau.net>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M target/i386/ops_sse.h
Log Message:
-----------
target/i386: fix phadd* with identical destination and source register
Detected by asm test suite failures in dav1d
(https://code.videolan.org/videolan/dav1d). Can be reproduced by
`qemu-x86_64 -cpu core2duo ./tests/checkasm --test=mc_8bpc 1659890620`.
Signed-off-by: Janne Grunau <j@jannau.net>
Message-Id: <20200401225253.30745-1-j@jannau.net>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 29282253b79fcb917d154d37a491c17b390f258b
https://github.com/qemu/qemu/commit/29282253b79fcb917d154d37a491c17b390f258b
Author: Liran Alon <liran.alon@oracle.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M hw/i386/vmport.c
Log Message:
-----------
hw/i386/vmport: Add reference to VMware open-vm-tools
This official VMware open-source project can be used as reference to
understand how guest code interacts with VMPort virtual device. Thus,
providing understanding on how device is expected to behave.
Signed-off-by: Liran Alon <liran.alon@oracle.com>
Message-Id: <20200312165431.82118-2-liran.alon@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: c9ab24cef8ab680e3d24d7332599b2b857bd107b
https://github.com/qemu/qemu/commit/c9ab24cef8ab680e3d24d7332599b2b857bd107b
Author: Liran Alon <liran.alon@oracle.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M hw/i386/vmport.c
Log Message:
-----------
hw/i386/vmport: Add device properties
No functional change.
This is done as a preparation for the following patches that will
introduce several device properties.
Reviewed-by: Nikita Leshenko <nikita.leshchenko@oracle.com>
Signed-off-by: Liran Alon <liran.alon@oracle.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200312165431.82118-3-liran.alon@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: b889212973dabee119a1ab21326a27fc51b88d6d
https://github.com/qemu/qemu/commit/b889212973dabee119a1ab21326a27fc51b88d6d
Author: Liran Alon <liran.alon@oracle.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M hw/core/machine.c
M hw/i386/vmport.c
Log Message:
-----------
hw/i386/vmport: Propagate IOPort read to vCPU EAX register
vmport_ioport_read() returns the value that should propagate to vCPU EAX
register when guest reads VMPort IOPort (i.e. By x86 IN instruction).
However, because vmport_ioport_read() calls cpu_synchronize_state(), the
returned value gets overridden by the value in QEMU vCPU EAX register.
i.e. cpu->env.regs[R_EAX].
To fix this issue, change vmport_ioport_read() to explicitly override
cpu->env.regs[R_EAX] with the value it wish to propagate to vCPU EAX
register.
Reviewed-by: Nikita Leshenko <nikita.leshchenko@oracle.com>
Signed-off-by: Liran Alon <liran.alon@oracle.com>
Message-Id: <20200312165431.82118-4-liran.alon@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 0342ee761ef27a0def476dab3e284f924b3c801e
https://github.com/qemu/qemu/commit/0342ee761ef27a0def476dab3e284f924b3c801e
Author: Liran Alon <liran.alon@oracle.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M hw/core/machine.c
M hw/i386/vmport.c
Log Message:
-----------
hw/i386/vmport: Set EAX to -1 on failed and unsupported commands
This is used as a signal for VMware Tools to know if a command it
attempted to invoke, failed or is unsupported. As a result, VMware Tools
will either report failure to user or fallback to another backdoor command
in attempt to perform some operation.
A few examples:
* open-vm-tools TimeSyncReadHost() function fallbacks to
CMD_GETTIMEFULL command when CMD_GETTIMEFULL_WITH_LAG
fails/unsupported.
* open-vm-tools Hostinfo_NestingSupported() function verifies
EAX != -1 to check for success.
* open-vm-tools Hostinfo_VCPUInfoBackdoor() functions checks
if reserved-bit is set to indicate command is unimplemented.
Reviewed-by: Nikita Leshenko <nikita.leshchenko@oracle.com>
Signed-off-by: Liran Alon <liran.alon@oracle.com>
Message-Id: <20200312165431.82118-5-liran.alon@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 2fd2f799f874a4d4156c4c7287c92cfbbae5bdb2
https://github.com/qemu/qemu/commit/2fd2f799f874a4d4156c4c7287c92cfbbae5bdb2
Author: Liran Alon <liran.alon@oracle.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M hw/i386/vmport.c
Log Message:
-----------
hw/i386/vmport: Introduce vmware-vmx-version property
vmware-vmx-version is a number returned from CMD_GETVERSION which specifies
to guest VMware Tools the the host VMX version. If the host reports a number
that is different than what the guest VMware Tools expects, it may force
guest to upgrade VMware Tools. (See comment above VERSION_MAGIC and
VmCheck_IsVirtualWorld() function in open-vm-tools open-source code).
For better readability and allow maintaining compatability for guests
which may expect different vmware-vmx-version, make vmware-vmx-version a
VMPort object property. This would allow user to control it's value via
"-global vmport.vmware-vmx-version=X".
Reviewed-by: Nikita Leshenko <nikita.leshchenko@oracle.com>
Signed-off-by: Liran Alon <liran.alon@oracle.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200312165431.82118-6-liran.alon@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: f8bdc550370f9a652a00db891f9b7640d83c0c43
https://github.com/qemu/qemu/commit/f8bdc550370f9a652a00db891f9b7640d83c0c43
Author: Liran Alon <liran.alon@oracle.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M hw/core/machine.c
M hw/i386/vmport.c
Log Message:
-----------
hw/i386/vmport: Report vmware-vmx-type in CMD_GETVERSION
As can be seen from VmCheck_GetVersion() in open-vm-tools code,
CMD_GETVERSION should return vmware-vmx-type in ECX register.
Default is to fake host as VMware ESX server. But user can control
this value by "-global vmport.vmware-vmx-type=X".
Reviewed-by: Nikita Leshenko <nikita.leshchenko@oracle.com>
Signed-off-by: Liran Alon <liran.alon@oracle.com>
Message-Id: <20200312165431.82118-7-liran.alon@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: d8f23d619c495bc64977c00e92f3af4ff2c54046
https://github.com/qemu/qemu/commit/d8f23d619c495bc64977c00e92f3af4ff2c54046
Author: Liran Alon <liran.alon@oracle.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M hw/i386/pc.c
M hw/i386/vmmouse.c
M hw/i386/vmport.c
R hw/i386/vmport.h
A include/hw/i386/vmport.h
Log Message:
-----------
hw/i386/vmport: Introduce vmport.h
No functional change. This is mere refactoring.
Suggested-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Liran Alon <liran.alon@oracle.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200312165431.82118-8-liran.alon@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: dcd938f032d3cca5d33d9faaca591b498d40debe
https://github.com/qemu/qemu/commit/dcd938f032d3cca5d33d9faaca591b498d40debe
Author: Liran Alon <liran.alon@oracle.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M hw/i386/vmmouse.c
M hw/i386/vmport.c
M include/hw/i386/vmport.h
Log Message:
-----------
hw/i386/vmport: Define enum for all commands
No functional change.
Defining an enum for all VMPort commands have the following advantages:
* It gets rid of the error-prone requirement to update VMPORT_ENTRIES
when new VMPort commands are added to QEMU.
* It makes it clear to know by looking at one place at the source, what
are all the VMPort commands supported by QEMU.
Reviewed-by: Nikita Leshenko <nikita.leshchenko@oracle.com>
Signed-off-by: Liran Alon <liran.alon@oracle.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200312165431.82118-9-liran.alon@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: aaacf1c15a225ffeb1ff066b78e211594b3a5053
https://github.com/qemu/qemu/commit/aaacf1c15a225ffeb1ff066b78e211594b3a5053
Author: Liran Alon <liran.alon@oracle.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M hw/core/machine.c
M hw/i386/vmport.c
M include/hw/i386/vmport.h
Log Message:
-----------
hw/i386/vmport: Add support for CMD_GETBIOSUUID
This is VMware documented functionallity that some guests rely on.
Returns the BIOS UUID of the current virtual machine.
Note that we also introduce a new compatability flag "x-cmds-v2" to
make sure to expose new VMPort commands only to new machine-types.
This flag will also be used by the following patches that will introduce
additional VMPort commands.
Reviewed-by: Nikita Leshenko <nikita.leshchenko@oracle.com>
Signed-off-by: Liran Alon <liran.alon@oracle.com>
Message-Id: <20200312165431.82118-10-liran.alon@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: acacd3550ba1b2379d5a14a00f7dad4820a015b4
https://github.com/qemu/qemu/commit/acacd3550ba1b2379d5a14a00f7dad4820a015b4
Author: Liran Alon <liran.alon@oracle.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M hw/i386/vmport.c
M include/hw/i386/vmport.h
Log Message:
-----------
hw/i386/vmport: Add support for CMD_GET_VCPU_INFO
Command currently returns that it is unimplemented by setting
the reserved-bit in it's return value.
Following patches will return various useful vCPU information
to guest.
Reviewed-by: Nikita Leshenko <nikita.leshchenko@oracle.com>
Signed-off-by: Liran Alon <liran.alon@oracle.com>
Message-Id: <20200312165431.82118-13-liran.alon@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 7f9114b77c285016cb5ac28604b9923cbac43ddf
https://github.com/qemu/qemu/commit/7f9114b77c285016cb5ac28604b9923cbac43ddf
Author: Liran Alon <liran.alon@oracle.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M hw/i386/vmport.c
Log Message:
-----------
hw/i386/vmport: Allow x2apic without IR
Signal to guest that hypervisor supports x2apic without VT-d/IOMMU
Interrupt-Remapping support. This allows guest to use x2apic in
case all APIC IDs fits in 8-bit (i.e. Max APIC ID < 255).
See Linux kernel commit 4cca6ea04d31 ("x86/apic: Allow x2apic
without IR on VMware platform") and Linux try_to_enable_x2apic()
function.
Reviewed-by: Nikita Leshenko <nikita.leshchenko@oracle.com>
Signed-off-by: Liran Alon <liran.alon@oracle.com>
Message-Id: <20200312165431.82118-14-liran.alon@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 73b994f6d74ec00a1d78daf4145096ff9f0e2982
https://github.com/qemu/qemu/commit/73b994f6d74ec00a1d78daf4145096ff9f0e2982
Author: Liran Alon <liran.alon@oracle.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M target/i386/cpu.h
M target/i386/kvm.c
Log Message:
-----------
i386/cpu: Store LAPIC bus frequency in CPU structure
No functional change.
This information will be used by following patches.
Reviewed-by: Nikita Leshenko <nikita.leshchenko@oracle.com>
Signed-off-by: Liran Alon <liran.alon@oracle.com>
Message-Id: <20200312165431.82118-15-liran.alon@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: d6048bfd12e24a0980ba2040cfaa2b101df3fa16
https://github.com/qemu/qemu/commit/d6048bfd12e24a0980ba2040cfaa2b101df3fa16
Author: Liran Alon <liran.alon@oracle.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M hw/i386/vmport.c
M include/hw/i386/vmport.h
Log Message:
-----------
hw/i386/vmport: Add support for CMD_GETHZ
This command returns to guest information on LAPIC bus frequency and TSC
frequency.
One can see how this interface is used by Linux vmware_platform_setup()
introduced in Linux commit 88b094fb8d4f ("x86: Hypervisor detection and
get tsc_freq from hypervisor").
Reviewed-by: Nikita Leshenko <nikita.leshchenko@oracle.com>
Signed-off-by: Liran Alon <liran.alon@oracle.com>
Message-Id: <20200312165431.82118-16-liran.alon@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 23accdf162dcccb9fec9585a64ad01a87b13da5c
https://github.com/qemu/qemu/commit/23accdf162dcccb9fec9585a64ad01a87b13da5c
Author: Liran Alon <liran.alon@oracle.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M hw/i386/vmport.c
Log Message:
-----------
hw/i386/vmport: Assert vmport initialized before registering commands
vmport_register() is also called from other modules such as vmmouse.
Therefore, these modules rely that vmport is realized before those call
sites. If this is violated, vmport_register() will NULL-deref.
To make such issues easier to debug, assert in vmport_register() that
vmport is already realized.
Reviewed-by: Nikita Leshenko <nikita.leshchenko@oracle.com>
Signed-off-by: Liran Alon <liran.alon@oracle.com>
Message-Id: <20200312165431.82118-17-liran.alon@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: da278d58a092bfcc4e36f1e274229c1468dea731
https://github.com/qemu/qemu/commit/da278d58a092bfcc4e36f1e274229c1468dea731
Author: Philippe Mathieu-Daudé <philmd@redhat.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M MAINTAINERS
M accel/Makefile.objs
A accel/xen/Makefile.objs
A accel/xen/xen-all.c
M hw/acpi/piix4.c
M hw/i386/pc.c
M hw/i386/pc_piix.c
M hw/i386/pc_q35.c
M hw/i386/xen/xen-hvm.c
M hw/i386/xen/xen_platform.c
M hw/isa/piix3.c
M hw/pci/msix.c
M hw/xen/Makefile.objs
R hw/xen/xen-common.c
M include/exec/ram_addr.h
M include/hw/xen/xen.h
A include/sysemu/xen.h
M migration/savevm.c
M softmmu/vl.c
M stubs/xen-hvm.c
M target/i386/cpu.c
Log Message:
-----------
accel: Move Xen accelerator code under accel/xen/
This code is not related to hardware emulation.
Move it under accel/ with the other hypervisors.
Reviewed-by: Paul Durrant <paul@xen.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200508100222.7112-1-philmd@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: ad195c8ff562365b3e5b43e800d6acd84cb22e99
https://github.com/qemu/qemu/commit/ad195c8ff562365b3e5b43e800d6acd84cb22e99
Author: Masahiro Yamada <masahiroy@kernel.org>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M qom/object.c
Log Message:
-----------
qom: remove index from object_resolve_abs_path()
You can advance 'parts' to track the current path fragment.
The 'index' parameter is unneeded.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Message-Id: <20200510013235.954906-1-masahiroy@kernel.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: e5a0cc5e44c0344a3b8e284feeeffe43debca995
https://github.com/qemu/qemu/commit/e5a0cc5e44c0344a3b8e284feeeffe43debca995
Author: Masahiro Yamada <masahiroy@kernel.org>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M qom/object.c
Log Message:
-----------
qom/object: factor out the initialization of hash table of properties
Properties are not related to the initialization of interfaces.
The initialization of the hash table can be moved after the if-block,
and unified.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Message-Id: <20200512172615.2291999-1-masahiroy@kernel.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 3d91293ed2c023b016d845b68ee184ee0f435227
https://github.com/qemu/qemu/commit/3d91293ed2c023b016d845b68ee184ee0f435227
Author: Masahiro Yamada <masahiroy@kernel.org>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M qom/object.c
Log Message:
-----------
qom/object: simplify type_initialize_interface()
iface_impl->class is the same as new_iface. Make it more readable.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Message-Id: <20200512182501.2300530-1-masahiroy@kernel.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: e27a959581759d4f6df45993ba940ec1f769ea68
https://github.com/qemu/qemu/commit/e27a959581759d4f6df45993ba940ec1f769ea68
Author: Masahiro Yamada <masahiroy@kernel.org>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M qom/object.c
Log Message:
-----------
qom/object: pass (Object *) to object_initialize_with_type()
object_new_with_type() already passes (Object *) pointer.
Avoid casting back and forth.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Message-Id: <20200512173104.2293073-1-masahiroy@kernel.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: c5e18709585c6f2a3464f89434b0040ce5164d9d
https://github.com/qemu/qemu/commit/c5e18709585c6f2a3464f89434b0040ce5164d9d
Author: Masahiro Yamada <masahiroy@kernel.org>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M qom/container.c
Log Message:
-----------
qom/container: remove .instance_size initializer from container_info
You can omit .instance_size if it is the same as that of the parent.
.class_size = sizeof(ObjectClass)
... is omitted here, so removing .instance_size is more consistent.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Message-Id: <20200513033600.2709646-1-masahiroy@kernel.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 6c1ddc36d8ddcb21e905dfdecfb9f2e4d4fd8acc
https://github.com/qemu/qemu/commit/6c1ddc36d8ddcb21e905dfdecfb9f2e4d4fd8acc
Author: Markus Armbruster <armbru@redhat.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M cpus.c
Log Message:
-----------
cpus: Fix botched configure_icount() error API violation fix
Before recent commit abc9bf69a66, configure_icount() returned early
when option "shift" was absent: succeed when option "align" was also
absent, else fail.
Since then, it still errors out when only "align" is present, but
continues when both are absent. Crashes when examining the value of
"shift" further. Reproducer: -icount "".
Revert this erroneous part of the commit.
Fixes: abc9bf69a66a11499a801ff545b8fe7adbb3a04c
Fixes: Coverity CID 1428754
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200515042231.18201-1-armbru@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 34a0950605855870017bbe4d96110bf06a075982
https://github.com/qemu/qemu/commit/34a0950605855870017bbe4d96110bf06a075982
Author: WangBowen <bowen.wang@intel.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M target/i386/hax-all.c
M target/i386/hax-i386.h
Log Message:
-----------
hax: Dynamic allocate vcpu state structure
Dynamic allocating vcpu state structure according to smp value to be
more precise and safe. Previously it will alloccate array of fixed size
HAX_MAX_VCPU.
This is achieved by using g_new0 to dynamic allocate the array. The
allocated size is obtained from smp.max_cpus in MachineState. Also, the
size is compared with HAX_MAX_VCPU when creating the vm. The reason for
choosing dynamic array over linked list is because the status is visited
by index all the time.
This will lead to QEMU checking whether the smp value is larger than the
HAX_MAX_VCPU when creating vm, if larger, the process will terminate,
otherwise it will allocate array of size smp to store the status.
V2: Check max_cpus before open vm. (Philippe)
Signed-off-by: WangBowen <bowen.wang@intel.com>
Signed-off-by: Colin Xu <colin.xu@intel.com>
Message-Id: <20200509035952.187615-1-colin.xu@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 2a6931425890a9a2822e62f60724a9edbb93ba10
https://github.com/qemu/qemu/commit/2a6931425890a9a2822e62f60724a9edbb93ba10
Author: Pan Nengyuan <pannengyuan@huawei.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M target/i386/cpu.h
M target/i386/kvm.c
Log Message:
-----------
i386/kvm: fix a use-after-free when vcpu plug/unplug
When we hotplug vcpus, cpu_update_state is added to vm_change_state_head
in kvm_arch_init_vcpu(). But it forgot to delete in kvm_arch_destroy_vcpu()
after
unplug. Then it will cause a use-after-free access. This patch delete it in
kvm_arch_destroy_vcpu() to fix that.
Reproducer:
virsh setvcpus vm1 4 --live
virsh setvcpus vm1 2 --live
virsh suspend vm1
virsh resume vm1
The UAF stack:
==qemu-system-x86_64==28233==ERROR: AddressSanitizer: heap-use-after-free on
address 0x62e00002e798 at pc 0x5573c6917d9e bp 0x7fff07139e50 sp 0x7fff07139e40
WRITE of size 1 at 0x62e00002e798 thread T0
#0 0x5573c6917d9d in cpu_update_state /mnt/sdb/qemu/target/i386/kvm.c:742
#1 0x5573c699121a in vm_state_notify /mnt/sdb/qemu/vl.c:1290
#2 0x5573c636287e in vm_prepare_start /mnt/sdb/qemu/cpus.c:2144
#3 0x5573c6362927 in vm_start /mnt/sdb/qemu/cpus.c:2150
#4 0x5573c71e8304 in qmp_cont /mnt/sdb/qemu/monitor/qmp-cmds.c:173
#5 0x5573c727cb1e in qmp_marshal_cont qapi/qapi-commands-misc.c:835
#6 0x5573c7694c7a in do_qmp_dispatch /mnt/sdb/qemu/qapi/qmp-dispatch.c:132
#7 0x5573c7694c7a in qmp_dispatch /mnt/sdb/qemu/qapi/qmp-dispatch.c:175
#8 0x5573c71d9110 in monitor_qmp_dispatch /mnt/sdb/qemu/monitor/qmp.c:145
#9 0x5573c71dad4f in monitor_qmp_bh_dispatcher
/mnt/sdb/qemu/monitor/qmp.c:234
Reported-by: Euler Robot <euler.robot@huawei.com>
Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200513132630.13412-1-pannengyuan@huawei.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: f50ab86a2620bd7e8507af865b164655ee921661
https://github.com/qemu/qemu/commit/f50ab86a2620bd7e8507af865b164655ee921661
Author: Prasad J Pandit <pjp@fedoraproject.org>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M hw/scsi/megasas.c
Log Message:
-----------
megasas: use unsigned type for reply_queue_head and check index
A guest user may set 'reply_queue_head' field of MegasasState to
a negative value. Later in 'megasas_lookup_frame' it is used to
index into s->frames[] array. Use unsigned type to avoid OOB
access issue.
Also check that 'index' value stays within s->frames[] bounds
through the while() loop in 'megasas_lookup_frame' to avoid OOB
access.
Reported-by: Ren Ding <rding@gatech.edu>
Reported-by: Hanqing Zhao <hanqing@gatech.edu>
Reported-by: Alexander Bulekov <alxndr@bu.edu>
Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
Acked-by: Alexander Bulekov <alxndr@bu.edu>
Message-Id: <20200513192540.1583887-2-ppandit@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: fd6918556736ecce8b10acd581ba134ffb62d9f9
https://github.com/qemu/qemu/commit/fd6918556736ecce8b10acd581ba134ffb62d9f9
Author: Prasad J Pandit <pjp@fedoraproject.org>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M hw/scsi/megasas.c
Log Message:
-----------
megasas: avoid NULL pointer dereference
While in megasas_handle_frame(), megasas_enqueue_frame() may
set a NULL frame into MegasasCmd object for a given 'frame_addr'
address. Add check to avoid a NULL pointer dereference issue.
Reported-by: Alexander Bulekov <alxndr@bu.edu>
Fixes: https://bugs.launchpad.net/qemu/+bug/1878259
Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
Acked-by: Alexander Bulekov <alxndr@bu.edu>
Reviewed-by: Darren Kenny <darren.kenny@oracle.com>
Message-Id: <20200513192540.1583887-3-ppandit@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 2b151297e44655e45c18f57ae0232780ee4ad45a
https://github.com/qemu/qemu/commit/2b151297e44655e45c18f57ae0232780ee4ad45a
Author: Prasad J Pandit <pjp@fedoraproject.org>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M hw/scsi/megasas.c
Log Message:
-----------
megasas: use unsigned type for positive numeric fields
Use unsigned type for the MegasasState fields which hold positive
numeric values.
Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
Reviewed-by: Darren Kenny <darren.kenny@oracle.com>
Message-Id: <20200513192540.1583887-4-ppandit@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: c415f2c58296d86e9abb7e4a133111acf7031da3
https://github.com/qemu/qemu/commit/c415f2c58296d86e9abb7e4a133111acf7031da3
Author: Joseph Myers <joseph@codesourcery.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M target/i386/fpu_helper.c
A tests/tcg/i386/test-i386-fxtract.c
Log Message:
-----------
target/i386: implement special cases for fxtract
The implementation of the fxtract instruction treats all nonzero
operands as normal numbers, so yielding incorrect results for invalid
formats, infinities, NaNs and subnormal and pseudo-denormal operands.
Implement appropriate handling of all those cases.
Signed-off-by: Joseph Myers <joseph@codesourcery.com>
Acked-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <alpine.DEB.2.21.2005070042360.18350@digraph.polyomino.org.uk>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 0d48b436327955c69e2eb53f88aba9aa1e0dbaa0
https://github.com/qemu/qemu/commit/0d48b436327955c69e2eb53f88aba9aa1e0dbaa0
Author: Joseph Myers <joseph@codesourcery.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M target/i386/fpu_helper.c
A tests/tcg/i386/test-i386-fscale.c
Log Message:
-----------
target/i386: fix fscale handling of signaling NaN
The implementation of the fscale instruction returns a NaN exponent
unchanged. Fix it to return a quiet NaN when the provided exponent is
a signaling NaN.
Signed-off-by: Joseph Myers <joseph@codesourcery.com>
Message-Id: <alpine.DEB.2.21.2005070043330.18350@digraph.polyomino.org.uk>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: b40eec96b26028b68c3594fbf34b6d6f029df26a
https://github.com/qemu/qemu/commit/b40eec96b26028b68c3594fbf34b6d6f029df26a
Author: Joseph Myers <joseph@codesourcery.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M target/i386/fpu_helper.c
M tests/tcg/i386/test-i386-fscale.c
Log Message:
-----------
target/i386: fix fscale handling of invalid exponent encodings
The fscale implementation does not check for invalid encodings in the
exponent operand, thus treating them like INT_MIN (the value returned
for invalid encodings by floatx80_to_int32_round_to_zero). Fix it to
treat them similarly to signaling NaN exponents, thus generating a
quiet NaN result.
Signed-off-by: Joseph Myers <joseph@codesourcery.com>
Message-Id: <alpine.DEB.2.21.2005070044190.18350@digraph.polyomino.org.uk>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: c1c5fb8f9067c830e36830c2b82c0ec146c03d7b
https://github.com/qemu/qemu/commit/c1c5fb8f9067c830e36830c2b82c0ec146c03d7b
Author: Joseph Myers <joseph@codesourcery.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M target/i386/fpu_helper.c
M tests/tcg/i386/test-i386-fscale.c
Log Message:
-----------
target/i386: fix fscale handling of infinite exponents
The fscale implementation passes infinite exponents through to generic
code that rounds the exponent to a 32-bit integer before using
floatx80_scalbn. In round-to-nearest mode, and ignoring exceptions,
this works in many cases. But it fails to handle the special cases of
scaling 0 by a +Inf exponent or an infinity by a -Inf exponent, which
should produce a NaN, and because it produces an inexact result for
finite nonzero numbers being scaled, the result is sometimes incorrect
in other rounding modes. Add appropriate handling of infinite
exponents to produce a NaN or an appropriately signed exact zero or
infinity as a result.
Signed-off-by: Joseph Myers <joseph@codesourcery.com>
Message-Id: <alpine.DEB.2.21.2005070045010.18350@digraph.polyomino.org.uk>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: c535d68755576bfa33be7aef7bd294a601f776e0
https://github.com/qemu/qemu/commit/c535d68755576bfa33be7aef7bd294a601f776e0
Author: Joseph Myers <joseph@codesourcery.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M target/i386/fpu_helper.c
M tests/tcg/i386/test-i386-fscale.c
Log Message:
-----------
target/i386: fix fscale handling of rounding precision
The fscale implementation uses floatx80_scalbn for the final scaling
operation. floatx80_scalbn ends up rounding the result using the
dynamic rounding precision configured for the FPU. But only a limited
set of x87 floating-point instructions are supposed to respect the
dynamic rounding precision, and fscale is not in that set. Fix the
implementation to save and restore the rounding precision around the
call to floatx80_scalbn.
Signed-off-by: Joseph Myers <joseph@codesourcery.com>
Message-Id: <alpine.DEB.2.21.2005070045430.18350@digraph.polyomino.org.uk>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 38df19fad71abe8823f8b416f672be95c2ac8d04
https://github.com/qemu/qemu/commit/38df19fad71abe8823f8b416f672be95c2ac8d04
Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M exec.c
M include/exec/memory.h
Log Message:
-----------
exec: Let address_space_read/write_cached() propagate MemTxResult
Both address_space_read_cached_slow() and
address_space_write_cached_slow() return a MemTxResult type.
Do not discard it, return it to the caller.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: ddfc8b96eec648f35f0f054bd3f0a05df6cd34fb
https://github.com/qemu/qemu/commit/ddfc8b96eec648f35f0f054bd3f0a05df6cd34fb
Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M exec.c
M include/exec/cpu-all.h
Log Message:
-----------
exec: Propagate cpu_memory_rw_debug() error
Do not ignore the MemTxResult error type returned by
the address_space_rw() API.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 6766ba506eb62110b8299d25718565a03220d012
https://github.com/qemu/qemu/commit/6766ba506eb62110b8299d25718565a03220d012
Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M disas.c
Log Message:
-----------
disas: Let disas::read_memory() handler return EIO on error
Both cpu_memory_rw_debug() and address_space_read() return
an error on failed transaction. Check the returned value,
and return EIO in case of error.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 5579b524b0d2e4b310157c0b7985d35c24238120
https://github.com/qemu/qemu/commit/5579b524b0d2e4b310157c0b7985d35c24238120
Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M include/hw/elf_ops.h
Log Message:
-----------
hw/elf_ops: Do not ignore write failures when loading ELF
Do not ignore the MemTxResult error type returned by
address_space_write().
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 80b4008c805ebcfd4c0d302ac31c1689e34571e0
https://github.com/qemu/qemu/commit/80b4008c805ebcfd4c0d302ac31c1689e34571e0
Author: Joseph Myers <joseph@codesourcery.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M target/i386/fpu_helper.c
A tests/tcg/i386/test-i386-fldcst.c
Log Message:
-----------
target/i386: fix floating-point load-constant rounding
The implementations of the fldl2t, fldl2e, fldpi, fldlg2 and fldln2
instructions load fixed constants independent of the rounding mode.
Fix them to load a value correctly rounded for the current rounding
mode (but always rounded to 64-bit precision independent of the
precision control, and without setting "inexact") as specified.
Signed-off-by: Joseph Myers <joseph@codesourcery.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <alpine.DEB.2.21.2005132348310.11687@digraph.polyomino.org.uk>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 34b9cc076ff423023a779a04a9f7cd7c17372cbf
https://github.com/qemu/qemu/commit/34b9cc076ff423023a779a04a9f7cd7c17372cbf
Author: Joseph Myers <joseph@codesourcery.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M target/i386/fpu_helper.c
A tests/tcg/i386/test-i386-fxam.c
Log Message:
-----------
target/i386: fix fxam handling of invalid encodings
The fxam implementation does not check for invalid encodings, instead
treating them like NaN or normal numbers depending on the exponent.
Fix it to check that the high bit of the significand is set before
treating an encoding as NaN or normal, thus resulting in correct
handling (all of C0, C2 and C3 cleared) for invalid encodings.
Signed-off-by: Joseph Myers <joseph@codesourcery.com>
Message-Id: <alpine.DEB.2.21.2005132349311.11687@digraph.polyomino.org.uk>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 18c53e1e73197a24f9f4b66b1276eb9868db5bf0
https://github.com/qemu/qemu/commit/18c53e1e73197a24f9f4b66b1276eb9868db5bf0
Author: Joseph Myers <joseph@codesourcery.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M target/i386/fpu_helper.c
A tests/tcg/i386/test-i386-fbstp.c
Log Message:
-----------
target/i386: fix fbstp handling of negative zero
The fbstp implementation stores +0 when the rounded result should be
-0 because it compares an integer value with 0 to determine the sign.
Fix this by checking the sign bit of the operand instead.
Signed-off-by: Joseph Myers <joseph@codesourcery.com>
Message-Id: <alpine.DEB.2.21.2005132350230.11687@digraph.polyomino.org.uk>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 374ff4d0a3c2cce2bc6e4ba8a77eaba55c165252
https://github.com/qemu/qemu/commit/374ff4d0a3c2cce2bc6e4ba8a77eaba55c165252
Author: Joseph Myers <joseph@codesourcery.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M target/i386/fpu_helper.c
M tests/tcg/i386/test-i386-fbstp.c
Log Message:
-----------
target/i386: fix fbstp handling of out-of-range values
The fbstp implementation fails to check for out-of-range and invalid
values, instead just taking the result of conversion to int64_t and
storing its sign and low 18 decimal digits. Fix this by checking for
an out-of-range result (invalid conversions always result in INT64_MAX
or INT64_MIN from the softfloat code, which are large enough to be
considered as out-of-range by this code) and storing the packed BCD
indefinite encoding in that case.
Signed-off-by: Joseph Myers <joseph@codesourcery.com>
Message-Id: <alpine.DEB.2.21.2005132351110.11687@digraph.polyomino.org.uk>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: c8af85b10c818709755f5dc8061c69920611fd4c
https://github.com/qemu/qemu/commit/c8af85b10c818709755f5dc8061c69920611fd4c
Author: Joseph Myers <joseph@codesourcery.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M target/i386/fpu_helper.c
A tests/tcg/i386/test-i386-fisttp.c
Log Message:
-----------
target/i386: fix fisttpl, fisttpll handling of out-of-range values
The fist / fistt family of instructions should all store the most
negative integer in the destination format when the rounded /
truncated integer result is out of range or the input is an invalid
encoding, infinity or NaN. The fisttpl and fisttpll implementations
(32-bit and 64-bit results, truncate towards zero) failed to do this,
producing the most positive integer in some cases instead. Fix this
by copying the code used to handle this issue for fistpl and fistpll,
adjusted to use the _round_to_zero functions for the actual
conversion (but without any other changes to that code).
Signed-off-by: Joseph Myers <joseph@codesourcery.com>
Message-Id: <alpine.DEB.2.21.2005152119160.3469@digraph.polyomino.org.uk>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: c781a2cc423155079acf45e5ce79e6635f109fc4
https://github.com/qemu/qemu/commit/c781a2cc423155079acf45e5ce79e6635f109fc4
Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M hw/i386/vmport.c
Log Message:
-----------
hw/i386/vmport: Allow QTest use without crashing
Trying libFuzzer on the vmport device, we get:
AddressSanitizer:DEADLYSIGNAL
=================================================================
==29476==ERROR: AddressSanitizer: SEGV on unknown address 0x000000008840 (pc
0x56448bec4d79 bp 0x7ffeec9741b0 sp 0x7ffeec9740e0 T0)
==29476==The signal is caused by a READ memory access.
#0 0x56448bec4d78 in vmport_ioport_read (qemu-fuzz-i386+0x1260d78)
#1 0x56448bb5f175 in memory_region_read_accessor (qemu-fuzz-i386+0xefb175)
#2 0x56448bb30c13 in access_with_adjusted_size (qemu-fuzz-i386+0xeccc13)
#3 0x56448bb2ea27 in memory_region_dispatch_read1 (qemu-fuzz-i386+0xecaa27)
#4 0x56448bb2e443 in memory_region_dispatch_read (qemu-fuzz-i386+0xeca443)
#5 0x56448b961ab1 in flatview_read_continue (qemu-fuzz-i386+0xcfdab1)
#6 0x56448b96336d in flatview_read (qemu-fuzz-i386+0xcff36d)
#7 0x56448b962ec4 in address_space_read_full (qemu-fuzz-i386+0xcfeec4)
This is easily reproducible using:
$ echo inb 0x5658 | qemu-system-i386 -M isapc,accel=qtest -qtest stdio
[I 1589796572.009763] OPENED
[R +0.008069] inb 0x5658
Segmentation fault (core dumped)
$ coredumpctl gdb -q
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00005605b54d0f21 in vmport_ioport_read (opaque=0x5605b7531ce0, addr=0,
size=4) at hw/i386/vmport.c:77
77 eax = env->regs[R_EAX];
(gdb) p cpu
$1 = (X86CPU *) 0x0
(gdb) bt
#0 0x00005605b54d0f21 in vmport_ioport_read (opaque=0x5605b7531ce0, addr=0,
size=4) at hw/i386/vmport.c:77
#1 0x00005605b53db114 in memory_region_read_accessor (mr=0x5605b7531d80,
addr=0, value=0x7ffc9d261a30, size=4, shift=0, mask=4294967295, attrs=...) at
memory.c:434
#2 0x00005605b53db5d4 in access_with_adjusted_size (addr=0,
value=0x7ffc9d261a30, size=1, access_size_min=4, access_size_max=4, access_fn=
0x5605b53db0d2 <memory_region_read_accessor>, mr=0x5605b7531d80,
attrs=...) at memory.c:544
#3 0x00005605b53de156 in memory_region_dispatch_read1 (mr=0x5605b7531d80,
addr=0, pval=0x7ffc9d261a30, size=1, attrs=...) at memory.c:1396
#4 0x00005605b53de228 in memory_region_dispatch_read (mr=0x5605b7531d80,
addr=0, pval=0x7ffc9d261a30, op=MO_8, attrs=...) at memory.c:1424
#5 0x00005605b537c80a in flatview_read_continue (fv=0x5605b7650290,
addr=22104, attrs=..., ptr=0x7ffc9d261b4b, len=1, addr1=0, l=1,
mr=0x5605b7531d80) at exec.c:3200
#6 0x00005605b537c95d in flatview_read (fv=0x5605b7650290, addr=22104,
attrs=..., buf=0x7ffc9d261b4b, len=1) at exec.c:3239
#7 0x00005605b537c9e6 in address_space_read_full (as=0x5605b5f74ac0
<address_space_io>, addr=22104, attrs=..., buf=0x7ffc9d261b4b, len=1) at
exec.c:3252
#8 0x00005605b53d5a5d in address_space_read (len=1, buf=0x7ffc9d261b4b,
attrs=..., addr=22104, as=0x5605b5f74ac0 <address_space_io>) at
include/exec/memory.h:2401
#9 0x00005605b53d5a5d in cpu_inb (addr=22104) at ioport.c:88
X86CPU is NULL because QTest accelerator does not use CPU.
Fix by returning default values when QTest accelerator is used.
Reported-by: Clang AddressSanitizer
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 353f98c9ad52ff4b8cfe553c90be04f747a14c98
https://github.com/qemu/qemu/commit/353f98c9ad52ff4b8cfe553c90be04f747a14c98
Author: Cathy Zhang <cathy.zhang@intel.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M target/i386/cpu.c
M target/i386/cpu.h
Log Message:
-----------
x86/cpu: Enable AVX512_VP2INTERSECT cpu feature
AVX512_VP2INTERSECT compute vector pair intersection to a pair
of mask registers, which is introduced with intel Tiger Lake,
defining as CPUID.(EAX=7,ECX=0):EDX[bit 08].
Refer to the following release spec:
https://software.intel.com/sites/default/files/managed/c5/15/\
architecture-instruction-set-extensions-programming-reference.pdf
Signed-off-by: Cathy Zhang <cathy.zhang@intel.com>
Message-Id: <1586760758-13638-1-git-send-email-cathy.zhang@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 97a3757616ca27840c7ce1d088d8f1d2e5753738
https://github.com/qemu/qemu/commit/97a3757616ca27840c7ce1d088d8f1d2e5753738
Author: Peter Xu <peterx@redhat.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M hw/vfio/pci.c
Log Message:
-----------
vfio/pci: Use kvm_irqchip_add_irqfd_notifier_gsi() for irqfds
VFIO is currently the only one left that is not using the generic
function (kvm_irqchip_add_irqfd_notifier_gsi()) to register irqfds.
Let VFIO use the common framework too.
Follow up patches will introduce extra features for kvm irqfd, so that
VFIO can easily leverage that after the switch.
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Alex Williamson <alex.williamson@redhat.com>
Acked-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Message-Id: <20200318145204.74483-3-peterx@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: ff66ba87ba1c43c10bc77138281bbdbd8bddaaba
https://github.com/qemu/qemu/commit/ff66ba87ba1c43c10bc77138281bbdbd8bddaaba
Author: Peter Xu <peterx@redhat.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M accel/kvm/kvm-all.c
Log Message:
-----------
KVM: Pass EventNotifier into kvm_irqchip_assign_irqfd
So that kvm_irqchip_assign_irqfd() can have access to the
EventNotifiers, especially the resample event. It is needed in follow
up patch to cache and kick resamplefds from QEMU.
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Message-Id: <20200318145204.74483-4-peterx@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: c82d9d43ed5d1a7021890d788193fdbeae1011c8
https://github.com/qemu/qemu/commit/c82d9d43ed5d1a7021890d788193fdbeae1011c8
Author: Peter Xu <peterx@redhat.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M accel/kvm/kvm-all.c
M accel/kvm/trace-events
M hw/intc/ioapic.c
M include/sysemu/kvm.h
Log Message:
-----------
KVM: Kick resamplefd for split kernel irqchip
This is majorly only for X86 because that's the only one that supports
split irqchip for now.
When the irqchip is split, we face a dilemma that KVM irqfd will be
enabled, however the slow irqchip is still running in the userspace.
It means that the resamplefd in the kernel irqfds won't take any
effect and it will miss to ack INTx interrupts on EOIs.
One example is split irqchip with VFIO INTx, which will break if we
use the VFIO INTx fast path.
This patch can potentially supports the VFIO fast path again for INTx,
that the IRQ delivery will still use the fast path, while we don't
need to trap MMIOs in QEMU for the device to emulate the EIOs (see the
callers of vfio_eoi() hook). However the EOI of the INTx will still
need to be done from the userspace by caching all the resamplefds in
QEMU and kick properly for IOAPIC EOI broadcast.
This is tricky because in this case the userspace ioapic irr &
remote-irr will be bypassed. However such a change will greatly boost
performance for assigned devices using INTx irqs (TCP_RR boosts 46%
after this patch applied).
When the userspace is responsible for the resamplefd kickup, don't
register it on the kvm_irqfd anymore, because on newer kernels (after
commit 654f1f13ea56, 5.2+) the KVM_IRQFD will fail if with both split
irqchip and resamplefd. This will make sure that the fast path will
work for all supported kernels.
https://patchwork.kernel.org/patch/10738541/#22609933
Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Message-Id: <20200318145204.74483-5-peterx@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 4d1d4602488fd5f3c0f0601feac4289b474add37
https://github.com/qemu/qemu/commit/4d1d4602488fd5f3c0f0601feac4289b474add37
Author: Sai Pavan Boddu <sai.pavan.boddu@xilinx.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M chardev/char-socket.c
Log Message:
-----------
chardev/char-socket: Properly make qio connections non blocking
In tcp_chr_sync_read function, there is a possibility of socket
disconnection during blocking read, then tcp_chr_hup function would clean up
the qio channel pointers(i.e ioc, sioc).
Signed-off-by: Sai Pavan Boddu <sai.pavan.boddu@xilinx.com>
Message-Id: <1587289900-29485-1-git-send-email-sai.pavan.boddu@xilinx.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: bbad173c7478269d2f4f67c81bafb1711f3cc815
https://github.com/qemu/qemu/commit/bbad173c7478269d2f4f67c81bafb1711f3cc815
Author: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M tests/qtest/machine-none-test.c
Log Message:
-----------
tests: machine-none-test: Enable MicroBlaze testing
Enable MicroBlaze testing.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Message-Id: <20200416193303.23674-2-edgar.iglesias@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 2356ff8500f3aec43070fcfa61a624ec36a8c6b4
https://github.com/qemu/qemu/commit/2356ff8500f3aec43070fcfa61a624ec36a8c6b4
Author: Wei Huang <wei.huang2@amd.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M hw/i386/amd_iommu.c
Log Message:
-----------
hw/i386/amd_iommu: Fix the reserved bits definition of IOMMU commands
Many reserved bits of amd_iommu commands are defined incorrectly in QEMU.
Because of it, QEMU incorrectly injects lots of illegal commands into guest
VM's IOMMU event log.
Signed-off-by: Wei Huang <wei.huang2@amd.com>
Message-Id: <20200418042845.596457-1-wei.huang2@amd.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: ddf63df736257f9151d5e0fc3c6fddcb97f29cab
https://github.com/qemu/qemu/commit/ddf63df736257f9151d5e0fc3c6fddcb97f29cab
Author: Pavel Dovgalyuk <Pavel.Dovgaluk@gmail.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M replay/replay-internal.c
Log Message:
-----------
replay: implement fair mutex
In record/replay icount mode main loop thread and vCPU thread
do not perform simultaneously. They take replay mutex to synchronize
the actions. Sometimes vCPU thread waits for locking the mutex for
very long time, because main loop releases the mutex and takes it
back again. Standard qemu mutex do not provide the ordering
capabilities.
This patch adds a "queue" for replay mutex. Therefore thread ordering
becomes more "fair". Threads are executed in the same order as
they are trying to take the mutex.
Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>
Message-Id: <158823802979.28101.9340462887738957616.stgit@pasha-ThinkPad-X280>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 20c8fa2ec74fe32a42008c177ed9c48031356705
https://github.com/qemu/qemu/commit/20c8fa2ec74fe32a42008c177ed9c48031356705
Author: Julio Faracco <jcfaracco@gmail.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M target/i386/hax-i386.h
M target/i386/hvf/hvf-i386.h
Log Message:
-----------
i386: Remove unused define's from hax and hvf
Commit acb9f95a removed boundary checks for ID and VCPU ID. After that,
the max definitions of that boundaries are not required anymore. This
commit is only a code cleanup.
Signed-off-by: Julio Faracco <jcfaracco@gmail.com>
Message-Id: <20200323200538.202164-1-jcfaracco@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: ea39f9b643959d759b8643b4c11c4cbb3683d0ff
https://github.com/qemu/qemu/commit/ea39f9b643959d759b8643b4c11c4cbb3683d0ff
Author: Like Xu <like.xu@linux.intel.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M target/i386/cpu.c
M target/i386/cpu.h
M target/i386/kvm.c
Log Message:
-----------
target/i386: define a new MSR based feature word - FEAT_PERF_CAPABILITIES
The Perfmon and Debug Capability MSR named IA32_PERF_CAPABILITIES is
a feature-enumerating MSR, which only enumerates the feature full-width
write (via bit 13) by now which indicates the processor supports IA32_A_PMCx
interface for updating bits 32 and above of IA32_PMCx.
The existence of MSR IA32_PERF_CAPABILITIES is enumerated by CPUID.1:ECX[15].
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: Marcelo Tosatti <mtosatti@redhat.com>
Cc: qemu-devel@nongnu.org
Signed-off-by: Like Xu <like.xu@linux.intel.com>
Message-Id: <20200529074347.124619-5-like.xu@linux.intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 9548a891738424a09eae9ef6e3826ef930cdd598
https://github.com/qemu/qemu/commit/9548a891738424a09eae9ef6e3826ef930cdd598
Author: David Carlier <devnexen@gmail.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M util/oslib-posix.c
Log Message:
-----------
util/oslib: Returns the real thread identifier on FreeBSD and NetBSD
getpid is good enough in a mono thread context, however thr_self/_lwp_self
reflects the real current thread identifier from a given process.
Signed-off-by: David Carlier <devnexen@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: David Carlier <devnexen@gmail.com>
Commit: 2261d3939fd40267029e790a9970f0e6c2ecfdea
https://github.com/qemu/qemu/commit/2261d3939fd40267029e790a9970f0e6c2ecfdea
Author: Philippe Mathieu-Daudé <philmd@redhat.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M hmp-commands-info.hx
M include/exec/memory.h
M memory.c
M monitor/misc.c
Log Message:
-----------
memory: Make 'info mtree' not display disabled regions by default
We might have many disabled memory regions, making the 'info mtree'
output too verbose to be useful.
Remove the disabled regions in the default output, but allow the
monitor user to display them using the '-D' option.
Before:
(qemu) info mtree
memory-region: system
0000000000000000-ffffffffffffffff (prio 0, i/o): system
0000000000000000-0000000007ffffff (prio 0, ram): alias ram-below-4g
@pc.ram 0000000000000000-0000000007ffffff
0000000000000000-ffffffffffffffff (prio -1, i/o): pci
00000000000a0000-00000000000bffff (prio 1, i/o): vga-lowmem
00000000000c0000-00000000000dffff (prio 1, rom): pc.rom
00000000000e0000-00000000000fffff (prio 1, rom): alias isa-bios
@pc.bios 0000000000020000-000000000003ffff
00000000fffc0000-00000000ffffffff (prio 0, rom): pc.bios
00000000000a0000-00000000000bffff (prio 1, i/o): alias smram-region @pci
00000000000a0000-00000000000bffff
00000000000c0000-00000000000c3fff (prio 1, ram): alias pam-ram @pc.ram
00000000000c0000-00000000000c3fff [disabled]
00000000000c0000-00000000000c3fff (prio 1, ram): alias pam-pci @pc.ram
00000000000c0000-00000000000c3fff [disabled]
00000000000c0000-00000000000c3fff (prio 1, ram): alias pam-rom @pc.ram
00000000000c0000-00000000000c3fff [disabled]
00000000000c0000-00000000000c3fff (prio 1, i/o): alias pam-pci @pci
00000000000c0000-00000000000c3fff
00000000000c4000-00000000000c7fff (prio 1, ram): alias pam-ram @pc.ram
00000000000c4000-00000000000c7fff [disabled]
00000000000c4000-00000000000c7fff (prio 1, ram): alias pam-pci @pc.ram
00000000000c4000-00000000000c7fff [disabled]
00000000000c4000-00000000000c7fff (prio 1, ram): alias pam-rom @pc.ram
00000000000c4000-00000000000c7fff [disabled]
00000000000c4000-00000000000c7fff (prio 1, i/o): alias pam-pci @pci
00000000000c4000-00000000000c7fff
00000000000c8000-00000000000cbfff (prio 1, ram): alias pam-ram @pc.ram
00000000000c8000-00000000000cbfff [disabled]
00000000000c8000-00000000000cbfff (prio 1, ram): alias pam-pci @pc.ram
00000000000c8000-00000000000cbfff [disabled]
00000000000c8000-00000000000cbfff (prio 1, ram): alias pam-rom @pc.ram
00000000000c8000-00000000000cbfff [disabled]
00000000000c8000-00000000000cbfff (prio 1, i/o): alias pam-pci @pci
00000000000c8000-00000000000cbfff
00000000000cc000-00000000000cffff (prio 1, ram): alias pam-ram @pc.ram
00000000000cc000-00000000000cffff [disabled]
00000000000cc000-00000000000cffff (prio 1, ram): alias pam-pci @pc.ram
00000000000cc000-00000000000cffff [disabled]
00000000000cc000-00000000000cffff (prio 1, ram): alias pam-rom @pc.ram
00000000000cc000-00000000000cffff [disabled]
00000000000cc000-00000000000cffff (prio 1, i/o): alias pam-pci @pci
00000000000cc000-00000000000cffff
00000000000d0000-00000000000d3fff (prio 1, ram): alias pam-ram @pc.ram
00000000000d0000-00000000000d3fff [disabled]
00000000000d0000-00000000000d3fff (prio 1, ram): alias pam-pci @pc.ram
00000000000d0000-00000000000d3fff [disabled]
00000000000d0000-00000000000d3fff (prio 1, ram): alias pam-rom @pc.ram
00000000000d0000-00000000000d3fff [disabled]
00000000000d0000-00000000000d3fff (prio 1, i/o): alias pam-pci @pci
00000000000d0000-00000000000d3fff
00000000000d4000-00000000000d7fff (prio 1, ram): alias pam-ram @pc.ram
00000000000d4000-00000000000d7fff [disabled]
00000000000d4000-00000000000d7fff (prio 1, ram): alias pam-pci @pc.ram
00000000000d4000-00000000000d7fff [disabled]
00000000000d4000-00000000000d7fff (prio 1, ram): alias pam-rom @pc.ram
00000000000d4000-00000000000d7fff [disabled]
00000000000d4000-00000000000d7fff (prio 1, i/o): alias pam-pci @pci
00000000000d4000-00000000000d7fff
00000000000d8000-00000000000dbfff (prio 1, ram): alias pam-ram @pc.ram
00000000000d8000-00000000000dbfff [disabled]
00000000000d8000-00000000000dbfff (prio 1, ram): alias pam-pci @pc.ram
00000000000d8000-00000000000dbfff [disabled]
00000000000d8000-00000000000dbfff (prio 1, ram): alias pam-rom @pc.ram
00000000000d8000-00000000000dbfff [disabled]
00000000000d8000-00000000000dbfff (prio 1, i/o): alias pam-pci @pci
00000000000d8000-00000000000dbfff
00000000000dc000-00000000000dffff (prio 1, ram): alias pam-ram @pc.ram
00000000000dc000-00000000000dffff [disabled]
00000000000dc000-00000000000dffff (prio 1, ram): alias pam-pci @pc.ram
00000000000dc000-00000000000dffff [disabled]
00000000000dc000-00000000000dffff (prio 1, ram): alias pam-rom @pc.ram
00000000000dc000-00000000000dffff [disabled]
00000000000dc000-00000000000dffff (prio 1, i/o): alias pam-pci @pci
00000000000dc000-00000000000dffff
00000000000e0000-00000000000e3fff (prio 1, ram): alias pam-ram @pc.ram
00000000000e0000-00000000000e3fff [disabled]
00000000000e0000-00000000000e3fff (prio 1, ram): alias pam-pci @pc.ram
00000000000e0000-00000000000e3fff [disabled]
00000000000e0000-00000000000e3fff (prio 1, ram): alias pam-rom @pc.ram
00000000000e0000-00000000000e3fff [disabled]
00000000000e0000-00000000000e3fff (prio 1, i/o): alias pam-pci @pci
00000000000e0000-00000000000e3fff
00000000000e4000-00000000000e7fff (prio 1, ram): alias pam-ram @pc.ram
00000000000e4000-00000000000e7fff [disabled]
00000000000e4000-00000000000e7fff (prio 1, ram): alias pam-pci @pc.ram
00000000000e4000-00000000000e7fff [disabled]
00000000000e4000-00000000000e7fff (prio 1, ram): alias pam-rom @pc.ram
00000000000e4000-00000000000e7fff [disabled]
00000000000e4000-00000000000e7fff (prio 1, i/o): alias pam-pci @pci
00000000000e4000-00000000000e7fff
00000000000e8000-00000000000ebfff (prio 1, ram): alias pam-ram @pc.ram
00000000000e8000-00000000000ebfff [disabled]
00000000000e8000-00000000000ebfff (prio 1, ram): alias pam-pci @pc.ram
00000000000e8000-00000000000ebfff [disabled]
00000000000e8000-00000000000ebfff (prio 1, ram): alias pam-rom @pc.ram
00000000000e8000-00000000000ebfff [disabled]
00000000000e8000-00000000000ebfff (prio 1, i/o): alias pam-pci @pci
00000000000e8000-00000000000ebfff
00000000000ec000-00000000000effff (prio 1, ram): alias pam-ram @pc.ram
00000000000ec000-00000000000effff [disabled]
00000000000ec000-00000000000effff (prio 1, ram): alias pam-pci @pc.ram
00000000000ec000-00000000000effff [disabled]
00000000000ec000-00000000000effff (prio 1, ram): alias pam-rom @pc.ram
00000000000ec000-00000000000effff [disabled]
00000000000ec000-00000000000effff (prio 1, i/o): alias pam-pci @pci
00000000000ec000-00000000000effff
00000000000f0000-00000000000fffff (prio 1, ram): alias pam-ram @pc.ram
00000000000f0000-00000000000fffff [disabled]
00000000000f0000-00000000000fffff (prio 1, ram): alias pam-pci @pc.ram
00000000000f0000-00000000000fffff [disabled]
00000000000f0000-00000000000fffff (prio 1, ram): alias pam-rom @pc.ram
00000000000f0000-00000000000fffff [disabled]
00000000000f0000-00000000000fffff (prio 1, i/o): alias pam-pci @pci
00000000000f0000-00000000000fffff
00000000fec00000-00000000fec00fff (prio 0, i/o): ioapic
00000000fed00000-00000000fed003ff (prio 0, i/o): hpet
00000000fee00000-00000000feefffff (prio 4096, i/o): apic-msi
After:
(qemu) info mtree
memory-region: system
0000000000000000-ffffffffffffffff (prio 0, i/o): system
0000000000000000-0000000007ffffff (prio 0, ram): alias ram-below-4g
@pc.ram 0000000000000000-0000000007ffffff
0000000000000000-ffffffffffffffff (prio -1, i/o): pci
00000000000a0000-00000000000bffff (prio 1, i/o): vga-lowmem
00000000000c0000-00000000000dffff (prio 1, rom): pc.rom
00000000000e0000-00000000000fffff (prio 1, rom): alias isa-bios
@pc.bios 0000000000020000-000000000003ffff
00000000fffc0000-00000000ffffffff (prio 0, rom): pc.bios
00000000000a0000-00000000000bffff (prio 1, i/o): alias smram-region @pci
00000000000a0000-00000000000bffff
00000000000c0000-00000000000c3fff (prio 1, i/o): alias pam-pci @pci
00000000000c0000-00000000000c3fff
00000000000c4000-00000000000c7fff (prio 1, i/o): alias pam-pci @pci
00000000000c4000-00000000000c7fff
00000000000c8000-00000000000cbfff (prio 1, i/o): alias pam-pci @pci
00000000000c8000-00000000000cbfff
00000000000cc000-00000000000cffff (prio 1, i/o): alias pam-pci @pci
00000000000cc000-00000000000cffff
00000000000d0000-00000000000d3fff (prio 1, i/o): alias pam-pci @pci
00000000000d0000-00000000000d3fff
00000000000d4000-00000000000d7fff (prio 1, i/o): alias pam-pci @pci
00000000000d4000-00000000000d7fff
00000000000d8000-00000000000dbfff (prio 1, i/o): alias pam-pci @pci
00000000000d8000-00000000000dbfff
00000000000dc000-00000000000dffff (prio 1, i/o): alias pam-pci @pci
00000000000dc000-00000000000dffff
00000000000e0000-00000000000e3fff (prio 1, i/o): alias pam-pci @pci
00000000000e0000-00000000000e3fff
00000000000e4000-00000000000e7fff (prio 1, i/o): alias pam-pci @pci
00000000000e4000-00000000000e7fff
00000000000e8000-00000000000ebfff (prio 1, i/o): alias pam-pci @pci
00000000000e8000-00000000000ebfff
00000000000ec000-00000000000effff (prio 1, i/o): alias pam-pci @pci
00000000000ec000-00000000000effff
00000000000f0000-00000000000fffff (prio 1, i/o): alias pam-pci @pci
00000000000f0000-00000000000fffff
00000000fec00000-00000000fec00fff (prio 0, i/o): ioapic
00000000fed00000-00000000fed003ff (prio 0, i/o): hpet
00000000fee00000-00000000feefffff (prio 4096, i/o): apic-msi
The old behavior is preserved using 'info mtree -D'.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: c08790f48b2f41ef26d491fd4d460b74c06cefe4
https://github.com/qemu/qemu/commit/c08790f48b2f41ef26d491fd4d460b74c06cefe4
Author: Philippe Mathieu-Daudé <philmd@redhat.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M include/qemu/thread.h
Log Message:
-----------
qemu/thread: Mark qemu_thread_exit() with 'noreturn' attribute
After upgrading to Ubuntu 20.04 LTS, GCC 9.3 complains:
util/qemu-thread-posix.c: In function ‘qemu_thread_exit’:
util/qemu-thread-posix.c:577:6: error: function might be candidate for
attribute ‘noreturn’ [-Werror=suggest-attribute=noreturn]
577 | void qemu_thread_exit(void *retval)
| ^~~~~~~~~~~~~~~~
Fix by marking the qemu_thread_exit function with QEMU_NORETURN
to set the 'noreturn' attribute.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: f2dfe54c74f768a5bf78c9e5918918727f9d9459
https://github.com/qemu/qemu/commit/f2dfe54c74f768a5bf78c9e5918918727f9d9459
Author: Leonid Bloch <lbloch@janustech.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M configure
Log Message:
-----------
configure: Do not ignore malloc value
Not checking the value of malloc will cause a warning with GCC 10.1,
which may result in configuration failure, with the following line in
config.log:
config-temp/qemu-conf.c:2:18: error: ignoring return value of ‘malloc’
declared with attribute ‘warn_unused_result’ [-Werror=unused-result]
2 | int main(void) { malloc(1); return 0; }
| ^~~~~~~~~
Signed-off-by: Leonid Bloch <lb.workbox@gmail.com>
Message-Id: <20200524221204.9791-1-lb.workbox@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 77f55eac6c433e23e82a1b88b2d74f385c4c7d82
https://github.com/qemu/qemu/commit/77f55eac6c433e23e82a1b88b2d74f385c4c7d82
Author: Prasad J Pandit <pjp@fedoraproject.org>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M exec.c
M include/exec/memory.h
Log Message:
-----------
exec: set map length to zero when returning NULL
When mapping physical memory into host's virtual address space,
'address_space_map' may return NULL if BounceBuffer is in_use.
Set and return '*plen = 0' to avoid later NULL pointer dereference.
Reported-by: Alexander Bulekov <alxndr@bu.edu>
Fixes: https://bugs.launchpad.net/qemu/+bug/1878259
Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Suggested-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
Message-Id: <20200526111743.428367-1-ppandit@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 975af797f1e04e4d1b1a12f1731141d3770fdbce
https://github.com/qemu/qemu/commit/975af797f1e04e4d1b1a12f1731141d3770fdbce
Author: Joseph Myers <joseph@codesourcery.com>
Date: 2020-06-10 (Wed, 10 Jun 2020)
Changed paths:
M target/i386/fpu_helper.c
A tests/tcg/i386/test-i386-fp-exceptions.c
Log Message:
-----------
target/i386: fix IEEE x87 floating-point exception raising
Most x87 instruction implementations fail to raise the expected IEEE
floating-point exceptions because they do nothing to convert the
exception state from the softfloat machinery into the exception flags
in the x87 status word. There is special-case handling of division to
raise the divide-by-zero exception, but that handling is itself buggy:
it raises the exception in inappropriate cases (inf / 0 and nan / 0,
which should not raise any exceptions, and 0 / 0, which should raise
"invalid" instead).
Fix this by converting the floating-point exceptions raised during an
operation by the softfloat machinery into exceptions in the x87 status
word (passing through the existing fpu_set_exception function for
handling related to trapping exceptions). There are special cases
where some functions convert to integer internally but exceptions from
that conversion are not always correct exceptions for the instruction
to raise.
There might be scope for some simplification if the softfloat
exception state either could always be assumed to be in sync with the
state in the status word, or could always be ignored at the start of
each instruction and just set to 0 then; I haven't looked into that in
detail, and it might run into interactions with the various ways the
emulation does not yet handle trapping exceptions properly. I think
the approach taken here, of saving the softfloat state, setting
exceptions there to 0 and then merging the old exceptions back in
after carrying out the operation, is conservatively safe.
Signed-off-by: Joseph Myers <joseph@codesourcery.com>
Message-Id: <alpine.DEB.2.21.2005152120280.3469@digraph.polyomino.org.uk>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: bc921b2711c4e2e8ab99a3045f6c0f134a93b535
https://github.com/qemu/qemu/commit/bc921b2711c4e2e8ab99a3045f6c0f134a93b535
Author: Joseph Myers <joseph@codesourcery.com>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M target/i386/ops_sse.h
M tests/tcg/i386/Makefile.target
A tests/tcg/i386/test-i386-pcmpistri.c
Log Message:
-----------
target/i386: correct fix for pcmpxstrx substring search
This corrects a bug introduced in my previous fix for SSE4.2 pcmpestri
/ pcmpestrm / pcmpistri / pcmpistrm substring search, commit
ae35eea7e4a9f21dd147406dfbcd0c4c6aaf2a60.
That commit fixed a bug that showed up in four GCC tests with one libc
implementation. The tests in question generate random inputs to the
intrinsics and compare results to a C implementation, but they only
test 1024 possible random inputs, and when the tests use the cases of
those instructions that work with word rather than byte inputs, it's
easy to have problematic cases that show up much less frequently than
that. Thus, testing with a different libc implementation, and so a
different random number generator, showed up a problem with the
previous patch.
When investigating the previous test failures, I found the description
of these instructions in the Intel manuals (starting from computing a
16x16 or 8x8 set of comparison results) confusing and hard to match up
with the more optimized implementation in QEMU, and referred to AMD
manuals which described the instructions in a different way. Those
AMD descriptions are very explicit that the whole of the string being
searched for must be found in the other operand, not running off the
end of that operand; they say "If the prototype and the SUT are equal
in length, the two strings must be identical for the comparison to be
TRUE.". However, that statement is incorrect.
In my previous commit message, I noted:
The operation in this case is a search for a string (argument d to
the helper) in another string (argument s to the helper); if a copy
of d at a particular position would run off the end of s, the
resulting output bit should be 0 whether or not the strings match in
the region where they overlap, but the QEMU implementation was
wrongly comparing only up to the point where s ends and counting it
as a match if an initial segment of d matched a terminal segment of
s. Here, "run off the end of s" means that some byte of d would
overlap some byte outside of s; thus, if d has zero length, it is
considered to match everywhere, including after the end of s.
The description "some byte of d would overlap some byte outside of s"
is accurate only when understood to refer to overlapping some byte
*within the 16-byte operand* but at or after the zero terminator; it
is valid to run over the end of s if the end of s is the end of the
16-byte operand. So the fix in the previous patch for the case of d
being empty was correct, but the other part of that patch was not
correct (as it never allowed partial matches even at the end of the
16-byte operand). Nor was the code before the previous patch correct
for the case of d nonempty, as it would always have allowed partial
matches at the end of s.
Fix with a partial revert of my previous change, combined with
inserting a check for the special case of s having maximum length to
determine where it is necessary to check for matches.
In the added test, test 1 is for the case of empty strings, which
failed before my 2017 patch, test 2 is for the bug introduced by my
2017 patch and test 3 deals with the case where a match of an initial
segment at the end of the string is not valid when the string ends
before the end of the 16-byte operand (that is, the case that would be
broken by a simple revert of the non-empty-string part of my 2017
patch).
Signed-off-by: Joseph Myers <joseph@codesourcery.com>
Message-Id: <alpine.DEB.2.21.2006121344290.9881@digraph.polyomino.org.uk>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 33fb9bfaa4bef35b53affaf17368b439834de5f9
https://github.com/qemu/qemu/commit/33fb9bfaa4bef35b53affaf17368b439834de5f9
Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M include/sysemu/accel.h
Log Message:
-----------
sysemu/accel: Restrict machine methods to system-mode
Restrict init_machine(), setup_post() and has_memory()
to system-mode.
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Roman Bolshakov <r.bolshakov@yadro.com>
Message-Id: <20200526172427.17460-2-f4bug@amsat.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: ce4049e89344cc019fff75ab0ecc645af27400ca
https://github.com/qemu/qemu/commit/ce4049e89344cc019fff75ab0ecc645af27400ca
Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M include/sysemu/tcg.h
Log Message:
-----------
sysemu/tcg: Only declare tcg_allowed when TCG is available
When TCG is not available, the tcg_allowed variable does not exist.
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20200526172427.17460-3-f4bug@amsat.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: f291cf54148e5b9e51c55b9056e4be546492a9ca
https://github.com/qemu/qemu/commit/f291cf54148e5b9e51c55b9056e4be546492a9ca
Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M include/sysemu/hvf.h
Log Message:
-----------
sysemu/hvf: Only declare hvf_allowed when HVF is available
When HVF is not available, the hvf_allowed variable does not exist.
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Roman Bolshakov <r.bolshakov@yadro.com>
Message-Id: <20200526172427.17460-4-f4bug@amsat.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: e89aac1acdc62c09313c20ea1706554d9c3b9162
https://github.com/qemu/qemu/commit/e89aac1acdc62c09313c20ea1706554d9c3b9162
Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M target/ppc/cpu.h
M target/ppc/kvm_ppc.h
M target/ppc/translate_init.inc.c
Log Message:
-----------
target/ppc: Restrict PPCVirtualHypervisorClass to system-mode
The code related to PPC Virtual Hypervisor is pointless in user-mode.
Acked-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20200526172427.17460-5-f4bug@amsat.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 24115348bd8a8a1206646b81990e451ee841c8e5
https://github.com/qemu/qemu/commit/24115348bd8a8a1206646b81990e451ee841c8e5
Author: Roman Bolshakov <r.bolshakov@yadro.com>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M include/sysemu/hvf.h
M target/i386/hvf/hvf-i386.h
Log Message:
-----------
i386: hvf: Move HVFState definition into hvf
"sysemu/hvf.h" is intended for inclusion in generic code. However it
also contains several hvf definitions and declarations, including
HVFState that are used only inside "hvf.c". "hvf-i386.h" would be more
appropriate place to define HVFState as it's only included by "hvf.c"
and "x86_task.c".
Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
Message-Id: <20200528193758.51454-2-r.bolshakov@yadro.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 583ae161b1d7ba8832260d1cca022afce7dcf957
https://github.com/qemu/qemu/commit/583ae161b1d7ba8832260d1cca022afce7dcf957
Author: Roman Bolshakov <r.bolshakov@yadro.com>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M include/sysemu/hvf.h
M target/i386/hvf/hvf.c
Log Message:
-----------
i386: hvf: Drop useless declarations in sysemu
They're either declared elsewhere or have no use.
While at it, rename _hvf_cpu_synchronize_post_init() to
do_hvf_cpu_synchronize_post_init().
Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
Message-Id: <20200528193758.51454-3-r.bolshakov@yadro.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Commit: 8598135dd6df2b2ad2ce10f68d9eae3e9e26da6d
https://github.com/qemu/qemu/commit/8598135dd6df2b2ad2ce10f68d9eae3e9e26da6d
Author: Roman Bolshakov <r.bolshakov@yadro.com>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M include/sysemu/hvf.h
Log Message:
-----------
i386: hvf: Clean stray includes in sysemu
They have no use.
Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
Reviewed-by: Claudio Fontana <cfontana@suse.de>
Message-Id: <20200528193758.51454-4-r.bolshakov@yadro.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 6345d7e2aeb6f7bbaa9c1e7e94e21fccf9453c70
https://github.com/qemu/qemu/commit/6345d7e2aeb6f7bbaa9c1e7e94e21fccf9453c70
Author: Roman Bolshakov <r.bolshakov@yadro.com>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M target/i386/hvf/x86.h
Log Message:
-----------
i386: hvf: Drop unused variable
Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
Message-Id: <20200528193758.51454-5-r.bolshakov@yadro.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Commit: 81ae3d0216587bf868486244f038072e07ee4e9d
https://github.com/qemu/qemu/commit/81ae3d0216587bf868486244f038072e07ee4e9d
Author: Roman Bolshakov <r.bolshakov@yadro.com>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M target/i386/hvf/hvf.c
Log Message:
-----------
i386: hvf: Use ins_len to advance IP
There's no need to read VMCS twice, instruction length is already
available in ins_len.
Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
Message-Id: <20200528193758.51454-6-r.bolshakov@yadro.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Commit: 5d32173fc30e5b08e196f7ffd993ddc8335a203e
https://github.com/qemu/qemu/commit/5d32173fc30e5b08e196f7ffd993ddc8335a203e
Author: Roman Bolshakov <r.bolshakov@yadro.com>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M target/i386/hvf/hvf.c
M target/i386/hvf/x86.h
M target/i386/hvf/x86_decode.c
M target/i386/hvf/x86_emu.c
M target/i386/hvf/x86_task.c
Log Message:
-----------
i386: hvf: Use IP from CPUX86State
Drop and replace rip field from HVFX86EmulatorState in favor of eip from
common CPUX86State.
Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
Message-Id: <20200528193758.51454-7-r.bolshakov@yadro.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Commit: 2d5f696cb7b7a024f2a1bd4a8c6aed7a1d5532b4
https://github.com/qemu/qemu/commit/2d5f696cb7b7a024f2a1bd4a8c6aed7a1d5532b4
Author: Roman Bolshakov <r.bolshakov@yadro.com>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M target/i386/hvf/hvf.c
M target/i386/hvf/x86.h
M target/i386/hvf/x86_decode.c
Log Message:
-----------
i386: hvf: Drop fetch_rip from HVFX86EmulatorState
The field is used to print address of instructions that have no parser
in decode_invalid(). RIP from VMCS is saved into fetch_rip before
decoding starts but it's also saved into env->eip in load_regs().
Therefore env->eip can be used instead of fetch_rip.
While at it, correct address printed in decode_invalid(). It prints an
address before the unknown instruction.
Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
Message-Id: <20200528193758.51454-8-r.bolshakov@yadro.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 967f4da2afb2ece8b2b054bc8af23389e028fdcc
https://github.com/qemu/qemu/commit/967f4da2afb2ece8b2b054bc8af23389e028fdcc
Author: Roman Bolshakov <r.bolshakov@yadro.com>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M target/i386/hvf/hvf.c
M target/i386/hvf/x86.c
M target/i386/hvf/x86.h
M target/i386/hvf/x86_emu.c
M target/i386/hvf/x86_flags.c
M target/i386/hvf/x86_task.c
M target/i386/hvf/x86hvf.c
Log Message:
-----------
i386: hvf: Drop rflags from HVFX86EmulatorState
HVFX86EmulatorState carries it's own copy of x86 flags. It can be
dropped in favor of eflags in generic CPUX86State.
Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
Message-Id: <20200528193758.51454-9-r.bolshakov@yadro.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: ea48ae91210eae3cb7d3576d2dc8152529d5f962
https://github.com/qemu/qemu/commit/ea48ae91210eae3cb7d3576d2dc8152529d5f962
Author: Roman Bolshakov <r.bolshakov@yadro.com>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M target/i386/hvf/x86.c
M target/i386/hvf/x86.h
M target/i386/hvf/x86_decode.c
M target/i386/hvf/x86_task.c
Log Message:
-----------
i386: hvf: Drop copy of RFLAGS defines
Use the ones provided in target/i386/cpu.h instead.
Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
Message-Id: <20200528193758.51454-10-r.bolshakov@yadro.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 167c6aef67dcf4f2d1c417db057ad95f84030180
https://github.com/qemu/qemu/commit/167c6aef67dcf4f2d1c417db057ad95f84030180
Author: Roman Bolshakov <r.bolshakov@yadro.com>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M target/i386/hvf/x86.h
M target/i386/hvf/x86_emu.c
Log Message:
-----------
i386: hvf: Drop regs in HVFX86EmulatorState
HVFX86EmulatorState carries it's own copy of x86 registers. It can be
dropped in favor of regs in generic CPUX86State.
Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
Message-Id: <20200528193758.51454-11-r.bolshakov@yadro.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 577f02b89049c4a466973ae2785c6928e00798c8
https://github.com/qemu/qemu/commit/577f02b89049c4a466973ae2785c6928e00798c8
Author: Roman Bolshakov <r.bolshakov@yadro.com>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M target/i386/cpu.h
M target/i386/hvf/x86.h
M target/i386/hvf/x86_flags.c
Log Message:
-----------
i386: hvf: Move lazy_flags into CPUX86State
The lazy flags are still needed for instruction decoder.
Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
Message-Id: <20200528193758.51454-12-r.bolshakov@yadro.com>
[Move struct to target/i386/cpu.h - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: fe76b09c5b600310639af7ec614fb1303c773e5f
https://github.com/qemu/qemu/commit/fe76b09c5b600310639af7ec614fb1303c773e5f
Author: Roman Bolshakov <r.bolshakov@yadro.com>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M target/i386/cpu.h
M target/i386/hvf/hvf.c
M target/i386/hvf/x86.h
M target/i386/hvf/x86_emu.c
Log Message:
-----------
i386: hvf: Move mmio_buf into CPUX86State
There's no similar field in CPUX86State, but it's needed for MMIO traps.
Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
Message-Id: <20200528193758.51454-13-r.bolshakov@yadro.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: e77cb0bb204c18c04a8290e03181510bbbfc683a
https://github.com/qemu/qemu/commit/e77cb0bb204c18c04a8290e03181510bbbfc683a
Author: Roman Bolshakov <r.bolshakov@yadro.com>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M include/qemu/typedefs.h
M target/i386/cpu.h
M target/i386/hvf/hvf.c
M target/i386/hvf/x86.h
Log Message:
-----------
i386: hvf: Drop HVFX86EmulatorState
Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
Message-Id: <20200528193758.51454-14-r.bolshakov@yadro.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: acd0c9416d4846afc541605ee0e75ca163773e6c
https://github.com/qemu/qemu/commit/acd0c9416d4846afc541605ee0e75ca163773e6c
Author: Anthony PERARD <anthony.perard@citrix.com>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M accel/xen/xen-all.c
M hw/Makefile.objs
M hw/i386/pc_piix.c
M hw/xen/Makefile.objs
M hw/xen/xen_pt.c
M hw/xen/xen_pt.h
A hw/xen/xen_pt_stub.c
Log Message:
-----------
xen: fix build without pci passthrough
Xen PCI passthrough support may not be available and thus the global
variable "has_igd_gfx_passthru" might be compiled out. Common code
should not access it in that case.
Unfortunately, we can't use CONFIG_XEN_PCI_PASSTHROUGH directly in
xen-common.c so this patch instead move access to the
has_igd_gfx_passthru variable via function and those functions are
also implemented as stubs. The stubs will be used when QEMU is built
without passthrough support.
Now, when one will want to enable igd-passthru via the -machine
property, they will get an error message if QEMU is built without
passthrough support.
Fixes: 46472d82322d0 ('xen: convert "-machine igd-passthru" to an accelerator
property')
Reported-by: Roger Pau Monné <roger.pau@citrix.com>
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Message-Id: <20200603160442.3151170-1-anthony.perard@citrix.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: b5b9b1ad4648b625cee25ef5c4cac2a7588d9c04
https://github.com/qemu/qemu/commit/b5b9b1ad4648b625cee25ef5c4cac2a7588d9c04
Author: David Gibson <david@gibson.dropbear.id.au>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M target/i386/sev.c
M target/i386/sev_i386.h
Log Message:
-----------
target/i386: sev: Remove unused QSevGuestInfoClass
This structure is nothing but an empty wrapper around the parent class,
which by QOM conventions means we don't need it at all.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20200604064219.436242-2-david@gibson.dropbear.id.au>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: a86ab19d4a955ab5c7e9df56801c9c580a009148
https://github.com/qemu/qemu/commit/a86ab19d4a955ab5c7e9df56801c9c580a009148
Author: David Gibson <david@gibson.dropbear.id.au>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M target/i386/sev.c
M target/i386/sev_i386.h
Log Message:
-----------
target/i386: sev: Move local structure definitions into .c file
Neither QSevGuestInfo nor SEVState (not to be confused with SevState) is
used anywhere outside target/i386/sev.c, so they might as well live in
there rather than in a (somewhat) exposed header.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20200604064219.436242-3-david@gibson.dropbear.id.au>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: d2d8a1984d7954f10f878dd8b9f6f01069c20d33
https://github.com/qemu/qemu/commit/d2d8a1984d7954f10f878dd8b9f6f01069c20d33
Author: David Gibson <david@gibson.dropbear.id.au>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M target/i386/sev.c
Log Message:
-----------
target/i386: sev: Rename QSevGuestInfo
At the moment this is a purely passive object which is just a container for
information used elsewhere, hence the name. I'm going to change that
though, so as a preliminary rename it to SevGuestState.
That name risks confusion with both SEVState and SevState, but I'll be
working on that in following patches.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20200604064219.436242-4-david@gibson.dropbear.id.au>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 75a877e3b14a8575fd6bc99d193f7fcc03eee94b
https://github.com/qemu/qemu/commit/75a877e3b14a8575fd6bc99d193f7fcc03eee94b
Author: David Gibson <david@gibson.dropbear.id.au>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M target/i386/sev.c
Log Message:
-----------
target/i386: sev: Embed SEVState in SevGuestState
Currently SevGuestState contains only configuration information. For
runtime state another non-QOM struct SEVState is allocated separately.
Simplify things by instead embedding the SEVState structure in
SevGuestState.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200604064219.436242-5-david@gibson.dropbear.id.au>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 8673dee354271a4f30f68059bfbbbea3d21e1a73
https://github.com/qemu/qemu/commit/8673dee354271a4f30f68059bfbbbea3d21e1a73
Author: David Gibson <david@gibson.dropbear.id.au>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M target/i386/sev.c
Log Message:
-----------
target/i386: sev: Partial cleanup to sev_state global
The SEV code uses a pretty ugly global to access its internal state. Now
that SEVState is embedded in SevGuestState, we can avoid accessing it via
the global in some cases. In the remaining cases use a new global
referencing the containing SevGuestState which will simplify some future
transformations.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200604064219.436242-6-david@gibson.dropbear.id.au>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: a06d2bad053f5f95871c0b429acc2c64c74a92b3
https://github.com/qemu/qemu/commit/a06d2bad053f5f95871c0b429acc2c64c74a92b3
Author: David Gibson <david@gibson.dropbear.id.au>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M target/i386/sev.c
Log Message:
-----------
target/i386: sev: Remove redundant cbitpos and reduced_phys_bits fields
The SEVState structure has cbitpos and reduced_phys_bits fields which are
simply copied from the SevGuestState structure and never changed. Now that
SEVState is embedded in SevGuestState we can just access the original copy
directly.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20200604064219.436242-7-david@gibson.dropbear.id.au>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 0bd1527774fc17985f47df41b95f31b00b162129
https://github.com/qemu/qemu/commit/0bd1527774fc17985f47df41b95f31b00b162129
Author: David Gibson <david@gibson.dropbear.id.au>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M target/i386/sev.c
Log Message:
-----------
target/i386: sev: Remove redundant policy field
SEVState::policy is set from the final value of the policy field in the
parameter structure for the KVM_SEV_LAUNCH_START ioctl(). But, AFAICT
that ioctl() won't ever change it from the original supplied value which
comes from SevGuestState::policy.
So, remove this field and just use SevGuestState::policy directly.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20200604064219.436242-8-david@gibson.dropbear.id.au>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: cf504cd67b26ded2e25eb8f33b5ebec031b31def
https://github.com/qemu/qemu/commit/cf504cd67b26ded2e25eb8f33b5ebec031b31def
Author: David Gibson <david@gibson.dropbear.id.au>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M target/i386/sev.c
Log Message:
-----------
target/i386: sev: Remove redundant handle field
The user can explicitly specify a handle via the "handle" property wired
to SevGuestState::handle. That gets passed to the KVM_SEV_LAUNCH_START
ioctl() which may update it, the final value being copied back to both
SevGuestState::handle and SEVState::handle.
AFAICT, nothing will be looking SEVState::handle before it and
SevGuestState::handle have been updated from the ioctl(). So, remove the
field and just use SevGuestState::handle directly.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20200604064219.436242-9-david@gibson.dropbear.id.au>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 421522eb534d82040bc8e405ed3a28d94d17f24e
https://github.com/qemu/qemu/commit/421522eb534d82040bc8e405ed3a28d94d17f24e
Author: David Gibson <david@gibson.dropbear.id.au>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M target/i386/sev.c
Log Message:
-----------
target/i386: sev: Unify SEVState and SevGuestState
SEVState is contained with SevGuestState. We've now fixed redundancies
and name conflicts, so there's no real point to the nested structure. Just
move all the fields of SEVState into SevGuestState.
This eliminates the SEVState structure, which as a bonus removes the
confusion with the SevState enum.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20200604064219.436242-10-david@gibson.dropbear.id.au>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 2046811c66afd54358355242fa23b987b7445440
https://github.com/qemu/qemu/commit/2046811c66afd54358355242fa23b987b7445440
Author: Michael S. Tsirkin <mst@redhat.com>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M scripts/checkpatch.pl
Log Message:
-----------
checkpatch: reversed logic with acpi test checks
Logic reversed: allowed list should just be ignored. Instead we
only take that into account :(
Fixes: e11b06a880ca ("checkpatch: ignore allowed diff list")
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Message-Id: <20200602053614.54745-1-mst@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Tested-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: e1bc61989264a37aeffefa1fb3cf100db259b35b
https://github.com/qemu/qemu/commit/e1bc61989264a37aeffefa1fb3cf100db259b35b
Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M include/exec/memory.h
Log Message:
-----------
exec/memory: Remove unused MemoryRegionMmio type
Since commit 62a0db942dec ('memory: Remove old_mmio accessors')
this structure is unused. Remove it.
Suggested-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20200601141536.15192-2-f4bug@amsat.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 2c89d91195c4c7a118d2ae3518c31ca77a0583cd
https://github.com/qemu/qemu/commit/2c89d91195c4c7a118d2ae3518c31ca77a0583cd
Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M hw/usb/hcd-musb.c
M hw/usb/tusb6010.c
M include/hw/usb.h
A include/hw/usb/hcd-musb.h
Log Message:
-----------
hw/usb: Move device-specific declarations to new 'hcd-musb.h' header
Move the declarations for the MUSB-HDRC USB2.0 OTG compliant core
into a separate header.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20200601141536.15192-3-f4bug@amsat.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: efb22b2f98975785aa594e5a198d4c2e13a5d2d0
https://github.com/qemu/qemu/commit/efb22b2f98975785aa594e5a198d4c2e13a5d2d0
Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M hw/usb/hcd-musb.c
M include/exec/cpu-common.h
M include/hw/usb/hcd-musb.h
Log Message:
-----------
exec/cpu-common: Move MUSB specific typedefs to 'hw/usb/hcd-musb.h'
The CPUReadMemoryFunc/CPUWriteMemoryFunc typedefs are legacy
remnant from before the conversion to MemoryRegions.
Since they are now only used in tusb6010.c and hcd-musb.c,
move them to "hw/usb/musb.h" and rename them appropriately.
Suggested-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20200601141536.15192-4-f4bug@amsat.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: ed5d7ff34a8cfafd8efe2aab4eeaf9bf789870e3
https://github.com/qemu/qemu/commit/ed5d7ff34a8cfafd8efe2aab4eeaf9bf789870e3
Author: Pavel Dovgalyuk <Pavel.Dovgaluk@gmail.com>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M replay/replay.c
Log Message:
-----------
replay: fix replay shutdown for console mode
When QEMU is used without any graphical window,
QEMU execution is terminated with the signal (e.g., Ctrl-C).
Signal processing in QEMU does not include
qemu_system_shutdown_request call. That is why shutdown
event is not recorded by record/replay in this case.
This patch adds shutdown event to the end of the record log.
Now every replay will shutdown the machine at the end.
Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>
Message-Id: <159012995470.27967.18129611453659045726.stgit@pasha-ThinkPad-X280>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 234b74966390894046dfef6157ecc49c39fdce20
https://github.com/qemu/qemu/commit/234b74966390894046dfef6157ecc49c39fdce20
Author: Paolo Bonzini <pbonzini@redhat.com>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M accel/stubs/Makefile.objs
A accel/stubs/xen-stub.c
M stubs/Makefile.objs
R stubs/xen-common.c
R stubs/xen-hvm.c
Log Message:
-----------
stubs: move Xen stubs to accel/
Keep them close to the other accelerator-dependent stubs, so as to remove
stubs that are not needed by tools.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 3575b0aea983ad57804c9af739ed8ff7bc168393
https://github.com/qemu/qemu/commit/3575b0aea983ad57804c9af739ed8ff7bc168393
Author: Thomas Huth <thuth@redhat.com>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
R target/i386/TODO
Log Message:
-----------
target/i386: Remove obsolete TODO file
The last real change to this file is from 2012, so it is very likely
that this file is completely out-of-date and ignored today. Let's
simply remove it to avoid confusion if someone finds it by accident.
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20200611172445.5177-1-thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Commit: 7d3660e79830a069f1848bb4fa1cdf8f666424fb
https://github.com/qemu/qemu/commit/7d3660e79830a069f1848bb4fa1cdf8f666424fb
Author: Peter Maydell <peter.maydell@linaro.org>
Date: 2020-06-12 (Fri, 12 Jun 2020)
Changed paths:
M MAINTAINERS
M Makefile
M Makefile.objs
M accel/Makefile.objs
M accel/kvm/kvm-all.c
M accel/kvm/trace-events
M accel/stubs/Makefile.objs
A accel/stubs/xen-stub.c
A accel/xen/Makefile.objs
A accel/xen/xen-all.c
M chardev/char-socket.c
M configure
M cpus.c
M disas.c
M exec.c
M hmp-commands-info.hx
M hw/Makefile.objs
M hw/acpi/piix4.c
M hw/block/vhost-user-blk.c
M hw/core/machine.c
M hw/core/numa.c
M hw/hyperv/Kconfig
M hw/hyperv/Makefile.objs
M hw/hyperv/hyperv.c
A hw/hyperv/trace-events
A hw/hyperv/vmbus.c
M hw/i386/acpi-build.c
M hw/i386/amd_iommu.c
M hw/i386/pc.c
M hw/i386/pc_piix.c
M hw/i386/pc_q35.c
M hw/i386/vmmouse.c
M hw/i386/vmport.c
R hw/i386/vmport.h
M hw/i386/xen/xen-hvm.c
M hw/i386/xen/xen_platform.c
M hw/intc/ioapic.c
M hw/isa/piix3.c
M hw/pci-host/pam.c
M hw/pci/msix.c
M hw/scsi/megasas.c
M hw/scsi/vhost-user-scsi.c
M hw/usb/hcd-musb.c
M hw/usb/tusb6010.c
M hw/vfio/pci.c
M hw/xen/Makefile.objs
R hw/xen/xen-common.c
M hw/xen/xen_pt.c
M hw/xen/xen_pt.h
A hw/xen/xen_pt_stub.c
M include/exec/cpu-all.h
M include/exec/cpu-common.h
M include/exec/memory.h
M include/exec/ram_addr.h
M include/hw/display/edid.h
M include/hw/elf_ops.h
M include/hw/hyperv/hyperv.h
A include/hw/hyperv/vmbus-bridge.h
A include/hw/hyperv/vmbus-proto.h
A include/hw/hyperv/vmbus.h
A include/hw/i386/vmport.h
M include/hw/usb.h
A include/hw/usb/hcd-musb.h
M include/hw/xen/xen.h
M include/io/task.h
M include/qemu/thread.h
M include/qemu/typedefs.h
M include/qom/object.h
M include/qom/qom-qobject.h
M include/sysemu/accel.h
M include/sysemu/hvf.h
M include/sysemu/kvm.h
M include/sysemu/sysemu.h
M include/sysemu/tcg.h
A include/sysemu/xen.h
M io/task.c
M memory.c
M migration/savevm.c
M monitor/misc.c
M qom/container.c
M qom/object.c
M replay/replay-internal.c
M replay/replay.c
M scripts/checkpatch.pl
M scripts/coverity-scan/coverity-scan.docker
M scripts/coverity-scan/run-coverity-scan
M softmmu/vl.c
M stubs/Makefile.objs
M stubs/qmp_memory_device.c
R stubs/xen-common.c
R stubs/xen-hvm.c
R target/i386/TODO
M target/i386/cpu.c
M target/i386/cpu.h
M target/i386/fpu_helper.c
M target/i386/hax-all.c
M target/i386/hax-i386.h
M target/i386/hvf/hvf-i386.h
M target/i386/hvf/hvf.c
M target/i386/hvf/x86.c
M target/i386/hvf/x86.h
M target/i386/hvf/x86_decode.c
M target/i386/hvf/x86_emu.c
M target/i386/hvf/x86_flags.c
M target/i386/hvf/x86_task.c
M target/i386/hvf/x86hvf.c
M target/i386/kvm.c
M target/i386/misc_helper.c
M target/i386/ops_sse.h
M target/i386/sev.c
M target/i386/sev_i386.h
M target/ppc/cpu.h
M target/ppc/kvm_ppc.h
M target/ppc/translate_init.inc.c
M tests/docker/Makefile.include
M tests/docker/docker.py
M tests/qtest/machine-none-test.c
M tests/tcg/i386/Makefile.target
A tests/tcg/i386/test-i386-fbstp.c
A tests/tcg/i386/test-i386-fisttp.c
A tests/tcg/i386/test-i386-fldcst.c
A tests/tcg/i386/test-i386-fp-exceptions.c
A tests/tcg/i386/test-i386-fscale.c
A tests/tcg/i386/test-i386-fxam.c
A tests/tcg/i386/test-i386-fxtract.c
A tests/tcg/i386/test-i386-pcmpistri.c
M tests/test-io-task.c
M util/oslib-posix.c
Log Message:
-----------
Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging
* Miscellaneous fixes and feature enablement (many)
* SEV refactoring (David)
* Hyper-V initial support (Jon)
* i386 TCG fixes (x87 and SSE, Joseph)
* vmport cleanup and improvements (Philippe, Liran)
* Use-after-free with vCPU hot-unplug (Nengyuan)
* run-coverity-scan improvements (myself)
* Record/replay fixes (Pavel)
* -machine kernel_irqchip=split improvements for INTx (Peter)
* Code cleanups (Philippe)
* Crash and security fixes (PJP)
* HVF cleanups (Roman)
# gpg: Signature made Fri 12 Jun 2020 16:57:04 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
* remotes/bonzini/tags/for-upstream: (116 commits)
target/i386: Remove obsolete TODO file
stubs: move Xen stubs to accel/
replay: fix replay shutdown for console mode
exec/cpu-common: Move MUSB specific typedefs to 'hw/usb/hcd-musb.h'
hw/usb: Move device-specific declarations to new 'hcd-musb.h' header
exec/memory: Remove unused MemoryRegionMmio type
checkpatch: reversed logic with acpi test checks
target/i386: sev: Unify SEVState and SevGuestState
target/i386: sev: Remove redundant handle field
target/i386: sev: Remove redundant policy field
target/i386: sev: Remove redundant cbitpos and reduced_phys_bits fields
target/i386: sev: Partial cleanup to sev_state global
target/i386: sev: Embed SEVState in SevGuestState
target/i386: sev: Rename QSevGuestInfo
target/i386: sev: Move local structure definitions into .c file
target/i386: sev: Remove unused QSevGuestInfoClass
xen: fix build without pci passthrough
i386: hvf: Drop HVFX86EmulatorState
i386: hvf: Move mmio_buf into CPUX86State
i386: hvf: Move lazy_flags into CPUX86State
...
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
# Conflicts:
# hw/i386/acpi-build.c
Compare: https://github.com/qemu/qemu/compare/9e3903136d9a...7d3660e79830
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-commits] [qemu/qemu] dfae62: docker.py/build: support -t and -f arguments,
Peter Maydell <=