Commit Graph

41639 Commits

Author SHA1 Message Date
Yuri Pudgorodskiy d697e30cff qga: guest exec functionality
Guest-exec rewritten in platform-independent style with glib spawn.

Child process is spawn asynchronously and exit status can later
be picked up by guest-exec-status command.

stdin/stdout/stderr of the child now is redirected to /dev/null
Later we will add ability to specify stdin in guest-exec command
and to get collected stdout/stderr with guest-exec-status.

Signed-off-by: Yuri Pudgorodskiy <yur@virtuozzo.com>
Signed-off-by: Denis V. Lunev <den@openvz.org>
CC: Michael Roth <mdroth@linux.vnet.ibm.com>
* use g_new0 in place of g_malloc for GuestExec struct
* commit msg spelling fixes
* s/inp-data/input-data
* document capture-input mode as false by default
* use GetProcessId() for pids on w32 instead of casting HANDLE
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2015-10-19 18:31:53 -05:00
Denis V. Lunev b4fe97c823 qga: drop guest_file_init helper and replace it with static initializers
This just makes code shorter and better.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Signed-off-by: Yuri Pudgorodskiy <yur@virtuozzo.com>
Reviewed-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Signed-off-by: Denis V. Lunev <den@openvz.org>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2015-10-19 18:31:53 -05:00
Marc-André Lureau 62c39b307b tests: add a local test for guest agent
Add some local guest agent tests, as it is better than nothing, only
when CONFIG_POSIX (using unix sockets).

With the QGA_TEST_SIDE_EFFECTING environment variable, it will include
tests with side effects, such as freezing/thawing the FS or changing the
time.

(a better test would involve a managed VM (or container), but it might
be better to leave that off to autotest/avocado)

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
* use mkdtemp() in placeof g_mkdtemp() for glib 2.22 compat
* drop redundant/conflicting compat defines for
  g_assert_{true,false}, since glib-compat has them now.
* build fixes for OSX: use PRId64 instead of glib formats, drop
  g_spawn_default usage for glib compat
* assert connect_qga() doesn't fail
* only enable test-qga for linux hosts
* allow get-memory-block-info* to fail
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2015-10-19 18:30:50 -05:00
Michael Roth f693fe6ef4 qga: guest-get-memory-blocks shouldn't fail for unexposed memory blocks
Some guests don't expose memory blocks via sysfs at all. This
shouldn't be a failure, instead just return an empty list. For
other access failures we still report an error.

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2015-10-19 18:28:07 -05:00
Marc-André Lureau 8a0b5421a0 glib-compat: add 2.38/2.40/2.46 asserts
Those are mostly useful for writing tests.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Claudio Fontana <claudio.fontana@huawei.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2015-10-19 18:28:06 -05:00
Marc-André Lureau dc47995e52 qtest: add a few fd-level qmp helpers
Add a few functions to interact with qmp via a simple fd.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2015-10-19 18:28:06 -05:00
Marc-André Lureau 6eaeae37a5 qga: do not override configuration verbosity
Move the default verbosity settings before loading the configuration
file, or it will overwrite it. Found thanks to writing qga tests :)

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2015-10-19 18:28:06 -05:00
Marc-André Lureau 8e34bf364a qga: add QGA_CONF environment variable
Having a environment variable allows to override default configuration
path, useful for testing. Note that this can't easily be an argument,
since loading config is done before parsing the arguments.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2015-10-19 18:28:06 -05:00
Markus Armbruster f3a06403b8 qga: Use g_new() & friends where that makes obvious sense
g_new(T, n) is neater than g_malloc(sizeof(T) * n).  It's also safer,
for two reasons.  One, it catches multiplication overflowing size_t.
Two, it returns T * rather than void *, which lets the compiler catch
more type errors.

This commit only touches allocations with size arguments of the form
sizeof(T).  Same Coccinelle semantic patch as in commit b45c03f.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2015-10-19 18:28:06 -05:00
Michael Roth fafcaf1d74 build: qemu-ga: add 'qemu-ga' build target for w32
Currently POSIX builds rely on 'qemu-ga' target to do qga-only
distributable build. On w32, as with most standalone binary targets,
we rely on 'qemu-ga.exe' target.

Unlike with POSIX, qemu-ga for w32 has a number of related targets
such as VSS DLL and MSI package. We can do the full distributable
qga-only build on w32 with:

  make qemu-ga.exe

or:

  make msi

To make that work, we tie VSS dependencies onto qemu-ga.exe.
However, in reality the DLL isn't part of the binary, so we use a
filter to pull them out of the LINK recipe, which attempts to link
against prereqs for binary targets. Additionally, it could be argued
that VSS is a separate distributable, and shouldn't be implied by
qemu-ga.exe binary target.

To avoid this, we can tie the VSS dependencies only to the 'msi'
target, but that would make it impossible to do a qga-only build of
the w32 distributable without building the 'msi' package, which was
supported in the past.

An alternative approach is to add a new target to build the whole
distributable. w32 allows us to use the same build target we use
on POSIX, 'qemu-ga', since the current binary-only target on w32
is 'qemu-ga.exe'.

To further simplify the build, we also make 'qemu-ga' build the MSI
package if the appropriate ./configure options are set, making the
full qga-only build the same on both POSIX and w32: `make qemu-ga`

Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2015-10-19 18:28:06 -05:00
Peter Maydell 26c7be8426 Xen 2015-10-19
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.12 (GNU/Linux)
 
 iQIcBAABAgAGBQJWJMTFAAoJEIlPj0hw4a6QnPgQANqbKBtEUA5Hib4zhwW3ldM0
 zApXm/3V3E/Pmr8Z8TpCRJtSCHPVNDPXzyrb+oXtlYdxihsKZar+uA4aXFO1sS3o
 ZsRzQI+jb94jvlAxvX7N1DdKD06lRDzHvllyykt/01Hrz36mleN16PoGCFQISwdZ
 JbphVW0ekqA0DI+oBoz89Yvwz4ax/wpUHhNXvahRff7YidxoVTev5X8bzrKbtesa
 TEtgGznYmcxzR5SEsoz3rLPAno8rmov1XQ3+oWwVRWJcNISxypp9ComEjJq3vfvH
 j71LnDULmc5NxhAJ+7D1S1di47AKOTTyYTuNrBzMY1VsBG6iR57h6p2tsdOAnNo3
 JBN8f81jYSAW9H6LMr9br/KaXl+2Ft7iKTjacQJT/N9Jvm/K8uV2HW+Ktja+dsRe
 e/YusNpGGGuZUDIrcQm64sxv98IDq3kgK+Jhxaqo5fTp9l1baWwLM3B44AbylVN7
 zBsjgTJsUGyGCdnB7vfjMQ1uLpHE2d48GM3AjFGHvns9yyZOScPkWYXL03QhzllM
 KjRRb3MlwDVzX72SaDx2hKLe/7MNIfQmwb3AJtx+rGcuWMPcBuYMNwtF0JE1EOz2
 pb+Cw1FCWupcTaGWeL1miz63eoJKKt4TNMfFtXrJZLHmuYKgZIesJIHss6/BHMQk
 oiTih0U3O639+5snK5Be
 =EoYf
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/sstabellini/tags/2015-10-19-tag' into staging

Xen 2015-10-19

# gpg: Signature made Mon 19 Oct 2015 11:24:05 BST using RSA key ID 70E1AE90
# gpg: Good signature from "Stefano Stabellini <stefano.stabellini@eu.citrix.com>"

* remotes/sstabellini/tags/2015-10-19-tag:
  xen-platform: Ensure xen is enabled when initializing
  pc: Require xen when initializing xenfv machine

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2015-10-19 12:13:27 +01:00
Eduardo Habkost dbb7405d8c xen-platform: Ensure xen is enabled when initializing
The xen-platform code crashes on reset if the xen backend is not
initialized, because it calls xc_hvm_set_mem_type(). Ensure xen-platform
won't be created without initializing the xen backend.

The assert can't be triggered by the user because the device is not
hotpluggable, and the only code creating it (at pc_xen_hvm_init())
already checks xen_enabled().

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
2015-10-19 10:16:01 +00:00
Eduardo Habkost a88ae0d44b pc: Require xen when initializing xenfv machine
Without this check, the xen-platform device will crash on reset
if using the accel option with anything other than xen (e.g.
"-machine xenfv,accel=kvm").

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
2015-10-19 10:16:01 +00:00
Peter Maydell 526d5809a0 * KVM page size fix for PPC
* Support for Linux 4.4's new Hyper-V features
 * Eliminate g_slice from areas I maintain
 * checkpatch fix
 * Peter's cpu_reload_memory_map() cleanups
 * More changes to MAINTAINERS
 * Require Python 2.6
 * chardev creation fixes
 * PCI requester id for ARM KVM
 * cleanups and doc fixes
 * Allow customization of the Hyper-V vendor id
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQEcBAABCAAGBQJWJKYWAAoJEL/70l94x66D2yYH/Rw06gj9FFVEhfNODmJozCsK
 zRqRREo+VMo/lIGUSwzI+OCX+yUoivxnsJXchqunK0udPuQ5vZ+mVGyKedg8/SU+
 uqXzXMK7QgJK/w7qNA1n0OacNYSosZz9MpOwPgzSLPRda8FbtVKqPBOugSEs+Ymg
 APtiumz3DGWXUmt+vqRdgdiAvoGkefPODjjPjfSQFukg205KR88tf/b9oN8Z+kDW
 LtGqG9dUNS/60ulLNQdFInn3x5WpuGky5kk57f47QHpInNcN4/CH0BiguvYNkA9A
 aFFEWj5RsK7xkhcwSw6JIaSoWoTdrQVd4mB6+WTZN4tfGIIaoDeI6fp2MFmVpZU=
 =9Tf9
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging

* KVM page size fix for PPC
* Support for Linux 4.4's new Hyper-V features
* Eliminate g_slice from areas I maintain
* checkpatch fix
* Peter's cpu_reload_memory_map() cleanups
* More changes to MAINTAINERS
* Require Python 2.6
* chardev creation fixes
* PCI requester id for ARM KVM
* cleanups and doc fixes
* Allow customization of the Hyper-V vendor id

# gpg: Signature made Mon 19 Oct 2015 09:13:10 BST using RSA key ID 78C7AE83
# gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>"
# gpg:                 aka "Paolo Bonzini <pbonzini@redhat.com>"

* remotes/bonzini/tags/for-upstream: (49 commits)
  kvm: Allow the Hyper-V vendor ID to be specified
  kvm: Move x86-specific functions into target-i386/kvm.c
  kvm: Pass PCI device pointer to MSI routing functions
  hw/pci: Introduce pci_requester_id()
  kvm: Make KVM_CAP_SIGNAL_MSI globally available
  doc/rcu: fix g_free_rcu() usage example
  qemu-char: cleanup after completed conversion to cd->create
  qemu-char: convert ringbuf backend to data-driven creation
  qemu-char: convert vc backend to data-driven creation
  qemu-char: convert spice backend to data-driven creation
  qemu-char: convert console backend to data-driven creation
  qemu-char: convert stdio backend to data-driven creation
  qemu-char: convert testdev backend to data-driven creation
  qemu-char: convert braille backend to data-driven creation
  qemu-char: convert msmouse backend to data-driven creation
  qemu-char: convert mux backend to data-driven creation
  qemu-char: convert null backend to data-driven creation
  qemu-char: convert pty backend to data-driven creation
  qemu-char: convert UDP backend to data-driven creation
  qemu-char: convert socket backend to data-driven creation
  ...

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2015-10-19 10:52:39 +01:00
Peter Maydell aedc880617 Remove macros IO_READ_PROTO and IO_WRITE_PROTO
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.22 (GNU/Linux)
 
 iQIcBAABAgAGBQJWJKeJAAoJEEy22O7T6HE4IcwQAK8SJBhSa/suJhXSwn8M5SlU
 D6QBzb9RXUpfBKirOPfnKC/hQRL2FMpCBtL5eYOYv1j3skbZ63g+753WGEk8n4Ai
 ULhrkPM4yTOdP5GPDGH/rN9aW7QTlbSsw3NSp+GpKo96DEHpjYYfMyUWHf9rSuIQ
 Q7BZHra8ekTEfMRBUTxW+WvAVlCL60/kbr1gSTM386L4uC3Tk8keSSduy1eYNkTL
 xNXKF375RDpVeDrpAgAr1nRqrrWgJIOJ3y2mYfvUsBCOtPGb+R7fd+tiqX0L+4AM
 aA6g1kvyQdWqiI+tkK7f86Sd1q3RPbBTyONW2OREp4bIExvua954vJ87sqlKNG4F
 OR09RdEksJQhKvs6K+CsjgLxDjurNSmCJSKPAvbVSWXGui26C9eZJg7WL8bMn+BA
 xEK4RVKyn4FsnAmQfu+uDiOFRVsRQuH+O10In51P47ausAiiR78QbHhdBQ/xeCZ5
 hvYS7BuM+yMbhkD2nfqI7HHmQhFVHjP06ya9fM0z9qkZ0qnUyAUHphb/vaSeNp78
 zLUz/h8beN0X2LmUq4XqRUDACJ7VS6S7twGV97ipuNEJavUB8BmpmA/HLx5wOK2p
 tmeUMyBMWOmPG0UH+mpWPSFxcBf5P+/7KNMrQXuLnehiDLQjaVNitg4KJ68o/X9x
 A0kWZ1EpG7RdO4+AHAKV
 =ompD
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/kraxel/tags/pull-audio-20151019-1' into staging

Remove macros IO_READ_PROTO and IO_WRITE_PROTO

# gpg: Signature made Mon 19 Oct 2015 09:19:21 BST using RSA key ID D3E87138
# gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>"
# gpg:                 aka "Gerd Hoffmann <gerd@kraxel.org>"
# gpg:                 aka "Gerd Hoffmann (private) <kraxel@gmail.com>"

* remotes/kraxel/tags/pull-audio-20151019-1:
  Remove macros IO_READ_PROTO and IO_WRITE_PROTO

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2015-10-19 10:06:56 +01:00
Alex Williamson 1c4a55dbed kvm: Allow the Hyper-V vendor ID to be specified
According to Microsoft documentation, the signature in the standard
hypervisor CPUID leaf at 0x40000000 identifies the Vendor ID and is
for reporting and diagnostic purposes only.  We can therefore allow
the user to change it to whatever they want, within the 12 character
limit.  Add a new hv-vendor-id option to the -cpu flag to allow
for this, ex:

 -cpu host,hv_time,hv-vendor-id=KeenlyKVM

Link: http://msdn.microsoft.com/library/windows/hardware/hh975392
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Message-Id: <20151016153356.28104.48612.stgit@gimli.home>
[Adjust error message to match the property name, use error_report. - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-10-19 10:13:07 +02:00
Thomas Huth 28143b409f kvm: Move x86-specific functions into target-i386/kvm.c
The functions for checking xcrs, xsave and pit_state2 are
only used on x86, so they should reside in target-i386/kvm.c.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-Id: <1444933820-6968-1-git-send-email-thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-10-19 10:13:07 +02:00
Pavel Fedin dc9f06ca81 kvm: Pass PCI device pointer to MSI routing functions
In-kernel ITS emulation on ARM64 will require to supply requester IDs.
These IDs can now be retrieved from the device pointer using new
pci_requester_id() function.

This patch adds pci_dev pointer to KVM GSI routing functions and makes
callers passing it.

x86 architecture does not use requester IDs, but hw/i386/kvm/pci-assign.c
also made passing PCI device pointer instead of NULL for consistency with
the rest of the code.

Signed-off-by: Pavel Fedin <p.fedin@samsung.com>
Message-Id: <ce081423ba2394a4efc30f30708fca07656bc500.1444916432.git.p.fedin@samsung.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-10-19 10:13:07 +02:00
Pavel Fedin a05f686ff3 hw/pci: Introduce pci_requester_id()
For GICv3 ITS implementation we are going to use requester IDs in KVM IRQ
routing code. This patch introduces reusable convenient way to obtain this
ID from the device pointer. The new function is now used in some places,
where the same calculation was used.

MemTxAttrs.stream_id also renamed to requester_id in order to better
reflect semantics of the field.

Signed-off-by: Pavel Fedin <p.fedin@samsung.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Message-Id: <5814bcb03a297f198e796b13ed9c35059c52f89b.1444916432.git.p.fedin@samsung.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-10-19 10:13:07 +02:00
Pavel Fedin 50bf31b937 kvm: Make KVM_CAP_SIGNAL_MSI globally available
This capability is useful to determine whether we can use KVM ITS
emulation on ARM

Signed-off-by: Pavel Fedin <p.fedin@samsung.com>
Message-Id: <ff4ccb09b837d37defd639b885526949a25276de.1444916432.git.p.fedin@samsung.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-10-19 10:13:07 +02:00
Sergey Fedorov 9bda456e41 doc/rcu: fix g_free_rcu() usage example
The first argument of g_free_rcu() is a pointer to a structure.  But
foo_reclaim is used as a function name in the previous example along
with &foo as a pointer to the structure being reclaimed.  Make the
example consistent with the previous one.

Signed-off-by: Sergey Fedorov <serge.fdrv@gmail.com>
Message-Id: <1444837604-13712-1-git-send-email-serge.fdrv@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-10-19 10:13:07 +02:00
Paolo Bonzini 1c3af0f4f0 qemu-char: cleanup after completed conversion to cd->create
All backends now return errors through Error*, so the "Failed to
create chardev" placeholder error can only be reached if the backend
is not available (and only from the chardev-add QMP command; instead,
the -chardev command line option fails earlier).

Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-10-19 10:13:07 +02:00
Paolo Bonzini 479f09a130 qemu-char: convert ringbuf backend to data-driven creation
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-10-19 10:13:07 +02:00
Paolo Bonzini fa19d02539 qemu-char: convert vc backend to data-driven creation
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-10-19 10:13:07 +02:00
Paolo Bonzini 68145e178a qemu-char: convert spice backend to data-driven creation
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-10-19 10:13:07 +02:00
Paolo Bonzini 122e5ed441 qemu-char: convert console backend to data-driven creation
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-10-19 10:13:07 +02:00
Paolo Bonzini 8c84b25d97 qemu-char: convert stdio backend to data-driven creation
The backend now always returns errors via the Error* argument.
This avoids a double error message.  Before:

    qemu-system-x86_64: -chardev stdio,id=base: cannot use stdio with -daemonize
    qemu-system-x86_64: -chardev stdio,id=base: Failed to create chardev

After:

    qemu-system-x86_64: -chardev stdio,id=base: cannot use stdio with -daemonize

Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-10-19 10:13:07 +02:00
Paolo Bonzini 0498790173 qemu-char: convert testdev backend to data-driven creation
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-10-19 10:06:09 +02:00
Paolo Bonzini e47666b8d1 qemu-char: convert braille backend to data-driven creation
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-10-19 10:05:50 +02:00
Paolo Bonzini 96d885b93b qemu-char: convert msmouse backend to data-driven creation
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-10-19 10:05:50 +02:00
Paolo Bonzini 3c0e5a4a84 qemu-char: convert mux backend to data-driven creation
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-10-19 10:05:49 +02:00
Paolo Bonzini 0d64992b5d qemu-char: convert null backend to data-driven creation
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-10-19 10:05:49 +02:00
Paolo Bonzini c2e75a432b qemu-char: convert pty backend to data-driven creation
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-10-19 10:05:49 +02:00
Paolo Bonzini e79b80daa2 qemu-char: convert UDP backend to data-driven creation
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-10-19 10:05:49 +02:00
Paolo Bonzini dbba8d1be3 qemu-char: convert socket backend to data-driven creation
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-10-19 10:05:49 +02:00
Paolo Bonzini 20cbe7a279 qemu-char: convert pipe backend to data-driven creation
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-10-19 10:05:49 +02:00
Paolo Bonzini 38bfb1a63d qemu-char: convert parallel backend to data-driven creation
Conversion to Error * brings better error messages; before:

    qemu-system-x86_64: -chardev id=serial,backend=parallel,path=vl.c: Failed to create chardev

After:

    qemu-system-x86_64: -chardev id=serial,backend=parallel,path=vl.c: not a parallel port: Inappropriate ioctl for device

Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-10-19 10:05:35 +02:00
Nutan Shinde 8307c294a3 Remove macros IO_READ_PROTO and IO_WRITE_PROTO
Signed-off-by: Nutan Shinde <nutanshinde1992@gmail.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2015-10-19 09:03:53 +02:00
Peter Maydell 40fe17bea4 hw/ide/ahci.c: Fix shift left into sign bit
Avoid undefined behaviour from shifting left into the sign bit:

hw/ide/ahci.c:551:36: runtime error: left shift of 255 by 24 places cannot be represented in type 'int'

(Unfortunately C's promotion rules mean that in the expression
"some_uint8_t_variable << 24" the LHS gets promoted to signed
int before shifting.)

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: John Snow <jsnow@redhat.com>
2015-10-18 11:00:40 +01:00
Peter Maydell c737c7a608 Block layer patches
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.22 (GNU/Linux)
 
 iQIcBAABAgAGBQJWIP1yAAoJEH8JsnLIjy/WvQwQAJ9L9GaOochbHZ9Y2VjsRO07
 oqpd997p42GMGkcpTaEn1iyKgH4M+HN7iMu5FvISW/6HPVCgfRhLsrkOoBVTOhSv
 dM6PFFOxqI6fp/HsHbV1yt3M6hy01WP+kNuRmqPyjV3veEKtHgm7QzFqgA6LTXhT
 z6dLpl5qKxMd5gHzpJm91hql4I9nwVBDT4LKQpA3j0yO9WrZ6uGTHubFJ514raWC
 Kp1xxkuhIbyNdOs3lb7UAbAjCDX9am9+jorT7J1M1e97yZiYtuSbcElVnZDHI8hq
 0e8t/oQ3WdLP35Tg6n6XG37fhb6pMsC03wxWqXygoQbovLFTOHmPW0dSQhlhRcBm
 RZfJ77//QIVtKhrIPRzQMAy+AJUjBvQhcNDMOs1wfKsqEHgAHlFupwRxUK5DMOd7
 GYWnx3gYBGqdof1GXIzGhc024dsOmwlgluSQK4/Q7LGkF3DCeW960yItht41Lee0
 vDWAyLaa+SDujsTNye5LFbYEfScIOZR0bUzyfOHBdSsMiHgPElUV2f+XubAVGynC
 SCe4fQMciohpFPqVnkj8wBHl/AwPKR44sOqqQOEIXZ9pCI5qqebyuP1y/4druRLW
 UdzZ1rpJTExNATNJO8AEjXw1vKAhKZTh0UlQXIhtnYFB7vMMXEeVo1dxBrKffiSV
 m8Mb2lRdEhxApsoUPUxm
 =/ct2
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging

Block layer patches

# gpg: Signature made Fri 16 Oct 2015 14:36:50 BST using RSA key ID C88F2FD6
# gpg: Good signature from "Kevin Wolf <kwolf@redhat.com>"

* remotes/kevin/tags/for-upstream: (29 commits)
  blkdebug: Don't confuse image as backing file
  qcow2: Remove forward declaration of QCowAIOCB
  qemu-nbd: always compile in --aio=MODE option
  blockdev: always compile in -drive aio= parsing
  raw-posix: warn about BDRV_O_NATIVE_AIO if libaio is unavailable
  block: auto-generated node-names
  util - add automated ID generation utility
  blkverify: Fix BDS leak in .bdrv_open error path
  block: Allow bdrv_unref_child(bs, NULL)
  block: Remove bdrv_swap()
  block: Add and use bdrv_replace_in_backing_chain()
  blockjob: Store device name at job creation
  block: Implement bdrv_append() without bdrv_swap()
  block: Introduce parents list
  block-backend: Add blk_set_bs()
  block/io: Make bdrv_requests_pending() public
  block: Split bdrv_move_feature_fields()
  block: Manage backing file references in bdrv_set_backing_hd()
  block: Convert bs->backing_hd to BdrvChild
  block: Remove bdrv_open_image()
  ...

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2015-10-17 22:14:52 +01:00
Peter Maydell 6d57410a79 target-arm queue:
* break TBs after ISB instructions
  * more support code for future implementation of EL2 and 64-bit EL3
  * tell guest if KVM is enabled in SMBIOS version string
  * implement OSLAR/OSLSR system registers
  * provide better help text for Sharp PDA machine names
  * rename imx25_pdk to imx25-pdk (since it has never been released
    with the underscore-version name)
  * fix MMIO writes in zynq_slcr
  * implement MDCR_EL2
  * virt: allow the guest to configure PCI BARs with zero PCI addresses
  * fix breakpoint handling code
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABCAAGBQJWIQH/AAoJEDwlJe0UNgze6AkQAJ1Q1eCG7ryy5UnQ/xBItfBz
 StUgoWto+clOOaq5ljHJg8CLfNL9NN7eDsTCGDtBiMa0GTW8pjb8cF6EF2fUWz1m
 VuKtx6mmF7+tHf/sBfJovbSYQ3H9e74QioAgIp+XZsjgRNOhQ03HOTWfz1X40rVq
 GNLBEC4XgyKhZvR1YS+AMOJi+uGOwbG9/snhf5N1qKzo+pX+X/qsyeAxUPTjbR1x
 B7obH92zgdpuC8xGM6LdDPrlE85mVslGivsTTPeh9cw771IJZb6b4n5AXMGDZNsD
 pGUMSAqk6Zg8FoEiJIAPpvfhuN7VQ5PRmO4CYJB5ToIZpe0jAIZTBVuUjPbAXd6W
 rXnjuu88GbuiAWv/IeGS9r+R3yoLNH4VFbjeFfe7nKra4EuZ1xE7bsT5hJd/Pt/c
 53dODlnAZ4wVxTLvfOXaOzCfKH5cEn7mAJiLgGPGbhwNdVbUIFthrPLnCOOa0Tpx
 kSTvE1qQ1FsIjEuppyJd9lTdvbo04xrleX3Zfqi124AlH+bRG3dC50jr1F/WG232
 mj2gz/KIaVJJbs56+6YYaX9dyc5+CYzpKjiTobH4pcdB4+1FBb+3Dem7p29Nuagr
 0jnM1LsmFw2GxA3VCGvUOUSQsRaDHErrkRW1cqgGvZTDEg39iuk4ngyKo6lHHAB1
 esl9EkhWsJ7XxHr7JYAW
 =nXtn
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20151016' into staging

target-arm queue:
 * break TBs after ISB instructions
 * more support code for future implementation of EL2 and 64-bit EL3
 * tell guest if KVM is enabled in SMBIOS version string
 * implement OSLAR/OSLSR system registers
 * provide better help text for Sharp PDA machine names
 * rename imx25_pdk to imx25-pdk (since it has never been released
   with the underscore-version name)
 * fix MMIO writes in zynq_slcr
 * implement MDCR_EL2
 * virt: allow the guest to configure PCI BARs with zero PCI addresses
 * fix breakpoint handling code

# gpg: Signature made Fri 16 Oct 2015 14:56:15 BST using RSA key ID 14360CDE
# gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>"
# gpg:                 aka "Peter Maydell <pmaydell@gmail.com>"
# gpg:                 aka "Peter Maydell <pmaydell@chiark.greenend.org.uk>"

* remotes/pmaydell/tags/pull-target-arm-20151016:
  target-arm: Fix CPU breakpoint handling
  target-arm: Fix GDB breakpoint handling
  target-arm: implement arm_debug_target_el()
  hw/arm/virt: Allow zero address for PCI IO space
  target-arm: Add MDCR_EL2
  misc: zynq_slcr: Fix MMIO writes
  arm: imx25-pdk: Fix machine name
  target-arm: Provide model numbers for Sharp PDAs
  target-arm: Implement AArch64 OSLAR/OSLSR_EL1 sysregs
  hw/arm/virt: smbios: inform guest of kvm
  target-arm: Avoid calling arm_el_is_aa64() function for unimplemented EL
  target-arm: Break the TB after ISB to execute self-modified code correctly
  target-arm: Add missing 'static' attribute

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2015-10-17 12:31:33 +01:00
Peter Maydell 9c1f5bbc73 cocoa queue:
* fixes for compiler warnings
  * fix mouse cursor flickering
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABCAAGBQJWIMzqAAoJEDwlJe0UNgzeTM8P/2XTU4q0s2ICXRwvhe+tCd30
 Wq9F02WDyG/SztjIzBTPd+FWw015D30kjs/Eco1fR/fbsV6eSPdflBqcy4FvMuWD
 FlnHA0ZR31O41pj8NQySYrcUc5Q++tCNShBZ8M+lttI1wpSD3RkLcdq5cG3Kmi7/
 QJ/GintsfWc8dEHkLmjdzj4Mrk7Vp+L6+gdftTl40SkQjR8/y8pVwg64GG25UsaA
 E7QekzoIk0g8DDnrX8SLGJ5gc6wCVjkCQocsE93/LNftwrXToTxEJV72Lo8mFKXm
 rz+NJenuQ21+zHILggENnR1LBv/71KvovCAi+FNa7qbKq9nR0O+ESkbgckxa2MaA
 X6yuZ8nQEI3MP6hb/0cpuQ1pXD96BGU46SKzvPtoqHD+QbxLjThchpHuGw6esU+q
 y5AtKKHNcmjcJb2oQlIUsRMRr9couV+ccl5aiZyne7NjLRal5QTSmjVv64C0ehqk
 VFYfa+I0a5cFbVtG7F8tGjqVKDcbVdem+hVNH7jhI46dso0Szrk5RQjoI+G0WTag
 IyvC/oDHZBbSfweJnSWQ55Qn4YYMyxXCkMX0NFdCse+BUMwUjAJ4ULp5DCLBS9MT
 fbx+sFoQ/2WP0fEh7XYw6Ku3yWA1fB+R9NqoPtxn+cdMLx9DB16QJzSPjlfNS/pq
 wOZ42bpTzFwUA/04xRx8
 =mkIq
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/pmaydell/tags/pull-cocoa-20151016' into staging

cocoa queue:
 * fixes for compiler warnings
 * fix mouse cursor flickering

# gpg: Signature made Fri 16 Oct 2015 11:09:46 BST using RSA key ID 14360CDE
# gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>"
# gpg:                 aka "Peter Maydell <pmaydell@gmail.com>"
# gpg:                 aka "Peter Maydell <pmaydell@chiark.greenend.org.uk>"

* remotes/pmaydell/tags/pull-cocoa-20151016:
  ui/cocoa.m: blinky mouse cursor fix
  ui/cocoa.m: addRemovableDevicesMenuItems() warning fix
  ui/cocoa.m: eliminate normalWindow warning

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2015-10-16 19:11:59 +01:00
Peter Maydell 61f7901bb8 QAPI patches
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJWH0puAAoJEDhwtADrkYZT6/cP/3EfS/0TVI6tiU1pz/qm6SMy
 yFYeYw1WIHw9/x7esRMGZ977QfmuL1YhZ0sD4lmpIMcXwuzTd0/tuO0AydH7ffZj
 daL/rKSiQjdPCbebHol6rAFWHOxRBqz1g2jDgIM9FB4dEjqzbUydV7/9Mmo5b44v
 Hss0/neKn6zVHognv4aB/FMmjjsbzqgvHcour7T+rVIF9qial/hA2I6ioM2kCnt4
 jbkLUYYhb/rPNTlxjvT4vNsDfTiHScTeow6gRzd5LL5f1K7nTmRzqalsyZpRgpl+
 mDIrbPExN4O6gDZkKDk3pmwAI+vPTVNP868tSjqNJmUeCdUmT9EQ8LagZCbt0b/e
 aViwkRmuDv+FNPfkmgmhXY0RTaX9QDT3vwWSjOzLGvrFj66UfbepXfBWlOZnl7DQ
 KJU33CnEjkbu/viiCat4HjCGt1kF11s+YPlYWGXgyo1QkF54o8OmKGTjZOaEze+R
 gvIdtbBKYSwnyMbPo26OrwvTDBYfZ+F5j2MCpuDEgwE0CtKbtAOCc87PMRtunDoh
 xloQ3F6fuItC9dPUGDcDxvN9RG3uPNcOUU4aoS0/y7CHlHqlxOJz6AIlm57vO67B
 T/PAd1uW6T/yFJWCub0iAHCkvmui639eIz2VyPfuJJb2YAiWivULsLplOzS1cYE4
 N7J7BPGEATvaCCmmRPjd
 =CoJX
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/armbru/tags/pull-qapi-2015-10-15' into staging

QAPI patches

# gpg: Signature made Thu 15 Oct 2015 07:40:46 BST using RSA key ID EB918653
# gpg: Good signature from "Markus Armbruster <armbru@redhat.com>"
# gpg:                 aka "Markus Armbruster <armbru@pond.sub.org>"

* remotes/armbru/tags/pull-qapi-2015-10-15:
  qapi: Track location that created an implicit type
  qapi: Create simple union type member earlier
  qapi: Lazy creation of array types
  qapi: Don't use info as witness of implicit object type
  qapi: Drop redundant args-member-array test
  qapi: Drop redundant flat-union-reverse-define test
  qapi: Drop redundant returns-int test
  qapi: Move empty-enum to compile-time test
  qapi: Drop redundant alternate-good test
  qapi: Prepare for errors during check()
  qapi: Use predicate callback to determine visit filtering
  qapi: Fix regression with '-netdev help'

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2015-10-16 17:13:05 +01:00
Peter Maydell e95bdb4341 migration/next for 20151015
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABCAAGBQJWH0bXAAoJEPSH7xhYctcjCSYP/jxMPlLpmTWCAJra++buJ77d
 qgU/MWSIf3/9AGYrbz8Y5KUGlfMeB7ZYDICnFH9vF69fnHHwV9kgMqIS8yC8coih
 JeKT4pWQzhleIz5lFmHr7Krt5i5U0Q+SJ0aWQv489UkKEXlIDz2YM23yvaIQjMP4
 Ue6FkiHqoENsUznhnxsCjPMkR3a0zuVRqEseIUD+1lCjnLzgrYQks/lwXNtlX8HF
 7HbQl4MAKi3vRSxy0Tx1cyCOoJ8zdmIhwwlBL3dS8TYDODXFWYuJDWNqvNjoQiit
 lQ2M9TgsvPxjwaoujnP8/dUCcvnVNaDnAPwTxs/FjUCSQ1i4gzBOg3KNExs5Rhn4
 SHWMjgffDMWoHXLSQScz+qpVIPBgK4ETJk4TG0vgi7ZA0/XAE45R8fbMf66vpmhT
 F2s00UwCvZ14E614sdnCrhYPafb2f+HMRrpM6Rr5Yt1Q6EP30ZK1RKE6+SvGN6KJ
 kQFzNvXJn9F7ClXzuVmtBKRw3hgEJWv1wPqf+RXpotTc9IDxCFIk1YwD4FofgkdT
 A8sYcw1S3W0bcYHB/l85AW+1L+Mkwl3qtaOh3Y7orF/NwQfSfVTXxTMCrOqAXhBA
 zg9WsLJlTjVVdGUnEiqPFuDu/LaVUTd8A+qiNsqyiImw/WJnf8qFrmpDafbMq1YH
 zQichbdN7s7GVswYL6qC
 =IZs3
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/juanquintela/tags/migration/20151015' into staging

migration/next for 20151015

# gpg: Signature made Thu 15 Oct 2015 07:25:27 BST using RSA key ID 5872D723
# gpg: Good signature from "Juan Quintela <quintela@redhat.com>"
# gpg:                 aka "Juan Quintela <quintela@trasno.org>"

* remotes/juanquintela/tags/migration/20151015:
  migration: fix deadlock
  migration: announce VM's new home just before VM is runnable
  Migration: Generate the completed event only when we complete

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2015-10-16 15:47:59 +01:00
Sergey Fedorov 5d98bf8f38 target-arm: Fix CPU breakpoint handling
A QEMU breakpoint match is not definitely an architectural breakpoint
match. If an exception is generated unconditionally during translation,
it is hardly possible to ignore it in the debug exception handler.

Generate a call to a helper to check CPU breakpoints and raise an
exception only if any breakpoint matches architecturally.

Signed-off-by: Sergey Fedorov <serge.fdrv@gmail.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2015-10-16 14:48:56 +01:00
Sergey Fedorov e63a2d4d9e target-arm: Fix GDB breakpoint handling
GDB breakpoints have higher priority so they have to be checked first.
Should GDB breakpoint match, just return from the debug exception
handler.

Signed-off-by: Sergey Fedorov <serge.fdrv@gmail.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2015-10-16 14:48:56 +01:00
Fam Zheng 6b826af7b0 blkdebug: Don't confuse image as backing file
The word "backing file" nowadays refers to the backing_hd in the
external snapshot sense (i.e. bs->backing_hd), instead of the file sense
(bs->file). Correct the comment to use the right term.

Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2015-10-16 15:35:48 +02:00
Kevin Wolf e394621fbd qcow2: Remove forward declaration of QCowAIOCB
This struct doesn't exist any more since commit 3fc48d09 in August 2011,
it's about time to remove its forward declaration.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
2015-10-16 15:34:30 +02:00
Stefan Hajnoczi bb628e1af8 qemu-nbd: always compile in --aio=MODE option
The --aio=MODE option enables Linux AIO or Windows overlapped I/O.

The #ifdef CONFIG_LINUX_AIO was a layering violation that also prevented
Windows overlapped I/O from being used.

Now that raw-posix.c prints an error when Linux AIO has not been
compiled in, we can unconditionally compile the option into qemu-nbd.

After this patch qemu-nbd --aio=native works on Windows.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2015-10-16 15:34:30 +02:00
Stefan Hajnoczi 04d71322c1 blockdev: always compile in -drive aio= parsing
CONFIG_LINUX_AIO is an implementation detail of raw-posix.c.  Don't
mention CONFIG_LINUX_AIO in blockdev.c.  Let block drivers decide what
to do with BDRV_O_NATIVE_AIO.  They may print an error if it is
unsupported.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2015-10-16 15:34:30 +02:00