]> git.proxmox.com Git - qemu.git/log
qemu.git
11 years agotcg-ppc64: Implement movcond
Richard Henderson [Fri, 1 Feb 2013 21:00:05 +0000 (13:00 -0800)]
tcg-ppc64: Implement movcond

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agotcg-ppc64: Use ISEL for setcond
Richard Henderson [Tue, 2 Apr 2013 22:16:10 +0000 (15:16 -0700)]
tcg-ppc64: Use ISEL for setcond

There are a few simple special cases that should be handled first.
Break these out to subroutines to avoid code duplication.

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agotcg-ppc64: Use MFOCRF instead of MFCR
Richard Henderson [Tue, 2 Apr 2013 22:09:52 +0000 (15:09 -0700)]
tcg-ppc64: Use MFOCRF instead of MFCR

It takes half the cycles to read one CR register instead of all 8.
This is a backward compatible addition to the ISA, so chips prior
to Power 2.00 spec will simply continue to read the entire CR register.

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agotcg-ppc64: Cleanup i32 constants to tcg_out_cmp
Richard Henderson [Tue, 2 Apr 2013 21:14:23 +0000 (14:14 -0700)]
tcg-ppc64: Cleanup i32 constants to tcg_out_cmp

Nothing else in the call chain ensures that these
constants don't have garbage in the high bits.

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agotcg-ppc64: Use TCGType throughout compares
Richard Henderson [Tue, 2 Apr 2013 21:58:27 +0000 (14:58 -0700)]
tcg-ppc64: Use TCGType throughout compares

The optimization/bug being fixed is that tcg_out_cmp was not applying the
right type to loading a constant, in the case it can't be implemented
directly.  Rather than recomputing the TCGType enum from the arch64 bool,
pass around the original TCGType throughout.

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agotcg-ppc64: Use I constraint for mul
Richard Henderson [Thu, 31 Jan 2013 17:45:11 +0000 (09:45 -0800)]
tcg-ppc64: Use I constraint for mul

The mul_i32 pattern was loading non-16-bit constants into a register,
when we can get the middle-end to do that for us.  The mul_i64 pattern
was not considering that MULLI takes 64-bit inputs.

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agotcg-ppc64: Implement deposit
Richard Henderson [Thu, 31 Jan 2013 16:39:30 +0000 (08:39 -0800)]
tcg-ppc64: Implement deposit

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agotcg-ppc64: Handle constant inputs for some compound logicals
Richard Henderson [Mon, 4 Mar 2013 21:48:38 +0000 (13:48 -0800)]
tcg-ppc64: Handle constant inputs for some compound logicals

Since we have special code to handle and/or/xor with a constant,
apply the same to andc/orc/eqv with a constant.

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agotcg-ppc64: Implement compound logicals
Richard Henderson [Thu, 31 Jan 2013 15:49:13 +0000 (07:49 -0800)]
tcg-ppc64: Implement compound logicals

Mostly copied from the ppc32 port.

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agotcg-ppc64: Implement bswap64
Richard Henderson [Thu, 31 Jan 2013 05:41:54 +0000 (21:41 -0800)]
tcg-ppc64: Implement bswap64

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agotcg-ppc64: Implement bswap16 and bswap32
Richard Henderson [Thu, 31 Jan 2013 05:16:38 +0000 (21:16 -0800)]
tcg-ppc64: Implement bswap16 and bswap32

Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agotcg-ppc64: Implement rotates
Richard Henderson [Thu, 31 Jan 2013 03:24:06 +0000 (19:24 -0800)]
tcg-ppc64: Implement rotates

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agotcg-ppc64: Streamline qemu_ld/st insn selection
Richard Henderson [Sat, 2 Feb 2013 08:58:14 +0000 (00:58 -0800)]
tcg-ppc64: Streamline qemu_ld/st insn selection

Using a table to look up insns of the right width and sign.
Include support for the Power 2.06 LDBRX and STDBRX insns.

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agotcg-ppc64: Use automatic implementation of ext32u_i64
Richard Henderson [Thu, 4 Apr 2013 18:36:07 +0000 (13:36 -0500)]
tcg-ppc64: Use automatic implementation of ext32u_i64

The enhancements to and immediate obviate this.

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agotcg-ppc64: Improve and_i64 with constant
Richard Henderson [Sat, 2 Feb 2013 07:58:17 +0000 (23:58 -0800)]
tcg-ppc64: Improve and_i64 with constant

Use RLDICL and RLDICR.

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agotcg-ppc64: Improve and_i32 with constant
Richard Henderson [Sat, 2 Feb 2013 07:43:42 +0000 (23:43 -0800)]
tcg-ppc64: Improve and_i32 with constant

Use RLWINM

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agotcg-ppc64: Tidy or and xor patterns.
Richard Henderson [Sat, 2 Feb 2013 04:22:05 +0000 (20:22 -0800)]
tcg-ppc64: Tidy or and xor patterns.

Handle constants in common code; we'll want to reuse that later.

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agotcg-ppc64: Allow constant first argument to sub
Richard Henderson [Thu, 4 Apr 2013 14:30:20 +0000 (07:30 -0700)]
tcg-ppc64: Allow constant first argument to sub

Using SUBFIC for 16-bit signed constants.

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agotcg-ppc64: Improve constant add and sub ops.
Richard Henderson [Sat, 2 Feb 2013 00:17:17 +0000 (16:17 -0800)]
tcg-ppc64: Improve constant add and sub ops.

Improve constant addition -- previously we'd emit useless addi with 0.
Use new constraints to force the driver to pull full 64-bit constants
into a register.

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agotcg-ppc64: Rearrange integer constant constraints
Richard Henderson [Sat, 2 Feb 2013 00:51:53 +0000 (16:51 -0800)]
tcg-ppc64: Rearrange integer constant constraints

We'll need a zero, and Z makes more sense for that.  Make sure we
have a full compliment of signed and unsigned 16 and 32-bit tests.

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agotcg-ppc64: Cleanup tcg_out_movi
Richard Henderson [Thu, 31 Jan 2013 23:52:49 +0000 (15:52 -0800)]
tcg-ppc64: Cleanup tcg_out_movi

The test for using movi32 was sub-optimal for TCG_TYPE_I32, comparing
a signed 32-bit quantity against an unsigned 32-bit quantity.

When possible, use addi+oris for 32-bit unsigned constants.  Otherwise,
standardize on addi+oris+ori instead of addis+ori+rldicl.

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agotcg-ppc64: Fix setcond_i32
Richard Henderson [Tue, 2 Apr 2013 18:13:28 +0000 (11:13 -0700)]
tcg-ppc64: Fix setcond_i32

We weren't ignoring the high 32 bits during a NE comparison.

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agotcg-ppc64: Introduce and use TAI and SAI
Richard Henderson [Sat, 2 Feb 2013 00:08:50 +0000 (16:08 -0800)]
tcg-ppc64: Introduce and use TAI and SAI

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agotcg-ppc64: Introduce and use tcg_out_shri64
Richard Henderson [Fri, 1 Feb 2013 23:19:05 +0000 (15:19 -0800)]
tcg-ppc64: Introduce and use tcg_out_shri64

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agotcg-ppc64: Introduce and use tcg_out_shli64
Richard Henderson [Fri, 1 Feb 2013 23:12:14 +0000 (15:12 -0800)]
tcg-ppc64: Introduce and use tcg_out_shli64

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agotcg-ppc64: Introduce and use tcg_out_ext32u
Richard Henderson [Fri, 1 Feb 2013 23:06:30 +0000 (15:06 -0800)]
tcg-ppc64: Introduce and use tcg_out_ext32u

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agotcg-ppc64: Introduce and use tcg_out_rlw
Richard Henderson [Fri, 1 Feb 2013 23:00:45 +0000 (15:00 -0800)]
tcg-ppc64: Introduce and use tcg_out_rlw

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agotcg-ppc64: Use TCGReg everywhere
Richard Henderson [Fri, 1 Feb 2013 22:48:37 +0000 (14:48 -0800)]
tcg-ppc64: Use TCGReg everywhere

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agodisas: Disassemble all ppc insns for the host
Richard Henderson [Thu, 31 Jan 2013 19:16:21 +0000 (11:16 -0800)]
disas: Disassemble all ppc insns for the host

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
11 years agoqemu-char: another io_add_watch_poll fix
Paolo Bonzini [Wed, 10 Apr 2013 13:23:27 +0000 (15:23 +0200)]
qemu-char: another io_add_watch_poll fix

After attaching the source, we have to remove the reference we hold
to it, because we do not hold anymore a pointer to the source.

If we do not do this, removing the source will not finalize it and
will not drop the "real" I/O watch source.

This showed up when backporting the new flow control patches to older
versions of QEMU that still used select.  The whole select then failed
with EBADF (poll instead will reporting POLLNVAL on a single pollfd)
and QEMU froze.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 1365600207-21685-1-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agovirtio-serial: cleanup: remove qdev field.
KONRAD Frederic [Tue, 9 Apr 2013 12:53:36 +0000 (14:53 +0200)]
virtio-serial: cleanup: remove qdev field.

The qdev field is no longer needed, just drop it.

Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Tested-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Acked-by: Amit Shah <amit.shah@redhat.com>
Message-id: 1365512016-21944-8-git-send-email-fred.konrad@greensocs.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agovirtio-serial: cleanup: use QOM casts.
KONRAD Frederic [Tue, 9 Apr 2013 12:53:35 +0000 (14:53 +0200)]
virtio-serial: cleanup: use QOM casts.

As the virtio-serial-pci and virtio-serial-s390 are switched to the new
API, we can use QOM casts.

Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Tested-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Acked-by: Amit Shah <amit.shah@redhat.com>
Message-id: 1365512016-21944-7-git-send-email-fred.konrad@greensocs.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agovirtio-serial: cleanup: init and exit functions.
KONRAD Frederic [Tue, 9 Apr 2013 12:53:34 +0000 (14:53 +0200)]
virtio-serial: cleanup: init and exit functions.

This remove old init and exit function as they are no longer needed.

Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Tested-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Acked-by: Amit Shah <amit.shah@redhat.com>
Message-id: 1365512016-21944-6-git-send-email-fred.konrad@greensocs.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agovirtio-serial-ccw: switch to the new API.
KONRAD Frederic [Tue, 9 Apr 2013 12:53:33 +0000 (14:53 +0200)]
virtio-serial-ccw: switch to the new API.

Here the virtio-serial-ccw is modified for the new API. The device
virtio-serial-ccw extends virtio-ccw-device as before. It creates and
connects a virtio-serial during the init. The properties are not modified.

Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Tested-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Acked-by: Amit Shah <amit.shah@redhat.com>
Message-id: 1365512016-21944-5-git-send-email-fred.konrad@greensocs.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agovirtio-serial-s390: switch to the new API.
KONRAD Frederic [Tue, 9 Apr 2013 12:53:32 +0000 (14:53 +0200)]
virtio-serial-s390: switch to the new API.

Here the virtio-serial-s390 is modified for the new API. The device
virtio-serial-s390 extends virtio-s390-device as before. It creates and
connects a virtio-serial during the init. The properties are not
modified.

Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Tested-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Acked-by: Amit Shah <amit.shah@redhat.com>
Message-id: 1365512016-21944-4-git-send-email-fred.konrad@greensocs.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agovirtio-serial-pci: switch to the new API.
KONRAD Frederic [Tue, 9 Apr 2013 12:53:31 +0000 (14:53 +0200)]
virtio-serial-pci: switch to the new API.

Here the virtio-serial-pci is modified for the new API. The device
virtio-serial-pci extends virtio-pci. It creates and connects a
virtio-serial during the init. The properties are not changed.

Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Tested-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Acked-by: Amit Shah <amit.shah@redhat.com>
Message-id: 1365512016-21944-3-git-send-email-fred.konrad@greensocs.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agovirtio-serial: add the virtio-serial device.
KONRAD Frederic [Tue, 9 Apr 2013 12:53:30 +0000 (14:53 +0200)]
virtio-serial: add the virtio-serial device.

Create virtio-serial which extends virtio-device, so it can be connected
on virtio-bus.

Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Tested-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Acked-by: Amit Shah <amit.shah@redhat.com>
Message-id: 1365512016-21944-2-git-send-email-fred.konrad@greensocs.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agovirtio: fix broken aliases.
KONRAD Frederic [Tue, 9 Apr 2013 10:04:48 +0000 (12:04 +0200)]
virtio: fix broken aliases.

This fix the broken aliases, by renaming the devices.

So: * virtio-blk => virtio-blk-device.
    * virtio-balloon => virtio-balloon-device.
    * virtio-scsi => virtio-scsi-device.

All virtio-*-pci, virtio-*-s390, virtio-*-ccw didn't change.

Signed-off-by: KONRAD Frederic <fred.konrad@greensocs.com>
Message-id: 1365501888-14602-1-git-send-email-fred.konrad@greensocs.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agoUpdate Makefile to actually install the new efi-enabled nic roms that are used by...
Sander Eikelenboom [Mon, 8 Apr 2013 21:08:13 +0000 (23:08 +0200)]
Update Makefile to actually install the new efi-enabled nic roms that are used by default.

Commit c45e5b5b30ac1f5505725a7b36e68cedfce4f01f made a switch use the efi-enabled nic roms by default.
This patch updates the Makefile to install the roms so they can actually be used.

Signed-off-by: Sander Eikelenboom <linux@eikelenboom.it>
Message-id: 1365455293-7084-1-git-send-email-linux@eikelenboom.it
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agoacpi.h: make it self contained
Michael S. Tsirkin [Mon, 15 Apr 2013 08:12:50 +0000 (11:12 +0300)]
acpi.h: make it self contained

Headers shouldn't assume another header is included,
pull in everything necessary.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Message-id: 20130415081250.GA7374@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agotarget-mips: fix mipsdsp_mul_q15_q15 and tests for MAQ_SA_W_PHL/PHR
Petar Jovanovic [Mon, 15 Apr 2013 11:54:07 +0000 (13:54 +0200)]
target-mips: fix mipsdsp_mul_q15_q15 and tests for MAQ_SA_W_PHL/PHR

The operands for MAQ_SA_W.PHL/MAQ_SA_W.PHR must in specified format.
Otherwise, the results are unpredictable. Once the operands were corrected
in the tests (part of this change), a bug in mipsdsp_mul_q15_q15 became
visible.

This change corrects the tests for MAQ_SA_W.PHL/MAQ_SA_W.PHR and fixes
sign-related issue in mipsdsp_mul_q15_q15. It also removes unnecessary
comment.

Signed-off-by: Petar Jovanovic <petar.jovanovic@imgtec.com>
11 years agofpu: Correct edgecase in float64_muladd
Peter Maydell [Fri, 12 Apr 2013 15:37:52 +0000 (16:37 +0100)]
fpu: Correct edgecase in float64_muladd

In handling float64_muladd, if we end up doing a subtraction of the
product and c, and the 128 bit result of this subtraction happens to
have its most significant bit in bit 63, we weren't handling this
correctly when attempting to normalize to put the most significant
bit into bit 126.  We would end up doing a right shift by a negative
number (undefined behaviour in C) so at best we would return an
incorrect result to the guest.  MSB in bit 63 has to be handled as a
special case separately from MSB in 0..62 and MSB in 63..126.  (MSB
in 127 is not possible.)

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
11 years agoMerge remote-tracking branch 'stefanha/block' into staging
Anthony Liguori [Mon, 15 Apr 2013 13:02:41 +0000 (08:02 -0500)]
Merge remote-tracking branch 'stefanha/block' into staging

* stefanha/block:
  rbd: add an asynchronous flush
  iotests: Add 'check -ssh' option to test Secure Shell block device.
  block: ssh: Use libssh2_sftp_fsync (if supported by libssh2) to flush to disk.
  block: Add support for Secure Shell (ssh) block device.
  ide: refuse WIN_READ_NATIVE_MAX on empty device
  qemu-iotests: filter QEMU_PROG in 051.out
  qemu-iotests: Add test for -drive options
  qemu-iotests: A few more bdrv_pread/pwrite tests
  block: Introduce bdrv_pwritev() for qcow2_save_vmstate
  savevm: Implement block_writev_buffer()
  block: Introduce bdrv_writev_vmstate

Conflicts:
savevm.c

aliguori: add f->pos parameter to writev_buffer().

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agoMerge remote-tracking branch 'luiz/queue/qmp' into staging
Anthony Liguori [Mon, 15 Apr 2013 12:49:21 +0000 (07:49 -0500)]
Merge remote-tracking branch 'luiz/queue/qmp' into staging

# By Michal Novotny (2) and Eric Blake (1)
# Via Luiz Capitulino
* luiz/queue/qmp:
  qapi: use valid JSON in schema
  Revert "New QMP command query-cpu-max and HMP command cpu_max"
  New cpu-max field in query-machines QMP command output

Message-id: 1365775103-18737-1-git-send-email-lcapitulino@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agoMerge remote-tracking branch 'quintela/migration.next' into staging
Anthony Liguori [Mon, 15 Apr 2013 12:46:39 +0000 (07:46 -0500)]
Merge remote-tracking branch 'quintela/migration.next' into staging

# By Paolo Bonzini
# Via Juan Quintela
* quintela/migration.next:
  migration: simplify writev vs. non-writev logic
  migration: drop is_write complications
  migration: use a single I/O operation when writev_buffer is not defined
  migration: set f->is_write and flush in add_to_iovec

Message-id: 1365512961-15623-1-git-send-email-quintela@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agorbd: add an asynchronous flush
Josh Durgin [Fri, 29 Mar 2013 20:03:23 +0000 (13:03 -0700)]
rbd: add an asynchronous flush

The existing bdrv_co_flush_to_disk implementation uses rbd_flush(),
which is sychronous and causes the main qemu thread to block until it
is complete. This results in unresponsiveness and extra latency for
the guest.

Fix this by using an asynchronous version of flush.  This was added to
librbd with a special #define to indicate its presence, since it will
be backported to stable versions. Thus, there is no need to check the
version of librbd.

Implement this as bdrv_aio_flush, since it matches other aio functions
in the rbd block driver, and leave out bdrv_co_flush_to_disk when the
asynchronous version is available.

Reported-by: Oliver Francke <oliver@filoo.de>
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
11 years agoiotests: Add 'check -ssh' option to test Secure Shell block device.
Richard W.M. Jones [Tue, 9 Apr 2013 14:30:55 +0000 (15:30 +0100)]
iotests: Add 'check -ssh' option to test Secure Shell block device.

Note in order to run these tests on ssh, you must be running a local
ssh daemon, and that daemon must accept loopback connections, and
ssh-agent has to be set up to allow logins on the local daemon.  In
other words, the following command should just work without demanding
any passphrase:

 ssh localhost

Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
11 years agoblock: ssh: Use libssh2_sftp_fsync (if supported by libssh2) to flush to disk.
Richard W.M. Jones [Tue, 9 Apr 2013 14:30:54 +0000 (15:30 +0100)]
block: ssh: Use libssh2_sftp_fsync (if supported by libssh2) to flush to disk.

libssh2_sftp_fsync is an extension to libssh2 to support fsync(2) over
sftp, which is itself an extension of OpenSSH.

If both libssh2 and the ssh daemon support it, this will allow
bdrv_flush_to_disk to commit changes through to disk on the remote
server.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
11 years agoblock: Add support for Secure Shell (ssh) block device.
Richard W.M. Jones [Tue, 9 Apr 2013 14:30:53 +0000 (15:30 +0100)]
block: Add support for Secure Shell (ssh) block device.

  qemu-system-x86_64 -drive file=ssh://hostname/some/image

QEMU will ssh into 'hostname' and open '/some/image' which is made
available as a standard block device.

You can specify a username (ssh://user@host/...) and/or a port number
(ssh://host:port/...).  You can also use an alternate syntax using
properties (file.user, file.host, file.port, file.path).

Current limitations:

- Authentication must be done without passwords or passphrases, using
  ssh-agent.  Other authentication methods are not supported.

- Uses a single connection, instead of concurrent AIO with multiple
  SSH connections.

This is implemented using libssh2 on the client side.  The server just
requires a regular ssh daemon with sftp-server support.  Most ssh
daemons on Unix/Linux systems will work out of the box.

Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
Cc: Stefan Hajnoczi <stefanha@gmail.com>
Cc: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
11 years agoide: refuse WIN_READ_NATIVE_MAX on empty device
Stefan Hajnoczi [Fri, 5 Apr 2013 09:51:01 +0000 (11:51 +0200)]
ide: refuse WIN_READ_NATIVE_MAX on empty device

What is the highest addressable sector on an empty CD-ROM?  Nothing is
addressable so produce an error.

This patch prevents a divide-by-zero in ide_set_sector() since
s->sectors and s->heads would be 0.  Not to mention that a sector=-1
argument would be nonsense.

Note that WIN_READ_NATIVE_MAX can be triggered using hdparm -N 1024
/dev/cdrom.  The LBA bit will be set to 1 though, so the only easy way
to go down the ide_set_sector() CHS code path which divides by zero is
to comment out the s->select & 0x40 case for testing.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
11 years agoqemu-iotests: filter QEMU_PROG in 051.out
Stefan Hajnoczi [Mon, 15 Apr 2013 08:15:17 +0000 (10:15 +0200)]
qemu-iotests: filter QEMU_PROG in 051.out

Filter the name of the QEMU executable so the output can be diffed no
matter what QEMU_PROG is (e.g. qemu-system-x86_64).

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
11 years agoqemu-iotests: Add test for -drive options
Kevin Wolf [Tue, 9 Apr 2013 13:56:13 +0000 (15:56 +0200)]
qemu-iotests: Add test for -drive options

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
11 years agoqemu-iotests: A few more bdrv_pread/pwrite tests
Kevin Wolf [Fri, 5 Apr 2013 19:27:56 +0000 (21:27 +0200)]
qemu-iotests: A few more bdrv_pread/pwrite tests

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
11 years agoblock: Introduce bdrv_pwritev() for qcow2_save_vmstate
Kevin Wolf [Fri, 5 Apr 2013 19:27:55 +0000 (21:27 +0200)]
block: Introduce bdrv_pwritev() for qcow2_save_vmstate

Directly pass the QEMUIOVector on instead of linearising it.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
11 years agosavevm: Implement block_writev_buffer()
Kevin Wolf [Fri, 5 Apr 2013 19:27:54 +0000 (21:27 +0200)]
savevm: Implement block_writev_buffer()

Instead of breaking up RAM state into many small chunks, pass the iovec
to the block layer for better performance.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
11 years agoblock: Introduce bdrv_writev_vmstate
Kevin Wolf [Fri, 5 Apr 2013 19:27:53 +0000 (21:27 +0200)]
block: Introduce bdrv_writev_vmstate

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
11 years agoqjson: to_json() case QTYPE_QSTRING is buggy, rewrite
Markus Armbruster [Thu, 11 Apr 2013 16:07:21 +0000 (18:07 +0200)]
qjson: to_json() case QTYPE_QSTRING is buggy, rewrite

Known bugs in to_json():

* A start byte for a three-byte sequence followed by less than two
  continuation bytes is split into one-byte sequences.

* Start bytes for sequences longer than three bytes get misinterpreted
  as start bytes for three-byte sequences.  Continuation bytes beyond
  byte three become one-byte sequences.

  This means all characters outside the BMP are decoded incorrectly.

* One-byte sequences with the MSB are put into the JSON string
  verbatim when char is unsigned, producing invalid UTF-8.  When char
  is signed, they're replaced by "\\uFFFF" instead.

  This includes \xFE, \xFF, and stray continuation bytes.

* Overlong sequences are happily accepted, unless screwed up by the
  bugs above.

* Likewise, sequences encoding surrogate code points or noncharacters.

* Unlike other control characters, ASCII DEL is not escaped.  Except
  in overlong encodings.

My rewrite fixes them as follows:

* Malformed UTF-8 sequences are replaced.

  Except the overlong encoding \xC0\x80 of U+0000 is still accepted.
  Permits embedding NUL characters in C strings.  This trick is known
  as "Modified UTF-8".

* Sequences encoding code points beyond Unicode range are replaced.

* Sequences encoding code points beyond the BMP produce a surrogate
  pair.

* Sequences encoding surrogate code points are replaced.

* Sequences encoding noncharacters are replaced.

* ASCII DEL is now always escaped.

The replacement character is U+FFFD.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
11 years agocheck-qjson: Test noncharacters other than U+FFFE, U+FFFF in strings
Markus Armbruster [Thu, 11 Apr 2013 16:07:20 +0000 (18:07 +0200)]
check-qjson: Test noncharacters other than U+FFFE, U+FFFF in strings

Test cases cover the two noncharacters in the BMP.  Add tests for the
other 64 noncharacters.

Three existing test cases involve noncharacters U+FFFF and U+10FFFF.
Instead of deleting them as now duplicates, adjust them to use U+FFFC
and U+10FFFFD.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
11 years agocheck-qjson: Improve a few comments, delete bogus ones
Markus Armbruster [Thu, 11 Apr 2013 16:07:19 +0000 (18:07 +0200)]
check-qjson: Improve a few comments, delete bogus ones

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
11 years agounicode: New mod_utf8_codepoint()
Markus Armbruster [Thu, 11 Apr 2013 16:07:18 +0000 (18:07 +0200)]
unicode: New mod_utf8_codepoint()

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
11 years agoMerge branch 'mingw' of git://qemu.weilnetz.de/qemu
Aurelien Jarno [Sat, 13 Apr 2013 12:31:54 +0000 (14:31 +0200)]
Merge branch 'mingw' of git://qemu.weilnetz.de/qemu

* 'mingw' of git://qemu.weilnetz.de/qemu:
  qemu-timer: move timeBeginPeriod/timeEndPeriod to os-win32
  Release SMP restriction on Windows
  Ensure good ordering of memory instruction in cpu_exec
  Check effective suspension of TCG thread

11 years agotarget-i386: add AES-NI instructions
Aurelien Jarno [Sun, 31 Mar 2013 10:58:31 +0000 (12:58 +0200)]
target-i386: add AES-NI instructions

Reviewed-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
11 years agoaes: make Td[0-5] and Te[0-5] tables non static
Aurelien Jarno [Sun, 31 Mar 2013 10:58:31 +0000 (12:58 +0200)]
aes: make Td[0-5] and Te[0-5] tables non static

Remove static attribute to Td[0-5] and Te[0-5] tables so that they
can be used outside of aes.c. Change their type from u32 to uint32_t,
to keep the u32 udef local to aes.c. Prefix them with AES_ so that they
do not conflict with other symbols.

Reviewed-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
11 years agoaes: move aes.h from include/block to include/qemu
Aurelien Jarno [Sun, 31 Mar 2013 10:58:30 +0000 (12:58 +0200)]
aes: move aes.h from include/block to include/qemu

Move aes.h from include/block to include/qemu to show it can be reused
by other subsystems.

Cc: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
11 years agodisas/i386.c: disassemble aes-ni instructions
Aurelien Jarno [Sun, 31 Mar 2013 10:58:30 +0000 (12:58 +0200)]
disas/i386.c: disassemble aes-ni instructions

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
11 years agotarget-i386: enable PCLMULQDQ on Westmere CPU
Aurelien Jarno [Sun, 31 Mar 2013 10:58:30 +0000 (12:58 +0200)]
target-i386: enable PCLMULQDQ on Westmere CPU

The PCLMULQDQ instruction has been introduced on the Westmere CPU.

Reviewed-by: Richard Henderson <rth@twiddle.net>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
11 years agotarget-i386: add pclmulqdq instruction
Aurelien Jarno [Sun, 31 Mar 2013 10:58:30 +0000 (12:58 +0200)]
target-i386: add pclmulqdq instruction

Reviewed-by: Richard Henderson <rth@twiddle.net>
Reviewed-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
11 years agodisas/i386.c: disassemble pclmulqdq instruction
Aurelien Jarno [Sun, 31 Mar 2013 10:58:30 +0000 (12:58 +0200)]
disas/i386.c: disassemble pclmulqdq instruction

Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
11 years agosh7750: Change cpu field type to SuperHCPU
Andreas Färber [Tue, 9 Apr 2013 14:51:24 +0000 (16:51 +0200)]
sh7750: Change cpu field type to SuperHCPU

This brings us a step closer to QOM'ified SH7750 SoC and
fixes b350ab75 (target-sh4: Move PVR/PRR/CVR into SuperHCPUClass)
assuming SuperHCPU type for SUPERH_CPU_GET_CLASS().

Fix Coding Style issues while at it (indentation, braces).

Reported-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <afaerber@suse.de>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
11 years agoshix: Catch CPU initialization errors
Andreas Färber [Tue, 9 Apr 2013 14:51:23 +0000 (16:51 +0200)]
shix: Catch CPU initialization errors

Print an error message as done for the r2d machine and exit.

Signed-off-by: Andreas Färber <afaerber@suse.de>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
11 years agoMerge branch 'trivial-patches' of git://github.com/stefanha/qemu
Aurelien Jarno [Sat, 13 Apr 2013 11:50:34 +0000 (13:50 +0200)]
Merge branch 'trivial-patches' of git://github.com/stefanha/qemu

* 'trivial-patches' of git://github.com/stefanha/qemu:
  cpu-exec: Allow "-d exec" in non-debug builds (drop CONFIG_DEBUG_EXEC)
  Typo, spelling and grammatical fixes
  linux-user: pass correct host flags to eventfd2 call
  target-moxie: Fix VMState registration

11 years agoMerge branch 'tci' of git://qemu.weilnetz.de/qemu
Aurelien Jarno [Sat, 13 Apr 2013 11:50:06 +0000 (13:50 +0200)]
Merge branch 'tci' of git://qemu.weilnetz.de/qemu

* 'tci' of git://qemu.weilnetz.de/qemu:
  tci: Make tcg temporaries local to tcg_qemu_tb_exec
  tci: Delete unused tb_ret_addr
  tci: Avoid code before declarations
  tci: Use a local variable for env
  tci: Use 32-bit signed offsets to loads/stores

11 years agoMerge branch 'tcg-s390' of git://github.com/rth7680/qemu
Aurelien Jarno [Sat, 13 Apr 2013 11:49:20 +0000 (13:49 +0200)]
Merge branch 'tcg-s390' of git://github.com/rth7680/qemu

* 'tcg-s390' of git://github.com/rth7680/qemu:
  tcg-s390: Fix merge error in tgen_brcond
  tcg-s390: Use all 20 bits of the offset in tcg_out_mem
  tcg-s390: Use load-address for addition
  tcg-s390: Cleanup argument shuffling fixme in softmmu code
  tcg-s390: Use risbgz for andi
  tcg-s390: Remove constraint letters for and
  tcg-s390: Implement deposit opcodes
  tcg-s390: Implement movcond opcodes
  tcg-s390: Implement mulu2_i64 opcode
  tcg-s390: Implement add2/sub2 opcodes
  tcg-s390: Remove useless preprocessor conditions
  tcg-s390: Properly allocate a stack frame.
  tcg-s390: Fix movi

11 years agoqemu-timer: move timeBeginPeriod/timeEndPeriod to os-win32
Paolo Bonzini [Wed, 20 Feb 2013 13:43:31 +0000 (14:43 +0100)]
qemu-timer: move timeBeginPeriod/timeEndPeriod to os-win32

These are needed for any of the Win32 alarm timer implementations.
They are not tied to mmtimer exclusively.

Jacob tested this patch with both mmtimer and Win32 timers.

Cc: qemu-stable@nongnu.org
Tested-by: Jacob Kroon <jacob.kroon@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Stefan Weil <sw@weilnetz.de>
11 years agoRelease SMP restriction on Windows
Fabien Chouteau [Tue, 9 Apr 2013 16:06:55 +0000 (18:06 +0200)]
Release SMP restriction on Windows

The previous patches make QEMU SMP safe on Windows, we can now release
the restriction.

Signed-off-by: Fabien Chouteau <chouteau@adacore.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Stefan Weil <sw@weilnetz.de>
11 years agoEnsure good ordering of memory instruction in cpu_exec
Olivier Hainque [Tue, 9 Apr 2013 16:06:54 +0000 (18:06 +0200)]
Ensure good ordering of memory instruction in cpu_exec

The IO thread, when it senses cpu_single_env == 0, expects exit_request
to be checked later on. A compiler scheduling constraint is not strong
enough to ensure this on modern architecture. A memory fence is needed
as well.

Signed-off-by: Olivier Hainque <hainque@adacore.com>
Signed-off-by: Fabien Chouteau <chouteau@adacore.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Stefan Weil <sw@weilnetz.de>
11 years agoCheck effective suspension of TCG thread
Olivier Hainque [Tue, 9 Apr 2013 16:06:53 +0000 (18:06 +0200)]
Check effective suspension of TCG thread

On multi-core systems, SuspendThread does not guaranty immediate thread
suspension. We add busy loop to wait for effective thread suspension
after call to ThreadSuspend().

Signed-off-by: Fabien Chouteau <chouteau@adacore.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Stefan Weil <sw@weilnetz.de>
11 years agoqapi: use valid JSON in schema
Eric Blake [Wed, 10 Apr 2013 19:12:44 +0000 (13:12 -0600)]
qapi: use valid JSON in schema

* qapi-schema.json: JSON doesn't allow trailing commas.

Signed-off-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
11 years agoRevert "New QMP command query-cpu-max and HMP command cpu_max"
Michal Novotny [Tue, 9 Apr 2013 14:23:39 +0000 (16:23 +0200)]
Revert "New QMP command query-cpu-max and HMP command cpu_max"

This reverts commit 4d700430a20b3d53b7b15bc5f6666f7e570e3f2c as asked by
Luiz. The patch has been obsoleted by extending MachineInfo structure
by cpu-max field.

Signed-off-by: Michal Novotny <minovotn@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
11 years agoNew cpu-max field in query-machines QMP command output
Michal Novotny [Mon, 8 Apr 2013 16:21:02 +0000 (18:21 +0200)]
New cpu-max field in query-machines QMP command output

Alter the query-machines QMP command to output information about
maximum number of CPUs for each machine type with default value
set to 1 in case the number of max_cpus is not set.

Signed-off-by: Michal Novotny <minovotn@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
11 years agocpu-exec: Allow "-d exec" in non-debug builds (drop CONFIG_DEBUG_EXEC)
Peter Maydell [Thu, 11 Apr 2013 20:21:46 +0000 (21:21 +0100)]
cpu-exec: Allow "-d exec" in non-debug builds (drop CONFIG_DEBUG_EXEC)

The CONFIG_DEBUG_EXEC define compiles out a single qemu_log_mask()
call, which is a pretty trivial cost even for something in the main
cpu_exec() loop.  Having this be conditionally defined means that
'-d exec' on a non-debug build will silently do nothing.  Drop the
define and the configure machinery that sets it, in favour of just
always allowing this log option to be enabled at runtime.  As a
concession to the mainloopiness, we use qemu_loglevel_mask()+qemu_log()
rather than qemu_log_mask() to avoid the function call overhead.

Note that DEBUG_DISAS is always defined, so removing the
'|| defined(CONFIG_DEBUG_EXEC)' from those conditionals makes
no behavioural change for that logging.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Acked-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
11 years agoTypo, spelling and grammatical fixes
Peter Maydell [Tue, 9 Apr 2013 11:48:19 +0000 (12:48 +0100)]
Typo, spelling and grammatical fixes

Minor fixes to documentation and code comments.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
11 years agolinux-user: pass correct host flags to eventfd2 call
Petar Jovanovic [Mon, 8 Apr 2013 18:26:10 +0000 (20:26 +0200)]
linux-user: pass correct host flags to eventfd2 call

This change makes conversion of TARGET_O_NONBLOCK and TARGET_O_CLOEXEC flags
to host flags before calling eventfd for TARGET_NR_eventfd2.

Signed-off-by: Petar Jovanovic <petar.jovanovic@imgtec.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
11 years agotarget-moxie: Fix VMState registration
Peter Maydell [Mon, 8 Apr 2013 15:51:46 +0000 (16:51 +0100)]
target-moxie: Fix VMState registration

Register the CPU VMState in the correct way, via cpu_class_set_vmsd(),
rather than doing it in two different wrong ways (once by providing
cpu_save and cpu_load functions, and once by setting the vmsd field in
DeviceClass).

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Andreas Färber <afaerber@suse.de>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
11 years agotci: Make tcg temporaries local to tcg_qemu_tb_exec
Richard Henderson [Thu, 28 Mar 2013 05:37:55 +0000 (05:37 +0000)]
tci: Make tcg temporaries local to tcg_qemu_tb_exec

We're moving away from the temporaries stored in env.  Make sure we can
differentiate between temp stores and possibly bogus stores for extra
call arguments.  Move TCG_AREG0 and TCG_REG_CALL_STACK out of the way
of the parameter passing registers.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off by: Stefan Weil <sw@weilnetz.de>

11 years agotci: Delete unused tb_ret_addr
Richard Henderson [Thu, 28 Mar 2013 05:37:54 +0000 (05:37 +0000)]
tci: Delete unused tb_ret_addr

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off by: Stefan Weil <sw@weilnetz.de>

11 years agotci: Avoid code before declarations
Richard Henderson [Thu, 28 Mar 2013 05:37:53 +0000 (05:37 +0000)]
tci: Avoid code before declarations

This only valid with c99 extensions enabled, and easy to avoid.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off by: Stefan Weil <sw@weilnetz.de>

11 years agotci: Use a local variable for env
Richard Henderson [Thu, 28 Mar 2013 05:37:52 +0000 (05:37 +0000)]
tci: Use a local variable for env

Since we have total conversion away from global AREG0, we do not
need a global variable named "env".  Retain that name as the
function parameter inside the interpreter.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off by: Stefan Weil <sw@weilnetz.de>

11 years agotci: Use 32-bit signed offsets to loads/stores
Richard Henderson [Thu, 28 Mar 2013 05:37:51 +0000 (05:37 +0000)]
tci: Use 32-bit signed offsets to loads/stores

Since the change to tcg_exit_req, the first insn of every TB is
a load with a negative offset from env.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off by: Stefan Weil <sw@weilnetz.de>

11 years agomigration: simplify writev vs. non-writev logic
Paolo Bonzini [Mon, 8 Apr 2013 11:29:57 +0000 (13:29 +0200)]
migration: simplify writev vs. non-writev logic

Check f->iovcnt in add_to_iovec, f->buf_index in qemu_put_buffer/byte.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
11 years agomigration: drop is_write complications
Paolo Bonzini [Mon, 8 Apr 2013 11:29:56 +0000 (13:29 +0200)]
migration: drop is_write complications

The same QEMUFile is never used for both read and write.  Simplify
the logic to simply look for presence or absence of the right ops.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
11 years agomigration: use a single I/O operation when writev_buffer is not defined
Paolo Bonzini [Mon, 8 Apr 2013 11:29:55 +0000 (13:29 +0200)]
migration: use a single I/O operation when writev_buffer is not defined

The recent patches to use vectored I/O for RAM migration caused a
regression in savevm speed.  To restore previous performance,
add data to the buffer in qemu_put_buffer_async whenever writev_buffer
is not available in the QEMUFile.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
11 years agomigration: set f->is_write and flush in add_to_iovec
Paolo Bonzini [Mon, 8 Apr 2013 11:29:54 +0000 (13:29 +0200)]
migration: set f->is_write and flush in add_to_iovec

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
11 years agovirtio-9p: Fix virtio-9p no longer building after hw-dirs branch merge
Hans de Goede [Tue, 9 Apr 2013 08:22:35 +0000 (10:22 +0200)]
virtio-9p: Fix virtio-9p no longer building after hw-dirs branch merge

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Message-id: 1365495755-10902-1-git-send-email-hdegoede@redhat.com
Cc: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agoMerge remote-tracking branch 'bonzini/hw-dirs' into staging
Anthony Liguori [Mon, 8 Apr 2013 18:12:32 +0000 (13:12 -0500)]
Merge remote-tracking branch 'bonzini/hw-dirs' into staging

# By Paolo Bonzini
# Via Paolo Bonzini
* bonzini/hw-dirs: (35 commits)
  hw: move private headers to hw/ subdirectories.
  MAINTAINERS: update for source code movement
  hw: move last file to hw/arm/
  hw: move hw/kvm/ to hw/i386/kvm
  hw: move ARM CPU cores to hw/cpu/, configure with default-configs/
  hw: move other devices to hw/misc/, configure with default-configs/
  hw: move NVRAM interfaces to hw/nvram/, configure with default-configs/
  hw: move GPIO interfaces to hw/gpio/, configure with default-configs/
  hw: move interrupt controllers to hw/intc/, configure with default-configs/
  hw: move DMA controllers to hw/dma/, configure with default-configs/
  hw: move VFIO and ivshmem to hw/misc/
  hw: move PCI bridges to hw/pci-* or hw/ARCH
  hw: move SD/MMC devices to hw/sd/, configure with default-configs/
  hw: move timer devices to hw/timer/, configure with default-configs/
  hw: move ISA bridges and devices to hw/isa/, configure with default-configs/
  hw: move char devices to hw/char/, configure via default-configs/
  hw: move more files to hw/xen/
  hw: move SCSI controllers to hw/scsi/, configure via default-configs/
  hw: move SSI controllers to hw/ssi/, configure via default-configs/
  hw: move I2C controllers to hw/i2c/, configure via default-configs/
  ...

Message-id: 1365442249-18259-1-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agoMerge remote-tracking branch 'stefanha/net' into staging
Anthony Liguori [Mon, 8 Apr 2013 18:12:25 +0000 (13:12 -0500)]
Merge remote-tracking branch 'stefanha/net' into staging

# By Dmitry Fleytman
# Via Stefan Hajnoczi
* stefanha/net:
  vmxnet3: const_cpu_to_le64 wrapping for feature bits dropped
  vmxnet3: iPXE compatibility fixes

Message-id: 1365435829-23535-1-git-send-email-stefanha@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
11 years agohw: move private headers to hw/ subdirectories.
Paolo Bonzini [Mon, 18 Mar 2013 16:36:02 +0000 (17:36 +0100)]
hw: move private headers to hw/ subdirectories.

Many headers are used only in a single directory.  These can be
kept in hw/.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
11 years agoMAINTAINERS: update for source code movement
Paolo Bonzini [Mon, 4 Feb 2013 14:19:30 +0000 (15:19 +0100)]
MAINTAINERS: update for source code movement

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
11 years agohw: move last file to hw/arm/
Paolo Bonzini [Wed, 27 Mar 2013 17:49:23 +0000 (18:49 +0100)]
hw: move last file to hw/arm/

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
11 years agohw: move hw/kvm/ to hw/i386/kvm
Paolo Bonzini [Tue, 5 Feb 2013 15:36:44 +0000 (16:36 +0100)]
hw: move hw/kvm/ to hw/i386/kvm

Peter requested the KVM GIC to be in hw/intc.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>