Skip to content
Official QEMU mirror. Please see http://wiki.qemu.org/Contribute/SubmitAPatch for how to submit changes to QEMU. Pull Requests are ignored. Please only use release tarballs from the QEMU website.
C C++ Python Shell Assembly Haxe Other
Branch: master
Clone or download
pm215 Merge remote-tracking branch 'remotes/maxreitz/tags/pull-block-2020-0…
…2-06' into staging

Block patches:
- Drop BDRV_SECTOR_SIZE from qcow2
- Allow Python iotests to be added to the auto group
  (and add some)
- Fix for the backup job
- Fix memleak in bdrv_refresh_filename()
- Use GStrings in two places for greater efficiency (than manually
  handling string allocation)

# gpg: Signature made Thu 06 Feb 2020 12:50:14 GMT
# 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-02-06:
  iotests: add test for backup-top failure on permission activation
  block/backup-top: fix failure path
  qcow2: Use BDRV_SECTOR_SIZE instead of the hardcoded value
  qcow2: Don't require aligned offsets in qcow2_co_copy_range_from()
  qcow2: Use bs->bl.request_alignment when updating an L1 entry
  qcow2: Tighten cluster_offset alignment assertions
  qcow2: Don't round the L1 table allocation up to the sector size
  iotests: Enable more tests in the 'auto' group to improve test coverage
  iotests: Skip Python-based tests if QEMU does not support virtio-blk
  iotests: Check for the availability of the required devices in 267 and 127
  iotests: Test 183 does not work on macOS and OpenBSD
  iotests: Test 041 only works on certain systems
  iotests: remove 'linux' from default supported platforms
  qcow2: Use a GString in report_unsupported_feature()
  block: fix memleaks in bdrv_refresh_filename
  block: Use a GString in bdrv_perm_names()
  qcow2: Assert that host cluster offsets fit in L2 table entries

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Latest commit 863d2ed Feb 6, 2020
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitlab-ci.d/edk2 gitlab-ci.yml: Add jobs to build EDK2 firmware binaries Jan 21, 2020
accel Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into… Jan 27, 2020
audio audio/audio: Add missing fall through comment Jan 24, 2020
authz Include qemu/module.h where needed, drop it from qemu-common.h Jun 12, 2019
backends migration: Define VMSTATE_INSTANCE_ID_ANY Jan 20, 2020
block block/backup-top: fix failure path Feb 6, 2020
bsd-user tcg: Search includes from the project root source directory Jan 16, 2020
capstone @ 22ead3e disas: Add capstone as submodule Oct 26, 2017
chardev Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into… Jan 10, 2020
contrib libvhost-user: Fix some memtable remap cases Jan 23, 2020
crypto Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into… Dec 20, 2019
default-configs hw/misc: Add the STM32F4xx Sysconfig device Jan 17, 2020
disas target/mips: Add implementation of GINVT instruction Jan 29, 2020
docs qemu-img: Place the '-i aio' option in alphabetical order Feb 6, 2020
dtc @ 88f1890 Update dtc/libfdt submodule to v1.4.7 Oct 2, 2018
dump hmp: drop Error pointer indirection in hmp_handle_error Dec 18, 2019
fpu softfp: Added hardfloat conversion from float32 to float64 Oct 30, 2019
fsdev virtfs-proxy-helper: Convert documentation to rST Feb 3, 2020
gdb-xml target/riscv: Expose "priv" register for GDB for reads Oct 28, 2019
hw aspeed/i2c: Prevent uninitialized warning Feb 6, 2020
include hw/pci/pci_bridge: Fix typo in comment Feb 6, 2020
io socket: Add num connections to qio_net_listener_open_sync() Sep 3, 2019
libdecnumber build: remove CONFIG_LIBDECNUMBER Oct 16, 2017
linux-headers linux-headers: Update Jan 8, 2020
linux-user linux-user: Add support for read/clear RTC voltage low detector using… Jan 22, 2020
migration migration/compress: compress QEMUFile is not writable Jan 29, 2020
monitor monitor: fix memory leak in monitor_fdset_dup_fd_find_remove Feb 6, 2020
nbd nbd: fix uninitialized variable warning Jan 8, 2020
net chardev: Use QEMUChrEvent enum in IOEventHandler typedef Jan 8, 2020
pc-bios hw/ppc/prep: Remove the deprecated "prep" machine and the OpenHackwar… Feb 2, 2020
plugins plugins: Include trace/mem.h in api.c Jan 16, 2020
po ui/gtk: fix gettext message's charset. Nov 21, 2019
python/qemu python/qemu: Remove unneeded imports in __init__ Dec 16, 2019
qapi tpm_spapr: Support TPM for ppc64 using CRQ based interface Feb 2, 2020
qga build-sys: clean up flags included in the linker command line Jan 24, 2020
qobject qstring: add qstring_free() Jan 24, 2020
qom qapi/qmp: add ObjectPropertyInfo.default-value Jan 24, 2020
replay replay: record and replay random number sources Jan 7, 2020
roms hw/ppc/prep: Remove the deprecated "prep" machine and the OpenHackwar… Feb 2, 2020
scripts scripts/qemu-trace-stap: Convert documentation to rST Feb 3, 2020
scsi build: rename CONFIG_LIBCAP to CONFIG_LIBCAP_NG Dec 17, 2019
slirp @ 126c04a slirp: update with CVE-2019-14378 fix Aug 2, 2019
stubs stubs: add stubs for io_uring interface Jan 30, 2020
target target/mips: Separate FPU-related helpers into their own file Feb 4, 2020
tcg tcg: Move TCG headers to include/tcg/ Jan 16, 2020
tests iotests: add test for backup-top failure on permission activation Feb 6, 2020
tools/virtiofsd virtiofsd: add some options to the help message Jan 23, 2020
trace qemu_set_log_filename: filename argument may be NULL Jan 30, 2020
ui ui/console: Display the 'none' backend in '-display help' Jan 21, 2020
util Merge remote-tracking branch 'remotes/stefanha/tags/tracing-pull-requ… Jan 31, 2020
.cirrus.yml ci: build out-of-tree Dec 18, 2019
.dir-locals.el Add .dir-locals.el file to configure emacs coding style Oct 8, 2015
.editorconfig editorconfig: add setting for shell scripts Jun 12, 2019
.exrc qemu: add .exrc Sep 7, 2012
.gdbinit .gdbinit: load QEMU sub-commands when gdb starts Jun 7, 2017
.gitignore virtiofsd: add vhost-user.json file Jan 23, 2020
.gitlab-ci-edk2.yml gitlab-ci.yml: Add jobs to build EDK2 firmware binaries Jan 21, 2020
.gitlab-ci.yml gitlab-ci: Refresh the list of iotests Feb 4, 2020
.gitmodules hw/ppc/prep: Remove the deprecated "prep" machine and the OpenHackwar… Feb 2, 2020
.gitpublish Add a git-publish configuration file Mar 5, 2018
.mailmap MAINTAINERS: update Leif Lindholm's address Feb 6, 2020
.patchew.yml ci: store Patchew configuration in the tree Jun 3, 2019
.shippable.yml .shippable: --disable-docs for cross-compile tests Feb 4, 2020
.travis.yml .travis.yml: ensure python3-sphinx installed for docs Feb 4, 2020
CODING_STYLE.rst docs: split the CODING_STYLE doc into distinct groups Sep 5, 2019
COPYING COPYING: update from FSF Oct 12, 2008
COPYING.LIB COPYING.LIB: Synchronize the LGPL 2.1 with the version from gnu.org Jan 30, 2019
Changelog Use HTTPS for qemu.org and other domains Nov 21, 2017
Kconfig.host configure: simplify vhost condition with Kconfig Dec 17, 2019
LICENSE tcg/LICENSE: Remove out of date claim about TCG subdirectory licensing Nov 11, 2019
MAINTAINERS MAINTAINERS: Cc the qemu-arm@nongnu.org for the ARM machines Feb 6, 2020
Makefile Makefile: Do not use wildcard hw/*/Kconfig as input for minikconf Feb 4, 2020
Makefile.objs Makefile: Keep trace-events-subdirs ordered Jan 30, 2020
Makefile.target crypto: move common bits for all emulators to libqemuutil Dec 17, 2019
README.rst docs: merge HACKING.rst contents into CODING_STYLE.rst Sep 5, 2019
VERSION Open 5.0 development tree Dec 13, 2019
arch_init.c hw/m68k: add Nubus macfb video card Oct 28, 2019
balloon.c Clean up inclusion of exec/cpu-common.h Aug 16, 2019
block.c block: fix memleaks in bdrv_refresh_filename Feb 6, 2020
blockdev-nbd.c nbd: Don't send oversize strings Nov 18, 2019
blockdev.c blockdev: adds bdrv_parse_aio to use io_uring Jan 30, 2020
blockjob.c blockjob: Fix error message for negative speed Dec 18, 2019
bootdevice.c bootdevice: FW_CFG interface for LCHS values Oct 31, 2019
configure configure: Fix typo of the have_afalg variable Feb 4, 2020
cpus-common.c cpu: introduce cpu_in_exclusive_context() Oct 28, 2019
cpus.c Wrapper function to wait on condition for the main loop mutex Feb 3, 2020
device-hotplug.c Include hw/hw.h exactly where needed Aug 16, 2019
device_tree.c device_tree: Fix integer overflowing in load_device_tree() Apr 9, 2019
disas.c plugin: add qemu_plugin_insn_disas helper Oct 28, 2019
dma-helpers.c dma-helpers: ensure AIO callback is invoked after cancellation Aug 16, 2019
exec-vary.c exec: Cache TARGET_PAGE_MASK for TARGET_PAGE_BITS_VARY Oct 28, 2019
exec.c misc: use QEMU_IS_ALIGNED Jan 20, 2020
gdbstub.c chardev: Use QEMUChrEvent enum in IOEventHandler typedef Jan 8, 2020
gitdm.config contrib: gitdm: add a mapping for Janus Technologies Mar 12, 2019
hmp-commands-info.hx riscv: hmp: Add a command to show virtual memory mappings Sep 17, 2019
hmp-commands.hx hmp: Allow using qdev ID for qemu-io command Dec 19, 2019
ioport.c Include qemu-common.h exactly where needed Jun 12, 2019
iothread.c iothread: document about why we need explicit aio_poll() Mar 8, 2019
job-qmp.c Include qemu-common.h exactly where needed Jun 12, 2019
job.c job: drop job_drain Sep 10, 2019
memory.c memory.c: Use trace_event_get_state_backends() Jan 30, 2020
memory_ldst.inc.c memory: Single byte swap along the I/O path Sep 3, 2019
memory_mapping.c Include qemu-common.h exactly where needed Jun 12, 2019
module-common.c all: Clean up includes Feb 4, 2016
os-posix.c os-posix: simplify os_find_datadir Dec 17, 2019
os-win32.c glib: use portable g_setenv() Dec 17, 2019
qdev-monitor.c qdev: use object_property_help() Jan 24, 2020
qemu-bridge-helper.c build: rename CONFIG_LIBCAP to CONFIG_LIBCAP_NG Dec 17, 2019
qemu-deprecated.texi hw/ppc/prep: Remove the deprecated "prep" machine and the OpenHackwar… Feb 2, 2020
qemu-doc.texi qemu-img: Convert invocation documentation to rST Feb 3, 2020
qemu-edid.c Include qemu-common.h exactly where needed Jun 12, 2019
qemu-img-cmds.hx qemu-img: Place the '-i aio' option in alphabetical order Feb 6, 2020
qemu-img.c qemu-img: adds option to use aio engine for benchmarking Jan 30, 2020
qemu-io-cmds.c block: Pass truncate exact=true where reasonable Oct 28, 2019
qemu-io.c qemu-io: adds option to use aio engine Jan 30, 2020
qemu-keymap.c Include qemu-common.h exactly where needed Jun 12, 2019
qemu-nbd.c qemu-nbd: adds option for aio engines Jan 30, 2020
qemu-option-trace.texi qemu-nbd: Convert invocation documentation to rST Jan 23, 2020
qemu-options-wrapper.h qemu-img: remove references to GEN_DOCS May 20, 2018
qemu-options.h Clean up ill-advised or unusual header guards Jul 12, 2016
qemu-options.hx qemu-options: replace constant 1 with HAS_ARG Feb 6, 2020
qemu-seccomp.c seccomp: report more useful errors from seccomp Mar 27, 2019
qemu-tech.texi qemu-tech: Fix dangling @menu entries Jul 15, 2019
qemu.nsi win32: fix README file in NSIS installer Sep 16, 2019
qemu.sasl Default to GSSAPI (Kerberos) instead of DIGEST-MD5 for SASL May 9, 2017
qtest.c chardev: Use QEMUChrEvent enum in IOEventHandler typedef Jan 8, 2020
replication.c replication: Introduce new APIs to do replication operation Sep 13, 2016
replication.h Include qemu/module.h where needed, drop it from qemu-common.h Jun 12, 2019
rules.mak Makefile: Ensure we don't run Sphinx in parallel for manpages Feb 3, 2020
thunk.c thunk: improve readability of allocation loop Mar 11, 2019
tpm.c tpm: Clean up error reporting in tpm_init_tpmdev() Oct 19, 2018
trace-events trace: add mmu_index to mem_info Oct 28, 2019
version.rc Use HTTPS for qemu.org and other domains Nov 21, 2017
vl.c qemu_set_log_filename: filename argument may be NULL Jan 30, 2020

README.rst

QEMU README

QEMU is a generic and open source machine & userspace emulator and virtualizer.

QEMU is capable of emulating a complete machine in software without any need for hardware virtualization support. By using dynamic translation, it achieves very good performance. QEMU can also integrate with the Xen and KVM hypervisors to provide emulated hardware while allowing the hypervisor to manage the CPU. With hypervisor support, QEMU can achieve near native performance for CPUs. When QEMU emulates CPUs directly it is capable of running operating systems made for one machine (e.g. an ARMv7 board) on a different machine (e.g. an x86_64 PC board).

QEMU is also capable of providing userspace API virtualization for Linux and BSD kernel interfaces. This allows binaries compiled against one architecture ABI (e.g. the Linux PPC64 ABI) to be run on a host using a different architecture ABI (e.g. the Linux x86_64 ABI). This does not involve any hardware emulation, simply CPU and syscall emulation.

QEMU aims to fit into a variety of use cases. It can be invoked directly by users wishing to have full control over its behaviour and settings. It also aims to facilitate integration into higher level management layers, by providing a stable command line interface and monitor API. It is commonly invoked indirectly via the libvirt library when using open source applications such as oVirt, OpenStack and virt-manager.

QEMU as a whole is released under the GNU General Public License, version 2. For full licensing details, consult the LICENSE file.

Building

QEMU is multi-platform software intended to be buildable on all modern Linux platforms, OS-X, Win32 (via the Mingw64 toolchain) and a variety of other UNIX targets. The simple steps to build QEMU are:

mkdir build
cd build
../configure
make

Additional information can also be found online via the QEMU website:

Submitting patches

The QEMU source code is maintained under the GIT version control system.

git clone https://git.qemu.org/git/qemu.git

When submitting patches, one common approach is to use 'git format-patch' and/or 'git send-email' to format & send the mail to the qemu-devel@nongnu.org mailing list. All patches submitted must contain a 'Signed-off-by' line from the author. Patches should follow the guidelines set out in the CODING_STYLE.rst file.

Additional information on submitting patches can be found online via the QEMU website

The QEMU website is also maintained under source control.

git clone https://git.qemu.org/git/qemu-web.git

A 'git-publish' utility was created to make above process less cumbersome, and is highly recommended for making regular contributions, or even just for sending consecutive patch series revisions. It also requires a working 'git send-email' setup, and by default doesn't automate everything, so you may want to go through the above steps manually for once.

For installation instructions, please go to

The workflow with 'git-publish' is:

$ git checkout master -b my-feature
$ # work on new commits, add your 'Signed-off-by' lines to each
$ git publish

Your patch series will be sent and tagged as my-feature-v1 if you need to refer back to it in the future.

Sending v2:

$ git checkout my-feature # same topic branch
$ # making changes to the commits (using 'git rebase', for example)
$ git publish

Your patch series will be sent with 'v2' tag in the subject and the git tip will be tagged as my-feature-v2.

Bug reporting

The QEMU project uses Launchpad as its primary upstream bug tracker. Bugs found when running code built from QEMU git or upstream released sources should be reported via:

If using QEMU via an operating system vendor pre-built binary package, it is preferable to report bugs to the vendor's own bug tracker first. If the bug is also known to affect latest upstream code, it can also be reported via launchpad.

For additional information on bug reporting consult:

Contact

The QEMU community can be contacted in a number of ways, with the two main methods being email and IRC

Information on additional methods of contacting the community can be found online via the QEMU website:

You can’t perform that action at this time.