- Sep 17, 2020
-
-
Gerd Hoffmann authored
Signed-off-by:
Gerd Hoffmann <kraxel@redhat.com> Reviewed-by:
Sergio Lopez <slp@redhat.com> Reviewed-by:
Igor Mammedov <imammedo@redhat.com> Reviewed-by:
Philippe Mathieu-Daudé <philmd@redhat.com> Message-id: 20200915120909.20838-14-kraxel@redhat.com
-
Gerd Hoffmann authored
... in case we are using ACPI. Signed-off-by:
Gerd Hoffmann <kraxel@redhat.com> Reviewed-by:
Igor Mammedov <imammedo@redhat.com> Reviewed-by:
Sergio Lopez <slp@redhat.com> Message-id: 20200915120909.20838-13-kraxel@redhat.com
-
Gerd Hoffmann authored
With acpi=off continue to use qboot. Signed-off-by:
Gerd Hoffmann <kraxel@redhat.com> Reviewed-by:
Igor Mammedov <imammedo@redhat.com> Reviewed-by:
Sergio Lopez <slp@redhat.com> Message-id: 20200915120909.20838-12-kraxel@redhat.com
-
Gerd Hoffmann authored
With ACPI enabled and IO-APIC being properly declared in the ACPI tables we can use interrupt lines 16-23 for virtio and avoid shared interrupts. With acpi disabled we continue to use lines 5-12. Signed-off-by:
Gerd Hoffmann <kraxel@redhat.com> Reviewed-by:
Sergio Lopez <slp@redhat.com> Reviewed-by:
Igor Mammedov <imammedo@redhat.com> Message-id: 20200915120909.20838-11-kraxel@redhat.com
-
Gerd Hoffmann authored
Makes x86 linux kernel find virtio-mmio devices automatically. Signed-off-by:
Gerd Hoffmann <kraxel@redhat.com> Reviewed-by:
Sergio Lopez <slp@redhat.com> Reviewed-by:
Igor Mammedov <imammedo@redhat.com> Message-id: 20200915120909.20838-10-kraxel@redhat.com
-
Gerd Hoffmann authored
$subject says all. Can be controlled using -M microvm,acpi=on/off. Signed-off-by:
Gerd Hoffmann <kraxel@redhat.com> Reviewed-by:
Igor Mammedov <imammedo@redhat.com> Message-id: 20200915120909.20838-9-kraxel@redhat.com
-
Gerd Hoffmann authored
Signed-off-by:
Gerd Hoffmann <kraxel@redhat.com> Reviewed-by:
Sergio Lopez <slp@redhat.com> Reviewed-by:
Igor Mammedov <imammedo@redhat.com> Message-id: 20200915120909.20838-8-kraxel@redhat.com
-
Gerd Hoffmann authored
Allow reuse for microvm. Signed-off-by:
Gerd Hoffmann <kraxel@redhat.com> Reviewed-by:
Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by:
Igor Mammedov <imammedo@redhat.com> Message-id: 20200915120909.20838-7-kraxel@redhat.com
-
Gerd Hoffmann authored
Set AcpiDeviceIfClass->madt_cpu, otherwise identical to TYPE_ACPI_GED. Signed-off-by:
Gerd Hoffmann <kraxel@redhat.com> Reviewed-by:
Igor Mammedov <imammedo@redhat.com> Message-id: 20200915120909.20838-6-kraxel@redhat.com
-
Gerd Hoffmann authored
Add control regs (sleep, reset) for hw-reduced acpi. Signed-off-by:
Gerd Hoffmann <kraxel@redhat.com> Reviewed-by:
Igor Mammedov <imammedo@redhat.com> Message-id: 20200915120909.20838-5-kraxel@redhat.com
-
Gerd Hoffmann authored
Signed-off-by:
Gerd Hoffmann <kraxel@redhat.com> Reviewed-by:
Sergio Lopez <slp@redhat.com> Message-id: 20200915120909.20838-4-kraxel@redhat.com
-
Gerd Hoffmann authored
Signed-off-by:
Gerd Hoffmann <kraxel@redhat.com> Reviewed-by:
Sergio Lopez <slp@redhat.com> Message-id: 20200915120909.20838-3-kraxel@redhat.com
-
Gerd Hoffmann authored
qboot isn't a bios and shouldnt be named that way. Signed-off-by:
Gerd Hoffmann <kraxel@redhat.com> Reviewed-by:
Sergio Lopez <slp@redhat.com> Reviewed-by:
Philippe Mathieu-Daudé <philmd@redhat.com> Message-id: 20200915120909.20838-2-kraxel@redhat.com
-
- Sep 16, 2020
-
-
Peter Maydell authored
The intention of the following two patches is making users aware about the negative file I/O performance impact when using a very low value for 9P client parameter 'msize', which especially is the case if no 'msize' parameter was supplied by the user with a 9P Linux client at all. All it does is logging a performance warning on host side (once) in that case. By setting 'msize' on client side to any value larger than 8192 the performance warning will disappear. See https://wiki.qemu.org/Documentation/9psetup#msize for details. # gpg: Signature made Tue 15 Sep 2020 11:37:32 BST # gpg: using RSA key 96D8D110CF7AF8084F88590134C2B58765A47395 # gpg: issuer "qemu_oss@crudebyte.com" # gpg: Good signature from "Christian Schoenebeck <qemu_oss@crudebyte.com>" [unknown] # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: ECAB 1A45 4014 1413 BA38 4926 30DB 47C3 A012 D5F4 # Subkey fingerprint: 96D8 D110 CF7A F808 4F88 5901 34C2 B587 65A4 7395 * remotes/cschoenebeck/tags/pull-9p-20200915: 9pfs: disable msize warning for synth driver 9pfs: log warning if msize <= 8192 Signed-off-by:
Peter Maydell <peter.maydell@linaro.org>
-
- Sep 15, 2020
-
-
Peter Maydell authored
vga: fix qxl modular build. vga: add support for virtio-gpu modular builds. # gpg: Signature made Tue 15 Sep 2020 14:08:53 BST # gpg: using RSA key 4CB6D8EED3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" [full] # gpg: aka "Gerd Hoffmann <gerd@kraxel.org>" [full] # gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>" [full] # Primary key fingerprint: A032 8CFF B93A 17A7 9901 FE7D 4CB6 D8EE D3E8 7138 * remotes/kraxel/tags/vga-20200915-pull-request: virtio-gpu: build modular virtio-gpu: make virtio_gpu_ops static object_initialize: try module load meson: remove duplicate qxl sources meson: fix module config meson: fix qxl dependencies Signed-off-by:
Peter Maydell <peter.maydell@linaro.org>
-
Gerd Hoffmann authored
Only build virtio-gpu-device modular (the code which actually depends on the external virglrenderer library). virtio-gpu-pci and virtio-vga are compiled into core qemu still. Signed-off-by:
Gerd Hoffmann <kraxel@redhat.com> Message-id: 20200914134224.29769-7-kraxel@redhat.com
-
Gerd Hoffmann authored
Reference it via ops pointer instead, simliar to the vga one. Removes hard symbol reference, needed to build virtio-gpu modular. Signed-off-by:
Gerd Hoffmann <kraxel@redhat.com> Message-id: 20200914134224.29769-6-kraxel@redhat.com
-
Gerd Hoffmann authored
Needed to allow virtio-gpu-pci initialize the virtio-gpu-device child device. Signed-off-by:
Gerd Hoffmann <kraxel@redhat.com> Message-id: 20200914134224.29769-5-kraxel@redhat.com
-
Gerd Hoffmann authored
We should add sources to the softmmu_ss or module_ss but not both. Signed-off-by:
Gerd Hoffmann <kraxel@redhat.com> Message-id: 20200914134224.29769-4-kraxel@redhat.com
-
Gerd Hoffmann authored
Use all config symbols not only the host ones. Needed to make sure device configs like CONFIG_QXL are used for modules too. Suggested-by:
Paolo Bonzini <pbonzini@redhat.com> Signed-off-by:
Gerd Hoffmann <kraxel@redhat.com> Message-id: 20200914134224.29769-3-kraxel@redhat.com
-
Gerd Hoffmann authored
Add pixman and spice deps to qxl module. Signed-off-by:
Gerd Hoffmann <kraxel@redhat.com> Message-id: 20200914134224.29769-2-kraxel@redhat.com
-
Peter Maydell authored
seccomp branch queue # gpg: Signature made Tue 15 Sep 2020 11:58:27 BST # gpg: using RSA key D67E1B50937486B40723DBABDF32E7C0F0FFF9A2 # gpg: issuer "otubo@redhat.com" # gpg: Good signature from "Eduardo Otubo (Senior Software Engineer) <otubo@redhat.com>" [full] # Primary key fingerprint: D67E 1B50 9374 86B4 0723 DBAB DF32 E7C0 F0FF F9A2 * remotes/otubo/tags/pull-seccomp-20200915: seccomp: fix killing of whole process instead of thread Signed-off-by:
Peter Maydell <peter.maydell@linaro.org>
-
Daniel P. Berrangé authored
Back in 2018 we introduced support for killing the whole QEMU process instead of just one thread, when a seccomp rule is violated: commit bda08a57 Author: Marc-André Lureau <marcandre.lureau@redhat.com> Date: Wed Aug 22 19:02:48 2018 +0200 seccomp: prefer SCMP_ACT_KILL_PROCESS if available Fast forward a year and we introduced a patch to avoid killing the process for resource control syscalls tickled by Mesa. commit 9a1565a0 Author: Daniel P. Berrangé <berrange@redhat.com> Date: Wed Mar 13 09:49:03 2019 +0000 seccomp: don't kill process for resource control syscalls Unfortunately a logic bug effectively reverted the first commit mentioned so that we go back to only killing the thread, not the whole process. Signed-off-by:
Daniel P. Berrangé <berrange@redhat.com> Reviewed-by:
Stefan Hajnoczi <stefanha@redhat.com> Acked-by:
Eduardo Otubo <otubo@redhat.com>
-
Peter Maydell authored
Block patches: - Several qcow2 fixes and refactorings - Let qemu-img convert try to stay at cluster boundaries - Stable child names for quorum (with x-blockdev-change) - Explicitly drop vhdx 4k sector support, as it was never actually working - rbd: Mark @namespace a strong runtime option - iotests.py improvements - Drop unused runtime_opts objects - Skip a test case in 030 when run through make check-block # gpg: Signature made Tue 15 Sep 2020 11:27:05 BST # gpg: using RSA key 91BEB60A30DB3E8857D11829F407DB0061D5CF40 # gpg: issuer "mreitz@redhat.com" # gpg: Good signature from "Max Reitz <mreitz@redhat.com>" [full] # Primary key fingerprint: 91BE B60A 30DB 3E88 57D1 1829 F407 DB00 61D5 CF40 * remotes/maxreitz/tags/pull-block-2020-09-15: (22 commits) block/rbd: add 'namespace' to qemu_rbd_strong_runtime_opts[] qcow2: Convert qcow2_alloc_cluster_offset() into qcow2_alloc_host_offset() qcow2: Make preallocate_co() resize the image to the correct size block/qcow: remove runtime opts block/rbd: remove runtime_opts qcow2: Return the original error code in qcow2_co_pwrite_zeroes() qcow2: Make qcow2_free_any_clusters() free only one cluster qcow2: Handle QCowL2Meta on error in preallocate_co() block/vhdx: Support vhdx image only with 512 bytes logical sector size iotests: Skip test_stream_parallel in test 030 when doing "make check" qemu-img: Explicit number replaced by a constant qcow2: Rewrite the documentation of qcow2_alloc_cluster_offset() qcow2: Don't check nb_clusters when removing l2meta from the list qcow2: Fix removal of list members from BDRVQcow2State.cluster_allocs qcow2: Use macros for the L1, refcount and bitmap table entry sizes qemu-img: avoid unaligned read requests during convert block/quorum.c: stable children names qemu-iotests: Simplify FilePath __init__ qemu-iotests: Merge FilePaths and FilePath qemu-iotests: Support varargs syntax in FilePaths ... Signed-off-by:
Peter Maydell <peter.maydell@linaro.org>
-
Christian Schoenebeck authored
Previous patch introduced a performance warning being logged on host side if client connected with an 'msize' <= 8192. Disable this performance warning for the synth driver to prevent that warning from being printed whenever the 9pfs (qtest) test cases are running. Introduce a new export flag V9FS_NO_PERF_WARN for that purpose, which might also be used to disable such warnings from the CLI in future. We could have also prevented the warning by simply raising P9_MAX_SIZE in virtio-9p-test.c to any value larger than 8192, however in the context of test cases it makes sense running for edge cases, which includes the lowest 'msize' value supported by the server which is 4096, hence we want to preserve an msize of 4096 for the test client. Signed-off-by:
Christian Schoenebeck <qemu_oss@crudebyte.com> Reviewed-by:
Greg Kurz <groug@kaod.org> Message-Id: <E1kEyDy-0006nN-5A@lizzy.crudebyte.com> Signed-off-by:
Christian Schoenebeck <qemu_oss@crudebyte.com>
-
Christian Schoenebeck authored
It is essential to choose a reasonable high value for 'msize' to avoid severely degraded file I/O performance. This parameter can only be chosen on client/guest side, and a Linux client defaults to an 'msize' of only 8192 if the user did not explicitly specify a value for 'msize', which results in very poor file I/O performance. Unfortunately many users are not aware that they should specify an appropriate value for 'msize' to avoid severe performance issues, so log a performance warning (with a QEMU wiki link explaining this issue in detail) on host side in that case to make it more clear. Currently a client cannot automatically pick a reasonable value for 'msize', because a good value for 'msize' depends on the file I/O potential of the underlying storage on host side, i.e. a feature invisible to the client, and even then a user would still need to trade off between performance profit and additional RAM costs, i.e. with growing 'msize' (RAM occupation), performance still increases, but performance delta will shrink continuously. Signed-off-by:
Christian Schoenebeck <qemu_oss@crudebyte.com> Reviewed-by:
Greg Kurz <groug@kaod.org> Message-Id: <e6fc84845c95816ad5baecb0abd6bfefdcf7ec9f.1599144062.git.qemu_oss@crudebyte.com> Signed-off-by:
Christian Schoenebeck <qemu_oss@crudebyte.com>
-
Stefano Garzarella authored
Commit 19ae9ae0 ("block/rbd: Add support for ceph namespaces") introduced namespace support for RBD, but we forgot to add the new 'namespace' options to qemu_rbd_strong_runtime_opts[]. The 'namespace' is used to identify the image, so it is a strong option since it can changes the data of a BDS. Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1821528 Fixes: 19ae9ae0 ("block/rbd: Add support for ceph namespaces") Cc: Florian Florensa <fflorensa@online.net> Signed-off-by:
Stefano Garzarella <sgarzare@redhat.com> Message-Id: <20200914190553.74871-1-sgarzare@redhat.com> Reviewed-by:
Jason Dillaman <dillaman@redhat.com> Signed-off-by:
Max Reitz <mreitz@redhat.com>
-
Alberto Garcia authored
qcow2_alloc_cluster_offset() takes an (unaligned) guest offset and returns the (aligned) offset of the corresponding cluster in the qcow2 image. In practice none of the callers need to know where the cluster starts so this patch makes the function calculate and return the final host offset directly. The function is also renamed accordingly. See 388e5816 for a similar change to qcow2_get_cluster_offset(). Signed-off-by:
Alberto Garcia <berto@igalia.com> Message-Id: <9bfef50ec9200d752413be4fc2aeb22a28378817.1599833007.git.berto@igalia.com> Reviewed-by:
Max Reitz <mreitz@redhat.com> Signed-off-by:
Max Reitz <mreitz@redhat.com>
-
Alberto Garcia authored
This function preallocates metadata structures and then extends the image to its new size, but that new size calculation is wrong because it doesn't take into account that the host_offset variable is always cluster-aligned. This problem can be reproduced with preallocation=metadata when the original size is not cluster-aligned but the new size is. In this case the final image size will be shorter than expected. qemu-img create -f qcow2 img.qcow2 31k qemu-img resize --preallocation=metadata img.qcow2 128k Signed-off-by:
Alberto Garcia <berto@igalia.com> Message-Id: <adeb8b059917b141d5f5b3bd2a016262d3052c79.1599833007.git.berto@igalia.com> Reviewed-by:
Max Reitz <mreitz@redhat.com> [mreitz: Mark compat=0.10 unsupported for iotest 125] Signed-off-by:
Max Reitz <mreitz@redhat.com>
-
John Snow authored
Introduced by d85f4222, These were seemingly never used at all. Signed-off-by:
John Snow <jsnow@redhat.com> Message-Id: <20200806211345.2925343-3-jsnow@redhat.com> Signed-off-by:
Max Reitz <mreitz@redhat.com>
-
John Snow authored
This saw its last use in 4bfb2741. Signed-off-by:
John Snow <jsnow@redhat.com> Message-Id: <20200806211345.2925343-2-jsnow@redhat.com> Signed-off-by:
Max Reitz <mreitz@redhat.com>
-
Alberto Garcia authored
This function checks the current status of a (sub)cluster in order to see if an unaligned 'write zeroes' request can be done efficiently by simply updating the L2 metadata and without having to write actual zeroes to disk. If the situation does not allow using the fast path then the function returns -ENOTSUP and the caller falls back to writing zeroes. If can happen however that the aforementioned check returns an actual error code so in this case we should pass it to the caller. Signed-off-by:
Alberto Garcia <berto@igalia.com> Message-Id: <20200909123739.719-1-berto@igalia.com> Reviewed-by:
Eric Blake <eblake@redhat.com> Reviewed-by:
Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by:
Kevin Wolf <kwolf@redhat.com> Signed-off-by:
Max Reitz <mreitz@redhat.com>
-
Alberto Garcia authored
This function takes an L2 entry and a number of clusters to free. Although in principle it can free any type of cluster (using the L2 entry to determine its type) in practice the API is broken because compressed clusters have a variable size and there is no way to free more than one without having the L2 entry of each one of them. The good news all callers are passing nb_clusters=1 so we can simply get rid of that parameter. Signed-off-by:
Alberto Garcia <berto@igalia.com> Message-Id: <77cea0f4616f921d37e971b3c5b18a2faa24b173.1599573989.git.berto@igalia.com> Reviewed-by:
Kevin Wolf <kwolf@redhat.com> Signed-off-by:
Max Reitz <mreitz@redhat.com>
-
Alberto Garcia authored
If qcow2_alloc_cluster_offset() or qcow2_alloc_cluster_link_l2() fail then this function simply returns the error code, potentially leaking the QCowL2Meta structure and leaving stale items in s->cluster_allocs. A second problem is that this function calls qcow2_free_any_clusters() on failure but passing a host cluster offset instead of an L2 entry. Luckily for normal uncompressed clusters a raw offset also works like a valid L2 entry so it works just the same, but we should be using qcow2_free_clusters() instead. This patch fixes both problems by using qcow2_handle_l2meta(). Signed-off-by:
Alberto Garcia <berto@igalia.com> Message-Id: <cd3a6b9abd43f9c0b60be413d760f0cacc67eb66.1599573989.git.berto@igalia.com> Reviewed-by:
Kevin Wolf <kwolf@redhat.com> Signed-off-by:
Max Reitz <mreitz@redhat.com>
-
Swapnil Ingle authored
block/vhdx uses qemu block layer where sector size is always 512 bytes. This may have issues with 4K logical sector sized vhdx image. For e.g qemu-img convert on such images fails with following assert: $qemu-img convert -f vhdx -O raw 4KTest1.vhdx test.raw qemu-img: util/iov.c:388: qiov_slice: Assertion `offset + len <= qiov->size' failed. Aborted This patch adds an check to return ENOTSUP for vhdx images which have logical sector size other than 512 bytes. Signed-off-by:
Swapnil Ingle <swapnil.ingle@nutanix.com> Message-Id: <1596794594-44531-1-git-send-email-swapnil.ingle@nutanix.com> Signed-off-by:
Max Reitz <mreitz@redhat.com>
-
Thomas Huth authored
The test_stream_parallel test still occasionally fails in the CI. Thus let's disable it during "make check" for now so that it does not cause trouble during merge tests. We can enable it again once the problem has been resolved. Signed-off-by:
Thomas Huth <thuth@redhat.com> Message-Id: <20200907113824.134788-1-thuth@redhat.com> Signed-off-by:
Max Reitz <mreitz@redhat.com>
-
Yi Li authored
Signed-off-by:
Yi Li <yili@winhong.com> Message-Id: <20200819013607.32280-1-yili@winhong.com> Reviewed-by:
Alberto Garcia <berto@igalia.com> Reviewed-by:
Stefano Garzarella <sgarzare@redhat.com> Signed-off-by:
Max Reitz <mreitz@redhat.com>
-
Alberto Garcia authored
The current text corresponds to an earlier, simpler version of this function and it does not explain how it works now. Signed-off-by:
Alberto Garcia <berto@igalia.com> Message-Id: <bb5bd06f07c5a05b0818611de0d06ec5b66c8df3.1599150873.git.berto@igalia.com> Signed-off-by:
Max Reitz <mreitz@redhat.com>
-
Alberto Garcia authored
In the past, when a new cluster was allocated the l2meta structure was a variable in the stack so it was necessary to have a way to tell whether it had been initialized and contained valid data or not. The nb_clusters field was used for this purpose. Since commit f50f88b9 this is no longer the case, l2meta (nowadays a pointer to a list) is only allocated when needed and nb_clusters is guaranteed to be > 0 so this check is unnecessary. Signed-off-by:
Alberto Garcia <berto@igalia.com> Message-Id: <ab0b67c29c7ba26e598db35f12aa5ab5982539c1.1599150873.git.berto@igalia.com> Signed-off-by:
Max Reitz <mreitz@redhat.com>
-
Alberto Garcia authored
When a write request needs to allocate new clusters (or change the L2 bitmap of existing ones) a QCowL2Meta structure is created so the L2 metadata can be later updated and any copy-on-write can be performed if necessary. A write request can span a region consisting of an arbitrary combination of previously unallocated and allocated clusters, and if the unallocated ones can be put contiguous to the existing ones then QEMU will do so in order to minimize the number of write operations. In practice this means that a write request has not just one but a number of QCowL2Meta structures. All of them are added to the cluster_allocs list that is stored in BDRVQcow2State and is used to detect overlapping requests. After the write request finishes all its associated QCowL2Meta are removed from that list. calculate_l2_meta() takes care of creating and putting those structures in the list, and qcow2_handle_l2meta() takes care of removing them. The problem is that the error path in handle_alloc() also tries to remove an item in that list, a remnant from the time when this was handled there (that code would not even be correct anymore because it only removes one struct and not all the ones from the same write request). This can trigger a double removal of the same item from the list, causing a crash. This is not easy to reproduce in practice because it requires that do_alloc_cluster_offset() fails after a successful previous allocation during the same write request, but it can be reproduced with the included test case. Signed-off-by:
Alberto Garcia <berto@igalia.com> Message-Id: <3440a1c4d53c4fe48312b478c96accb338cbef7c.1599150873.git.berto@igalia.com> Signed-off-by:
Max Reitz <mreitz@redhat.com>
-