- Jul 28, 2022
-
-
Paolo Bonzini authored
Without CONFIG_GBM, compiling dbus-display fails with ../ui/dbus.c: In function ‘dbus_create_context’: ../ui/dbus.c:47:20: error: ‘qemu_egl_rn_ctx’ undeclared (first use in this function); did you mean ‘qemu_egl_init_ctx’? 47 | qemu_egl_rn_ctx); | ^~~~~~~~~~~~~~~ | qemu_egl_init_ctx ../ui/dbus.c:47:20: note: each undeclared identifier is reported only once for each function it appears in and many other similar errors, because include/ui/egl-helpers.h only has these declaration if gbm is found on the system. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1108 Reviewed-by:
Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by:
Daniel P. Berrangé <berrange@redhat.com> Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
- Jul 25, 2022
-
-
Helge Deller authored
The pipe2() syscall is available on all Linux platforms since kernel 2.6.27, so use it unconditionally to emulate pipe() and pipe2(). Signed-off-by:
Helge Deller <deller@gmx.de> Reviewed-by:
Peter Maydell <peter.maydell@linaro.org> Message-Id: <YtbZ2ojisTnzxN9Y@p100> Signed-off-by:
Laurent Vivier <laurent@vivier.eu>
-
- Jul 13, 2022
-
-
Akihiko Odaki authored
Signed-off-by:
Akihiko Odaki <akihiko.odaki@gmail.com> Message-Id: <20220624154042.51512-1-akihiko.odaki@gmail.com> [Rewrite shell function without using Bash extensions. - Paolo] Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Akihiko Odaki authored
Developers often run QEMU without installing. The bundle mechanism allows to look up files which should be present in installation even in such a situation. It is a general mechanism and can find any files in the installation tree. The build tree will have a new directory, qemu-bundle, to represent what files the installation tree would have for reference by the executables. Note that it abandons compatibility with Windows older than 8. The extended support for the prior version, 7 ended more than 2 years ago, and it is unlikely that someone would like to run the latest QEMU on such an old system. Signed-off-by:
Akihiko Odaki <akihiko.odaki@gmail.com> Suggested-by:
Paolo Bonzini <pbonzini@redhat.com> Message-Id: <20220624145039.49929-3-akihiko.odaki@gmail.com> Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
- Jul 12, 2022
-
-
Akihiko Odaki authored
Retrieve the refresh rate of the display and reflect it with dpy_set_ui_info() and update_displaychangelistener(), allowing the guest and DisplayChangeListener to consume the information. The information will be used as a hint how often the display should be updated. For example, when we run 30 Hz physical display updates it is pointless for the guest to update the screen at 60Hz frequency, the guest can spare some work instead. Signed-off-by:
Akihiko Odaki <akihiko.odaki@gmail.com> Reviewed-by:
Peter Maydell <peter.maydell@linaro.org> Message-Id: <20220702142519.12188-1-akihiko.odaki@gmail.com> Signed-off-by:
Philippe Mathieu-Daudé <f4bug@amsat.org>
-
- Jul 08, 2022
-
-
Marc-André Lureau authored
Commit c9c84748 broken dbus audio module compilation with bad 'CONFIG_GIO' usage. Furthermore, it implied extra dependency on audio module which aren't necessary. The problem was that 'dbus_display' is not correctly automatically set on MacOS, because opengl dependency wasn't taken into account. Fixes: c9c84748 ("audio/dbus: Fix building with modules on macOS") Signed-off-by:
Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20220622154918.560870-1-marcandre.lureau@redhat.com> Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Alexander Bulekov authored
The sancov filter check still fails when unused arguments are treated as errors. To work around that, add a SanitizerCoverage flag to the build-check. Fixes: aa4f3a3b ("build: fix check for -fsanitize-coverage-allowlist") Signed-off-by:
Alexander Bulekov <alxndr@bu.edu> Message-Id: <20220621204507.698711-1-alxndr@bu.edu> Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
- Jul 05, 2022
-
-
Thomas Huth authored
According to https://gitlab.com/qemu-project/qemu/-/issues/1080#note_998088246 QEMU does not compile with older versions of libpng, so we should check for a good version in meson.build. According to repology.org, our supported host target operating systems ship these versions: Fedora 35: 1.6.37 CentOS 8 (RHEL-8): 1.6.34 Debian 11: 1.6.37 OpenSUSE Leap 15.3: 1.6.34 Ubuntu LTS 20.04: 1.6.37 FreeBSD Ports: 1.6.37 NetBSD pkgsrc: 1.6.37 OpenBSD Ports: 1.6.37 Homebrew: 1.6.37 MSYS2 mingw: 1.6.37 So it seem reasonable to require at least libpng version 1.6.34 for our builds. Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1080 Message-Id: <20220623174941.531196-1-thuth@redhat.com> Reviewed-by:
Richard Henderson <richard.henderson@linaro.org> Signed-off-by:
Thomas Huth <thuth@redhat.com>
-
Thomas Huth authored
The disassembly via capstone should be superiour to our old vixl sources nowadays, so let's finally cut this old disassembler out of the QEMU source tree. Message-Id: <20220603164249.112459-1-thuth@redhat.com> Tested-by:
Richard Henderson <richard.henderson@linaro.org> Reviewed-by:
Richard Henderson <richard.henderson@linaro.org> Signed-off-by:
Thomas Huth <thuth@redhat.com>
-
- Jun 27, 2022
-
-
Alex Bennée authored
We were not building the vhost-user-blk server due to 32 bit compilation problems. The problem was due to format string types so fix that and then enable the build. Tweak the rule to follow the same rules as other vhost-user daemons. Signed-off-by:
Alex Bennée <alex.bennee@linaro.org> Message-Id: <20220321153037.3622127-12-alex.bennee@linaro.org> Message-Id: <20220524154056.2896913-2-alex.bennee@linaro.org> Reviewed-by:
Michael S. Tsirkin <mst@redhat.com> Signed-off-by:
Michael S. Tsirkin <mst@redhat.com> Reviewed-by:
Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by:
Raphael Norwitz <raphael.norwitz@nutanix.com>
-
- Jun 24, 2022
-
-
Stefano Garzarella authored
If the namespace does not exist, rbd_create() fails with -ENOENT and QEMU reports a generic "error rbd create: No such file or directory": $ qemu-img create rbd:rbd/namespace/image 1M Formatting 'rbd:rbd/namespace/image', fmt=raw size=1048576 qemu-img: rbd:rbd/namespace/image: error rbd create: No such file or directory Unfortunately rados_ioctx_set_namespace() does not fail if the namespace does not exist, so let's use rbd_namespace_exists() in qemu_rbd_connect() to check if the namespace exists, reporting a more understandable error: $ qemu-img create rbd:rbd/namespace/image 1M Formatting 'rbd:rbd/namespace/image', fmt=raw size=1048576 qemu-img: rbd:rbd/namespace/image: namespace 'namespace' does not exist Reported-by:
Tingting Mao <timao@redhat.com> Reviewed-by:
Ilya Dryomov <idryomov@gmail.com> Signed-off-by:
Stefano Garzarella <sgarzare@redhat.com> Message-Id: <20220517071012.6120-1-sgarzare@redhat.com> Signed-off-by:
Kevin Wolf <kwolf@redhat.com>
-
Xie Yongji authored
This implements a VDUSE block backends based on the libvduse library. We can use it to export the BDSs for both VM and container (host) usage. The new command-line syntax is: $ qemu-storage-daemon \ --blockdev file,node-name=drive0,filename=test.img \ --export vduse-blk,node-name=drive0,id=vduse-export0,writable=on After the qemu-storage-daemon started, we need to use the "vdpa" command to attach the device to vDPA bus: $ vdpa dev add name vduse-export0 mgmtdev vduse Also the device must be removed via the "vdpa" command before we stop the qemu-storage-daemon. Signed-off-by:
Xie Yongji <xieyongji@bytedance.com> Reviewed-by:
Stefan Hajnoczi <stefanha@redhat.com> Message-Id: <20220523084611.91-7-xieyongji@bytedance.com> Signed-off-by:
Kevin Wolf <kwolf@redhat.com>
-
Xie Yongji authored
VDUSE [1] is a linux framework that makes it possible to implement software-emulated vDPA devices in userspace. This adds a library as a subproject to help implementing VDUSE backends in QEMU. [1] https://www.kernel.org/doc/html/latest/userspace-api/vduse.html Signed-off-by:
Xie Yongji <xieyongji@bytedance.com> Message-Id: <20220523084611.91-6-xieyongji@bytedance.com> Reviewed-by:
Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by:
Kevin Wolf <kwolf@redhat.com>
-
- Jun 15, 2022
-
-
Jagannathan Raman authored
add the libvfio-user library as a submodule. build it as a meson subproject. libvfio-user is distributed with BSD 3-Clause license and json-c with MIT (Expat) license Signed-off-by:
Elena Ufimtseva <elena.ufimtseva@oracle.com> Signed-off-by:
John G Johnson <john.g.johnson@oracle.com> Signed-off-by:
Jagannathan Raman <jag.raman@oracle.com> Reviewed-by:
Stefan Hajnoczi <stefanha@redhat.com> Message-id: c2adec87958b081d1dc8775d4aa05c897912f025.1655151679.git.jag.raman@oracle.com [Changed submodule URL to QEMU's libvfio-user mirror on GitLab. The QEMU project mirrors its dependencies so that it can provide full source code even in the event that its dependencies become unavailable. Note that the mirror repo is manually updated, so please contact me to make newer libvfio-user commits available. If I become a bottleneck we can set up a cronjob. Updated scripts/meson-buildoptions.sh to match the meson_options.txt change. Failure to do so can result in scripts/meson-buildoptions.sh being modified by the build system later on and you end up with a dirty working tree. --Stefan] Signed-off-by:
Stefan Hajnoczi <stefanha@redhat.com>
-
Sam Li authored
Linux recently added a new io_uring(7) optimization API that QEMU doesn't take advantage of yet. The liburing library that QEMU uses has added a corresponding new API calling io_uring_register_ring_fd(). When this API is called after creating the ring, the io_uring_submit() library function passes a flag to the io_uring_enter(2) syscall allowing it to skip the ring file descriptor fdget()/fdput() operations. This saves some CPU cycles. Signed-off-by:
Sam Li <faithilikerun@gmail.com> Message-id: 20220531105011.111082-1-faithilikerun@gmail.com Signed-off-by:
Stefan Hajnoczi <stefanha@redhat.com>
-
Paolo Bonzini authored
While at it, remove a dead assignment and simply inline the value of the "target" variable, which is used just once. Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Alexander Bulekov authored
The existing check has two problems: 1. Meson uses a private directory for the get_supported_arguments check. ./instrumentation-filter does not exist in that private directory (it is copied into the root of the build-directory). 2. fsanitize-coverage-allowlist is unused when coverage instrumentation is not configured. No instrumentation are passed for the get_supported_arguments check Thus the check always fails. To work around this, change the check to an "if cc.compiles" check and provide /dev/null, instead of the real filter. Meson log: Working directory: build/meson-private/tmpl6wld2d9 Command line: clang-13 -m64 -mcx16 build/meson-private/tmpl6wld2d9/output.obj -c -O3 -D_FILE_OFFSET_BITS=64 -O0 -Werror=implicit-function-declaration -Werror=unknown-warning-option -Werror=unused-command-line-argument -Werror=ignored-optimization-argument -fsanitize-coverage-allowlist=instrumentation-filter Error: error: argument unused during compilation: '-fsanitize-coverage-allowlist=instrumentation-filter' Signed-off-by:
Alexander Bulekov <alxndr@bu.edu> Message-Id: <20220614155415.4023833-1-alxndr@bu.edu> Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
- Jun 14, 2022
-
-
Hongren (Zenithal) Zheng authored
Signed-off-by:
Hongren (Zenithal) Zheng <i@zenithal.me> Message-Id: <YoY6YRD6cxH21mms@Sun> Signed-off-by:
Gerd Hoffmann <kraxel@redhat.com>
-
- Jun 06, 2022
-
-
Song Gao authored
This patch adds support for disassembling via option '-d in_asm'. Signed-off-by:
Song Gao <gaosong@loongson.cn> Signed-off-by:
Xiaojuan Yang <yangxiaojuan@loongson.cn> Reviewed-by:
Richard Henderson <richard.henderson@linaro.org> Message-Id: <20220606124333.2060567-17-yangxiaojuan@loongson.cn> Signed-off-by:
Richard Henderson <richard.henderson@linaro.org>
-
Jose R. Ziviani authored
This patch changes the way modinfo is generated and built. Instead of one modinfo.c it generates one modinfo-<target>-softmmu.c per target. It aims a fine-tune control of modules by configuring Kconfig. Signed-off-by:
Jose R. Ziviani <jziviani@suse.de> Signed-off-by:
Dario Faggioli <dfaggioli@suse.com> Message-Id: <165369003038.5857.13084289285185196779.stgit@work> Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
- Jun 01, 2022
-
-
Alex Bennée authored
The recent refactoring of configure.sh dropped a number of variables we relied on for printing out information. Make it simpler. Fixes: eebf199c (tests/tcg: invoke Makefile.target directly from QEMU's makefile) Signed-off-by:
Alex Bennée <alex.bennee@linaro.org> Reviewed-by:
Richard Henderson <richard.henderson@linaro.org> Message-Id: <20220527153603.887929-5-alex.bennee@linaro.org>
-
- May 28, 2022
-
-
Marc-André Lureau authored
Use more conventional variables to set the location of pre-built DLL/bin. Signed-off-by:
Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by:
Konstantin Kostiuk <kkostiuk@redhat.com> Message-Id: <20220525144140.591926-15-marcandre.lureau@redhat.com>
-
- May 26, 2022
-
-
Lei He authored
Implement RSA algorithm by hogweed from nettle. Thus QEMU supports a 'real' RSA backend to handle request from guest side. It's important to test RSA offload case without OS & hardware requirement. Signed-off-by:
lei he <helei.sig11@bytedance.com> Signed-off-by:
zhenwei pi <pizhenwei@bytedance.com> Signed-off-by:
Daniel P. Berrangé <berrange@redhat.com>
-
- May 18, 2022
-
-
Thomas Huth authored
Now that we allow compiling with Capstone v3.0.5 again, all our supported build hosts should provide at least this version of the disassembler library, so we do not need to ship this as a submodule anymore. Message-Id: <20220516145823.148450-4-thuth@redhat.com> Reviewed-by:
Richard Henderson <richard.henderson@linaro.org> Signed-off-by:
Thomas Huth <thuth@redhat.com>
-
Thomas Huth authored
According to https://lore.kernel.org/qemu-devel/20200921174118.39352-1-richard.henderson@linaro.org/ there was an issue with Capstone 3.0.4 from Ubuntu 18, which was the reason for bumping our minimum Capstone requirement to version 4.0. And indeed, compiling with that version 3.0.4 from Ubuntu 18.04 still fails (after allowing it with a hack in meson.build). But now that we've dropped support for Ubuntu 18.04, that issue is not relevant anymore. Compiling with Capstone version 3.0.5 (e.g. used in Ubuntu 20.04) seems to work fine, so let's allow that version again. Message-Id: <20220516145823.148450-3-thuth@redhat.com> Reviewed-by:
Richard Henderson <richard.henderson@linaro.org> Signed-off-by:
Thomas Huth <thuth@redhat.com>
-
- May 17, 2022
-
-
Vladislav Yaroshchuk authored
vmnet.framework dependency is added with 'vmnet' option to enable or disable it. Default value is 'auto'. used vmnet features are available since macOS 11.0, but new backend can be built and work properly with subset of them on 10.15 too. Reviewed-by:
Akihiko Odaki <akihiko.odaki@gmail.com> Tested-by:
Akihiko Odaki <akihiko.odaki@gmail.com> Signed-off-by:
Vladislav Yaroshchuk <Vladislav.Yaroshchuk@jetbrains.com> Signed-off-by:
Jason Wang <jasowang@redhat.com>
-
- May 16, 2022
-
-
Leonardo Bras authored
A build error happens in alpine CI when linux/errqueue.h is included in io/channel-socket.c, due to redefining of 'struct __kernel_timespec': === ninja: job failed: [...] In file included from /usr/include/linux/errqueue.h:6, from ../io/channel-socket.c:29: /usr/include/linux/time_types.h:7:8: error: redefinition of 'struct __kernel_timespec' 7 | struct __kernel_timespec { | ^~~~~~~~~~~~~~~~~ In file included from /usr/include/liburing.h:19, from /builds/user/qemu/include/block/aio.h:18, from /builds/user/qemu/include/io/channel.h:26, from /builds/user/qemu/include/io/channel-socket.h:24, from ../io/channel-socket.c:24: /usr/include/liburing/compat.h:9:8: note: originally defined here 9 | struct __kernel_timespec { | ^~~~~~~~~~~~~~~~~ ninja: subcommand failed === As above error message suggests, 'struct __kernel_timespec' was already defined by liburing/compat.h. Fix alpine CI by adding test to disable liburing in configure step if a redefinition happens between linux/errqueue.h and liburing/compat.h. [dgilbert: This has been fixed in Alpine issue 13813 and liburing] Signed-off-by:
Leonardo Bras <leobras@redhat.com> Message-Id: <20220513062836.965425-2-leobras@redhat.com> Reviewed-by:
Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by:
Dr. David Alan Gilbert <dgilbert@redhat.com>
-
Daniel P. Berrangé authored
This validates that we correctly handle migration success and failure scenarios when using TLS with x509 certificates. There are quite a few different scenarios that matter in relation to hostname validation. Signed-off-by:
Daniel P. Berrangé <berrange@redhat.com> Message-Id: <20220426160048.812266-5-berrange@redhat.com> Reviewed-by:
Eric Blake <eblake@redhat.com> Signed-off-by:
Dr. David Alan Gilbert <dgilbert@redhat.com> dgilbert: Manual merge due to ifdef change in 3
-
- May 12, 2022
-
-
Paolo Bonzini authored
slirp 4.7 introduces a new CFI-friendly timer callback that does not pass function pointers within libslirp as callbacks for timers. Check the version number and, if it is new enough, allow using CFI even with a system libslirp. Reviewed-by:
Samuel Thibault <samuel.thibault@ens-lyon.org> Reviewed-by:
Marc-André Lureau <malureau@redhat.com> Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
Replace slirp_init with slirp_new, so that a more recent cfg.version can be specified. The function appeared in version 4.1.0. Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Juan Quintela authored
Without this (at least in Fedora 35) it don't detect mremap() correctly. Signed-off-by:
Juan Quintela <quintela@redhat.com> Message-Id: <20220502131119.2345-1-quintela@redhat.com> [Also switch the LEGACY_RDMA_REG_MR test to cc.links, otherwise Debian fails to build. - Paolo] Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
- May 09, 2022
-
-
Nicolas Saenz Julienne authored
'event-loop-base' provides basic property handling for all 'AioContext' based event loops. So let's define a new 'MainLoopClass' that inherits from it. This will permit tweaking the main loop's properties through qapi as well as through the command line using the '-object' keyword[1]. Only one instance of 'MainLoopClass' might be created at any time. 'EventLoopBaseClass' learns a new callback, 'can_be_deleted()' so as to mark 'MainLoop' as non-deletable. [1] For example: -object main-loop,id=main-loop,aio-max-batch=<value> Signed-off-by:
Nicolas Saenz Julienne <nsaenzju@redhat.com> Reviewed-by:
Stefan Hajnoczi <stefanha@redhat.com> Acked-by:
Markus Armbruster <armbru@redhat.com> Message-id: 20220425075723.20019-3-nsaenzju@redhat.com Signed-off-by:
Stefan Hajnoczi <stefanha@redhat.com>
-
Nicolas Saenz Julienne authored
Introduce the 'event-loop-base' abstract class, it'll hold the properties common to all event loops and provide the necessary hooks for their creation and maintenance. Then have iothread inherit from it. EventLoopBaseClass is defined as user creatable and provides a hook for its children to attach themselves to the user creatable class 'complete' function. It also provides an update_params() callback to propagate property changes onto its children. The new 'event-loop-base' class will live in the root directory. It is built on its own using the 'link_whole' option (there are no direct function dependencies between the class and its children, it all happens trough 'constructor' magic). And also imposes new compilation dependencies: qom <- event-loop-base <- blockdev (iothread.c) And in subsequent patches: qom <- event-loop-base <- qemuutil (util/main-loop.c) All this forced some amount of reordering in meson.build: - Moved qom build definition before qemuutil. Doing it the other way around (i.e. moving qemuutil after qom) isn't possible as a lot of core libraries that live in between the two depend on it. - Process the 'hw' subdir earlier, as it introduces files into the 'qom' source set. No functional changes intended. Signed-off-by:
Nicolas Saenz Julienne <nsaenzju@redhat.com> Reviewed-by:
Stefan Hajnoczi <stefanha@redhat.com> Acked-by:
Markus Armbruster <armbru@redhat.com> Message-id: 20220425075723.20019-2-nsaenzju@redhat.com Signed-off-by:
Stefan Hajnoczi <stefanha@redhat.com>
-
- May 08, 2022
-
-
Mark Cave-Ayland authored
Now that there are no longer any devices in hw/hppa the trace-events file is empty and can be removed. Signed-off-by:
Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Acked-by:
Helge Deller <deller@gmx.de> Message-Id: <20220504092600.10048-46-mark.cave-ayland@ilande.co.uk> Reviewed-by:
Richard Henderson <richard.henderson@linaro.org> Signed-off-by:
Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
-
- May 07, 2022
-
-
Paolo Bonzini authored
Finish the conversion by moving all the definitions and the constraint checks to meson_options.txt and meson.build respectively. Reviewed-by:
Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
Reviewed-by:
Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
When using Meson options rather than config-host.h, the "when" clauses have to be changed to if statements (which is not necessarily great, though at least it highlights which parts of the build are per-target and which are not). Do that before moving vhost logic to meson.build, though for now the variables are just based on config-host.mak data. Reviewed-by:
Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
vhost-user-fs is a device and it should be possible to enable/disable it with --without-default-devices, not --without-default-features. Compute its default value in Kconfig to obtain the more intuitive behavior. In this case the configure options were undocumented, too. Reviewed-by:
Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
vhost-scsi and vhost-user-scsi are two devices of their own; it should be possible to enable/disable them with --without-default-devices, not --without-default-features. Compute their default value in Kconfig to obtain the more intuitive behavior. Reviewed-by:
Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-