]> Git Repo - qemu.git/log
qemu.git
6 years agohw/intc/arm_gicv3: fix an extra left-shift when reading IPRIORITYR
Amol Surati [Fri, 22 Jun 2018 12:28:34 +0000 (13:28 +0100)]
hw/intc/arm_gicv3: fix an extra left-shift when reading IPRIORITYR

When either GICD_IPRIORITYR or GICR_IPRIORITYR is read as a 32-bit
register, the post left-shift operator in the for loop causes an
extra shift after the least significant byte has been placed.

The 32-bit value actually returned is therefore the expected value
shifted left by 8 bits.

Signed-off-by: Amol Surati <[email protected]>
Message-id: 20180614054857[email protected]
Reviewed-by: Peter Maydell <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/stsquad/tags/pull-tcg-testing-revivial-210618...
Peter Maydell [Fri, 22 Jun 2018 09:57:47 +0000 (10:57 +0100)]
Merge remote-tracking branch 'remotes/stsquad/tags/pull-tcg-testing-revivial-210618-2' into staging

Add check-tcg machinary

This restores the ability to run TCG smoke tests by using our docker
infrastructure to support cross building simple tests. It represents
the first step to making better cross-architecture testing available
straight from the source tree ;-)

v2
  - fix quoting of target_compiler
  - make docker.py Py3 safe
  - tweak .travis.yml recipe
  - don't probe docker when HAVE_USER_DOCKER not set

# gpg: Signature made Thu 21 Jun 2018 07:23:45 BST
# gpg:                using RSA key FBD0DB095A9E2A44
# gpg: Good signature from "Alex Bennée (Master Work Key) <[email protected]>"
# Primary key fingerprint: 6685 AE99 E751 67BC AFC8  DF35 FBD0 DB09 5A9E 2A44

* remotes/stsquad/tags/pull-tcg-testing-revivial-210618-2: (57 commits)
  .travis.yml: add check-tcg test
  tests/docker/Makefile.include: only force SID to NOCACHE if old
  docker: docker.py adding age check command
  tests/Makefile: call sub-makes with SKIP_DOCKER_BUILD=1
  docker: docker.py add check sub-command
  docker: docker.py don't conflate checksums for extra_files
  docker: docker.py use "version" to probe usage
  tests: add top-level make dependency for docker builds
  tests/tcg/i386: extend timeout for runcom test
  tests/tcg: override runners for broken tests
  tests/tcg: add run, diff, and skip helper macros
  tests/Makefile.include: add [build|clean|check]-tcg targets
  Makefile.target: add (clean-/build-)guest-tests targets
  tests/tcg/Makefile: update to be called from Makefile.target
  tests/tcg: enable building for PowerPC
  docker: move debian-powerpc-cross to sid based build
  tests/tcg: enable building for RISCV64
  tests/tcg: enable building for mips64
  tests/tcg: enable building for sparc64
  tests/tcg: enable building for sh4
  ...

Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/ericb/tags/pull-nbd-2018-06-20-v2' into staging
Peter Maydell [Fri, 22 Jun 2018 08:58:29 +0000 (09:58 +0100)]
Merge remote-tracking branch 'remotes/ericb/tags/pull-nbd-2018-06-20-v2' into staging

nbd patches for 2018-06-20

Add experimental x-nbd-server-add-bitmap to expose a disabled
bitmap over NBD, in preparation for a pull model incremental
backup scheme. Also fix a corner case protocol issue with
NBD_CMD_BLOCK_STATUS, and add new NBD_CMD_CACHE.

- Eric Blake: tests: Simplify .gitignore
- Eric Blake: nbd/server: Reject 0-length block status request
- Vladimir Sementsov-Ogievskiy: 0/6 NBD export bitmaps
- Vladimir Sementsov-Ogievskiy: nbd/server: introduce NBD_CMD_CACHE

# gpg: Signature made Thu 21 Jun 2018 15:53:55 BST
# gpg:                using RSA key A7A16B4A2527436A
# gpg: Good signature from "Eric Blake <[email protected]>"
# gpg:                 aka "Eric Blake (Free Software Programmer) <[email protected]>"
# gpg:                 aka "[jpeg image of size 6874]"
# Primary key fingerprint: 71C2 CC22 B1C4 6029 27D2  F3AA A7A1 6B4A 2527 436A

* remotes/ericb/tags/pull-nbd-2018-06-20-v2:
  nbd/server: introduce NBD_CMD_CACHE
  docs/interop: add nbd.txt
  qapi: new qmp command nbd-server-add-bitmap
  nbd/server: implement dirty bitmap export
  nbd/server: add nbd_meta_empty_or_pattern helper
  nbd/server: refactor NBDExportMetaContexts
  nbd/server: fix trace
  nbd/server: Reject 0-length block status request
  tests: Simplify .gitignore

Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/rth/tags/pull-tcg-20180615' into staging
Peter Maydell [Thu, 21 Jun 2018 16:54:26 +0000 (17:54 +0100)]
Merge remote-tracking branch 'remotes/rth/tags/pull-tcg-20180615' into staging

TCG patch queue:

Workaround macos assembler lossage.
Eliminate tb_lock.
Fix TB code generation overflow.

# gpg: Signature made Fri 15 Jun 2018 20:40:56 BST
# gpg:                using RSA key 64DF38E8AF7E215F
# gpg: Good signature from "Richard Henderson <[email protected]>"
# Primary key fingerprint: 7A48 1E78 868B 4DB6 A85A  05C0 64DF 38E8 AF7E 215F

* remotes/rth/tags/pull-tcg-20180615:
  tcg: Reduce max TB opcode count
  tcg: remove tb_lock
  translate-all: remove tb_lock mention from cpu_restore_state_from_tb
  cputlb: remove tb_lock from tlb_flush functions
  translate-all: protect TB jumps with a per-destination-TB lock
  translate-all: discard TB when tb_link_page returns an existing matching TB
  translate-all: introduce assert_no_pages_locked
  translate-all: add page_locked assertions
  translate-all: use per-page locking in !user-mode
  translate-all: move tb_invalidate_phys_page_range up in the file
  translate-all: work page-by-page in tb_invalidate_phys_range_1
  translate-all: remove hole in PageDesc
  translate-all: make l1_map lockless
  translate-all: iterate over TBs in a page with PAGE_FOR_EACH_TB
  tcg: move tb_ctx.tb_phys_invalidate_count to tcg_ctx
  tcg: track TBs with per-region BST's
  qht: return existing entry when qht_insert fails
  qht: require a default comparison function
  tcg/i386: Use byte form of xgetbv instruction

Signed-off-by: Peter Maydell <[email protected]>
6 years agonbd/server: introduce NBD_CMD_CACHE
Vladimir Sementsov-Ogievskiy [Fri, 13 Apr 2018 14:31:56 +0000 (17:31 +0300)]
nbd/server: introduce NBD_CMD_CACHE

Handle nbd CACHE command. Just do read, without sending read data back.
Cache mechanism should be done by exported node driver chain.

Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Message-Id: <20180413143156[email protected]>
Reviewed-by: Eric Blake <[email protected]>
[eblake: fix two missing case labels in switch statements]
Signed-off-by: Eric Blake <[email protected]>
6 years agodocs/interop: add nbd.txt
Vladimir Sementsov-Ogievskiy [Sat, 9 Jun 2018 15:17:58 +0000 (18:17 +0300)]
docs/interop: add nbd.txt

Describe new metadata namespace: "qemu".

Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Message-Id: <20180609151758[email protected]>
Reviewed-by: Eric Blake <[email protected]>
[eblake: grammar tweaks]
Signed-off-by: Eric Blake <[email protected]>
6 years agoqapi: new qmp command nbd-server-add-bitmap
Vladimir Sementsov-Ogievskiy [Sat, 9 Jun 2018 15:17:57 +0000 (18:17 +0300)]
qapi: new qmp command nbd-server-add-bitmap

For now, the actual command ix x-nbd-server-add-bitmap, reflecting
the fact that we are still working on libvirt code that proves the
command works as needed, and also the fact that we may remove
bitmap-export-name (and just require that the exported name be the
bitmap name).

Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Message-Id: <20180609151758[email protected]>
Reviewed-by: Eric Blake <[email protected]>
[eblake: make the command experimental by adding x- prefix]
Signed-off-by: Eric Blake <[email protected]>
6 years agonbd/server: implement dirty bitmap export
Vladimir Sementsov-Ogievskiy [Sat, 9 Jun 2018 15:17:56 +0000 (18:17 +0300)]
nbd/server: implement dirty bitmap export

Handle a new NBD meta namespace: "qemu", and corresponding queries:
"qemu:dirty-bitmap:<export bitmap name>".

With the new metadata context negotiated, BLOCK_STATUS query will reply
with dirty-bitmap data, converted to extents. The new public function
nbd_export_bitmap selects which bitmap to export. For now, only one bitmap
may be exported.

Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Message-Id: <20180609151758[email protected]>
Reviewed-by: Eric Blake <[email protected]>
[eblake: wording tweaks, minor cleanups, additional tracing]
Signed-off-by: Eric Blake <[email protected]>
6 years agonbd/server: add nbd_meta_empty_or_pattern helper
Vladimir Sementsov-Ogievskiy [Tue, 19 Jun 2018 21:55:09 +0000 (16:55 -0500)]
nbd/server: add nbd_meta_empty_or_pattern helper

Add nbd_meta_pattern() and nbd_meta_empty_or_pattern() helpers for
metadata query parsing. nbd_meta_pattern() will be reused for the
"qemu" namespace in following patches.

Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Message-Id: <20180609151758[email protected]>
Reviewed-by: Eric Blake <[email protected]>
[eblake: comment tweaks]
Signed-off-by: Eric Blake <[email protected]>
6 years agonbd/server: refactor NBDExportMetaContexts
Vladimir Sementsov-Ogievskiy [Sat, 9 Jun 2018 15:17:54 +0000 (18:17 +0300)]
nbd/server: refactor NBDExportMetaContexts

Use NBDExport pointer instead of just export name: there is no need to
store a duplicated name in the struct; moreover, NBDExport will be used
further.

Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Message-Id: <20180609151758[email protected]>
Reviewed-by: Eric Blake <[email protected]>
[eblake: commit message grammar tweak]
Signed-off-by: Eric Blake <[email protected]>
6 years agonbd/server: fix trace
Vladimir Sementsov-Ogievskiy [Sat, 9 Jun 2018 15:17:53 +0000 (18:17 +0300)]
nbd/server: fix trace

Return code = 1 doesn't mean that we parsed base:allocation. Use
correct traces in both -parsed and -skipped cases.

Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Message-Id: <20180609151758[email protected]>
Reviewed-by: Eric Blake <[email protected]>
[eblake: comment tweaks]
Signed-off-by: Eric Blake <[email protected]>
6 years agonbd/server: Reject 0-length block status request
Eric Blake [Thu, 21 Jun 2018 12:49:37 +0000 (07:49 -0500)]
nbd/server: Reject 0-length block status request

The NBD spec says that behavior is unspecified if the client
requests 0 length for block status; but since the structured
reply is documenting as returning a non-zero length, it's
easier to just diagnose this with an EINVAL error than to
figure out what to return.

CC: [email protected]
Signed-off-by: Eric Blake <[email protected]>
Message-Id: <20180621124937[email protected]>
Reviewed-by: Vladimir Sementsov-Ogievskiy <[email protected]>
6 years agotests: Simplify .gitignore
Eric Blake [Tue, 19 Jun 2018 20:39:18 +0000 (15:39 -0500)]
tests: Simplify .gitignore

Commit 0bcc8e5b was yet another instance of 'git status' reporting
dirty files after an in-tree build, thanks to the new binary
tests/check-block-qdict.

Instead of piecemeal exemptions of each new binary as they are
added, let's use git's negative globbing feature to exempt ALL
files that have a 'test-' or 'check-' prefix, except for the ones
ending in '.c' or '.sh'.  We still have a couple of generated
files that then need (re-)exclusion, but the overall list is a
LOT shorter, and less prone to needing future edits.

Signed-off-by: Eric Blake <[email protected]>
Message-Id: <20180619203918[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
6 years ago.travis.yml: add check-tcg test
Alex Bennée [Wed, 18 Apr 2018 15:55:37 +0000 (16:55 +0100)]
.travis.yml: add check-tcg test

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agotests/docker/Makefile.include: only force SID to NOCACHE if old
Alex Bennée [Tue, 12 Jun 2018 20:29:40 +0000 (21:29 +0100)]
tests/docker/Makefile.include: only force SID to NOCACHE if old

Now we can check the age of a docker image we can be a little more
intelligent about re-building Sid images and only force NOCACHE if
it is "old".

Signed-off-by: Alex Bennée <[email protected]>
6 years agodocker: docker.py adding age check command
Alex Bennée [Tue, 12 Jun 2018 20:28:45 +0000 (21:28 +0100)]
docker: docker.py adding age check command

This is useful for querying if an image is too old.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
6 years agotests/Makefile: call sub-makes with SKIP_DOCKER_BUILD=1
Alex Bennée [Fri, 15 Jun 2018 18:20:55 +0000 (19:20 +0100)]
tests/Makefile: call sub-makes with SKIP_DOCKER_BUILD=1

As we now ensure all the images we are going to use are built in the
top level make file lets not over complicate things by running the
full script again. We do run the check script just in case someone
deletes the docker image while we are running.

Signed-off-by: Alex Bennée <[email protected]>
6 years agodocker: docker.py add check sub-command
Alex Bennée [Fri, 8 Jun 2018 15:20:48 +0000 (16:20 +0100)]
docker: docker.py add check sub-command

This command allows you to check if we need to re-build a docker
image. If the image isn't in the repository or the checksums don't
match then we return false and some text (for processing in
makefiles).

Signed-off-by: Alex Bennée <[email protected]>
6 years agodocker: docker.py don't conflate checksums for extra_files
Alex Bennée [Fri, 8 Jun 2018 14:20:25 +0000 (15:20 +0100)]
docker: docker.py don't conflate checksums for extra_files

This just gets confusing especially as the helper function doesn't
even take into account any extra files (or the executable). Currently
the actual check just ignores them and also passes the result through
_dockerfile_preprocess so we fix that too.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
6 years agodocker: docker.py use "version" to probe usage
Alex Bennée [Mon, 18 Jun 2018 10:14:40 +0000 (11:14 +0100)]
docker: docker.py use "version" to probe usage

The "images" command is a fairly heavyweight command to run as it
involves searching the whole docker file-system inventory. On a
machine with a lot of images this makes start-up fairly expensive.

Signed-off-by: Alex Bennée <[email protected]>
6 years agotests: add top-level make dependency for docker builds
Alex Bennée [Fri, 8 Jun 2018 11:12:46 +0000 (12:12 +0100)]
tests: add top-level make dependency for docker builds

One problem with satisfying your docker dependencies in a sub-make it
you might end up trying to satisfy the dependency multiple times. This
is especially a problem with debian-sid based cross compilers and CI
setups. We solve this by doing a docker build pass at the top level
before any sub-makes are called.

We still need to satisfy dependencies in the Makefile.target call so
people can run tests from individual target directories. We introduce
a new Makefile.probe which gets called for each PROBE_TARGET and
allows us to build up the list. It does require multiply including
config-target.mak which shouldn't cause any issues as it shouldn't
define anything that clashes with config-host.mak. However we undefine
a few key variables each time around.

Signed-off-by: Alex Bennée <[email protected]>
6 years agotests/tcg/i386: extend timeout for runcom test
Alex Bennée [Mon, 18 Jun 2018 09:34:20 +0000 (10:34 +0100)]
tests/tcg/i386: extend timeout for runcom test

The Travis hardware can be a little slow and the runcom test is fairly
heavy in calculating pi. Lets double the timeout so we don't trip up
during CI by mistake.

Signed-off-by: Alex Bennée <[email protected]>
6 years agotests/tcg: override runners for broken tests
Alex Bennée [Tue, 24 Apr 2018 14:21:50 +0000 (15:21 +0100)]
tests/tcg: override runners for broken tests

To get a clean run of check-tcg these tests are currently skipped:

  - hello-mips for mips
  - linux-test for sparc

Signed-off-by: Alex Bennée <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
6 years agotests/tcg: add run, diff, and skip helper macros
Alex Bennée [Mon, 21 May 2018 09:38:37 +0000 (10:38 +0100)]
tests/tcg: add run, diff, and skip helper macros

As we aren't using the default runners for all the test cases it is
easy to miss out things like timeouts. To help with this we add some
helpers and use them so we only need to make core changes in one
place.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agotests/Makefile.include: add [build|clean|check]-tcg targets
Alex Bennée [Fri, 6 Apr 2018 21:08:36 +0000 (22:08 +0100)]
tests/Makefile.include: add [build|clean|check]-tcg targets

This will ensure all linux-user targets build their guest test
programs and ensure check-tcg will run the respective tests.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agoMakefile.target: add (clean-/build-)guest-tests targets
Alex Bennée [Fri, 6 Apr 2018 10:08:37 +0000 (11:08 +0100)]
Makefile.target: add (clean-/build-)guest-tests targets

Now all the build infrastructure is in place we can build tests for
each guest that we support. That support mainly depends on having
cross compilers installed or docker setup. To keep all the logic for
that together we put the rules in tests/tcg/Makefile.include and
include it from the main Makefile.target.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agotests/tcg/Makefile: update to be called from Makefile.target
Alex Bennée [Fri, 6 Apr 2018 12:32:18 +0000 (13:32 +0100)]
tests/tcg/Makefile: update to be called from Makefile.target

This make is now invoked from each individual target make with the
appropriate CC and EXTRA_CFLAGS set for each guest. It then includes
additional Makefile.targets from:

  - tests/tcg/multiarch (always)
  - tests/tcg/$(TARGET_BASE_ARCH) (if available)
  - tests/tcg/$(TARGET_NAME)

The order is important as the later Makefile's may want to suppress
TESTS from its base arch profile. Each included Makefile.target is
responsible for adding TESTS as well as defining any special build
instructions for individual tests.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agotests/tcg: enable building for PowerPC
Alex Bennée [Thu, 24 May 2018 21:28:45 +0000 (22:28 +0100)]
tests/tcg: enable building for PowerPC

Now we have restored debian-image-powerpc-cross using Debian SID
compilers we can build for 32 bit powerpc. Although PPC32 supports a
range of pages sizes currently only 4k works so the others are
commented out for now.

We can also merge the ppc64 support under the base architecture
directory to avoid too much proliferation of directories.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agodocker: move debian-powerpc-cross to sid based build
Alex Bennée [Thu, 24 May 2018 21:12:15 +0000 (22:12 +0100)]
docker: move debian-powerpc-cross to sid based build

The original Jessie based cross builder hasn't worked for a while. The
state of the libraries is still perilous for cross-building QEMU but
we can use it for building TCG tests.

The debian-apt-fake.sh script can also be dropped as it is no longer
used.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agotests/tcg: enable building for RISCV64
Alex Bennée [Tue, 24 Apr 2018 15:41:18 +0000 (16:41 +0100)]
tests/tcg: enable building for RISCV64

As before, using Debian SID compilers.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agotests/tcg: enable building for mips64
Alex Bennée [Mon, 23 Apr 2018 15:57:48 +0000 (16:57 +0100)]
tests/tcg: enable building for mips64

As before, using Debian SID compilers.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agotests/tcg: enable building for sparc64
Alex Bennée [Mon, 23 Apr 2018 15:49:09 +0000 (16:49 +0100)]
tests/tcg: enable building for sparc64

As before, using Debian SID compilers.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agotests/tcg: enable building for sh4
Alex Bennée [Mon, 23 Apr 2018 15:25:06 +0000 (16:25 +0100)]
tests/tcg: enable building for sh4

As before, using Debian SID compilers. While the compiler can be
coerced into generating big-endian code it seems the linker can't deal
with it so we only enable the building for little endian SH4.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agotests/tcg: enable building for m68k
Alex Bennée [Mon, 23 Apr 2018 15:08:36 +0000 (16:08 +0100)]
tests/tcg: enable building for m68k

As before, using Debian SID compilers.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agotests/tcg: enable building for HPPA
Alex Bennée [Mon, 23 Apr 2018 15:00:13 +0000 (16:00 +0100)]
tests/tcg: enable building for HPPA

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agotests/tcg/alpha: add Alpha specific tests
Alex Bennée [Mon, 23 Apr 2018 14:48:06 +0000 (15:48 +0100)]
tests/tcg/alpha: add Alpha specific tests

These tests did use their own crt.o stub however that is a little
stone age so we drop crt.S and just statically link to the cross
compilers libraries.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agotests/tcg: enable building for Alpha
Alex Bennée [Mon, 23 Apr 2018 12:54:09 +0000 (13:54 +0100)]
tests/tcg: enable building for Alpha

We can't use our normal Debian based compilers as Alpha isn't an
officially supported architecture. However it is available as a port
and fortunately cross compilers for all these targets are included in
Debian Sid, the perpetual rolling/unstable/testing version of Debian.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agotests/tcg: enable building for ppc64
Alex Bennée [Tue, 10 Apr 2018 16:45:56 +0000 (17:45 +0100)]
tests/tcg: enable building for ppc64

Currently this just enables building the multiarch tests.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agotests/tcg: enable building for s390x
Alex Bennée [Fri, 6 Apr 2018 20:43:57 +0000 (21:43 +0100)]
tests/tcg: enable building for s390x

This doesn't add any additional tests but enables building the
multiarch tests for s390x.

Signed-off-by: Alex Bennée <[email protected]>
Acked-by: Cornelia Huck <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: David Hildenbrand <[email protected]>
6 years agotests/tcg/mips: include common mips hello-mips
Alex Bennée [Tue, 17 Apr 2018 10:31:02 +0000 (11:31 +0100)]
tests/tcg/mips: include common mips hello-mips

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agotests/docker/Makefile.include: fix mipsel-cross dependancy
Alex Bennée [Mon, 11 Jun 2018 10:17:13 +0000 (11:17 +0100)]
tests/docker/Makefile.include: fix mipsel-cross dependancy

This got broken in commit 4319db7 but generally only shows up when you
try and do massive parallel builds on fresh machines.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agotests/tcg: enable building for MIPS
Alex Bennée [Tue, 17 Apr 2018 13:55:17 +0000 (14:55 +0100)]
tests/tcg: enable building for MIPS

This doesn't add any additional tests but enables building the
multiarch tests for MIPS using docker cross compilers. We don't have a
cross compiler for mips64 big endian though.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agotests/tcg: move MIPS specific tests into subdir
Alex Bennée [Thu, 5 Apr 2018 14:50:08 +0000 (15:50 +0100)]
tests/tcg: move MIPS specific tests into subdir

These only need to be built for MIPS guests.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agotests/tcg/arm: add fcvt test cases for AArch32/64
Alex Bennée [Fri, 13 Apr 2018 16:08:26 +0000 (17:08 +0100)]
tests/tcg/arm: add fcvt test cases for AArch32/64

This runs through the usual float to float conversions and crucially
also runs with ARM Alternative Half Precision Format.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agotests/tcg: enable building for AArch64
Alex Bennée [Wed, 9 May 2018 09:31:30 +0000 (10:31 +0100)]
tests/tcg: enable building for AArch64

We only have compilers for the (default) little endian variants.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agotests/tcg/arm: fix up test-arm-iwmmxt test
Alex Bennée [Fri, 13 Apr 2018 13:56:17 +0000 (14:56 +0100)]
tests/tcg/arm: fix up test-arm-iwmmxt test

We need to rename the source file to a .S so we can do a single-line
assemble and link invocation. We also specify the additional CFLAGS
for the compile as it's a non-standard ARM binary.

Signed-off-by: Alex Bennée <[email protected]>
[rth: force fpu configuration]
Signed-off-by: Richard Henderson <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
6 years agotests/tcg: enable building for ARM
Alex Bennée [Mon, 7 May 2018 20:53:43 +0000 (21:53 +0100)]
tests/tcg: enable building for ARM

This allows us to use the docker cross compiler image to build these
tests.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agotests/tcg: move ARM specific tests into subdir
Alex Bennée [Thu, 5 Apr 2018 14:45:32 +0000 (15:45 +0100)]
tests/tcg: move ARM specific tests into subdir

These only need to be built for ARM guests.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
6 years agotests/tcg/i386/test-i386: fix printf format
Alex Bennée [Fri, 13 Apr 2018 16:17:37 +0000 (17:17 +0100)]
tests/tcg/i386/test-i386: fix printf format

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agotests/tcg/i386/test-i386: use modern vector_size attributes
Alex Bennée [Fri, 13 Apr 2018 16:16:00 +0000 (17:16 +0100)]
tests/tcg/i386/test-i386: use modern vector_size attributes

The compiler complains about the old __mode__ style attributes.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agotests/tcg/x86_64: add Makefile.target
Alex Bennée [Tue, 17 Apr 2018 10:14:37 +0000 (11:14 +0100)]
tests/tcg/x86_64: add Makefile.target

The sources for x86_64 are shared in the i386 directory which will be
included thanks to TARGET_BASE_ARCH. However not all sources build so
we need to filter out the ones we can't build in the 64 bit world and
those that can't be built for 32 bit.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agotests/tcg/i386: add runner for test-i386-fprem
Alex Bennée [Tue, 10 Apr 2018 14:23:29 +0000 (15:23 +0100)]
tests/tcg/i386: add runner for test-i386-fprem

The runner needs to compare against a reference run. We also only run
this test when SPEED=slow as it takes a while.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agotests/tcg/i386: fix test-i386
Alex Bennée [Tue, 10 Apr 2018 14:16:45 +0000 (15:16 +0100)]
tests/tcg/i386: fix test-i386

We don't include anything from qemu itself for the build.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
6 years agotests/tcg/i386: Build fix for hello-i386
Fam Zheng [Fri, 8 Sep 2017 09:16:57 +0000 (17:16 +0800)]
tests/tcg/i386: Build fix for hello-i386

We have -Werror=missing-prototype, add a dummy prototype to avoid that
warning.

Signed-off-by: Fam Zheng <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
6 years agotests/tcg: enable building for i386
Alex Bennée [Tue, 17 Apr 2018 13:56:39 +0000 (14:56 +0100)]
tests/tcg: enable building for i386

While you can construct a compile command that does work using the
x86_64 host compiler that most people use this is flakey. Different
distros handle this is different ways so we default to using a known
good i386 compiler via docker.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agotests/tcg: move i386 specific tests into subdir
Alex Bennée [Thu, 5 Apr 2018 14:35:11 +0000 (15:35 +0100)]
tests/tcg: move i386 specific tests into subdir

These only need to be built for i386 guests. This includes a stub
tests/tcg/i386/Makfile.target which absorbs some of what was in
tests/tcg/Makefile.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
6 years agotests/tcg/multiarch: move most output to stdout
Alex Bennée [Tue, 24 Apr 2018 13:00:46 +0000 (14:00 +0100)]
tests/tcg/multiarch: move most output to stdout

The default test run outputs to stdout so it can be re-directed.
Errors are still reported to stderr.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
6 years agotests/tcg/multiarch: don't hard code paths/ports for linux-test
Alex Bennée [Fri, 8 Jun 2018 19:15:03 +0000 (20:15 +0100)]
tests/tcg/multiarch: don't hard code paths/ports for linux-test

The fixed path and ports get in the way of running our tests and
builds in parallel. Instead of using TESTPATH we use mkdtemp() and
instead of a fixed port we allow the kernel to assign one and query it
afterwards.

Ideally test directory creation should be common functionally across
all TCG tests but this could complicate an already huge patch series
so we mark it as a TODO for next time.

Signed-off-by: Alex Bennée <[email protected]>
6 years agotests/tcg/multiarch: enable additional linux-test tests
Alex Bennée [Thu, 19 Apr 2018 13:02:04 +0000 (14:02 +0100)]
tests/tcg/multiarch: enable additional linux-test tests

Un-comment the remaining tests.

I removed the itimer value tests because I'm fairly sure a re-arming
timer will always have a different value in it when you grab it.

I've also fixed up the clone thread flags as QEMU will only allow a
clone to use flags which match glibc. However the test is still racey
so it remains disabled by default - it can be run by passing any
additional parameters on the command line.

Signed-off-by: Alex Bennée <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
6 years agotests/tcg/multiarch: Build fix for linux-test
Fam Zheng [Fri, 8 Sep 2017 09:16:58 +0000 (17:16 +0800)]
tests/tcg/multiarch: Build fix for linux-test

To keep the compiler happy, and to fit in our buildsys flags:

- Make local functions "static"
- #ifdef out unused functions
- drop cutils/osdep dependencies

Signed-off-by: Fam Zheng <[email protected]>
[AJB: drop cutils/osdep dependencies]
Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
6 years agotests/tcg: move architecture independent tests into subdir
Alex Bennée [Thu, 5 Apr 2018 14:03:22 +0000 (15:03 +0100)]
tests/tcg: move architecture independent tests into subdir

We will want to build these for all supported guest architectures so
lets move them all into one place. We also drop test_path at this
point because it needs qemu utils and glib bits which is hard to
support for cross compiling.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
6 years agodocker: Makefile.include introduce DOCKER_SCRIPT
Alex Bennée [Fri, 6 Apr 2018 15:25:39 +0000 (16:25 +0100)]
docker: Makefile.include introduce DOCKER_SCRIPT

Define this in one place to make it easy to re-use.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
6 years agodocker: allow "cc" command to run in user context
Alex Bennée [Fri, 6 Apr 2018 15:23:26 +0000 (16:23 +0100)]
docker: allow "cc" command to run in user context

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Fam Zheng <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agodocker: extend "cc" command to accept compiler
Alex Bennée [Thu, 12 Apr 2018 16:18:12 +0000 (17:18 +0100)]
docker: extend "cc" command to accept compiler

When calling our cross-compilation images we want to call something
other than the default cc.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Fam Zheng <[email protected]>
6 years agodocker: Add "cc" subcommand
Alex Bennée [Thu, 12 Apr 2018 15:49:11 +0000 (16:49 +0100)]
docker: Add "cc" subcommand

Signed-off-by: Fam Zheng <[email protected]>
[AJB: add if args.paths check]
Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
6 years agoconfigure: set cross_cc_FOO for host compiler
Alex Bennée [Fri, 13 Apr 2018 15:15:07 +0000 (16:15 +0100)]
configure: set cross_cc_FOO for host compiler

We can build tests for the host system with the compiler that we have
selected.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
6 years agoconfigure: allow user to specify --cross-cc-cflags-foo=
Alex Bennée [Fri, 13 Apr 2018 10:07:58 +0000 (11:07 +0100)]
configure: allow user to specify --cross-cc-cflags-foo=

As an individual compiler may be able to support several targets with
the appropriate flags we need to expose this to the user as well.

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
6 years agoconfigure: move i386_cc to cross_cc_i386
Alex Bennée [Tue, 10 Apr 2018 11:19:40 +0000 (12:19 +0100)]
configure: move i386_cc to cross_cc_i386

Also dont assume x86_64 compiler can build i386 binaries.

Signed-off-by: Alex Bennée <[email protected]>
Tested-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
6 years agoconfigure: add support for --cross-cc-FOO
Alex Bennée [Wed, 4 Apr 2018 19:27:05 +0000 (20:27 +0100)]
configure: add support for --cross-cc-FOO

This allows us to specify cross compilers for our guests. This is
useful for building test images/programs. Currently we re-run the
compile test for each target. I couldn't think of a way to cache the
value for a given arch without getting messier configure code.

The cross compiler for the guest is visible to each target as
CROSS_CC_GUEST in config-target.mak. This is quoted to handle the case
of --cc="ccache gcc".

Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
6 years agodocker: docker.py wrap StringIO import for python3
Alex Bennée [Wed, 20 Jun 2018 14:45:42 +0000 (15:45 +0100)]
docker: docker.py wrap StringIO import for python3

Although the docker.py is nominally python2 we actually invoke it with
the configured python from the configure script.

Signed-off-by: Alex Bennée <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/cohuck/tags/s390x-20180619' into staging
Peter Maydell [Wed, 20 Jun 2018 08:51:30 +0000 (09:51 +0100)]
Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20180619' into staging

- cleanup in virtio-ccw
- accommodate guests using vfio-ccw without specifying unlimited
  prefetch, but actually working fine
- add cpu model for the z14 Model ZR1
- add support for pxelinux.cfg-style network booting to the s390x
  firmware

# gpg: Signature made Tue 19 Jun 2018 10:33:06 BST
# gpg:                using RSA key DECF6B93C6F02FAF
# gpg: Good signature from "Cornelia Huck <[email protected]>"
# gpg:                 aka "Cornelia Huck <[email protected]>"
# gpg:                 aka "Cornelia Huck <[email protected]>"
# gpg:                 aka "Cornelia Huck <[email protected]>"
# gpg:                 aka "Cornelia Huck <[email protected]>"
# Primary key fingerprint: C3D0 D66D C362 4FF6 A8C0  18CE DECF 6B93 C6F0 2FAF

* remotes/cohuck/tags/s390x-20180619:
  pc-bios/s390-ccw: Update the s390-netboot.img binary
  pc-bios/s390-ccw: Optimize the s390-netboot.img for size
  pc-bios/s390-ccw/net: Try to load pxelinux.cfg file accoring to the UUID
  pc-bios/s390-ccw/net: Add support for pxelinux-style config files
  pc-bios/s390-ccw/net: Update code for the latest changes in SLOF
  roms: Update SLOF submodule to current status
  pc-bios/s390-ccw: define loadparm length
  s390x/cpumodels: add z14 Model ZR1
  s390x/ipl: Try to detect Linux vs non Linux for initial IPL PSW
  vfio-ccw: remove orb.c64 (64 bit data addresses) check
  vfio-ccw: add force unlimited prefetch property
  virtio-ccw: clean up notify

Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/mcayland/tags/qemu-openbios-20180618' into...
Peter Maydell [Tue, 19 Jun 2018 17:29:16 +0000 (18:29 +0100)]
Merge remote-tracking branch 'remotes/mcayland/tags/qemu-openbios-20180618' into staging

qemu-openbios queue

# gpg: Signature made Mon 18 Jun 2018 19:28:08 BST
# gpg:                using RSA key 5BC2C56FAE0F321F
# gpg: Good signature from "Mark Cave-Ayland <[email protected]>"
# Primary key fingerprint: CC62 1AB9 8E82 200D 915C  C9C4 5BC2 C56F AE0F 321F

* remotes/mcayland/tags/qemu-openbios-20180618:
  Update OpenBIOS images to 8fe6f5f96f built from submodule.

Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/mcayland/tags/qemu-sparc-20180618' into staging
Peter Maydell [Tue, 19 Jun 2018 16:42:50 +0000 (17:42 +0100)]
Merge remote-tracking branch 'remotes/mcayland/tags/qemu-sparc-20180618' into staging

qemu-sparc queue

# gpg: Signature made Mon 18 Jun 2018 18:43:24 BST
# gpg:                using RSA key 5BC2C56FAE0F321F
# gpg: Good signature from "Mark Cave-Ayland <[email protected]>"
# Primary key fingerprint: CC62 1AB9 8E82 200D 915C  C9C4 5BC2 C56F AE0F 321F

* remotes/mcayland/tags/qemu-sparc-20180618:
  SPARC64: add icount support
  hw/sparc/sun4m: Fix problems with device introspection
  hw/sparc64/sun4u: Fix introspection by converting prom instance_init to realize

Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/rth/tags/pull-axp-20180618' into staging
Peter Maydell [Tue, 19 Jun 2018 15:57:43 +0000 (16:57 +0100)]
Merge remote-tracking branch 'remotes/rth/tags/pull-axp-20180618' into staging

Place parallel device properly, fixing vga

# gpg: Signature made Mon 18 Jun 2018 17:45:50 BST
# gpg:                using RSA key 64DF38E8AF7E215F
# gpg: Good signature from "Richard Henderson <[email protected]>"
# Primary key fingerprint: 7A48 1E78 868B 4DB6 A85A  05C0 64DF 38E8 AF7E 215F

* remotes/rth/tags/pull-axp-20180618:
  hw/isa/smc37c669: Change the parallel I/O base to 378H

Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging
Peter Maydell [Tue, 19 Jun 2018 15:04:43 +0000 (16:04 +0100)]
Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging

Block layer patches:

- Active mirror (blockdev-mirror copy-mode=write-blocking)
- bdrv_drain_*() fixes and test cases
- Fix crash with scsi-hd and drive_del

# gpg: Signature made Mon 18 Jun 2018 17:44:10 BST
# gpg:                using RSA key 7F09B272C88F2FD6
# gpg: Good signature from "Kevin Wolf <[email protected]>"
# Primary key fingerprint: DC3D EB15 9A9A F95D 3D74  56FE 7F09 B272 C88F 2FD6

* remotes/kevin/tags/for-upstream: (35 commits)
  iotests: Add test for active mirroring
  block/mirror: Add copy mode QAPI interface
  block/mirror: Add active mirroring
  job: Add job_progress_increase_remaining()
  block/mirror: Add MirrorBDSOpaque
  block/dirty-bitmap: Add bdrv_dirty_iter_next_area
  test-hbitmap: Add non-advancing iter_next tests
  hbitmap: Add @advance param to hbitmap_iter_next()
  block: Generalize should_update_child() rule
  block/mirror: Use source as a BdrvChild
  block/mirror: Wait for in-flight op conflicts
  block/mirror: Use CoQueue to wait on in-flight ops
  block/mirror: Convert to coroutines
  block/mirror: Pull out mirror_perform()
  block: fix QEMU crash with scsi-hd and drive_del
  test-bdrv-drain: Test graph changes in drain_all section
  block: Allow graph changes in bdrv_drain_all_begin/end sections
  block: ignore_bds_parents parameter for drain functions
  block: Move bdrv_drain_all_begin() out of coroutine context
  block: Allow AIO_WAIT_WHILE with NULL ctx
  ...

Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/armbru/tags/pull-monitor-2018-06-18' into staging
Peter Maydell [Tue, 19 Jun 2018 14:19:07 +0000 (15:19 +0100)]
Merge remote-tracking branch 'remotes/armbru/tags/pull-monitor-2018-06-18' into staging

Monitor patches for 2018-06-18

# gpg: Signature made Mon 18 Jun 2018 14:50:29 BST
# gpg:                using RSA key 3870B400EB918653
# gpg: Good signature from "Markus Armbruster <[email protected]>"
# gpg:                 aka "Markus Armbruster <[email protected]>"
# Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867  4E5F 3870 B400 EB91 8653

* remotes/armbru/tags/pull-monitor-2018-06-18:
  monitor: add lock to protect mon_fdsets
  monitor: move init global earlier
  monitor: remove event_clock_type
  monitor: fix comment for monitor_lock
  monitor: more comments on lock-free elements
  monitor: protect mon->fds with mon_lock
  monitor: rename out_lock to mon_lock

Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/kraxel/tags/input-20180618-pull-request' into...
Peter Maydell [Tue, 19 Jun 2018 13:34:06 +0000 (14:34 +0100)]
Merge remote-tracking branch 'remotes/kraxel/tags/input-20180618-pull-request' into staging

input: ps2 post_load fix.

# gpg: Signature made Mon 18 Jun 2018 11:18:30 BST
# gpg:                using RSA key 4CB6D8EED3E87138
# gpg: Good signature from "Gerd Hoffmann (work) <[email protected]>"
# gpg:                 aka "Gerd Hoffmann <[email protected]>"
# gpg:                 aka "Gerd Hoffmann (private) <[email protected]>"
# Primary key fingerprint: A032 8CFF B93A 17A7 9901  FE7D 4CB6 D8EE D3E8 7138

* remotes/kraxel/tags/input-20180618-pull-request:
  ps2: check PS2Queue wptr pointer in post_load routine

Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/kraxel/tags/vga-20180618-pull-request' into...
Peter Maydell [Tue, 19 Jun 2018 12:43:35 +0000 (13:43 +0100)]
Merge remote-tracking branch 'remotes/kraxel/tags/vga-20180618-pull-request' into staging

vga: add ramfb, print virglrenderer version

# gpg: Signature made Mon 18 Jun 2018 10:57:38 BST
# gpg:                using RSA key 4CB6D8EED3E87138
# gpg: Good signature from "Gerd Hoffmann (work) <[email protected]>"
# gpg:                 aka "Gerd Hoffmann <[email protected]>"
# gpg:                 aka "Gerd Hoffmann (private) <[email protected]>"
# Primary key fingerprint: A032 8CFF B93A 17A7 9901  FE7D 4CB6 D8EE D3E8 7138

* remotes/kraxel/tags/vga-20180618-pull-request:
  Add ramfb MAINTAINERS entry
  hw/display: add standalone ramfb device
  hw/display: add ramfb, a simple boot framebuffer living in guest ram
  configure: print virglrenderer version

Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/kraxel/tags/usb-20180618-pull-request' into...
Peter Maydell [Tue, 19 Jun 2018 11:58:06 +0000 (12:58 +0100)]
Merge remote-tracking branch 'remotes/kraxel/tags/usb-20180618-pull-request' into staging

usb: revert ccid / qom patches.

# gpg: Signature made Mon 18 Jun 2018 10:21:11 BST
# gpg:                using RSA key 4CB6D8EED3E87138
# gpg: Good signature from "Gerd Hoffmann (work) <[email protected]>"
# gpg:                 aka "Gerd Hoffmann <[email protected]>"
# gpg:                 aka "Gerd Hoffmann (private) <[email protected]>"
# Primary key fingerprint: A032 8CFF B93A 17A7 9901  FE7D 4CB6 D8EE D3E8 7138

* remotes/kraxel/tags/usb-20180618-pull-request:
  Revert "bus: do not unref the added child bus on realize"
  Revert "usb: release the created buses"
  Revert "usb-ccid: fix bus leak"

Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/dgibson/tags/ppc-for-3.0-20180618' into staging
Peter Maydell [Tue, 19 Jun 2018 10:15:27 +0000 (11:15 +0100)]
Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-3.0-20180618' into staging

ppc patch queue 2018-06-18

Next batch of ppc and spapr related patches for the 3.0 release.
    * Improved handling of Spectre/Meltdown mitigations for POWER8
    * Numerous Mac machine type cleanups and improvements
    * Cleanup to cpu realize/unrealize path for spapr
    * Create a place for machine-specific per-cpu information, and
      start moving some things to it
    * Assorted bugfixes

# gpg: Signature made Mon 18 Jun 2018 04:52:37 BST
# gpg:                using RSA key 6C38CACA20D9B392
# gpg: Good signature from "David Gibson <[email protected]>"
# gpg:                 aka "David Gibson (Red Hat) <[email protected]>"
# gpg:                 aka "David Gibson (ozlabs.org) <[email protected]>"
# gpg:                 aka "David Gibson (kernel.org) <[email protected]>"
# Primary key fingerprint: 75F4 6586 AE61 A66C C44E  87DC 6C38 CACA 20D9 B392

* remotes/dgibson/tags/ppc-for-3.0-20180618: (28 commits)
  spapr: fix xics_system_init() error path
  target/ppc, spapr: Move VPA information to machine_data
  ppc/pnv: introduce a pnv_chip_core_realize() routine
  spapr_cpu_core: introduce spapr_create_vcpu()
  spapr_cpu_core: add missing rollback on realization path
  spapr_cpu_core: fix potential leak in spapr_cpu_core_realize()
  spapr_cpu_core: convert last snprintf() to g_strdup_printf()
  pnv: Add cpu unrealize path
  pnv: Clean up cpu realize path
  pnv_core: Allocate cpu thread objects individually
  pnv: Fix some error handling cpu realize()
  spapr: Clean up cpu realize/unrealize paths
  sm501: Do not clear read only bits when writing registers
  mos6522: expose mos6522_update_irq() through MOS6522DeviceClass
  mos6522: remove additional interrupt flag filter from mos6522_update_irq()
  mos6522: only clear the shift register interrupt upon write
  xics_kvm: fix a build break
  mac_newworld: add PMU device
  adb: add property to disable direct reg 3 writes
  adb: fix read reg 3 byte ordering
  ...

Signed-off-by: Peter Maydell <[email protected]>
6 years agoMerge remote-tracking branch 'remotes/ehabkost/tags/python-next-pull-request' into...
Peter Maydell [Tue, 19 Jun 2018 09:10:40 +0000 (10:10 +0100)]
Merge remote-tracking branch 'remotes/ehabkost/tags/python-next-pull-request' into staging

Python queue, 2018-06-15

* Add avocado_qemu: functional/acceptance test infrastructure

# gpg: Signature made Fri 15 Jun 2018 20:12:20 BST
# gpg:                using RSA key 2807936F984DC5A6
# gpg: Good signature from "Eduardo Habkost <[email protected]>"
# Primary key fingerprint: 5A32 2FD5 ABC4 D3DB ACCF  D1AA 2807 936F 984D C5A6

* remotes/ehabkost/tags/python-next-pull-request:
  configure: Enable out-of-tree acceptance tests
  Acceptance tests: add Linux kernel boot and console checking test
  scripts/qemu.py: introduce set_console() method
  Acceptance tests: add quick VNC tests
  scripts/qemu.py: allow adding to the list of extra arguments
  Add functional/acceptance tests infrastructure
  Remove COPYING.PYTHON

Signed-off-by: Peter Maydell <[email protected]>
6 years agoUpdate OpenBIOS images to 8fe6f5f96f built from submodule.
Mark Cave-Ayland [Mon, 18 Jun 2018 18:21:43 +0000 (19:21 +0100)]
Update OpenBIOS images to 8fe6f5f96f built from submodule.

Signed-off-by: Mark Cave-Ayland <[email protected]>
6 years agoMerge remote-tracking branch 'mreitz/tags/pull-block-2018-06-18' into queue-block
Kevin Wolf [Mon, 18 Jun 2018 15:20:41 +0000 (17:20 +0200)]
Merge remote-tracking branch 'mreitz/tags/pull-block-2018-06-18' into queue-block

Block patches:
- Active mirror (blockdev-mirror copy-mode=write-blocking)

# gpg: Signature made Mon Jun 18 17:08:19 2018 CEST
# gpg:                using RSA key F407DB0061D5CF40
# gpg: Good signature from "Max Reitz <[email protected]>"
# Primary key fingerprint: 91BE B60A 30DB 3E88 57D1  1829 F407 DB00 61D5 CF40

* mreitz/tags/pull-block-2018-06-18:
  iotests: Add test for active mirroring
  block/mirror: Add copy mode QAPI interface
  block/mirror: Add active mirroring
  job: Add job_progress_increase_remaining()
  block/mirror: Add MirrorBDSOpaque
  block/dirty-bitmap: Add bdrv_dirty_iter_next_area
  test-hbitmap: Add non-advancing iter_next tests
  hbitmap: Add @advance param to hbitmap_iter_next()
  block: Generalize should_update_child() rule
  block/mirror: Use source as a BdrvChild
  block/mirror: Wait for in-flight op conflicts
  block/mirror: Use CoQueue to wait on in-flight ops
  block/mirror: Convert to coroutines
  block/mirror: Pull out mirror_perform()

Signed-off-by: Kevin Wolf <[email protected]>
6 years agoMerge tag 'tags/s390x-2018-06-18' into staging
Cornelia Huck [Mon, 18 Jun 2018 15:05:27 +0000 (17:05 +0200)]
Merge tag 'tags/s390x-2018-06-18' into staging

Add support for pxelinux.cfg-style network booting to the s390x firmware

# gpg: Signature made Mon 18 Jun 2018 03:59:06 PM CEST
# gpg:                using RSA key 2ED9D774FE702DB5
# gpg: Good signature from "Thomas Huth <[email protected]>" [full]
# gpg:                 aka "Thomas Huth <[email protected]>" [undefined]
# gpg:                 aka "Thomas Huth <[email protected]>" [undefined]
# gpg:                 aka "Thomas Huth <[email protected]>" [unknown]

* tag 'tags/s390x-2018-06-18':
  pc-bios/s390-ccw: Update the s390-netboot.img binary
  pc-bios/s390-ccw: Optimize the s390-netboot.img for size
  pc-bios/s390-ccw/net: Try to load pxelinux.cfg file accoring to the UUID
  pc-bios/s390-ccw/net: Add support for pxelinux-style config files
  pc-bios/s390-ccw/net: Update code for the latest changes in SLOF
  roms: Update SLOF submodule to current status
  pc-bios/s390-ccw: define loadparm length

Signed-off-by: Cornelia Huck <[email protected]>
6 years agoiotests: Add test for active mirroring
Max Reitz [Wed, 13 Jun 2018 18:18:23 +0000 (20:18 +0200)]
iotests: Add test for active mirroring

Signed-off-by: Max Reitz <[email protected]>
Reviewed-by: Fam Zheng <[email protected]>
Reviewed-by: Alberto Garcia <[email protected]>
Message-id: 20180613181823[email protected]
Signed-off-by: Max Reitz <[email protected]>
6 years agoblock/mirror: Add copy mode QAPI interface
Max Reitz [Wed, 13 Jun 2018 18:18:22 +0000 (20:18 +0200)]
block/mirror: Add copy mode QAPI interface

This patch allows the user to specify whether to use active or only
background mode for mirror block jobs.  Currently, this setting will
remain constant for the duration of the entire block job.

Signed-off-by: Max Reitz <[email protected]>
Reviewed-by: Alberto Garcia <[email protected]>
Message-id: 20180613181823[email protected]
Signed-off-by: Max Reitz <[email protected]>
6 years agoblock/mirror: Add active mirroring
Max Reitz [Wed, 13 Jun 2018 18:18:21 +0000 (20:18 +0200)]
block/mirror: Add active mirroring

This patch implements active synchronous mirroring.  In active mode, the
passive mechanism will still be in place and is used to copy all
initially dirty clusters off the source disk; but every write request
will write data both to the source and the target disk, so the source
cannot be dirtied faster than data is mirrored to the target.  Also,
once the block job has converged (BLOCK_JOB_READY sent), source and
target are guaranteed to stay in sync (unless an error occurs).

Active mode is completely optional and currently disabled at runtime.  A
later patch will add a way for users to enable it.

Signed-off-by: Max Reitz <[email protected]>
Reviewed-by: Fam Zheng <[email protected]>
Message-id: 20180613181823[email protected]
Signed-off-by: Max Reitz <[email protected]>
6 years agojob: Add job_progress_increase_remaining()
Max Reitz [Wed, 13 Jun 2018 18:18:20 +0000 (20:18 +0200)]
job: Add job_progress_increase_remaining()

Signed-off-by: Max Reitz <[email protected]>
Message-id: 20180613181823[email protected]
Reviewed-by: Kevin Wolf <[email protected]>
Signed-off-by: Max Reitz <[email protected]>
6 years agoblock/mirror: Add MirrorBDSOpaque
Max Reitz [Wed, 13 Jun 2018 18:18:19 +0000 (20:18 +0200)]
block/mirror: Add MirrorBDSOpaque

This will allow us to access the block job data when the mirror block
driver becomes more complex.

Signed-off-by: Max Reitz <[email protected]>
Reviewed-by: Fam Zheng <[email protected]>
Message-id: 20180613181823[email protected]
Signed-off-by: Max Reitz <[email protected]>
6 years agoblock/dirty-bitmap: Add bdrv_dirty_iter_next_area
Max Reitz [Wed, 13 Jun 2018 18:18:18 +0000 (20:18 +0200)]
block/dirty-bitmap: Add bdrv_dirty_iter_next_area

This new function allows to look for a consecutively dirty area in a
dirty bitmap.

Signed-off-by: Max Reitz <[email protected]>
Reviewed-by: Fam Zheng <[email protected]>
Reviewed-by: John Snow <[email protected]>
Message-id: 20180613181823[email protected]
Signed-off-by: Max Reitz <[email protected]>
6 years agotest-hbitmap: Add non-advancing iter_next tests
Max Reitz [Wed, 13 Jun 2018 18:18:17 +0000 (20:18 +0200)]
test-hbitmap: Add non-advancing iter_next tests

Add a function that wraps hbitmap_iter_next() and always calls it in
non-advancing mode first, and in advancing mode next.  The result should
always be the same.

By using this function everywhere we called hbitmap_iter_next() before,
we should get good test coverage for non-advancing hbitmap_iter_next().

Signed-off-by: Max Reitz <[email protected]>
Reviewed-by: Fam Zheng <[email protected]>
Reviewed-by: John Snow <[email protected]>
Message-id: 20180613181823[email protected]
Signed-off-by: Max Reitz <[email protected]>
6 years agohbitmap: Add @advance param to hbitmap_iter_next()
Max Reitz [Wed, 13 Jun 2018 18:18:16 +0000 (20:18 +0200)]
hbitmap: Add @advance param to hbitmap_iter_next()

This new parameter allows the caller to just query the next dirty
position without moving the iterator.

Signed-off-by: Max Reitz <[email protected]>
Reviewed-by: Fam Zheng <[email protected]>
Reviewed-by: John Snow <[email protected]>
Message-id: 20180613181823[email protected]
Signed-off-by: Max Reitz <[email protected]>
6 years agoblock: Generalize should_update_child() rule
Max Reitz [Wed, 13 Jun 2018 18:18:15 +0000 (20:18 +0200)]
block: Generalize should_update_child() rule

Currently, bdrv_replace_node() refuses to create loops from one BDS to
itself if the BDS to be replaced is the backing node of the BDS to
replace it: Say there is a node A and a node B.  Replacing B by A means
making all references to B point to A.  If B is a child of A (i.e. A has
a reference to B), that would mean we would have to make this reference
point to A itself -- so we'd create a loop.

bdrv_replace_node() (through should_update_child()) refuses to do so if
B is the backing node of A.  There is no reason why we should create
loops if B is not the backing node of A, though.  The BDS graph should
never contain loops, so we should always refuse to create them.

If B is a child of A and B is to be replaced by A, we should simply
leave B in place there because it is the most sensible choice.

A more specific argument would be: Putting filter drivers into the BDS
graph is basically the same as appending an overlay to a backing chain.
But the main child BDS of a filter driver is not "backing" but "file",
so restricting the no-loop rule to backing nodes would fail here.

Signed-off-by: Max Reitz <[email protected]>
Reviewed-by: Fam Zheng <[email protected]>
Reviewed-by: Alberto Garcia <[email protected]>
Message-id: 20180613181823[email protected]
Signed-off-by: Max Reitz <[email protected]>
6 years agoblock/mirror: Use source as a BdrvChild
Max Reitz [Wed, 13 Jun 2018 18:18:14 +0000 (20:18 +0200)]
block/mirror: Use source as a BdrvChild

With this, the mirror_top_bs is no longer just a technically required
node in the BDS graph but actually represents the block job operation.

Also, drop MirrorBlockJob.source, as we can reach it through
mirror_top_bs->backing.

Signed-off-by: Max Reitz <[email protected]>
Reviewed-by: Fam Zheng <[email protected]>
Reviewed-by: Alberto Garcia <[email protected]>
Message-id: 20180613181823[email protected]
Signed-off-by: Max Reitz <[email protected]>
6 years agoblock/mirror: Wait for in-flight op conflicts
Max Reitz [Wed, 13 Jun 2018 18:18:13 +0000 (20:18 +0200)]
block/mirror: Wait for in-flight op conflicts

This patch makes the mirror code differentiate between simply waiting
for any operation to complete (mirror_wait_for_free_in_flight_slot())
and specifically waiting for all operations touching a certain range of
the virtual disk to complete (mirror_wait_on_conflicts()).

Signed-off-by: Max Reitz <[email protected]>
Reviewed-by: Fam Zheng <[email protected]>
Message-id: 20180613181823[email protected]
Signed-off-by: Max Reitz <[email protected]>
6 years agoblock/mirror: Use CoQueue to wait on in-flight ops
Max Reitz [Wed, 13 Jun 2018 18:18:12 +0000 (20:18 +0200)]
block/mirror: Use CoQueue to wait on in-flight ops

Attach a CoQueue to each in-flight operation so if we need to wait for
any we can use it to wait instead of just blindly yielding and hoping
for some operation to wake us.

A later patch will use this infrastructure to allow requests accessing
the same area of the virtual disk to specifically wait for each other.

Signed-off-by: Max Reitz <[email protected]>
Reviewed-by: Fam Zheng <[email protected]>
Message-id: 20180613181823[email protected]
Signed-off-by: Max Reitz <[email protected]>
6 years agoblock/mirror: Convert to coroutines
Max Reitz [Wed, 13 Jun 2018 18:18:11 +0000 (20:18 +0200)]
block/mirror: Convert to coroutines

In order to talk to the source BDS (and maybe in the future to the
target BDS as well) directly, we need to convert our existing AIO
requests into coroutine I/O requests.

Signed-off-by: Max Reitz <[email protected]>
Reviewed-by: Fam Zheng <[email protected]>
Message-id: 20180613181823[email protected]
Signed-off-by: Max Reitz <[email protected]>
6 years agoblock/mirror: Pull out mirror_perform()
Max Reitz [Wed, 13 Jun 2018 18:18:10 +0000 (20:18 +0200)]
block/mirror: Pull out mirror_perform()

When converting mirror's I/O to coroutines, we are going to need a point
where these coroutines are created.  mirror_perform() is going to be
that point.

Signed-off-by: Max Reitz <[email protected]>
Reviewed-by: Fam Zheng <[email protected]>
Reviewed-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Reviewed-by: Jeff Cody <[email protected]>
Reviewed-by: Alberto Garcia <[email protected]>
Message-id: 20180613181823[email protected]
Signed-off-by: Max Reitz <[email protected]>
6 years agomonitor: add lock to protect mon_fdsets
Peter Xu [Fri, 8 Jun 2018 03:55:11 +0000 (11:55 +0800)]
monitor: add lock to protect mon_fdsets

Introduce a new global big lock for mon_fdsets.  Take it where needed.

The monitor_fdset_get_fd() handling is a bit tricky: now we need to call
qemu_mutex_unlock() which might pollute errno, so we need to make sure
the correct errno be passed up to the callers.  To make things simpler,
we let monitor_fdset_get_fd() return the -errno directly when error
happens, then in qemu_open() we move it back into errno.

Reviewed-by: Stefan Hajnoczi <[email protected]>
Reviewed-by: Markus Armbruster <[email protected]>
Signed-off-by: Peter Xu <[email protected]>
Message-Id: <20180608035511[email protected]>
Signed-off-by: Markus Armbruster <[email protected]>
6 years agomonitor: move init global earlier
Peter Xu [Fri, 8 Jun 2018 03:55:10 +0000 (11:55 +0800)]
monitor: move init global earlier

Before this patch, monitor fd helpers might be called even earlier than
monitor_init_globals().  This can be problematic.

After previous work, now monitor_init_globals() does not depend on
accelerator initialization any more.  Call it earlier (before CLI
parsing; that's where the monitor APIs might be called) to make sure it
is called before any of the monitor APIs.

Suggested-by: Markus Armbruster <[email protected]>
Reviewed-by: Stefan Hajnoczi <[email protected]>
Reviewed-by: Markus Armbruster <[email protected]>
Signed-off-by: Peter Xu <[email protected]>
Message-Id: <20180608035511[email protected]>
Signed-off-by: Markus Armbruster <[email protected]>
This page took 0.096728 seconds and 4 git commands to generate.