]> git.proxmox.com Git - qemu.git/log
qemu.git
10 years agoide: Drop ide_init2_with_non_qdev_drives()
Andreas Färber [Sat, 3 Aug 2013 09:30:50 +0000 (11:30 +0200)]
ide: Drop ide_init2_with_non_qdev_drives()

All its users have finally been converted.

Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agomicrodrive: Coding Style cleanups
Andreas Färber [Sat, 3 Aug 2013 08:32:49 +0000 (10:32 +0200)]
microdrive: Coding Style cleanups

Add missing braces.

Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agopcmcia: QOM'ify PCMCIACardState and MicroDriveState
Andreas Färber [Wed, 17 Jul 2013 17:46:16 +0000 (19:46 +0200)]
pcmcia: QOM'ify PCMCIACardState and MicroDriveState

Turn PCMCIACardState into a device.
Move callbacks to new PCMCIACardClass.

Derive TYPE_MICRODRIVE from TYPE_PCMCIA_CARD.
Replace ide_init2_with_non_qdev_drives().

Signed-off-by: Othmar Pasteka <pasteka@kabsi.at>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agopxa: Fix typo "dettach"
Andreas Färber [Wed, 17 Jul 2013 17:06:47 +0000 (19:06 +0200)]
pxa: Fix typo "dettach"

Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoqom: Fix pointer to int property helpers' documentation
Michael S. Tsirkin [Mon, 7 Oct 2013 09:35:01 +0000 (12:35 +0300)]
qom: Fix pointer to int property helpers' documentation

Relocate to alongside the other object_property_add_* helpers while at it.

Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoqdev-monitor: Inline qdev_init() for device_add
Andreas Färber [Mon, 7 Oct 2013 14:42:34 +0000 (16:42 +0200)]
qdev-monitor: Inline qdev_init() for device_add

For historic reasons, qdev_init() unparents the device on failure.
Inline this to make the error paths clearer and consistent.

Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoqdev-monitor: Avoid qdev as variable name
Andreas Färber [Mon, 7 Oct 2013 14:17:54 +0000 (16:17 +0200)]
qdev-monitor: Avoid qdev as variable name

Prepares for bringing error cleanup code into canonical QOM form.

Includes a whitespace removal after curly brace by Stefan.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoqdev: Drop misleading qdev_free() function
Stefan Hajnoczi [Wed, 11 Sep 2013 12:54:09 +0000 (14:54 +0200)]
qdev: Drop misleading qdev_free() function

The qdev_free() function name is misleading since all the function does
is unlink the device from its parent.  The device is not necessarily
freed.

The device will be freed when its QObject refcount reaches zero.  It is
usual for the parent (bus) to hold the final reference but there are
cases where something else holds a reference so "free" is a misleading
name.

Call object_unparent(obj) directly instead of having a qdev wrapper
function.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoqdev-monitor: Unref device when device_add fails
Stefan Hajnoczi [Tue, 10 Sep 2013 16:21:08 +0000 (18:21 +0200)]
qdev-monitor: Unref device when device_add fails

qdev_device_add() leaks the created device upon failure.  I suspect this
problem crept in because qdev_free() unparents the device but does not
drop a reference - confusing name.

Cc: qemu-stable@nongnu.org
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoqdev-monitor: Fix crash when device_add is called with abstract driver
Igor Mammedov [Tue, 17 Sep 2013 13:32:32 +0000 (15:32 +0200)]
qdev-monitor: Fix crash when device_add is called with abstract driver

User is able to crash running QEMU when following monitor
command is called:

 device_add intel-hda-generic

Crash is caused by assertion in object_initialize_with_type()
when type is abstract.

Checking if type is abstract before instance is created in
qdev_device_add() allows to prevent crash on incorrect user input.

Cc: qemu-stable@nongnu.org
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoqdev-monitor: Clean up qdev_device_add() variable naming
Andreas Färber [Fri, 23 Aug 2013 23:21:22 +0000 (01:21 +0200)]
qdev-monitor: Clean up qdev_device_add() variable naming

Avoid confusion between object (obj) and object class (oc).
Tidy DeviceClass variable while at it (k -> dc).

Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoarm11mpcore: Split off RealView MPCore
Andreas Färber [Sun, 18 Aug 2013 23:33:59 +0000 (01:33 +0200)]
arm11mpcore: Split off RealView MPCore

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoarm11mpcore: Prepare for QOM embedding
Andreas Färber [Sun, 18 Aug 2013 23:27:19 +0000 (01:27 +0200)]
arm11mpcore: Prepare for QOM embedding

Move state struct, type constant and cast macro to a new header.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoarm11mpcore: Convert mpcore_rirq_state to QOM realize
Andreas Färber [Sun, 18 Aug 2013 21:38:15 +0000 (23:38 +0200)]
arm11mpcore: Convert mpcore_rirq_state to QOM realize

Embed ARM11MPCorePriveState and RealViewGICState and replace SysBus
initfn with realizefn.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agorealview_gic: Prepare for QOM embedding
Andreas Färber [Sun, 18 Aug 2013 22:48:55 +0000 (00:48 +0200)]
realview_gic: Prepare for QOM embedding

Move state struct, type constant and cast macro to a new header.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agorealview_gic: Convert to QOM realize
Andreas Färber [Sun, 18 Aug 2013 22:37:07 +0000 (00:37 +0200)]
realview_gic: Convert to QOM realize

Embed GICState and replace SysBus initfn with realizefn.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoarm11mpcore: Convert ARM11MPCorePriveState to QOM realize
Andreas Färber [Sun, 18 Aug 2013 20:04:31 +0000 (22:04 +0200)]
arm11mpcore: Convert ARM11MPCorePriveState to QOM realize

Embed child devices and replace SysBus initfn with realizefn.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoarm11mpcore: Split off SCU device
Andreas Färber [Sun, 18 Aug 2013 18:07:36 +0000 (20:07 +0200)]
arm11mpcore: Split off SCU device

Inspired by a9scu.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoarm11mpcore: Create container MemoryRegion in instance_init
Andreas Färber [Sun, 18 Aug 2013 18:48:33 +0000 (20:48 +0200)]
arm11mpcore: Create container MemoryRegion in instance_init

This allows to map the region directly after object initialization.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoarm11mpcore: Drop unused fields
Andreas Färber [Sun, 18 Aug 2013 20:08:59 +0000 (22:08 +0200)]
arm11mpcore: Drop unused fields

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoarm11mpcore: Fix typo in MemoryRegion name
Andreas Färber [Sun, 18 Aug 2013 18:36:33 +0000 (20:36 +0200)]
arm11mpcore: Fix typo in MemoryRegion name

"mpcode" -> "mpcore"

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoa9scu: Build only once
Andreas Färber [Sun, 18 Aug 2013 19:00:29 +0000 (21:00 +0200)]
a9scu: Build only once

It does not have a target or ARMCPU dependency.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoa15mpcore: Prepare for QOM embedding
Andreas Färber [Sun, 30 Jun 2013 19:31:01 +0000 (21:31 +0200)]
a15mpcore: Prepare for QOM embedding

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
10 years agoa15mpcore: Convert to QOM realize
Andreas Färber [Sun, 30 Jun 2013 19:22:54 +0000 (21:22 +0200)]
a15mpcore: Convert to QOM realize

Turn SysBusDevice initfn into a QOM realizefn.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
10 years agoa15mpcore: Embed GICState
Andreas Färber [Sun, 30 Jun 2013 19:20:26 +0000 (21:20 +0200)]
a15mpcore: Embed GICState

This covers both emulated and KVM GIC.

Prepares for QOM realize.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
10 years agoa15mpcore: Split off instance_init
Andreas Färber [Sun, 30 Jun 2013 19:07:31 +0000 (21:07 +0200)]
a15mpcore: Split off instance_init

Prepares for QOM realize.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
10 years agoa9mpcore: Prepare for QOM embedding
Andreas Färber [Sun, 30 Jun 2013 18:44:23 +0000 (20:44 +0200)]
a9mpcore: Prepare for QOM embedding

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
10 years agoa9mpcore: Convert to QOM realize
Andreas Färber [Sun, 30 Jun 2013 18:36:15 +0000 (20:36 +0200)]
a9mpcore: Convert to QOM realize

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
10 years agoa9mpcore: Embed ARMMPTimerState
Andreas Färber [Sun, 30 Jun 2013 18:30:27 +0000 (20:30 +0200)]
a9mpcore: Embed ARMMPTimerState

Prepares for QOM realize.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
10 years agoarm_mptimer: Convert to QOM realize
Andreas Färber [Sun, 30 Jun 2013 17:42:55 +0000 (19:42 +0200)]
arm_mptimer: Convert to QOM realize

Split the SysBusDevice initfn into instance_init and realizefn.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
10 years agoa9mpcore: Embed A9SCUState
Andreas Färber [Sun, 30 Jun 2013 17:29:36 +0000 (19:29 +0200)]
a9mpcore: Embed A9SCUState

Prepares for QOM realize.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
10 years agoa9scu: QOM cleanups
Andreas Färber [Sun, 30 Jun 2013 17:22:12 +0000 (19:22 +0200)]
a9scu: QOM cleanups

Rename A9SCUState::busdev field to parent_obj and turn realizefn into an
instance_init function to allow early MMIO mapping.

Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
10 years agoa9mpcore: Embed GICState
Andreas Färber [Sun, 30 Jun 2013 17:01:18 +0000 (19:01 +0200)]
a9mpcore: Embed GICState

Prepares for conversion to QOM realize.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
10 years agoarm_gic: Extract headers hw/intc/arm_gic{,_common}.h
Andreas Färber [Tue, 23 Jul 2013 01:37:49 +0000 (03:37 +0200)]
arm_gic: Extract headers hw/intc/arm_gic{,_common}.h

Rename NCPU to GIC_NCPU and move GICState away from gic_internal.h.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoa9mpcore: Split off instance_init
Andreas Färber [Sun, 30 Jun 2013 17:52:31 +0000 (19:52 +0200)]
a9mpcore: Split off instance_init

Prepares for QOM realize.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
10 years agomilkymist-uart: Use Device::realize instead of SysBusDevice::init
Antony Pavlov [Sat, 31 Aug 2013 17:22:40 +0000 (21:22 +0400)]
milkymist-uart: Use Device::realize instead of SysBusDevice::init

Use of SysBusDevice::init is deprecated. Use Device::realize instead.

Also introduce TypeInfo::instance_init milkymist_uart_init().

Reported-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoqtest: Prepare QOM machine tests
Andreas Färber [Mon, 29 Jul 2013 03:44:47 +0000 (05:44 +0200)]
qtest: Prepare QOM machine tests

Instantiate all [*] machines per target, so that they get a bit of test
coverage at all. This has proven helpful during QOM refactorings.

[*] ppcemb target contains some non-working non-embedded machines, and
ppc405 CPUs are not available there either.
i386 and x86_64 do not cover pc*-x.y or xenfv.

Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoleon3: Don't enforce use of -bios with qtest
Andreas Färber [Sun, 4 Aug 2013 15:58:58 +0000 (17:58 +0200)]
leon3: Don't enforce use of -bios with qtest

Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoshix: Don't require firmware presence for qtest
Andreas Färber [Sun, 4 Aug 2013 15:51:15 +0000 (17:51 +0200)]
shix: Don't require firmware presence for qtest

Adopt error_report() while at it.

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoshix: Drop debug output
Andreas Färber [Sun, 4 Aug 2013 15:53:24 +0000 (17:53 +0200)]
shix: Drop debug output

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agomilkymist: Suppress -kernel/-bios/-drive error for qtest
Andreas Färber [Sun, 4 Aug 2013 14:49:28 +0000 (16:49 +0200)]
milkymist: Suppress -kernel/-bios/-drive error for qtest

Acked-by: Michael Walle <michael@walle.cc>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoan5206: Don't enforce use of kernel for qtest
Andreas Färber [Mon, 29 Jul 2013 16:48:58 +0000 (18:48 +0200)]
an5206: Don't enforce use of kernel for qtest

Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agomcf5208: Don't enforce use of kernel for qtest
Andreas Färber [Mon, 29 Jul 2013 16:47:21 +0000 (18:47 +0200)]
mcf5208: Don't enforce use of kernel for qtest

Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoaxis_dev88: Don't enforce use of kernel for qtest
Andreas Färber [Mon, 29 Jul 2013 16:40:20 +0000 (18:40 +0200)]
axis_dev88: Don't enforce use of kernel for qtest

Reviewed-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoarmv7m: Don't enforce use of kernel for qtest
Andreas Färber [Mon, 29 Jul 2013 16:36:59 +0000 (18:36 +0200)]
armv7m: Don't enforce use of kernel for qtest

Adopt error_report().

Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoexynos4_boards: Silence lack of -smp 2 warning for qtest
Andreas Färber [Mon, 29 Jul 2013 16:29:54 +0000 (18:29 +0200)]
exynos4_boards: Silence lack of -smp 2 warning for qtest

Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoomap_sx1: Don't enforce use of kernel or flash for qtest
Andreas Färber [Mon, 29 Jul 2013 16:27:58 +0000 (18:27 +0200)]
omap_sx1: Don't enforce use of kernel or flash for qtest

Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agopalm: Don't enforce loading ROM or kernel for qtest
Andreas Färber [Mon, 29 Jul 2013 16:24:47 +0000 (18:24 +0200)]
palm: Don't enforce loading ROM or kernel for qtest

Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoz2: Don't enforce use of -pflash for qtest
Andreas Färber [Mon, 29 Jul 2013 15:15:55 +0000 (17:15 +0200)]
z2: Don't enforce use of -pflash for qtest

Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agogumstix: Don't enforce use of -pflash for qtest
Andreas Färber [Mon, 29 Jul 2013 15:15:01 +0000 (17:15 +0200)]
gumstix: Don't enforce use of -pflash for qtest

Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agomainstone: Don't enforce use of -pflash for qtest
Andreas Färber [Mon, 29 Jul 2013 15:12:41 +0000 (17:12 +0200)]
mainstone: Don't enforce use of -pflash for qtest

Simply skip flash setup for now.

Also drop useless debug output.

Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agopuv3: Turn puv3_load_kernel() into a no-op for qtest without -kernel
Andreas Färber [Mon, 29 Jul 2013 16:43:57 +0000 (18:43 +0200)]
puv3: Turn puv3_load_kernel() into a no-op for qtest without -kernel

Replacing the assert() with more user-friendly error handling is left
for a follow-up.

Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agomips_mipssim: Silence BIOS loading warning for qtest
Andreas Färber [Mon, 29 Jul 2013 15:01:37 +0000 (17:01 +0200)]
mips_mipssim: Silence BIOS loading warning for qtest

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoMerge tag 'for_anthony' of git://git.kernel.org/pub/scm/virt/kvm/mst/qemu
Andreas Färber [Tue, 5 Nov 2013 16:46:04 +0000 (17:46 +0100)]
Merge tag 'for_anthony' of git://git.kernel.org/pub/scm/virt/kvm/mst/qemu

pci, pc, pvpanic bug fixes

This fixes strange pvpanic behaviour: you had to
pause to let VM continue (and potentially reboot on panic
if enabled).

This also fixes two bugs reported by Andreas.
One is a long-standing bug exposed by recent pci changes,
the other affects old piix machine types and was caused
by recent acpi changes.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
10 years agoossaudio: do not enable by default
Anthony Liguori [Sun, 3 Nov 2013 16:45:54 +0000 (08:45 -0800)]
ossaudio: do not enable by default

Modern Linux's no longer support /dev/dsp so enabling it by
default causes audio failures on newer Linux distros.

Signed-off-by: Anthony Liguori <aliguori@amazon.com>
Tested-by: Andreas Färber <afaerber@suse.de>
Message-id: 1383497154-9271-1-git-send-email-aliguori@amazon.com

10 years agoMerge remote-tracking branch 'spice/spice.v76' into staging
Anthony Liguori [Tue, 5 Nov 2013 16:39:49 +0000 (08:39 -0800)]
Merge remote-tracking branch 'spice/spice.v76' into staging

# By Gerd Hoffmann
# Via Gerd Hoffmann
* spice/spice.v76:
  qxl: replace pipe signaling with bottom half

Message-id: 1383656322-24150-1-git-send-email-kraxel@redhat.com
Signed-off-by: Anthony Liguori <aliguori@amazon.com>
10 years agoMerge remote-tracking branch 'mst/tags/for_anthony' into staging
Anthony Liguori [Tue, 5 Nov 2013 16:29:56 +0000 (08:29 -0800)]
Merge remote-tracking branch 'mst/tags/for_anthony' into staging

pci, pc, pvpanic bug fixes

This fixes strange pvpanic behaviour: you had to
pause to let VM continue (and potentially reboot on panic
if enabled).

This also fixes two bugs reported by Andreas.
One is a long-standing bug exposed by recent pci changes,
the other affects old piix machine types and was caused
by recent acpi changes.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
# gpg: Signature made Mon 04 Nov 2013 05:42:46 AM PST using RSA key ID D28D5469
# gpg: Can't check signature: public key not found

# By Michael S. Tsirkin (2) and Paolo Bonzini (1)
# Via Michael S. Tsirkin
* mst/tags/for_anthony:
  vl: allow "cont" from panicked state
  exec: limit system memory size
  pc: disable acpi info for isapc and old pc machine

Message-id: 1383572851-28326-1-git-send-email-mst@redhat.com
Signed-off-by: Anthony Liguori <aliguori@amazon.com>
10 years agoMerge remote-tracking branch 'kraxel/e820.1' into staging
Anthony Liguori [Tue, 5 Nov 2013 16:26:57 +0000 (08:26 -0800)]
Merge remote-tracking branch 'kraxel/e820.1' into staging

# By Gerd Hoffmann
# Via Gerd Hoffmann
* kraxel/e820.1:
  pc: register e820 entries for ram
  pc: add etc/e820 fw_cfg file

Message-id: 1383567431-13540-1-git-send-email-kraxel@redhat.com
Signed-off-by: Anthony Liguori <aliguori@amazon.com>
10 years agoKVM: x86: fix typo in KVM_GET_XCRS
Paolo Bonzini [Thu, 17 Oct 2013 14:47:52 +0000 (16:47 +0200)]
KVM: x86: fix typo in KVM_GET_XCRS

Only the first item of the array was ever looked at.  No
practical effect, but still worth fixing.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Gleb Natapov <gleb@redhat.com>
10 years agovl: allow "cont" from panicked state
Paolo Bonzini [Mon, 4 Nov 2013 13:30:47 +0000 (14:30 +0100)]
vl: allow "cont" from panicked state

After reporting the GUEST_PANICKED monitor event, QEMU stops the VM.
The reason for this is that events are edge-triggered, and can be lost if
management dies at the wrong time.  Stopping a panicked VM lets management
know of a panic even if it has crashed; management can learn about the
panic when it restarts and queries running QEMU processes.  The downside
is of course that the VM will be paused while management is not running,
but that is acceptable if it only happens with explicit "-device pvpanic".

Upon learning of a panic, management (if configured to do so) can pick a
variety of behaviors: leave the VM paused, reset it, destroy it.  In
addition to all of these behaviors, it is possible to dump the VM core
from the host.

However, right now, the panicked state is irreversible, and can only be
exited by resetting the machine.  This means that any policy decision
is entirely in the hands of the host.  In particular there is no way to
use the "reboot on panic" option together with pvpanic.

This patch makes the panicked state reversible (and removes various
workarounds that were there because of the state being irreversible).
With this change, management has a wider set of possible policies: it
can just log the crash and leave policy to the guest, it can leave the
VM paused.  In particular, the "log the crash and continue" is implemented
simply by sending a "cont" as soon as management learns about the panic.
Management could also implement the "irreversible paused state" itself.
And again, all such actions can be coupled with dumping the VM core.

Unfortunately we cannot change the behavior of 1.6.0.  Thus, even if
it uses "-device pvpanic", management should check for "cont" failures.
If "cont" fails, management can then log that the VM remained paused
and urge the administrator to update QEMU.

Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Luiz Capitulino <lcapitulino@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
10 years agoexec: limit system memory size
Michael S. Tsirkin [Mon, 4 Nov 2013 06:06:08 +0000 (08:06 +0200)]
exec: limit system memory size

The page table logic in exec.c assumes
that memory addresses are at most TARGET_PHYS_ADDR_SPACE_BITS.

But pci addresses are full 64 bit so if we try to render them ignoring
the extra bits, we get strange effects with sections overlapping each
other.

To fix, simply limit the system memory size to
 1 << TARGET_PHYS_ADDR_SPACE_BITS,
pci addresses will be rendered within that.

Cc: qemu-stable@nongnu.org
Reported-by: Andreas Färber <afaerber@suse.de>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
10 years agopc: disable acpi info for isapc and old pc machine
Michael S. Tsirkin [Mon, 4 Nov 2013 10:42:46 +0000 (12:42 +0200)]
pc: disable acpi info for isapc and old pc machine

Disable acpi build for isapc and no_kvmclock machine
types (used by xen), since acpi build currently expects pci.

Reported-by: Andreas Färber <afaerber@suse.de>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
10 years agoqxl: replace pipe signaling with bottom half
Gerd Hoffmann [Tue, 29 Oct 2013 12:29:43 +0000 (13:29 +0100)]
qxl: replace pipe signaling with bottom half

qxl creates a pipe, then writes something to it to wake up the iothread
from the spice server thread to raise an irq.  These days qemu bottom
halves can be scheduled from threads and signals, so there is no reason
to do this any more.  Time to clean it up.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
10 years agopc: register e820 entries for ram
Gerd Hoffmann [Thu, 10 Oct 2013 08:30:27 +0000 (10:30 +0200)]
pc: register e820 entries for ram

So RAM shows up in the new etc/e820 fw_cfg file.

Cc: Andrea Arcangeli <aarcange@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
10 years agopc: add etc/e820 fw_cfg file
Gerd Hoffmann [Fri, 18 Oct 2013 09:31:54 +0000 (11:31 +0200)]
pc: add etc/e820 fw_cfg file

Unlike the existing FW_CFG_E820_TABLE entry which carries reservations
only the new etc/e820 file also has entries for RAM.

Format is simliar to the FW_CFG_E820_TABLE, it is a simple list of
e820_entry structs.  Unlike FW_CFG_E820_TABLE it has no count though
as the number of entries can be figured from the file size.

Cc: Andrea Arcangeli <aarcange@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
10 years agoMerge remote-tracking branch 'kwolf/tags/for-anthony' into staging
Anthony Liguori [Thu, 31 Oct 2013 16:02:26 +0000 (17:02 +0100)]
Merge remote-tracking branch 'kwolf/tags/for-anthony' into staging

Block patches for 1.7.0-rc0 (v2)

# gpg: Signature made Thu 31 Oct 2013 04:44:39 PM CET using RSA key ID C88F2FD6
# gpg: Can't check signature: public key not found

* kwolf/tags/for-anthony: (30 commits)
  vmdk: Implment bdrv_get_specific_info
  qapi: Add optional field 'compressed' to ImageInfo
  qemu-iotests: prefill some data to test image
  sheepdog: check simultaneous create in resend_aioreq
  sheepdog: cancel aio requests if possible
  sheepdog: make add_aio_request and send_aioreq void functions
  sheepdog: try to reconnect to sheepdog after network error
  coroutine: add co_aio_sleep_ns() to allow sleep in block drivers
  sheepdog: reload inode outside of resend_aioreq
  sheepdog: handle vdi objects in resend_aio_req
  sheepdog: check return values of qemu_co_recv/send correctly
  qemu-iotests: Test case for backing file deletion
  qemu-iotests: drop duplicated "create_image"
  qemu-iotests: Fix 051 reference output
  block: Avoid unecessary drv->bdrv_getlength() calls
  block: Disable BDRV_O_COPY_ON_READ for the backing file
  ahci: fix win7 hang on boot
  sheepdog: pass copy_policy in the request
  sheepdog: explicitly set copies as type uint8_t
  block: Don't copy backing file name on error
  ...

Message-id: 1383064269-27720-1-git-send-email-kwolf@redhat.com
Signed-off-by: Anthony Liguori <anthony@codemonkey.ws>
10 years agoMerge remote-tracking branch 'mjt/trivial-patches' into staging
Anthony Liguori [Thu, 31 Oct 2013 16:01:43 +0000 (17:01 +0100)]
Merge remote-tracking branch 'mjt/trivial-patches' into staging

* mjt/trivial-patches:
  audio/mixeng_template.h: fix inline declaration
  misc: Spelling and grammar fixes in comments
  docs/ccid.txt: fix the typo
  qapi: fix documentation example
  .gitignore: ignore qmp-commands.txt
  misc: New spelling fixes in comments
  configure: create fsdev/ directory

Message-id: 1382779887-15971-1-git-send-email-mjt@msgid.tls.msk.ru
Signed-off-by: Anthony Liguori <anthony@codemonkey.ws>
10 years agoMerge remote-tracking branch 'agraf/ppc-for-upstream' into staging
Anthony Liguori [Thu, 31 Oct 2013 16:01:12 +0000 (17:01 +0100)]
Merge remote-tracking branch 'agraf/ppc-for-upstream' into staging

* agraf/ppc-for-upstream: (29 commits)
  spapr: Use DeviceClass::fw_name for device tree CPU node
  target-ppc: Fill in OpenFirmware names for some PowerPCCPU families
  target-ppc: dump-guest-memory support
  dump-guest-memory: Check for the correct return value
  target-ppc: Use #define for max slb entries
  target-ppc: Check for error on address translation in memsave command
  target-ppc: Update slb array with correct index values.
  spapr-pci: enable irqfd for INTx
  xics-kvm: enable irqfd for MSI
  xics: Implement H_XIRR_X
  xics: Implement H_IPOLL
  xics-kvm: Support for in-kernel XICS interrupt controller
  xics: add cpu_setup callback
  xics: split to xics and xics-common
  xics: add missing const specifiers to TypeInfo
  xics: convert init() to realize()
  xics: add pre_save/post_load dispatchers
  xics: replace fprintf with error_report
  spapr: move cpu_setup after kvmppc_set_papr
  xics: move reset and cpu_setup
  ...

Message-id: 1382736474-32128-1-git-send-email-agraf@suse.de
Signed-off-by: Anthony Liguori <anthony@codemonkey.ws>
10 years agoMerge remote-tracking branch 'kraxel/audio.2' into staging
Anthony Liguori [Thu, 31 Oct 2013 16:00:55 +0000 (17:00 +0100)]
Merge remote-tracking branch 'kraxel/audio.2' into staging

* kraxel/audio.2:
  audio: honor QEMU_AUDIO_TIMER_PERIOD instead of waking up every *nano* second

Message-id: 1382622110-19460-1-git-send-email-kraxel@redhat.com
Signed-off-by: Anthony Liguori <anthony@codemonkey.ws>
10 years agoMerge remote-tracking branch 'kraxel/usb.91' into staging
Anthony Liguori [Thu, 31 Oct 2013 16:00:25 +0000 (17:00 +0100)]
Merge remote-tracking branch 'kraxel/usb.91' into staging

* kraxel/usb.91:
  usb-hcd-xhci: Update endpoint context dequeue pointer for streams too
  usb-hcd-xhci: Report completion of active transfer with CC_STOPPED on ep stop
  usb-hcd-xhci: Remove unused cancelled member from XHCITransfer
  usb-hcd-xhci: Remove unused sstreamsm member from XHCIStreamContext
  usb-host-libusb: Detach kernel drivers earlier
  usb-host-libusb: Configuration 0 may be a valid configuration
  usb-host-libusb: Fix reset handling

Message-id: 1382620267-18065-1-git-send-email-kraxel@redhat.com
Signed-off-by: Anthony Liguori <anthony@codemonkey.ws>
10 years agoMerge remote-tracking branch 'luiz/queue/qmp' into staging
Anthony Liguori [Thu, 31 Oct 2013 16:00:07 +0000 (17:00 +0100)]
Merge remote-tracking branch 'luiz/queue/qmp' into staging

* luiz/queue/qmp:
  monitor: eliminate monitor_event_state_lock

Message-id: 1382121003-5211-1-git-send-email-lcapitulino@redhat.com
Signed-off-by: Anthony Liguori <anthony@codemonkey.ws>
10 years agoMerge remote-tracking branch 'kraxel/e820.1' into staging
Anthony Liguori [Thu, 31 Oct 2013 15:58:58 +0000 (16:58 +0100)]
Merge remote-tracking branch 'kraxel/e820.1' into staging

* kraxel/e820.1:
  e820: pass high memory too.

Message-id: 1382008179-5968-1-git-send-email-kraxel@redhat.com
Signed-off-by: Anthony Liguori <anthony@codemonkey.ws>
10 years agoMerge remote-tracking branch 'mst/tags/for_anthony' into staging
Anthony Liguori [Thu, 31 Oct 2013 15:58:32 +0000 (16:58 +0100)]
Merge remote-tracking branch 'mst/tags/for_anthony' into staging

pci, pc, acpi fixes, enhancements

This includes some pretty big changes:
- pci master abort support by Marcel
- pci IRQ API rework by Marcel
- acpi generation support by myself

Everything has gone through several revisions, latest versions have been on
list for a while without any more comments, tested by several
people.

Please pull for 1.7.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
# gpg: Signature made Tue 15 Oct 2013 07:33:48 AM CEST using RSA key ID D28D5469
# gpg: Can't check signature: public key not found

* mst/tags/for_anthony: (39 commits)
  ssdt-proc: update generated file
  ssdt: fix PBLK length
  i386: ACPI table generation code from seabios
  pc: use new api to add builtin tables
  acpi: add interface to access user-installed tables
  hpet: add API to find it
  pvpanic: add API to access io port
  ich9: APIs for pc guest info
  piix: APIs for pc guest info
  acpi/piix: add macros for acpi property names
  i386: define pc guest info
  loader: allow adding ROMs in done callbacks
  i386: add bios linker/loader
  loader: use file path size from fw_cfg.h
  acpi: ssdt pcihp: updat generated file
  acpi: pre-compiled ASL files
  acpi: add rules to compile ASL source
  i386: add ACPI table files from seabios
  q35: expose mmcfg size as a property
  q35: use macro for MCFG property name
  ...

Message-id: 1381818560-18367-1-git-send-email-mst@redhat.com
Signed-off-by: Anthony Liguori <anthony@codemonkey.ws>
10 years agovmdk: Implment bdrv_get_specific_info
Fam Zheng [Thu, 31 Oct 2013 02:06:23 +0000 (10:06 +0800)]
vmdk: Implment bdrv_get_specific_info

Implement .bdrv_get_specific_info to return the extent information.

Signed-off-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agointegrator: fix Linux boot failure by emulating dbg region
Alex Bennée [Tue, 22 Oct 2013 14:16:06 +0000 (15:16 +0100)]
integrator: fix Linux boot failure by emulating dbg region

Commit 9b8c69243 (since reverted) broke the ability to boot the kernel
as the value returned by unassigned_mem_read returned non-zero and left
the kernel looping forever waiting for it to change (see
integrator_led_set in the kernel code).

Relying on a varying implementation detail is incorrect anyway so this
introduces a basic stub of a memory region for the debug/LED section
on the integrator board.

Signed-off-by: Alex Bennée <alex@bennee.com>
Message-id: 1382451366-9539-1-git-send-email-alex.bennee@linaro.org
[PMM: removed three unused fields from struct IntegratorDebugState]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 years agotarget-arm: fix sorting issue of KVM cpreg list
Alvise Rigo [Fri, 11 Oct 2013 17:38:45 +0000 (19:38 +0200)]
target-arm: fix sorting issue of KVM cpreg list

The compare_u64 function was not sorting the KVM cpreg_list in the
right way due to the wrong returned value.  Since we are comparing
two 64bit values we can't simply return their difference if the
returned type is int.

Signed-off-by: Alvise Rigo <a.rigo@virtualopensystems.com>
Message-id: 1381513125-26802-2-git-send-email-a.rigo@virtualopensystems.com
[PMM: fixed coding style, indent and commit message formatting]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 years agotarget-arm: sort TCG cpreg list by KVM-style 64 bit ID number
Alvise Rigo [Fri, 11 Oct 2013 17:38:44 +0000 (19:38 +0200)]
target-arm: sort TCG cpreg list by KVM-style 64 bit ID number

Both KVM and TCG populate the cpreg_list with 64 bit register IDs,
but in the TCG side the cpreg_list is sorted using the 32 bit ID
version while in the kvm side the 64 bit ID version is used.  This
patch makes the sorting of the cpreg_list consistent between KVM and
TCG.

Signed-off-by: Alvise Rigo <a.rigo@virtualopensystems.com>
Message-id: 1381513125-26802-1-git-send-email-a.rigo@virtualopensystems.com
[PMM: fixed indent, coding style and commit message formatting]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 years agotarget-arm: Add CP15 VBAR support
Nathan Rossi [Fri, 25 Oct 2013 14:44:38 +0000 (15:44 +0100)]
target-arm: Add CP15 VBAR support

Added Vector Base Address remapping on ARM v7.

Signed-off-by: Nathan Rossi <nathan.rossi@xilinx.com>
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
[PMM: removed spurious mask of value with 1<<31]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
10 years agohw/arm: Tidy up conditional calls to arm_load_kernel
Peter Maydell [Fri, 25 Oct 2013 14:44:38 +0000 (15:44 +0100)]
hw/arm: Tidy up conditional calls to arm_load_kernel

Now that arm_load_kernel doesn't insist on a kernel filename
being present, we can remove some unnecessary conditionals
in board models.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 1379980897-21277-3-git-send-email-peter.maydell@linaro.org

10 years agohw/arm/boot: Make user not specifying a kernel not an error
Peter Maydell [Fri, 25 Oct 2013 14:44:38 +0000 (15:44 +0100)]
hw/arm/boot: Make user not specifying a kernel not an error

Typically ARM boards will have some kind of flash which might contain
a boot ROM; it's therefore a valid use case to provide only an
image for the boot ROM and not require QEMU's internal boot loader
at all. Remove the fatal error if -kernel isn't specified.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 1379980897-21277-2-git-send-email-peter.maydell@linaro.org

10 years agoqapi: Add optional field 'compressed' to ImageInfo
Fam Zheng [Fri, 18 Oct 2013 03:12:44 +0000 (11:12 +0800)]
qapi: Add optional field 'compressed' to ImageInfo

Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agoqemu-iotests: prefill some data to test image
Fam Zheng [Wed, 30 Oct 2013 09:42:28 +0000 (17:42 +0800)]
qemu-iotests: prefill some data to test image

Case 030 occasionally fails because of block job compltes too fast to be
captured by script, and 'unexpected qmp event' of job completion causes
the test failure.

Simply fill in some data to the test image to make this false alarm less
likely to happen.

(For other benefits to prefill data to test image, see also commit
ab68cdfaa).

Signed-off-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agosheepdog: check simultaneous create in resend_aioreq
MORITA Kazutaka [Thu, 24 Oct 2013 07:01:18 +0000 (16:01 +0900)]
sheepdog: check simultaneous create in resend_aioreq

After reconnection happens, all the inflight requests are moved to the
failed request list.  As a result, sd_co_rw_vector() can send another
create request before resend_aioreq() resends a create request from
the failed list.

This patch adds a helper function check_simultaneous_create() and
checks simultaneous create requests more strictly in resend_aioreq().

Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
Tested-by: Liu Yuan <namei.unix@gmail.com>
Reviewed-by: Liu Yuan <namei.unix@gmail.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agosheepdog: cancel aio requests if possible
MORITA Kazutaka [Thu, 24 Oct 2013 07:01:17 +0000 (16:01 +0900)]
sheepdog: cancel aio requests if possible

This patch tries to cancel aio requests in pending queue and failed
queue.  When the sheepdog driver cannot cancel the requests, it waits
for them to be completed.

Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
Tested-by: Liu Yuan <namei.unix@gmail.com>
Reviewed-by: Liu Yuan <namei.unix@gmail.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agosheepdog: make add_aio_request and send_aioreq void functions
MORITA Kazutaka [Thu, 24 Oct 2013 07:01:16 +0000 (16:01 +0900)]
sheepdog: make add_aio_request and send_aioreq void functions

These functions no longer return errors.  We can make them void
functions and simplify the codes.

Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
Tested-by: Liu Yuan <namei.unix@gmail.com>
Reviewed-by: Liu Yuan <namei.unix@gmail.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agosheepdog: try to reconnect to sheepdog after network error
MORITA Kazutaka [Thu, 24 Oct 2013 07:01:15 +0000 (16:01 +0900)]
sheepdog: try to reconnect to sheepdog after network error

This introduces a failed request queue and links all the inflight
requests to the list after network error happens.  After QEMU
reconnects to the sheepdog server successfully, the sheepdog block
driver will retry all the requests in the failed queue.

Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
Tested-by: Liu Yuan <namei.unix@gmail.com>
Reviewed-by: Liu Yuan <namei.unix@gmail.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agocoroutine: add co_aio_sleep_ns() to allow sleep in block drivers
MORITA Kazutaka [Thu, 24 Oct 2013 07:01:14 +0000 (16:01 +0900)]
coroutine: add co_aio_sleep_ns() to allow sleep in block drivers

This helper function behaves similarly to co_sleep_ns(), but the
sleeping coroutine will be resumed when using qemu_aio_wait().

Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
Tested-by: Liu Yuan <namei.unix@gmail.com>
Reviewed-by: Liu Yuan <namei.unix@gmail.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agosheepdog: reload inode outside of resend_aioreq
MORITA Kazutaka [Thu, 24 Oct 2013 07:01:13 +0000 (16:01 +0900)]
sheepdog: reload inode outside of resend_aioreq

This prepares for using resend_aioreq() after reconnecting to the
sheepdog server.

Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
Tested-by: Liu Yuan <namei.unix@gmail.com>
Reviewed-by: Liu Yuan <namei.unix@gmail.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agosheepdog: handle vdi objects in resend_aio_req
MORITA Kazutaka [Thu, 24 Oct 2013 07:01:12 +0000 (16:01 +0900)]
sheepdog: handle vdi objects in resend_aio_req

The current resend_aio_req() doesn't work when the request is against
vdi objects.  This fixes the problem.

Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
Tested-by: Liu Yuan <namei.unix@gmail.com>
Reviewed-by: Liu Yuan <namei.unix@gmail.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agosheepdog: check return values of qemu_co_recv/send correctly
MORITA Kazutaka [Thu, 24 Oct 2013 07:01:11 +0000 (16:01 +0900)]
sheepdog: check return values of qemu_co_recv/send correctly

If qemu_co_recv/send doesn't return the specified length, it means
that an error happened.

Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
Tested-by: Liu Yuan <namei.unix@gmail.com>
Reviewed-by: Liu Yuan <namei.unix@gmail.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agoqemu-iotests: Test case for backing file deletion
Max Reitz [Tue, 29 Oct 2013 18:18:54 +0000 (19:18 +0100)]
qemu-iotests: Test case for backing file deletion

Add a test case for trying to open an image file where it is impossible
to open its backing file (in this case, because it was deleted). When
doing this, qemu (or qemu-io in this case) should not crash but rather
print an appropriate error message.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agoqemu-iotests: drop duplicated "create_image"
Fam Zheng [Wed, 30 Oct 2013 09:23:54 +0000 (17:23 +0800)]
qemu-iotests: drop duplicated "create_image"

There's a same common function in iotests.py

Signed-off-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agoqemu-iotests: Fix 051 reference output
Kevin Wolf [Tue, 29 Oct 2013 16:05:35 +0000 (17:05 +0100)]
qemu-iotests: Fix 051 reference output

Commit 684b254 forgot to update it.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agoblock: Avoid unecessary drv->bdrv_getlength() calls
Kevin Wolf [Tue, 29 Oct 2013 11:18:58 +0000 (12:18 +0100)]
block: Avoid unecessary drv->bdrv_getlength() calls

The block layer generally keeps the size of an image cached in
bs->total_sectors so that it doesn't have to perform expensive
operations to get the size whenever it needs it.

This doesn't work however when using a backend that can change its size
without qemu being aware of it, i.e. passthrough of removable media like
CD-ROMs or floppy disks. For this reason, the caching is disabled when a
removable device is used.

It is obvious that checking whether the _guest_ device has removable
media isn't the right thing to do when we want to know whether the size
of the host backend can change. To make things worse, non-top-level
BlockDriverStates never have any device attached, which makes qemu
assume they are removable, so drv->bdrv_getlength() is always called on
the protocol layer. In the case of raw-posix, this causes unnecessary
lseek() system calls, which turned out to be rather expensive.

This patch completely changes the logic and disables bs->total_sectors
caching only for certain block driver types, for which a size change is
expected: host_cdrom and host_floppy on POSIX, host_device on win32; also
the raw format in case it sits on top of one of these protocols, but in
the common case the nested bdrv_getlength() call on the protocol driver
will use the cache again and avoid an expensive drv->bdrv_getlength()
call.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
10 years agoblock: Disable BDRV_O_COPY_ON_READ for the backing file
Thibaut LAURENT [Fri, 25 Oct 2013 00:15:07 +0000 (02:15 +0200)]
block: Disable BDRV_O_COPY_ON_READ for the backing file

Since commit 0ebd24e0a203cf2852c310b59fbe050190dc6c8c,
bdrv_open_common will throw an error when trying to open a file
read-only with the BDRV_O_COPY_ON_READ flag set.
Although BDRV_O_RDWR is unset for the backing files,
BDRV_O_COPY_ON_READ is still passed on if copy-on-read was requested
for the drive. Let's unset this flag too before opening the backing
file, or bdrv_open_common will fail.

Signed-off-by: Thibaut LAURENT <thibaut.laurent@gmail.com>
Reviewed-by: Benoit Canet <benoit@irqsave.net>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agoahci: fix win7 hang on boot
Alexander Graf [Mon, 28 Oct 2013 19:01:51 +0000 (21:01 +0200)]
ahci: fix win7 hang on boot

When AHCI executes an asynchronous IDE command, it checked DRDY without
checking either DRQ or BSY.  This sometimes caused interrupt to be sent
before command is actually completed.

This resulted in a race condition: if guest then managed to access the
device before command has completed, it would hang waiting for an
interrupt.
This was observed with windows 7 guests.

To fix, check for DRQ or BSY in additiona to DRDY, if set,
the command is asynchronous so delay the interrupt until
asynchronous done callback is invoked.

Reported-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Tested-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agosheepdog: pass copy_policy in the request
Liu Yuan [Wed, 23 Oct 2013 08:51:52 +0000 (16:51 +0800)]
sheepdog: pass copy_policy in the request

Currently copy_policy isn't used. Recent sheepdog supports erasure coding, which
make use of copy_policy internally, but require client explicitly passing
copy_policy from base inode to newly creately inode for snapshot related
operations.

If connected sheep daemon doesn't utilize copy_policy, passing it to sheep
daemon is just one extra null effect operation. So no compatibility problem.

With this patch, sheepdog can provide erasure coded volume for QEMU VM.

Cc: Kevin Wolf <kwolf@redhat.com>
Cc: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Liu Yuan <namei.unix@gmail.com>
Acked-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agosheepdog: explicitly set copies as type uint8_t
Liu Yuan [Wed, 23 Oct 2013 08:51:51 +0000 (16:51 +0800)]
sheepdog: explicitly set copies as type uint8_t

'copies' is actually uint8_t since day one, but request headers and some helper
functions parameterize it as uint32_t for unknown reasons and effectively
reserve 24 bytes for possible future use. This patch explicitly set the correct
for copies and reserve the left bytes.

This is a preparation patch that allow passing copy_policy in request header.

Cc: Kevin Wolf <kwolf@redhat.com>
Cc: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Liu Yuan <namei.unix@gmail.com>
Acked-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agoblock: Don't copy backing file name on error
Max Reitz [Sat, 26 Oct 2013 13:44:43 +0000 (15:44 +0200)]
block: Don't copy backing file name on error

bdrv_open_backing_file() tries to copy the backing file name using
pstrcpy directly after calling bdrv_open() to open the backing file
without checking whether that was actually successful. If it was not,
ps->backing_hd->file will probably be NULL and qemu will crash.

Fix this by moving pstrcpy after checking whether bdrv_open() succeeded.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Benoit Canet <benoit@irqsave.net>
Reviewed-by: Amos Kong <kongjianjun@gmail.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
10 years agotests: Multiboot mmap test case
Kevin Wolf [Thu, 27 Jun 2013 11:50:05 +0000 (13:50 +0200)]
tests: Multiboot mmap test case

This adds a test case for Multiboot memory map in the tests/multiboot
directory, where future i386 test kernels can be dropped. Because this
requires an x86 build host and an installed 32 bit libgcc, the test is
not part of a regular 'make check'.

The reference output for the test is verified against test runs of the
same multiboot kernel booted by some GRUB 0.97.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>