aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-06-12gdbstub: Implement target halted (? pkt) with new infraJon Doron
Note: The user-mode thread-id has been correctly reported since bd88c780e6 Signed-off-by: Jon Doron <arilou@gmail.com> Message-Id: <20190529064148.19856-19-arilou@gmail.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-12gdbstub: Implement generic set/query (Q/q pkt) with new infraJon Doron
The generic set/query packets contains implementation for varioius sub-commands which are required for GDB and also additional commands which are QEMU specific. To see which QEMU specific commands are available use the command gdb> maintenance packet qqemu.Supported Currently the only implemented QEMU specific command is the command that sets the single step behavior. gdb> maintenance packet qqemu.sstepbits Will display the MASK bits used to control the single stepping. gdb> maintenance packet qqemu.sstep Will display the current value of the mask used when single stepping. gdb> maintenance packet Qqemu.sstep:HEX_VALUE Will change the single step mask. Signed-off-by: Jon Doron <arilou@gmail.com> Message-Id: <20190529064148.19856-18-arilou@gmail.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-12gdbstub: Implement v commands with new infraJon Doron
Signed-off-by: Jon Doron <arilou@gmail.com> Message-Id: <20190529064148.19856-17-arilou@gmail.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-12gdbstub: Implement step (s pkt) with new infraJon Doron
Signed-off-by: Jon Doron <arilou@gmail.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20190529064148.19856-16-arilou@gmail.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-12gdbstub: Implement file io (F pkt) with new infraJon Doron
Signed-off-by: Jon Doron <arilou@gmail.com> Message-Id: <20190529064148.19856-15-arilou@gmail.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-12gdbstub: Implement read all registers (g pkt) with new infraJon Doron
Signed-off-by: Jon Doron <arilou@gmail.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20190529064148.19856-14-arilou@gmail.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-12gdbstub: Implement write all registers (G pkt) with new infraJon Doron
Signed-off-by: Jon Doron <arilou@gmail.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20190529064148.19856-13-arilou@gmail.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-12gdbstub: Implement read memory (m pkt) with new infraJon Doron
Signed-off-by: Jon Doron <arilou@gmail.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20190529064148.19856-12-arilou@gmail.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-12gdbstub: Implement write memory (M pkt) with new infraJon Doron
Signed-off-by: Jon Doron <arilou@gmail.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20190529064148.19856-11-arilou@gmail.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-12gdbstub: Implement get register (p pkt) with new infraJon Doron
Signed-off-by: Jon Doron <arilou@gmail.com> Message-Id: <20190529064148.19856-10-arilou@gmail.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-12gdbstub: Implement set register (P pkt) with new infraJon Doron
Signed-off-by: Jon Doron <arilou@gmail.com> Message-Id: <20190529064148.19856-9-arilou@gmail.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-12gdbstub: Implement breakpoint commands (Z/z pkt) with new infraJon Doron
Signed-off-by: Jon Doron <arilou@gmail.com> Message-Id: <20190529064148.19856-8-arilou@gmail.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-12gdbstub: Implement set_thread (H pkt) with new infraJon Doron
Signed-off-by: Jon Doron <arilou@gmail.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20190529064148.19856-7-arilou@gmail.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-12gdbstub: Implement continue with signal (C pkt) with new infraJon Doron
Signed-off-by: Jon Doron <arilou@gmail.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20190529064148.19856-6-arilou@gmail.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-12gdbstub: Implement continue (c pkt) with new infraJon Doron
Signed-off-by: Jon Doron <arilou@gmail.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20190529064148.19856-5-arilou@gmail.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-12gdbstub: Implement thread_alive (T pkt) with new infraJon Doron
Signed-off-by: Jon Doron <arilou@gmail.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20190529064148.19856-4-arilou@gmail.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-12gdbstub: Implement deatch (D pkt) with new infraJon Doron
Signed-off-by: Jon Doron <arilou@gmail.com> Message-Id: <20190529064148.19856-3-arilou@gmail.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-12gdbstub: Add infrastructure to parse cmd packetsJon Doron
Signed-off-by: Jon Doron <arilou@gmail.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20190529064148.19856-2-arilou@gmail.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-12cputlb: cast size_t to target_ulong before using for address masksAlex Bennée
While size_t is defined to happily access the biggest host object this isn't the case when generating masks for 64 bit guests on 32 bit hosts. Otherwise we end up truncating the address when we fall back to our unaligned helper. Fixes: https://bugs.launchpad.net/qemu/+bug/1831545 Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Tested-by: Andrew Randrianasulu <randrianasulu@gmail.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
2019-06-12MAINTAINERS: put myself forward for gdbstubAlex Bennée
As I've been reviewing a lot of this recently and I'm going to put together a pull request I'd better keep an eye on it. Philippe has also volunteered to be a reviewer. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
2019-06-12tests/tcg/x86_64: add a PVH crt.o for x86_64 system testsAlex Bennée
Instead of doing the full real to 64 bit dance we are attempting to leverage Xen's PVH boot spec to go from 32 bit to 64 bit. Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-12tests/tcg: clean-up VPATH/TESTS for i386Alex Bennée
Since we only run build the multiarch tests and we use a fully resolved path for the crt object we don't need the wildcard or VPATH messing about. Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-12tests/tcg: better detect truncated readsAlex Bennée
If we've truncated a wider read we can detect the condition earlier by looking at the number of zeros we've read. So we don't trip up on cases where we have written zeros to the start of the buffer we also ensure we only start each offset read from the right address. Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-12cputlb: use uint64_t for interim values for unaligned loadAlex Bennée
When running on 32 bit TCG backends a wide unaligned load ends up truncating data before returning to the guest. We specifically have the return type as uint64_t to avoid any premature truncation so we should use the same for the interim types. Fixes: https://bugs.launchpad.net/qemu/+bug/1830872 Fixes: eed5664238e Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Tested-by: Laszlo Ersek <lersek@redhat.com> Tested-by: Igor Mammedov <imammedo@redhat.com>
2019-06-12semihosting: split console_out into string and char versionsAlex Bennée
This is ostensibly to avoid the weirdness of len looking like it might come from a guest and sometimes being used. While we are at it fix up the error checking for the arm-linux-user implementation of the API which got flagged up by Coverity (CID 1401700). Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-12tests/vm: python3 fixesGerd Hoffmann
Add proper unicode handling when processing strings. Also need to explicitly say we want int not float. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20190520124716.30472-3-kraxel@redhat.com> [AJB: fix conflicts with tests/vm: Port basevm to Python 3] Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-12scripts: use git archive in archive-sourceGerd Hoffmann
Use git archive to create tarballs of qemu and submodules instead of cloning the repository and the submodules. This is a order of magnitude faster because it doesn't fetch the submodules from the internet each time the script runs. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Tested-by: Thomas Huth <thuth@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20190520124716.30472-2-kraxel@redhat.com> [AJB: fixed up tabs] Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-12tests/vm: Add missing variables on helpWainer dos Santos Moschetta
Added description of variables missing on vm-test help. Signed-off-by: Wainer dos Santos Moschetta <wainersm@redhat.com> Message-Id: <20190329210804.22121-6-wainersm@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
2019-06-12tests/vm: Fix build-centos docker-based tests runWainer dos Santos Moschetta
`make vm-build-centos` run docker-based tests on CentOS. The created containers should have network otherwise some tests fail. Also fixed the BUILD_SCRIPT template to correctly evaluate "V=1" for verbose output. Signed-off-by: Wainer dos Santos Moschetta <wainersm@redhat.com> Message-Id: <20190329210804.22121-5-wainersm@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-12tests/vm: Port basevm to Python 3Wainer dos Santos Moschetta
Fixed tests/vm/basevm.py to run with Python 3: - hashlib.sha1() requires an binary encoded object. - uses floor division ("//") (PEP 238). - decode bytes to unicode when needed. Signed-off-by: Wainer dos Santos Moschetta <wainersm@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20190329210804.22121-3-wainersm@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
2019-06-12tests/vm: Use python configured on buildWainer dos Santos Moschetta
Changed the vm-test makefile to execute python scripts with the interpreter configured on build. This allows to run vm-test targets properly in Linux distros with Python 3 only support. Signed-off-by: Wainer dos Santos Moschetta <wainersm@redhat.com> Message-Id: <20190329210804.22121-2-wainersm@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
2019-06-12.travis.yml: add clang ubsan jobAlex Bennée
We document this on our wiki and we might as well catch it in our CI rather than waiting for it to be picked up on merge: https://wiki.qemu.org/Testing#clang_UBSan Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
2019-06-12.travis.yml: bump gcc sanitiser job to gcc-9Alex Bennée
The toolchain PPA has it so we might as well use it. We currently have to add: -Wno-error=stringop-truncation as there are still strncpy operations in the tree operating on things that haven't been annotated with QEMU_NONSTRING. Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-12tests/docker: Update the Ubuntu image to 19.04Alex Bennée
This has aged a little and we have a separate LTS image for testing on the older distros. Update it to a more recent release like its Fedora cousin. Besides it is useful to have something with gcc-9 on it for squashing those stringop truncation errors. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
2019-06-12tests/docker: Update the Fedora cross compile images to 30Alex Bennée
While at it remove the bogus :latest tag for cris cross compiler. It tends to break caching and cause confusion. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
2019-06-12tests/docker: Update the Fedora image to Fedora 30Philippe Mathieu-Daudé
Fedora 30 got released: https://fedoramagazine.org/announcing-fedora-30/ Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Tested-by: Stefano Garzarella <sgarzare@redhat.com> Reviewed-by: Stefano Garzarella <sgarzare@redhat.com> Message-Id: <20190528153304.27157-1-philmd@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-12qemu-io-cmds: use clock_gettime for benchmarkingAlex Bennée
The previous use of gettimeofday() ran into undefined behaviour when we ended up doing a div 0 for a very short operation. This is because gettimeofday only works at the microsecond level as well as being prone to discontinuous jumps in system time. Using clock_gettime with CLOCK_MONOTONIC gives greater precision and alleviates some of the potential problems with time jumping around. We could use CLOCK_MONOTONIC_RAW to avoid being tripped up by NTP and adjtime but that is Linux specific so I decided it would do for now. Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-12editorconfig: add setting for shell scriptsAlex Bennée
Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
2019-06-12qapi: Simplify how QAPIDoc implements its state machineMarkus Armbruster
QAPIDoc uses a state machine to for processing of documentation lines. Its state is encoded as an enum QAPIDoc._state (well, as enum-like class actually, thanks to our infatuation with Python 2). All we ever do with the state is calling the state's function to process a line of documentation. The enum values effectively serve as handles for the functions. Eliminate the rather wordy indirection: store the function to call in QAPIDoc._append_line. Update and improve comments. Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20190606153803.5278-8-armbru@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> [Commit message typo fixed]
2019-06-12file-posix: Add dynamic-auto-read-only QAPI featureKevin Wolf
In commit 23dece19da4 ('file-posix: Make auto-read-only dynamic') , auto-read-only=on changed its behaviour in file-posix for the 4.0 release. This change cannot be detected through the usual mechanisms like schema introspection. Add a new feature flag to the schema to allow libvirt to detect the presence of the new behaviour. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Message-Id: <20190606153803.5278-7-armbru@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> [Comment tweaked on Eric Blake's advice] Signed-off-by: Markus Armbruster <armbru@redhat.com>
2019-06-12qapi: Allow documentation for featuresKevin Wolf
Features will be documented in a new part introduced by a "Features:" line, after arguments and before named sections. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Message-Id: <20190606153803.5278-6-armbru@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
2019-06-12qapi: Disentangle QAPIDoc codeKevin Wolf
Documentation comments follow a certain structure: First, we have a text with a general description (called QAPIDoc.body). After this, descriptions of the arguments follow. Finally, we have a part that contains various named sections. The code doesn't show this structure, but just checks various attributes that indicate indirectly which part is being processed, so it happens to do the right set of things in the right phase. This is hard to follow, and adding support for documentation of features would be even harder. This patch restructures the code so that the three parts are clearly separated. The code becomes a bit longer, but easier to follow. The resulting output remains unchanged. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Message-Id: <20190606153803.5278-5-armbru@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
2019-06-12tests/qapi-schema: Error case tests for features in structsKevin Wolf
Signed-off-by: Kevin Wolf <kwolf@redhat.com> Message-Id: <20190606153803.5278-4-armbru@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
2019-06-12tests/qapi-schema: Test for good feature lists in structsKevin Wolf
Signed-off-by: Kevin Wolf <kwolf@redhat.com> Message-Id: <20190606153803.5278-3-armbru@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
2019-06-12qapi: Add feature flags to struct typesKevin Wolf
Sometimes, the behaviour of QEMU changes without a change in the QMP syntax (usually by allowing values or operations that previously resulted in an error). QMP clients may still need to know whether they can rely on the changed behavior. Let's add feature flags to the QAPI schema language, so that we can make such changes visible with schema introspection. An example for a schema definition using feature flags looks like this: { 'struct': 'TestType', 'data': { 'number': 'int' }, 'features': [ 'allow-negative-numbers' ] } Introspection information then looks like this: { "name": "TestType", "meta-type": "object", "members": [ { "name": "number", "type": "int" } ], "features": [ "allow-negative-numbers" ] } This patch implements feature flags only for struct types. We'll implement them more widely as needed. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Message-Id: <20190606153803.5278-2-armbru@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
2019-06-12block/gluster: update .help of BLOCK_OPT_PREALLOC optionStefano Garzarella
Add missing 'falloc' among the allowed values of 'preallocation' option; show it and 'full' only when they are supported. ('falloc' is supported if defined CONFIG_GLUSTERFS_FALLOCATE, 'full' is supported if defined CONFIG_GLUSTERFS_ZEROFILL) Signed-off-by: Stefano Garzarella <sgarzare@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20190524075848.23781-4-sgarzare@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
2019-06-12block/file-posix: update .help of BLOCK_OPT_PREALLOC optionStefano Garzarella
Show 'falloc' among the allowed values of 'preallocation' option, only when it is supported (if defined CONFIG_POSIX_FALLOCATE) Signed-off-by: Stefano Garzarella <sgarzare@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20190524075848.23781-3-sgarzare@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
2019-06-12qapi/block-core: update documentation of preallocation parameterStefano Garzarella
Add default and available values in the documentation block of each block device or protocol that supports the 'preallocation' parameter during the image creation. Suggested-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Stefano Garzarella <sgarzare@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20190524075848.23781-2-sgarzare@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
2019-06-12qdev: Delete unused LostTickPolicy "merge"Markus Armbruster
Commit 4e4fa398db6 "qdev: Introduce lost tick policy property" (v1.1.0) created PropertyType PROP_TYPE_LOSTTICKPOLICY with values "discard", "delay", "merge", and "slew". Value "merge" has never been used. Delete it. Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20190401150140.29151-1-armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
2019-06-12Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-4.1-20190612' ↵Peter Maydell
into staging ppc patch queue 2019-06-12 Next pull request against qemu-4.1. The big thing here is adding support for hot plug of P2P bridges, and PCI devices under P2P bridges on the "pseries" machine (which doesn't use SHPC). Other than that there's just a handful of fixes and small enhancements. # gpg: Signature made Wed 12 Jun 2019 06:47:56 BST # gpg: using RSA key 75F46586AE61A66CC44E87DC6C38CACA20D9B392 # gpg: Good signature from "David Gibson <david@gibson.dropbear.id.au>" [full] # gpg: aka "David Gibson (Red Hat) <dgibson@redhat.com>" [full] # gpg: aka "David Gibson (ozlabs.org) <dgibson@ozlabs.org>" [full] # gpg: aka "David Gibson (kernel.org) <dwg@kernel.org>" [unknown] # Primary key fingerprint: 75F4 6586 AE61 A66C C44E 87DC 6C38 CACA 20D9 B392 * remotes/dgibson/tags/ppc-for-4.1-20190612: ppc/xive: Make XIVE generate the proper interrupt types ppc/pnv: activate the "dumpdtb" option on the powernv machine target/ppc: Use tcg_gen_gvec_bitsel spapr: Allow hot plug/unplug of PCI bridges and devices under PCI bridges spapr: Direct all PCI hotplug to host bridge, rather than P2P bridge spapr: Don't use bus number for building DRC ids spapr: Clean up DRC index construction spapr: Clean up spapr_drc_populate_dt() spapr: Clean up dt creation for PCI buses spapr: Clean up device tree construction for PCI devices spapr: Clean up device node name generation for PCI devices target/ppc: Fix lxvw4x, lxvh8x and lxvb16x spapr_pci: Improve error message Signed-off-by: Peter Maydell <peter.maydell@linaro.org>