Statistics
| Branch: | Revision:

root / include @ 32c835ba

# Date Author Comment
47c8c17a 03/11/2013 02:32 pm Paolo Bonzini

migration: use qemu_file_set_error to pass error codes back to qemu_savevm_state

Reviewed-by: Orit Wasserman <>
Reviewed-by: Juan Quintela <>
Signed-off-by: Paolo Bonzini <>
Signed-off-by: Juan Quintela <>

4eb93810 03/11/2013 02:32 pm Paolo Bonzini

qemu-file: temporarily expose qemu_file_set_error and qemu_fflush

Right now, migration cannot entirely rely on QEMUFile's automatic
drop of I/O after an error, because it does its "real" I/O outside
the put_buffer callback. To fix this until buffering is gone, expose...

dba433c0 03/11/2013 02:32 pm Paolo Bonzini

migration: simplify error handling

Always use qemu_file_get_error to detect errors, since that is how
QEMUFile itself drops I/O after an error occurs. There is no need
to propagate and check return values all the time.

Also remove the "complete" member, since we know that it is set (via...

bb1fadc4 03/11/2013 02:32 pm Paolo Bonzini

migration: cleanup migration (including thread) in the iothread

Perform final cleanup in a bottom half, and add joining the thread to
the series of cleanup actions.

migrate_fd_error remains for connection error, but it doesn't need
to cleanup anything anymore....

52e850de 03/11/2013 02:32 pm Paolo Bonzini

block-migration: add lock

Some state is shared between the block migration code and its AIO
callbacks. Once block migration will run outside the iothread,
the block migration code and the AIO callbacks will be able to
run concurrently. Protect the critical sections with a separate...

8c8de19d 03/11/2013 02:32 pm Paolo Bonzini

migration: reorder SaveVMHandlers members

This groups together the callbacks that later will have similar
locking rules.

Reviewed-by: Orit Wasserman <>
Reviewed-by: Juan Quintela <>
Signed-off-by: Paolo Bonzini <>...

32c835ba 03/11/2013 02:32 pm Paolo Bonzini

migration: run pending/iterate callbacks out of big lock

This makes it possible to do blocking writes directly to the socket,
with no buffer in the middle. For RAM, only the migration_bitmap_sync()
call needs the iothread lock. For block migration, it is needed by...

fa388916 03/11/2013 03:39 am Anthony Liguori

Merge remote-tracking branch 'origin/master' into staging

  • origin/master: (75 commits)
    tcg: Don't make exitreq flag a local temporary
    Makefile: Add subdir dependency on config-devices-all.mak
    make_device_config.sh: Emit dependency file to directory where included...
6e72a00f 03/11/2013 02:56 am Anthony Liguori

Merge remote-tracking branch 'bonzini/hw-dirs' into staging

  • bonzini/hw-dirs:
    sh: move files referencing CPU to hw/sh4/
    ppc: move more files to hw/ppc
    ppc: move files referencing CPU to hw/ppc/
    m68k: move files referencing CPU to hw/m68k/
    i386: move files referencing CPU to hw/i386/...
a4960ef3 03/09/2013 07:16 pm Richard Henderson

tcg: Don't make exitreq flag a local temporary

The value is not actually live across basic blocks, so there's no
need for the local property. This eliminates storing the temporary
to its home location at the branch.

Signed-off-by: Richard Henderson <>...

23673ca7 03/08/2013 09:57 pm Anthony Liguori

qemu-char: add watch support

This allows a front-end to request for a callback when the backend
is writable again.

Signed-off-by: Anthony Liguori <>
Signed-off-by: Amit Shah <>
Message-id: ...

9f939df9 03/08/2013 09:57 pm Anthony Liguori

qemu-char: remove use of QEMUTimer in favor of glib idle function

qemu-char is now independent of the QEMU main loop.

Signed-off-by: Anthony Liguori <>
Signed-off-by: Amit Shah <>
Message-id: ...

d654f34e 03/08/2013 09:57 pm Anthony Liguori

qemu-char: make char drivers dynamically registerable

Signed-off-by: Anthony Liguori <>
Signed-off-by: Amit Shah <>
Message-id:
Signed-off-by: Anthony Liguori <>

71df81af 03/04/2013 04:22 pm Anthony Liguori

Merge remote-tracking branch 'stefanha/block' into staging

  1. By MORITA Kazutaka (5) and others
  2. Via Stefan Hajnoczi
    • stefanha/block:
      block: for HMP commit() operations on 'all', skip non-COW drives
      sheepdog: add support for connecting to unix domain socket...
bf5363ef 03/04/2013 04:20 pm Anthony Liguori

Merge remote-tracking branch 'stefanha/net' into staging

  1. By Jason Wang (2) and others
  2. Via Stefan Hajnoczi
    • stefanha/net:
      qmp: netdev_add is like -netdev, not -net, fix documentation
      doc: document -netdev hubport
      net: reduce the unnecessary memory allocation of multiqueue...
bf1c852a 03/04/2013 10:54 am MORITA Kazutaka

move socket_set_nodelay to osdep.c

Signed-off-by: MORITA Kazutaka <>
Signed-off-by: Stefan Hajnoczi <>

806f352d 03/03/2013 04:29 pm Peter Maydell

gen-icount.h: Rename gen_icount_start/end to gen_tb_start/end

The gen_icount_start/end functions are now somewhat misnamed since they
are useful for generic "start/end of TB" code, used for more than just
icount. Rename them to gen_tb_start/end.

Signed-off-by: Peter Maydell <>...

378df4b2 03/03/2013 04:28 pm Peter Maydell

Handle CPU interrupts by inline checking of a flag

Fix some of the nasty TCG race conditions and crashes by implementing
cpu_exit() as setting a flag which is checked at the start of each TB.
This avoids crashes if a thread or signal handler calls cpu_exit()...

0980011b 03/03/2013 04:28 pm Peter Maydell

tcg: Document tcg_qemu_tb_exec() and provide constants for low bit uses

Document tcg_qemu_tb_exec(). In particular, its return value is a
combination of a pointer to the next translation block and some
extra information in the low two bits. Provide some #defines for...

b4a42f81 03/01/2013 02:54 pm Paolo Bonzini

hw: move qdev-monitor.o to toplevel directory

qdev-monitor.c is the only "core qdev" file that is not used in
user-mode emulation, and it does not define anything that is used
by hardware models. Remove it from the hw/ directory and
remove hw/qdev-monitor.h from hw/qdev.h too; this requires...

fd7f0d66 03/01/2013 02:53 pm Paolo Bonzini

hw: move fifo.[ch] to libqemuutil

fifo.c is generic code that can be easily unit tested. So it
belongs in libqemuutil.

Signed-off-by: Paolo Bonzini <>

159b6e9f 03/01/2013 02:18 pm Paolo Bonzini

hw: move char backends to backends/

Braille and msmouse support is in hw/, but it is not hardware.
Move it to the backends/ directory.

Signed-off-by: Paolo Bonzini <>

f6b26cf2 02/27/2013 05:10 pm Jason Wang

net: reduce the unnecessary memory allocation of multiqueue

Edivaldo reports a problem that the array of NetClientState in NICState is too
large - MAX_QUEUE_NUM(1024) which will wastes memory even if multiqueue is not
used.

Instead of static arrays, solving this issue by allocating the queues on demand...

31e76f65 02/26/2013 09:35 pm Alexander Graf

glib: Add compat wrapper for g_poll on old glib

Older glib doesn't implement g_poll(). Most notably the glib version in use
on SLE11 is on 2.18 which is hit by this.

We do want to use g_poll() in the source however. So on older systems, just
wrap it with functions that do exist on older versions....

989b697d 02/26/2013 09:31 pm Peter Maydell

qemu-log: default to stderr for logging output

Switch the default for qemu_log logging output from "/tmp/qemu.log"
to stderr. This is an incompatible change in some sense, but logging
is mostly used for debugging purposes so it shouldn't affect production...

864a556e 02/26/2013 03:44 pm Anthony Liguori

Merge remote-tracking branch 'kwolf/for-anthony' into staging

  1. By Paolo Bonzini (7) and others
  2. Via Kevin Wolf
    • kwolf/for-anthony: (22 commits)
      pc: add compatibility machine types for 1.4
      blockdev: enable discard by default
      qemu-nbd: add --discard option...
9a1d7f00 02/26/2013 03:44 pm Anthony Liguori

Merge remote-tracking branch 'quintela/stats.next' into staging

  1. By Juan Quintela
  2. Via Juan Quintela
    • quintela/stats.next:
      migration: calculate expected_downtime
      migration: don't account sleep time for calculating bandwidth
      migration: calculate end time after we have sent the data...
6ab7e546 02/23/2013 06:11 pm Peter Maydell

Replace all setjmp()/longjmp() with sigsetjmp()/siglongjmp()

The setjmp() function doesn't specify whether signal masks are saved and
restored; on Linux they are not, but on BSD (including MacOSX) they are.
We want to have consistent behaviour across platforms, so we should...

632314c4 02/23/2013 11:42 am Peter Maydell

qemu-log: Remove qemu_log_try_set_file() and its users

Remove the function qemu_log_try_set_file() and its users (which
are all in TCG code generation functions for various targets).
This function was added to abstract out code which was originally
written as "if (!logfile) logfile = stderr;" in order that BUG:...

9e8f1835 02/22/2013 10:29 pm Paolo Bonzini

block: implement BDRV_O_UNMAP

It is better to present homogeneous hardware independent of the storage
technology that is chosen on the host, hence we make discard a host
parameter; the user can choose whether to pass it down to the image
format and protocol, or to ignore it....

e6439d78 02/22/2013 10:21 pm Stefan Hajnoczi

qemu-img: add compressed clusters to BlockFragInfo

Show how many clusters are compressed. This can be used to monitor how
many compressed clusters remain and whether to recompress the image.

Suggested-by: Cole Robinson <>
Signed-off-by: Stefan Hajnoczi <>

b35b2bba 02/22/2013 10:21 pm Miroslav Rezanina

block: Add synchronous wrapper for bdrv_co_is_allocated_above

There's no synchronous wrapper for bdrv_co_is_allocated_above function
so it's not possible to check for sector allocation in an image with
a backing file.

Signed-off-by: Miroslav Rezanina <>...

f382d43a 02/22/2013 10:21 pm Miroslav Rezanina

qemu-img: Add "Quiet mode" option

There can be a need to turn output to stdout off. This patch adds a -q option
that enable "Quiet mode". In Quiet mode, only errors are printed out.

Signed-off-by: Miroslav Rezanina <>
Reviewed-by: Kevin Wolf <>...

c6bb9ad1 02/22/2013 10:21 pm Federico Simoncelli

qemu-img: find the image end offset during check

This patch adds the support for reporting the image end offset (in
bytes). This is particularly useful after a conversion (or a rebase)
where the destination is a block device in order to find the first
unused byte at the end of the image....

90f8ae72 02/22/2013 11:12 am Juan Quintela

migration: calculate expected_downtime

We removed the calculation in commit e4ed1541ac9413eac494a03532e34beaf8a7d1c5

Now we add it back. We need to create dirty_bytes_rate because we
can't include cpu-all.h from migration.c, and there is no other way to...

d82831db 02/22/2013 12:34 am Anthony Liguori

console: allow VCs to be overridden by UI

We want to expose VCs using a VteTerminal widget. We need access to provide our
own CharDriverState in order to do this.

Signed-off-by: Anthony Liguori <>
Message-id:

a4ccabcf 02/22/2013 12:34 am Anthony Liguori

ui: add basic GTK gui (v5)

This is minimalistic and just contains the basic widget infrastructure. The GUI
consists of a menu and a GtkNotebook. To start with, the notebook has its tabs
hidden which provides a UI that looks very similar to SDL with the exception of...

b1424e03 02/22/2013 12:34 am Gerd Hoffmann

vga: fix byteswapping.

In case host and guest endianness differ the vga code first creates
a shared surface (using qemu_create_displaysurface_from), then goes
patch the surface format to indicate that the bytes must be swapped.

The switch to pixman broke that hack as the format patching isn't...

a3e4b4a8 02/22/2013 12:17 am Stefan Hajnoczi

iohandler: switch to GPollFD

Convert iohandler_select_fill() and iohandler_select_poll() to use
GPollFD instead of rfds/wfds/xfds.

Signed-off-by: Stefan Hajnoczi <>
Reviewed-by: Laszlo Ersek <>
Message-id: ...

6b5f8762 02/22/2013 12:17 am Stefan Hajnoczi

aio: convert aio_poll() to g_poll(3)

AioHandler already has a GPollFD so we can directly use its
events/revents.

Add the int pollfds_idx field to AioContext so we can map g_poll(3)
results back to AioHandlers.

Reuse aio_dispatch() to invoke handlers after g_poll(3)....

87f1361c 02/21/2013 11:33 am Hervé Poussineau

Remove forward declaration of non-existant variable

This variable has been removed 5 years ago in 970ac5a3082428dca91171f270dcd95d6f4b2636.

Signed-off-by: Hervé Poussineau <>
Signed-off-by: Stefan Hajnoczi <>

3c3adde0 02/18/2013 04:37 pm Anthony Liguori

Merge remote-tracking branch 'afaerber/qom-cpu' into staging

  1. By Andreas Färber
  2. Via Andreas Färber
    • afaerber/qom-cpu: (47 commits)
      target-i386: Split command line parsing out of cpu_x86_register()
      target-i386: Move cpu_x86_init()
      target-lm32: Drop unused cpu_lm32_close() prototype...
f540166b 02/17/2013 04:28 pm Richard Henderson

host-utils: Use __int128_t for mul[us]64

Replace some x86_64 specific inline assembly with something that
all 64-bit hosts ought to optimize well. At worst this becomes
a call to the gcc __multi3 routine, which is no worse than our
implementation in util/host-utils.c....

0315c31c 02/16/2013 03:51 pm Andreas Färber

cpu: Move running field to CPUState

Pass CPUState to cpu_exec_{start,end}() functions.

Signed-off-by: Andreas Färber <>

fcd7d003 02/16/2013 03:51 pm Andreas Färber

cpu: Move exit_request field to CPUState

Since it was located before breakpoints field, it needs to be reset.

Signed-off-by: Andreas Färber <>

d77953b9 02/16/2013 03:51 pm Andreas Färber

cpu: Move current_tb field to CPUState

Explictly NULL it on CPU reset since it was located before breakpoints.

Change vapic_report_tpr_access() argument to CPUState. This also
resolves the use of void* for cpu.h independence.
Change vAPIC patch_instruction() argument to X86CPU....

c05efcb1 02/16/2013 03:51 pm Andreas Färber

cpu: Add CPUArchState pointer to CPUState

The target-specific ENV_GET_CPU() macros have allowed us to navigate
from CPUArchState to CPUState. The reverse direction was not supported.
Avoid introducing CPU_GET_ENV() macros by initializing an untyped
pointer that is initialized in derived instance_init functions....

0d34282f 02/16/2013 03:50 pm Andreas Färber

cpu: Move host_tid field to CPUState

Change gdbstub's cpu_index() argument to CPUState now that CPUArchState
is no longer used.

Signed-off-by: Andreas Färber <>

453776e5 02/16/2013 01:12 pm Richard Henderson

bitops: Remove routines redundant with host-utils

Signed-off-by: Richard Henderson <>
Reviewed-by: Eric Blake <>
Signed-off-by: Blue Swirl <>

0cfa6adc 02/16/2013 01:12 pm Richard Henderson

bitops: Write bitops_flsl in terms of clzl

Signed-off-by: Richard Henderson <>
Reviewed-by: Eric Blake <>
Signed-off-by: Blue Swirl <>

18331e7c 02/16/2013 01:11 pm Richard Henderson

hbitmap: Use non-bitops ctzl

Both uses of ctz have already eliminated zero, and thus the difference
in edge conditions between the two routines is irrelevant.

Signed-off-by: Richard Henderson <>
Acked-by: Paolo Bonzini <>...

72d81155 02/16/2013 01:09 pm Richard Henderson

host-utils: Fix coding style and add comments

Add function comments to the routines, documenting the corner
cases upon which we are standardizing. Fix the few instances
of non-standard coding style.

Signed-off-by: Richard Henderson <>
Reviewed-by: Eric Blake <>...

01654373 02/16/2013 01:09 pm Richard Henderson

host-utils: Add host long specific aliases for clz, ctz, ctpop

We will standardize on these names, rather than the similar routines
currently residing in qemu/bitops.h.

Signed-off-by: Richard Henderson <>
Reviewed-by: Eric Blake <>...

38dad9e5 02/16/2013 12:45 pm Peter Maydell

qemu-log: Rename CPULogItem, cpu_log_items to QEMULogItem, qemu_log_items

Rename the typedef CPULogItem and the public array cpu_log_items
to names that better reflect the fact that the qemu_log functionality
isn't restricted to TCG CPU debug logs any more....

b946bffa 02/16/2013 12:45 pm Peter Maydell

cpus.c: Drop unnecessary set_cpu_log()

The set_cpu_log() function in cpus.c is a fairly simple wrapper
which is only called from one location. Just inline the code
into vl.c, since there is no need to indirect it via cpus.c
and the handling of the error case is more appropriate to vl.c....

24537a01 02/16/2013 12:44 pm Peter Maydell

qemu-log: Rename the public-facing cpu_set_log function to qemu_set_log

Rename the public-facing function cpu_set_log to qemu_set_log. This
requires us to rename the internal-only qemu_set_log() to
do_qemu_set_log().

Signed-off-by: Peter Maydell <>...

4fde1eba 02/16/2013 12:44 pm Peter Maydell

qemu-log: Rename cpu_str_to_log_mask to qemu_str_to_log_mask

Rename cpu_str_to_log_mask() to qemu_str_to_log_mask(), since
the qemu_log functionality is no longer restricted to TCG CPU
debug logging.

Signed-off-by: Peter Maydell <>...

59a6fa6e 02/16/2013 12:44 pm Peter Maydell

qemu-log: Abstract out "print usage message about valid log categories"

Abstract out the "print a human readable list of all the
valid log categories" functionality which is currently duplicated
in three separate places. (We leave the monitor.c help_cmd()...

9a7e5424 02/16/2013 12:43 pm Peter Maydell

qemu-log: Unify {cpu_set,set_cpu}_log_filename as qemu_set_log_filename

The qemu_log() functionality is no longer specific to TCG CPU debug logs.
Rename cpu_set_log_filename() to qemu_set_log_filename() and drop the
pointless wrapper set_cpu_log_filename()....

5e5f07e0 02/16/2013 12:41 pm Evgeny Voevodin

TCG: Move translation block variables to new context inside tcg_ctx: tb_ctx

It's worth to clean-up translation blocks variables and move them
into one context as was suggested by Swirl.
Also if we use this context directly inside tcg_ctx, then it
speeds up code generation a bit....

ad55ab42 02/13/2013 12:26 am Stefan Hajnoczi

migration: make qemu_ftell() public and support writable files

Migration .save_live_iterate() functions return the number of bytes
transferred. The easiest way of doing this is by calling qemu_ftell(f)
at the beginning and end of the function to calculate the difference....

91107fdf 02/06/2013 04:29 pm Richard Henderson

bswap: Fix width of swap in leul_to_cpu

The misnamed HOST_LONG_BITS is really HOST_POINTER_BITS. Here we're
explicitly using an unsigned long, rather than uintptr_t, so it is
more correct to select the swap size via ULONG_MAX.

Acked-by: Andreas Färber <>...

e3f9fe2d 02/04/2013 10:38 pm Eduardo Habkost

cutils: unsigned int parsing functions

There are lots of duplicate parsing code using strto*() in QEMU, and
most of that code is broken in one way or another. Even the visitors
code have duplicate integer parsing code1. This introduces functions
to help parsing unsigned int values: parse_uint() and parse_uint_full()....

fbeadf50 02/02/2013 10:16 pm Paolo Bonzini

bitops: unify bitops_ffsl with the one in host-utils.h, call it bitops_ctzl

We had two copies of a ffs function for longs with subtly different
semantics and, for the one in bitops.h, a confusing name: the result
was off-by-one compared to the library function ffsl....

7b2d9779 02/02/2013 10:13 pm Stefan Weil

util: Fix compilation of envlist.c for MinGW

MinGW has no strtok_r, so we need a declaration in sysemu/os-win32.h.
We must also fix the include statements in util/envlist.c to include
that file.

We currently don't need an implementation of strtok_r because the...

b76facc3 02/01/2013 11:53 pm Paolo Bonzini

qom: remove object_delete

This is now unused. Document the initial reference count of an object
and when it will be freed/finalized.

Signed-off-by: Paolo Bonzini <>
Signed-off-by: Anthony Liguori <>

6c232d2f 02/01/2013 11:53 pm Paolo Bonzini

qom: document reference counting of link properties

Signed-off-by: Paolo Bonzini <>
Signed-off-by: Anthony Liguori <>

d5286af5 02/01/2013 11:08 pm liguang

accel: change {xen, kvm, tcg, qtest}_allowed from int to bool

Signed-off-by: liguang <>
Signed-off-by: Anthony Liguori <>

77a5f4f2 02/01/2013 10:40 pm Anthony Liguori

Merge remote-tracking branch 'stefanha/block' into staging

  1. By Kevin Wolf (7) and others
  2. Via Stefan Hajnoczi
    • stefanha/block:
      block/raw-posix: Build fix for O_ASYNC
      vmdk: Allow space in file name
      parallels: Fix bdrv_open() error handling
      dmg: Use g_free instead of free...
16dbaf90 02/01/2013 07:03 pm Jason Wang

tap: support enabling or disabling a queue

This patch introduce a new bit - enabled in TAPState which tracks whether a
specific queue/fd is enabled. The tap/fd is enabled during initialization and
could be enabled/disabled by tap_enalbe() and tap_disable() which calls platform...

e5dc0b40 02/01/2013 07:03 pm Jason Wang

tap: introduce a helper to get the name of an interface

This patch introduces a helper tap_get_ifname() to get the device name of tap
device. This is needed when ifname is unspecified in the command line and qemu
were asked to create tap device by itself. In this situation, the name were...

264986e2 02/01/2013 07:03 pm Jason Wang

tap: multiqueue support

Recently, linux support multiqueue tap which could let userspace call TUNSETIFF
for a signle device many times to create multiple file descriptors as
independent queues. User could also enable/disabe a specific queue through
TUNSETQUEUE....

948ecf21 02/01/2013 07:03 pm Jason Wang

net: intorduce qemu_del_nic()

To support multiqueue nic, this patch separate the nic destructor from
qemu_del_net_client() to a new helper qemu_del_nic() since the mapping bettween
NiCState and NetClientState were not 1:1 in multiqueue. The following patches...

6c51ae73 02/01/2013 07:03 pm Jason Wang

net: introduce qemu_find_net_clients_except()

In multiqueue, all NetClientState that belongs to the same netdev or nic has the
same id. So this patches introduces an helper qemu_find_net_clients_except()
which finds all NetClientState with the same id. This will be used by multiqueue...

f7860455 02/01/2013 07:03 pm Jason Wang

net: introduce NetClientState destructor

To allow allocating an array of NetClientState and free it once, this patch
introduces destructor of NetClientState. Which could do type specific free,
which could be used by multiqueue to free the array once.

Signed-off-by: Jason Wang <>...

1ceef9f2 02/01/2013 07:03 pm Jason Wang

net: multiqueue support

This patch adds basic multiqueue support for qemu. The idea is simple, an array
of NetClientStates were introduced in NICState, parse_netdev() were extended to
find and match all NetClientStates belongs to the backend and place their...

cc1f0f45 02/01/2013 07:03 pm Jason Wang

net: introduce qemu_get_nic()

To support multiqueue, this patch introduces a helper qemu_get_nic() to get
NICState from a NetClientState. The following patches would refactor this helper
to support multiqueue.

Signed-off-by: Jason Wang <>...

b356f76d 02/01/2013 07:02 pm Jason Wang

net: introduce qemu_get_queue()

To support multiqueue, the patch introduce a helper qemu_get_queue()
which is used to get the NetClientState of a device. The following patches would
refactor this helper to support multiqueue.

Signed-off-by: Jason Wang <>...

ec45f083 02/01/2013 06:50 pm Jason Wang

net: tap: using bool instead of bitfield

Signed-off-by: Jason Wang <>
Signed-off-by: Anthony Liguori <>

7f2039f6 02/01/2013 03:58 pm Othmar Pasteka

vmdk: Allow selecting SCSI adapter in image creation

Introduce a new option "adapter_type" when converting to vmdk images.
It can be one of the following: ide (default), buslogic, lsilogic
or legacyESX (according to the vmdk spec from vmware).

In case of a non-ide adapter, heads is set to 255 instead of the 16....

0b087861 01/30/2013 12:16 pm Peter Maydell

qemu-pixman.h: Avoid mutual inclusion loop with console.h

Remove an unnecessary mutual inclusion loop between qemu-pixman.h and
console.h, since the former was only including the latter for
'PixelFormat*', which can be provided by typedefs.h. This requires a...

ec9466ff 01/28/2013 10:48 pm Anthony Liguori

Merge remote-tracking branch 'afaerber/qom-cpu' into staging

  • afaerber/qom-cpu: (37 commits)
    kvm: Pass CPUState to kvm_on_sigbus_vcpu()
    cpu: Unconditionalize CPUState fields
    target-m68k: Use type_register() instead of type_register_static()
    target-unicore32: Use type_register() instead of type_register_static()...
503cb22e 01/28/2013 10:46 pm Anthony Liguori

Merge remote-tracking branch 'kwolf/for-anthony' into staging

  1. By Paolo Bonzini (14) and others
  2. Via Kevin Wolf
    • kwolf/for-anthony: (24 commits)
      ide: Add fall through annotations
      block: Create proper size file for disk mirror
      ahci: Add migration support...
c03c520d 01/28/2013 05:57 pm Andreas Färber

cpu: Unconditionalize CPUState fields

Commits fc8c5b8c41ee5ba69d7a2be63b02a08c7b0b155b (Makefile.user: Define
CONFIG_USER_ONLY for libuser/) and
dd83b06ae61cfa2dc4381ab49f365bd0995fc930 (qom: Introduce CPU class)
specifically prepared the qom/cpu.c file to be compiled differently for...

290adf38 01/28/2013 05:57 pm Andreas Färber

kvm: Pass CPUState to kvm_on_sigbus_vcpu()

Since commit 20d695a9254c1b086a456d3b79a3c311236643ba (kvm: Pass
CPUState to kvm_arch_*) CPUArchState is no longer needed.

Allows to change qemu_kvm_eat_signals() argument as well.

Signed-off-by: Andreas Färber <>...

17862378 01/28/2013 12:33 am Andreas Färber

qom: Introduce object_class_is_abstract()

This lets a caller check if an ObjectClass as returned by, e.g.,
object_class_by_name() is instantiatable.

Signed-off-by: Andreas Färber <>
Cc: Anthony Liguori <>

2b8c2754 01/27/2013 03:52 pm Andreas Färber

cpu: Add model resolution support to CPUClass

Introduce CPUClass::class_by_name and add a default implementation.
Hook up the alpha and ppc implementations.

Introduce a wrapper function cpu_class_by_name().

Signed-off-by: Andreas Färber <>

54fb7bf6 01/27/2013 03:34 pm Eduardo Habkost

cpus.h: Make constant smp_cores/smp_threads available on *-user

The code that calculates the APIC ID will use smp_cores/smp_threads, so
just define them as 1 on *-user to avoid #ifdefs in the code.

Signed-off-by: Eduardo Habkost <>
Signed-off-by: Andreas Färber <>

d61a23ba 01/27/2013 03:34 pm Eduardo Habkost

kvm: Add fake KVM_FEATURE_CLOCKSOURCE_STABLE_BIT for builds without KVM

Signed-off-by: Eduardo Habkost <>
Acked-by: Marcelo Tosatti <>
Signed-off-by: Andreas Färber <>

b164e48e 01/27/2013 03:34 pm Eduardo Habkost

kvm: Create kvm_arch_vcpu_id() function

This will allow each architecture to define how the VCPU ID is set on
the KVM_CREATE_VCPU ioctl call.

Signed-off-by: Eduardo Habkost <>
Acked-by: Gleb Natapov <>
Signed-off-by: Andreas Färber <>

d09acb9b 01/26/2013 03:23 pm Markus Armbruster

fw_cfg: Splash image loader can overrun a stack variable, fix

read_splashfile() passes the address of an int variable as size_t *
parameter to g_file_get_contents(), with a cast to gag the compiler.

No problem on machines where sizeof(size_t) == sizeof(int)....

02582abd 01/25/2013 07:18 pm Stefan Weil

block: Add special error code for wrong format

The block drivers need a special error code for "wrong format".
From the available error codes EMEDIUMTYPE fits best.
It is not available on all platforms, so a definition in
qemu-common.h and a specific error report are needed....

1b095244 01/25/2013 07:18 pm Paolo Bonzini

hbitmap: add assertion on hbitmap_iter_init

hbitmap_iter_init causes an out-of-bounds access when the "first"
argument is or greater than or equal to the size of the bitmap.
Forbid this with an assertion, and remove the failing testcase.

Reported-by: Kevin Wolf <>...

50717e94 01/25/2013 07:18 pm Paolo Bonzini

block: allow customizing the granularity of the dirty bitmap

Reviewed-by: Eric Blake <>
Signed-off-by: Paolo Bonzini <>
Signed-off-by: Kevin Wolf <>

eee13dfe 01/25/2013 07:18 pm Paolo Bonzini

mirror: allow customizing the granularity

The desired granularity may be very different depending on the kind of
operation (e.g. continuous replication vs. collapse-to-raw) and whether
the VM is expected to perform lots of I/O while mirroring is in progress....

08e4ed6c 01/25/2013 07:18 pm Paolo Bonzini

mirror: add buf-size argument to drive-mirror

This makes sense when the next commit starts using the extra buffer space
to perform many I/O operations asynchronously.

Signed-off-by: Paolo Bonzini <>
Signed-off-by: Kevin Wolf <>

8f0720ec 01/25/2013 07:18 pm Paolo Bonzini

block: implement dirty bitmap using HBitmap

This actually uses the dirty bitmap in the block layer, and converts
mirroring to use an HBitmapIter.

Reviewed-by: Laszlo Ersek <> (except block/mirror.c parts)
Reviewed-by: Eric Blake <>...

343bded4 01/25/2013 07:18 pm Paolo Bonzini

block: make round_to_clusters public

This is needed in the following patch.

Reviewed-by: Laszlo Ersek <>
Reviewed-by: Eric Blake <>
Signed-off-by: Paolo Bonzini <>
Signed-off-by: Kevin Wolf <>

e7c033c3 01/25/2013 07:18 pm Paolo Bonzini

add hierarchical bitmap data type and test cases

HBitmaps provides an array of bits. The bits are stored as usual in an
array of unsigned longs, but HBitmap is also optimized to provide fast
iteration over set bits; going from one bit to the next is O(logB n)...

4c37ef02 01/25/2013 07:18 pm Paolo Bonzini

host-utils: add ffsl

We can provide fast versions based on the other functions defined
by host-utils.h. Some care is required on glibc, which provides
ffsl already.

Reviewed-by: Eric Blake <>
Signed-off-by: Paolo Bonzini <>...