aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-01-25decodetree: re.fullmatch was added in 3.4Paolo Bonzini
Python 3 versions earlier than 3.4 do not have it, use the same workaround that is in place for 3.0. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <1548410602-16008-1-git-send-email-pbonzini@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
2019-01-25device-crash-test: Python 3 compatibility fixNisarg Shah
Restrict whitelist entry stats in debug mode to be sorted only by "count", since Python 3 does not implicitly support comparing dictionaries. Signed-off-by: Nisarg Shah <nshah@disroot.org> Message-Id: <20190116183358.30287-1-nshah@disroot.org> [ehabkost: removed 2 unnecessary hunks from patch] [ehabkost: edited commit message] Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
2019-01-25Merge remote-tracking branch 'remotes/armbru/tags/pull-qapi-2019-01-24' into ↵Peter Maydell
staging QAPI patches for 2019-01-24 # gpg: Signature made Thu 24 Jan 2019 14:25:19 GMT # gpg: using RSA key 3870B400EB918653 # gpg: Good signature from "Markus Armbruster <armbru@redhat.com>" # gpg: aka "Markus Armbruster <armbru@pond.sub.org>" # Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867 4E5F 3870 B400 EB91 8653 * remotes/armbru/tags/pull-qapi-2019-01-24: json: Fix % handling when not interpolating qmp: Add examples to qom list, get, and set commands qapi: Eliminate indirection through qmp_event_get_func_emit() qapi: Belatedly update docs for commit 9c2f56e9f9d Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-01-25Merge remote-tracking branch ↵Peter Maydell
'remotes/kraxel/tags/audio-20190124-pull-request' into staging audio: pc speaker init fix, rework driver probing # gpg: Signature made Thu 24 Jan 2019 13:19:52 GMT # gpg: using RSA key 4CB6D8EED3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" # gpg: aka "Gerd Hoffmann <gerd@kraxel.org>" # gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>" # Primary key fingerprint: A032 8CFF B93A 17A7 9901 FE7D 4CB6 D8EE D3E8 7138 * remotes/kraxel/tags/audio-20190124-pull-request: audio: probe audio drivers by default audio: error message tweak audio: check for pulseaudio daemon pidfile audio: use try-sdl for openbsd audio: allow optional audio drivers. audio: use pkg-config audio: fix pc speaker init Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-01-25Merge remote-tracking branch ↵Peter Maydell
'remotes/vivier2/tags/trivial-patches-pull-request' into staging - Some typo and UTF-8 fixes - a ppc e6500 fix to remove duplicate SPR registering # gpg: Signature made Thu 24 Jan 2019 12:48:05 GMT # gpg: using RSA key F30C38BD3F2FBE3C # gpg: Good signature from "Laurent Vivier <lvivier@redhat.com>" # gpg: aka "Laurent Vivier <laurent@vivier.eu>" # gpg: aka "Laurent Vivier (Red Hat) <lvivier@redhat.com>" # Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F 5173 F30C 38BD 3F2F BE3C * remotes/vivier2/tags/trivial-patches-pull-request: hw/i386/pc.c: fix one typo in function name virtio-net: Fix a typo ppc: e6500 registers SPR 604 twice contrib/gitdm: Fix a typo MAINTAINERS: Fix utf-8 mangling Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-01-25Merge remote-tracking branch 'remotes/berrange/tags/qio-next-pull-request' ↵Peter Maydell
into staging Merge qio 2010/01/24 Fixes accidental deletion of VNC server UNIX listener socket # gpg: Signature made Thu 24 Jan 2019 12:24:43 GMT # gpg: using RSA key BE86EBB415104FDF # gpg: Good signature from "Daniel P. Berrange <dan@berrange.com>" # gpg: aka "Daniel P. Berrange <berrange@redhat.com>" # Primary key fingerprint: DAF3 A6FD B26B 6291 2D0E 8E3F BE86 EBB4 1510 4FDF * remotes/berrange/tags/qio-next-pull-request: io: ensure UNIX client doesn't unlink server socket Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-01-24Merge remote-tracking branch 'remotes/kraxel/tags/ui-20190124-pull-request' ↵Peter Maydell
into staging input-linux: customizable grab toggle keys # gpg: Signature made Thu 24 Jan 2019 10:35:29 GMT # gpg: using RSA key 4CB6D8EED3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" # gpg: aka "Gerd Hoffmann <gerd@kraxel.org>" # gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>" # Primary key fingerprint: A032 8CFF B93A 17A7 9901 FE7D 4CB6 D8EE D3E8 7138 * remotes/kraxel/tags/ui-20190124-pull-request: input-linux: customizable grab toggle keys Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-01-24Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into ↵Peter Maydell
staging Pull request Changelog: No user-visible changes. # gpg: Signature made Thu 24 Jan 2019 10:28:53 GMT # gpg: using RSA key 9CA4ABB381AB73C8 # gpg: Good signature from "Stefan Hajnoczi <stefanha@redhat.com>" # gpg: aka "Stefan Hajnoczi <stefanha@gmail.com>" # Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35 775A 9CA4 ABB3 81AB 73C8 * remotes/stefanha/tags/block-pull-request: qemu-coroutine-sleep: drop CoSleepCB iotests: add 238 for throttling tgm unregister iothread segfault throttle-groups: fix restart coroutine iothread race Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-01-24json: Fix % handling when not interpolatingChristophe Fergeau
Commit 8bca4613 added support for %% in json strings when interpolating, but in doing so broke handling of % when not interpolating. When parse_string() is fed a string token containing '%', it skips the '%' regardless of ctxt->ap, i.e. even it's not interpolating. If the '%' is the string's last character, it fails an assertion. Else, it "merely" swallows the '%'. Fix parse_string() to handle '%' specially only when interpolating. To gauge the bug's impact, let's review non-interpolating users of this parser, i.e. code passing NULL context to json_message_parser_init(): * tests/check-qjson.c, tests/test-qobject-input-visitor.c, tests/test-visitor-serialization.c Plenty of tests, but we still failed to cover the buggy case. * monitor.c: QMP input * qga/main.c: QGA input * qobject_from_json(): - qobject-input-visitor.c: JSON command line option arguments of -display and -blockdev Reproducer: -blockdev '{"%"}' - block.c: JSON pseudo-filenames starting with "json:" Reproducer: https://bugzilla.redhat.com/show_bug.cgi?id=1668244#c3 - block/rbd.c: JSON key pairs Pseudo-filenames starting with "rbd:". Command line, QMP and QGA input are trusted. Filenames are trusted when they come from command line, QMP or HMP. They are untrusted when they come from from image file headers. Example: QCOW2 backing file name. Note that this is *not* the security boundary between host and guest. It's the boundary between host and an image file from an untrusted source. Neither failing an assertion nor skipping a character in a filename of your choice looks exploitable. Note that we don't support compiling with NDEBUG. Fixes: 8bca4613e6cddd948895b8db3def05950463495b Cc: qemu-stable@nongnu.org Signed-off-by: Christophe Fergeau <cfergeau@redhat.com> Message-Id: <20190102140535.11512-1-cfergeau@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Tested-by: Richard W.M. Jones <rjones@redhat.com> [Commit message extended to discuss impact] Signed-off-by: Markus Armbruster <armbru@redhat.com>
2019-01-24Merge remote-tracking branch ↵Peter Maydell
'remotes/dgilbert/tags/pull-migration-20190123a' into staging Migration pull 2019-01-23 New pages-per-second stat, a new test, and a bunch of fixes and tidy ups. # gpg: Signature made Wed 23 Jan 2019 15:54:48 GMT # gpg: using RSA key 0516331EBC5BFDE7 # gpg: Good signature from "Dr. David Alan Gilbert (RH2) <dgilbert@redhat.com>" # Primary key fingerprint: 45F5 C71B 4A0C B7FB 977A 9FA9 0516 331E BC5B FDE7 * remotes/dgilbert/tags/pull-migration-20190123a: migration: introduce pages-per-second vmstate: constify SaveVMHandlers tests: add /vmstate/simple/array migration/rdma: unregister fd handler migration: unify error handling for process_incoming_migration_co migration: add more error handling for postcopy_ram_enable_notify migration: multifd_save_cleanup() can't fail, simplify migration: fix the multifd code when receiving less channels Fix segmentation fault when qemu_signal_init fails Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-01-24hw/i386/pc.c: fix one typo in function nameWei Yang
Rename pc_get_hotpug_handler to pc_get_hotplug_handler. No functional change. Signed-off-by: Wei Yang <richardw.yang@linux.intel.com> Reviewed-by: Stefano Garzarella <sgarzare@redhat.com> Message-Id: <20190124073626.20534-1-richardw.yang@linux.intel.com> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2019-01-24virtio-net: Fix a typoPhilippe Mathieu-Daudé
Fixes: 2974e916df8 Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-Id: <20190121181335.3326-1-philmd@redhat.com> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2019-01-24ppc: e6500 registers SPR 604 twiceJon Diekema
When using the e6500 CPU, QEMU generates a fatal error after complaining about registering SPR 604 twice. Building and testing with commit 9b2e891ec5ccdb4a7d583b77988848282606fdea shows the issue: qemu-system-ppc64 --version QEMU emulator version 3.1.50 (v3.1.0-456-g9b2e891ec5-dirty) Copyright (c) 2003-2018 Fabrice Bellard and the QEMU Project developers qemu-system-ppc64 -M none -cpu e6500 Error: Trying to register SPR 604 (25c) twice ! Signed-off-by: Jon Diekema <jon.diekema@ge.com> Message-Id: <CALvuzg43uSodseEHjNaRcPFBKKPTY2mcppUbYgiLL=QO9RxX_Q@mail.gmail.com> [removed duplicated mail header in the commit message] Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2019-01-24contrib/gitdm: Fix a typoPhilippe Mathieu-Daudé
Typo comes from upstream git://git.lwn.net/gitdm.git. Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com> Message-Id: <20190111155555.8270-1-philmd@redhat.com> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2019-01-24MAINTAINERS: Fix utf-8 manglingPhilippe Mathieu-Daudé
Patch incorrectly applied as 15ffb43cbf4. Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20190117161355.18204-1-philmd@redhat.com> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2019-01-24io: ensure UNIX client doesn't unlink server socketDaniel P. Berrangé
The qio_channel_socket_close method for was mistakenly unlinking the UNIX server socket, even if the channel was a client connection. This was not noticed with chardevs, since they never call close, but with the VNC server, this caused the VNC server socket to be deleted after the first client quit. The qio_channel_socket_close method also needlessly reimplemented the logic that already exists in socket_listen_cleanup(). Just call that method directly, for listen sockets only. This fixes a regression introduced in QEMU 3.0.0 with commit d66f78e1eaa832f73c771d9df1b606fe75d52a50 Author: Pavel Balaev <mail@void.so> Date: Mon May 21 19:17:35 2018 +0300 Delete AF_UNIX socket after close Fixes launchpad #1795100 Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-24audio: probe audio drivers by defaultGerd Hoffmann
Add the drivers listed in audio_possible_drivers to audio_drv_list, using the try-* variants. That way the probable drivers are compiled by default if possible. Additioal tweaks: linux: reorder to: pa alsa sdl oss. *bsd: drop pa. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Message-id: 20190124112055.547-7-kraxel@redhat.com
2019-01-24audio: error message tweakGerd Hoffmann
Only print a message about the failed driver initialization in case it was the driver explicitly requested by the user via QEMU_AUDIO_DRV=$drv. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-id: 20190124112055.547-6-kraxel@redhat.com
2019-01-24audio: check for pulseaudio daemon pidfileGerd Hoffmann
Check whenever the pulseaudio daemon pidfile is present before trying to initialize the pulseaudio backend. Just return NULL if that is not the case, so qemu will check the next backend in line. In case the user explicitly configured a non-default pulseaudio server skip the check. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Message-id: 20190124112055.547-5-kraxel@redhat.com
2019-01-24audio: use try-sdl for openbsdGerd Hoffmann
Fixes the openbsd build failure with SDL disabled. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Message-id: 20190124112055.547-4-kraxel@redhat.com
2019-01-24audio: allow optional audio drivers.Gerd Hoffmann
For those audio drivers which can be probed (sdl, alsa, pulse) add a try-$name variants. Unlike the variants without try- prefix they will not error out on probe failure, the driver will be dropped from the list instead. Mainly useful for the audio_drv_list default values. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Message-id: 20190124112055.547-3-kraxel@redhat.com
2019-01-24audio: use pkg-configGerd Hoffmann
Use pkg-config to probe for alsa and pulseaudio. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-id: 20190124112055.547-2-kraxel@redhat.com
2019-01-24audio: fix pc speaker initGerd Hoffmann
Get rid of the pcspk_state global, allow pc speaker be added using "-device isa-pcspk". Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-id: 20190124110810.1040-1-kraxel@redhat.com
2019-01-24Merge remote-tracking branch 'remotes/stsquad/tags/pull-fpu-next-230119-2' ↵Peter Maydell
into staging Some more softfloat/fpu fixes - make check-softfloat - fixes for fp-bench - workaround broken host fma - compile fix for s390x/clang - fixed for bigendian (v2) - minor makefile tweaks (v2) # gpg: Signature made Wed 23 Jan 2019 11:37:53 GMT # gpg: using RSA key FBD0DB095A9E2A44 # gpg: Good signature from "Alex Bennée (Master Work Key) <alex.bennee@linaro.org>" # Primary key fingerprint: 6685 AE99 E751 67BC AFC8 DF35 FBD0 DB09 5A9E 2A44 * remotes/stsquad/tags/pull-fpu-next-230119-2: tests/Makefile: add check-softfloat rule scripts/archive-source: include softfloat tests tests/Makefile: add floating point tests include/fpu/softfloat: Fix compilation with Clang on s390x softfloat: enforce softfloat if the host's FMA is broken tests/fp/platform.h: include config-host.h fp-test: fix signature of slow_clear_flags and qemu_clear_flags tests/fp/Makefile: do not use gcc-only -W flags berkeley-testfloat-3: pull changes fp-bench: remove wrong exponent raise in fill_random fp-bench: fix update_random_ops Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-01-24qemu-coroutine-sleep: drop CoSleepCBVladimir Sementsov-Ogievskiy
Drop CoSleepCB structure. It's actually unused. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Message-id: 20190122143113.20331-1-vsementsov@virtuozzo.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2019-01-24iotests: add 238 for throttling tgm unregister iothread segfaultStefan Hajnoczi
Hot-unplug a scsi-hd using an iothread. The previous patch fixes a segfault in this scenario. This patch adds a regression test. Suggested-by: Alberto Garcia <berto@igalia.com> Suggested-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Alberto Garcia <berto@igalia.com> Message-id: 20190114133257.30299-3-stefanha@redhat.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2019-01-24throttle-groups: fix restart coroutine iothread raceStefan Hajnoczi
The following QMP command leads to a crash when iothreads are used: { 'execute': 'device_del', 'arguments': {'id': 'data'} } The backtrace involves the queue restart coroutine where tgm->throttle_state is a NULL pointer because throttle_group_unregister_tgm() has already been called: (gdb) bt full #0 0x00005585a7a3b378 in qemu_mutex_lock_impl (mutex=0xffffffffffffffd0, file=0x5585a7bb3d54 "block/throttle-groups.c", line=412) at util/qemu-thread-posix.c:64 err = <optimized out> __PRETTY_FUNCTION__ = "qemu_mutex_lock_impl" __func__ = "qemu_mutex_lock_impl" #1 0x00005585a79be074 in throttle_group_restart_queue_entry (opaque=0x5585a9de4eb0) at block/throttle-groups.c:412 _f = <optimized out> data = 0x5585a9de4eb0 tgm = 0x5585a9079440 ts = 0x0 tg = 0xffffffffffffff98 is_write = false empty_queue = 255 This coroutine should not execute in the iothread after the throttle group member has been unregistered! The root cause is that the device_del code path schedules the restart coroutine in the iothread while holding the AioContext lock. Therefore the iothread cannot execute the coroutine until after device_del releases the lock - by this time it's too late. This patch adds a reference count to ThrottleGroupMember so we can synchronously wait for restart coroutines to complete. Once they are done it is safe to unregister the ThrottleGroupMember. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Alberto Garcia <berto@igalia.com> Message-id: 20190114133257.30299-2-stefanha@redhat.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2019-01-24input-linux: customizable grab toggle keysRyan El Kochta
This patch adds a new option to the input-linux object: grab-toggle=[key-combo] The key combination can be one of the following: * ctrl-ctrl * alt-alt * meta-meta * scrolllock * ctrl-scrolllock The user can pick any of these key combinations. The VM's grab of the evdev device will be toggled when the key combination is pressed. Any invalid setting will result in an error. No setting will result in the current default of ctrl-ctrl. The right and left ctrl key both work for Ctrl-Scrolllock. If scrolllock is selected as one of the grab-toggle keys, it will be entirely disabled and not passed to the guest at all. This is to prevent enabling it while attempting to leave or enter the VM. On the host, scrolllock can be disabled using xmodmap. First, find the modifier that Scroll_Lock is bound to: $ xmodmap -pm Then, remove Scroll_Lock from it, replacing modX with the modifier: $ xmodmap -e 'remove modX = Scroll_Lock' If Scroll_Lock is not bound to any modifier, it is already disabled. To save the changes, add them to your xinitrc. Ryan El Kochta (1): input-linux: customizable grab toggle keys v5 Signed-off-by: Ryan El Kochta <relkochta@gmail.com> Message-id: 20190123214555.12712-2-relkochta@gmail.com Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2019-01-24qmp: Add examples to qom list, get, and set commandsWainer dos Santos Moschetta
Added examples for the qom-list, qom-get, and qom-set commands in qapi misc JSON file. Signed-off-by: Wainer dos Santos Moschetta <wainersm@redhat.com> Message-Id: <20181228194442.3506-1-wainersm@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
2019-01-24qapi: Eliminate indirection through qmp_event_get_func_emit()Markus Armbruster
The qapi_event_send_FOO() functions emit events like this: QMPEventFuncEmit emit; emit = qmp_event_get_func_emit(); if (!emit) { return; } qmp = qmp_event_build_dict("FOO"); [put event arguments into @qmp...] emit(QAPI_EVENT_FOO, qmp); The value of qmp_event_get_func_emit() depends only on the program: * In qemu-system-FOO, it's always monitor_qapi_event_queue. * In tests/test-qmp-event, it's always event_test_emit. * In all other programs, it's always null. This is exactly the kind of dependence the linker is supposed to resolve; we don't actually need an indirection. Note that things would fall apart if we linked more than one QAPI schema into a single program: each set of qapi_event_send_FOO() uses its own event enumeration, yet they share a single emit function. Which takes the event enumeration as an argument. Which one if there's more than one? More seriously: how does this work even now? qemu-system-FOO wants QAPIEvent, and passes a function taking that to qmp_event_set_func_emit(). test-qmp-event wants test_QAPIEvent, and passes a function taking that to qmp_event_set_func_emit(). It works by type trickery, of course: typedef void (*QMPEventFuncEmit)(unsigned event, QDict *dict); void qmp_event_set_func_emit(QMPEventFuncEmit emit); QMPEventFuncEmit qmp_event_get_func_emit(void); We use unsigned instead of the enumeration type. Relies on both enumerations boiling down to unsigned, which happens to be true for the compilers we use. Clean this up as follows: * Generate qapi_event_send_FOO() that call PREFIX_qapi_event_emit() instead of the value of qmp_event_set_func_emit(). * Generate a prototype for PREFIX_qapi_event_emit() into qapi-events.h. * PREFIX_ is empty for qapi/qapi-schema.json, and test_ for tests/qapi-schema/qapi-schema-test.json. It's qga_ for qga/qapi-schema.json, and doc-good- for tests/qapi-schema/doc-good.json, but those don't define any events. * Rename monitor_qapi_event_queue() to qapi_event_emit() instead of passing it to qmp_event_set_func_emit(). This takes care of qemu-system-FOO. * Rename event_test_emit() to test_qapi_event_emit() instead of passing it to qmp_event_set_func_emit(). This takes care of tests/test-qmp-event. * Add a qapi_event_emit() that does nothing to stubs/monitor.c. This takes care of all other programs that link code emitting QMP events. * Drop qmp_event_set_func_emit(), qmp_event_get_func_emit(). Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20181218182234.28876-3-armbru@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> [Commit message typos fixed]
2019-01-24qapi: Belatedly update docs for commit 9c2f56e9f9dMarkus Armbruster
Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20181218182234.28876-2-armbru@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2019-01-23Merge remote-tracking branch 'remotes/xtensa/tags/20190122-xtensa' into stagingPeter Maydell
target/xtensa: zero overhead loops rework/helpers split - change xtensa zero overhead loops implementation to avoid invalidation of TBs corresponding to previous loop body when a new loop is encountered; - extract helper function groups from op_helper.c and move them into separate source files: exc_helper.c (exception helpers), win_helper.c (windowed registers helpers), fpu_helper.c (floating point helpers), mmu_helper.c (memory management helpers) and dbg_helper.c (native debug helpers). # gpg: Signature made Tue 22 Jan 2019 18:44:17 GMT # gpg: using RSA key 51F9CC91F83FA044 # gpg: Good signature from "Max Filippov <filippov@cadence.com>" # gpg: aka "Max Filippov <max.filippov@cogentembedded.com>" # gpg: aka "Max Filippov <jcmvbkbc@gmail.com>" # Primary key fingerprint: 2B67 854B 98E5 327D CDEB 17D8 51F9 CC91 F83F A044 * remotes/xtensa/tags/20190122-xtensa: target/xtensa: move non-HELPER functions to helper.c target/xtensa: drop dump_state helper target/xtensa: extract interrupt and exception helpers target/xtensa: extract debug helpers target/xtensa: extract MMU helpers target/xtensa: extract windowed registers helpers target/xtensa: extract FPU helpers target/xtensa: rework zero overhead loops implementation Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-01-23Merge remote-tracking branch 'remotes/kraxel/tags/ui-20190121-pull-request' ↵Peter Maydell
into staging ui: highres logo for sdl and gtk, bugfixes for vnc and egl. # gpg: Signature made Mon 21 Jan 2019 14:11:39 GMT # gpg: using RSA key 4CB6D8EED3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" # gpg: aka "Gerd Hoffmann <gerd@kraxel.org>" # gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>" # Primary key fingerprint: A032 8CFF B93A 17A7 9901 FE7D 4CB6 D8EE D3E8 7138 * remotes/kraxel/tags/ui-20190121-pull-request: egl-helpers.h: do not depend on X11 Window type, use EGLNativeWindowType vnc: detect and optimize pageflips sdl: add support for high resolution window icon ui: fix icon display for GTK frontend under GNOME Shell with Wayland ui: install logo icons to $prefix/share/icons Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-01-23migration: introduce pages-per-secondXiao Guangrong
It introduces a new statistic, pages-per-second, as bandwidth or mbps is not enough to measure the performance of posting pages out as we have compression, xbzrle, which can significantly reduce the amount of the data size, instead, pages-per-second is the one we want Signed-off-by: Xiao Guangrong <xiaoguangrong@tencent.com> Message-Id: <20190111063732.10484-2-xiaoguangrong@tencent.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> With typo's Eric spotted fixed
2019-01-23vmstate: constify SaveVMHandlersMarc-André Lureau
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20181114133139.27346-1-marcandre.lureau@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
2019-01-23tests: add /vmstate/simple/arrayMarc-André Lureau
A very simple test to show VMSTATE_*_ARRAY usage and result. It could be systematically extended to other primitives, but I leave that as an exercise for others :). Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20181114132130.27141-1-marcandre.lureau@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
2019-01-23migration/rdma: unregister fd handlerDr. David Alan Gilbert
Unregister the fd handler before we destroy the channel, otherwise we've got a race where we might land in the fd handler just as we're closing the device. (The race is quite data dependent, you just have to have the right set of devices for it to trigger). Corresponds to RH bz: https://bugzilla.redhat.com/show_bug.cgi?id=1666601 Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20190122173111.29821-1-dgilbert@redhat.com> Reviewed-by: Peter Xu <peterx@redhat.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
2019-01-23migration: unify error handling for process_incoming_migration_coFei Li
In the current code, if process_incoming_migration_co() fails we do the same error handing: set the error state, close the source file, do the cleanup for multifd, and then exit(EXIT_FAILURE). To make the code clearer, add a "goto fail" to unify the error handling. Cc: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Fei Li <fli@suse.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20190113140849.38339-6-lifei1214@126.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
2019-01-23migration: add more error handling for postcopy_ram_enable_notifyFei Li
Call postcopy_ram_incoming_cleanup() to do the cleanup when postcopy_ram_enable_notify fails. Besides, report the error message when qemu_ram_foreach_migratable_block() fails. Cc: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Fei Li <fli@suse.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20190113140849.38339-5-lifei1214@126.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
2019-01-23migration: multifd_save_cleanup() can't fail, simplifyFei Li
multifd_save_cleanup() takes an Error ** argument and returns an error code even though it can't actually fail. Its callers dutifully check for failure. Remove the useless argument and return value, and simplify the callers. Cc: Dr. David Alan Gilbert <dgilbert@redhat.com> Cc: Markus Armbruster <armbru@redhat.com> Signed-off-by: Fei Li <fli@suse.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Message-Id: <20190113140849.38339-4-lifei1214@126.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
2019-01-23migration: fix the multifd code when receiving less channelsFei Li
In our current code, when multifd is used during migration, if there is an error before the destination receives all new channels, the source keeps running, however the destination does not exit but keeps waiting until the source is killed deliberately. Fix this by dumping the specific error and let users decide whether to quit from the destination side when failing to receive packet via some channel. And update the comment for multifd_recv_new_channel(). Cc: Dr. David Alan Gilbert <dgilbert@redhat.com> Cc: Peter Xu <peterx@redhat.com> Cc: Markus Armbruster <armbru@redhat.com> Signed-off-by: Fei Li <fli@suse.com> Reviewed-by: Peter Xu <peterx@redhat.com> Message-Id: <20190113140849.38339-3-lifei1214@126.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
2019-01-23Fix segmentation fault when qemu_signal_init failsFei Li
When qemu_signal_init() fails in qemu_init_main_loop(), we return without setting an error. Its callers crash then when they try to report the error with error_report_err(). To avoid such segmentation fault, add a new Error parameter to make the call trace to propagate the err to the final caller. Fixes: 2f78e491d7b46542158ce0b8132ee4e05bc0ade4 Cc: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Fei Li <fli@suse.com> Reviewed-by: Fam Zheng <famz@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20190113140849.38339-2-lifei1214@126.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
2019-01-23Merge remote-tracking branch ↵Peter Maydell
'remotes/edgar/tags/edgar/xilinx-next-2019-01-22.for-upstream' into staging Pullreq 2019-01-22 # gpg: Signature made Tue 22 Jan 2019 11:42:41 GMT # gpg: using RSA key 29C596780F6BCA83 # gpg: Good signature from "Edgar E. Iglesias (Xilinx key) <edgar.iglesias@xilinx.com>" # gpg: aka "Edgar E. Iglesias <edgar.iglesias@gmail.com>" # Primary key fingerprint: AC44 FEDC 14F7 F1EB EDBF 4151 29C5 9678 0F6B CA83 * remotes/edgar/tags/edgar/xilinx-next-2019-01-22.for-upstream: target/microblaze: Add props enabling exceptions on failed bus accesses hw/microblaze: s3adsp1800: Create an unimplemented GPIO area target/microblaze: Switch to transaction_failed hook Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-01-23tests/Makefile: add check-softfloat ruleAlex Bennée
This adds a rule to run all of our softfloat tests. It is included as a pre-requisite to check-tcg and check-unit as well. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Emilio G. Cota <cota@braap.org>
2019-01-23scripts/archive-source: include softfloat testsAlex Bennée
We need these if we want to run unit/softfloat tests in our docker containers. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
2019-01-23tests/Makefile: add floating point testsAlex Bennée
Wire up test/fp-test into the main testing Makefile. Currently we skip some of the extF80 and f128 related tests. Once we re-factor and fix these tests the plumbing should get simpler. Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-01-22include/fpu/softfloat: Fix compilation with Clang on s390xThomas Huth
Clang v7.0.1 does not like the __int128 variable type for inline assembly on s390x: In file included from fpu/softfloat.c:97: include/fpu/softfloat-macros.h:647:9: error: inline asm error: This value type register class is not natively supported! asm("dlgr %0, %1" : "+r"(n) : "r"(d)); ^ Disable this code part there now when compiling with Clang, so that the generic code gets used instead. Signed-off-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Acked-by: Cornelia Huck <cohuck@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-01-22softfloat: enforce softfloat if the host's FMA is brokenEmilio G. Cota
The added branch to the FMA ops is marked as unlikely and therefore its impact on performance (measured with fp-bench) is within noise range when measured on an Intel(R) Xeon(R) Gold 6142 CPU @ 2.60GHz. Reported-by: Laurent Desnogues <laurent.desnogues@gmail.com> Signed-off-by: Emilio G. Cota <cota@braap.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-01-22tests/fp/platform.h: include config-host.hEmilio G. Cota
We get HOST_WORDS_BIGENDIAN from config-host.h, but the include is missing. Fix it. This fixes `make check-softfloat' on big endian hosts. Reported-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Emilio G. Cota <cota@braap.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-01-22fp-test: fix signature of slow_clear_flags and qemu_clear_flagsEmilio G. Cota
To match the type in testfloat. Signed-off-by: Emilio G. Cota <cota@braap.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>