sdk/emulator/qemu.git
14 years agoconfigure: Remove unneeded defines from checks
Stefan Weil [Wed, 6 Oct 2010 19:09:17 +0000 (21:09 +0200)]
configure: Remove unneeded defines from checks

_GNU_SOURCE is already defined in QEMU_CFLAGS which
is passed to gcc in shell function compile_prog.

Removing the definition from several checks avoids compiler warnings
(which are now written to config.log).

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoconfigure: include stddef.h for NULL
Scott Wood [Tue, 5 Oct 2010 19:28:17 +0000 (14:28 -0500)]
configure: include stddef.h for NULL

This fixes an observed failure to detect madvise() on Linux.

To avoid similar issues, all other tests that use NULL but don't already
have stddef.h (or another header that is defined to provide NULL,
such as stdio.h, unistd.h, or time.h) are also fixed.

Signed-off-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agotrace: Trace bdrv_aio_{readv,writev}
Stefan Hajnoczi [Tue, 5 Oct 2010 13:28:53 +0000 (14:28 +0100)]
trace: Trace bdrv_aio_{readv,writev}

Observing block layer aio readv/writev operations is useful for
debugging image formats or understanding guest disk I/O patterns.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agotrace: Use TP_PROTO() and TP_ARGS() for LTTng UST
Stefan Hajnoczi [Tue, 5 Oct 2010 13:28:52 +0000 (14:28 +0100)]
trace: Use TP_PROTO() and TP_ARGS() for LTTng UST

The LTTng UserSpace Tracer formerly used TPPROTO() and TPARGS() instead
of TP_PROTO() and TP_ARGS() like the kernel uses.  This has been changed
so QEMU needs to follow.

I am not aware of a graceful way of making the transition but since no
one complained that the UST build is broken, it should be fine to just
switch over without compatibility for old UST headers.  The newer UST
headers are shipping in distro packages so it is realistic to make this
change now.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agotrace: Don't strip lines containing '#' arbitrarily
Stefan Hajnoczi [Tue, 5 Oct 2010 13:28:51 +0000 (14:28 +0100)]
trace: Don't strip lines containing '#' arbitrarily

Although comment lines must be skipped, the '#' character can occur in
valid format strings.  Be more careful when checking for comments.
Leave comments at the end of the line where they will not interfere with
other processing.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agotrace: Use portable format strings
Stefan Hajnoczi [Tue, 5 Oct 2010 13:28:50 +0000 (14:28 +0100)]
trace: Use portable format strings

It is not portable to use "%ld" for int64_t because int64_t may have
type long on 64-bit platforms and long long on 32-bit platforms.  Use
the standard library PRId64 macros to keep format strings portable.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agocris: Consider the TLB valid bit on writes to the TLB
Edgar E. Iglesias [Thu, 7 Oct 2010 19:20:52 +0000 (21:20 +0200)]
cris: Consider the TLB valid bit on writes to the TLB

When updating the guest TLB we only need to flush previous
mappings from the entry written if the entry was valid.

Also fixes a compiler warning reported by Blue Swirl.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
14 years agoMerge remote branch 'spice/submit.6' into staging
Anthony Liguori [Tue, 5 Oct 2010 19:14:19 +0000 (14:14 -0500)]
Merge remote branch 'spice/submit.6' into staging

Conflicts:
configure

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoMerge remote branch 'qmp/for-anthony' into staging
Anthony Liguori [Tue, 5 Oct 2010 18:54:49 +0000 (13:54 -0500)]
Merge remote branch 'qmp/for-anthony' into staging

14 years agolinux-user: Fix typo m86k -> m68k
Stefan Weil [Fri, 24 Sep 2010 16:30:35 +0000 (18:30 +0200)]
linux-user: Fix typo m86k -> m68k

Replace m86k_sim_stat by m68k_sim_stat.

Cc: Riku Voipio <riku.voipio@iki.fi>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
14 years agoFix spelling in comments
Stefan Weil [Fri, 6 Aug 2010 19:53:45 +0000 (21:53 +0200)]
Fix spelling in comments

multifuction -> multifunction
successfull -> successful.

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
14 years agodocs: Improve documentation
Stefan Weil [Sun, 1 Aug 2010 11:43:18 +0000 (13:43 +0200)]
docs: Improve documentation

Fix some inconsistencies (tabs and punctuation)
and try to improve grammar and spelling.

Cc: Juan Quintela <quintela@redhat.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
14 years agoAdd new user mode option -ignore-environment
Stefan Weil [Thu, 15 Jul 2010 20:28:02 +0000 (22:28 +0200)]
Add new user mode option -ignore-environment

An empty environment is sometimes useful in user mode.
The new option provides it for linux-user and bsd-user
(darwin-user still has no environment related options).

The patch also adds the documentation for other
environment related options.

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
14 years agoppc: Minor 40x MMU fixes
John Clark [Tue, 5 Oct 2010 16:38:55 +0000 (18:38 +0200)]
ppc: Minor 40x MMU fixes

* Fix swapped reading of tlblo/hi.
* Fix tlb exec permissions

Signed-off-by: John Clark <clarkjc@runbox.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
14 years agoconsole: Avoid dereferencing NULL active_console
Stefan Hajnoczi [Mon, 20 Sep 2010 13:11:19 +0000 (14:11 +0100)]
console: Avoid dereferencing NULL active_console

The console_select() function does not check that active_console is
non-NULL before dereferencing it.  When invoked with qemu -nodefaults it
is possible to hit this case.

This patch checks that active_console is non-NULL before stashing away
the old console dimensions in console_select().

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoexec: Fix compilation error for debug code
Stefan Weil [Thu, 30 Sep 2010 20:39:51 +0000 (22:39 +0200)]
exec: Fix compilation error for debug code

is_softmmu was removed with commit
d4c430a80f000d722bb70287af4d4c184a8d7006,
so remove it now from debug code, too.

Fix also the format specifier for paddr
in the same line of code.

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agorc4030: Fix compilation error in debug code
Stefan Weil [Thu, 30 Sep 2010 20:05:42 +0000 (22:05 +0200)]
rc4030: Fix compilation error in debug code

min was unknown here, so avoid it.

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agomipsnet: Fix compiler warning in debug code
Stefan Weil [Thu, 30 Sep 2010 19:33:15 +0000 (21:33 +0200)]
mipsnet: Fix compiler warning in debug code

size_t needs a different format specifier, so fix this.

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoblock/vvfat: Fix compiler warning in debug code
Stefan Weil [Thu, 30 Sep 2010 19:15:39 +0000 (21:15 +0200)]
block/vvfat: Fix compiler warning in debug code

Fix this compiler warning:
./block/vvfat.c:2285: error: comparison of unsigned expression >= 0 is always true

Cc: Blue Swirl <blauwirbel@gmail.com>
Cc: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agovirtio-9p: Use GCC_FMT_ATTR and fix a format warning
Stefan Weil [Mon, 27 Sep 2010 16:45:47 +0000 (18:45 +0200)]
virtio-9p: Use GCC_FMT_ATTR and fix a format warning

With the new gcc format warnings, gcc detected this:

/qemu/hw/virtio-9p.c:1040: error: format ‘%u’ expects type ‘unsigned int’, but argument 4 has type ‘__nlink_t’

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoblockdev: Use GCC_FMT_ATTR (format checking)
Stefan Weil [Thu, 23 Sep 2010 18:47:32 +0000 (20:47 +0200)]
blockdev: Use GCC_FMT_ATTR (format checking)

Additional changes:

* Removed 'extern' from drive_add (avoids too long line).
* Removed 'extern' from other functions (makes declarations
  consistent with others in same header file).

Cc: Blue Swirl <blauwirbel@gmail.com>
Cc: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoUse GCC_FMT_ATTR (format checking)
Stefan Weil [Thu, 23 Sep 2010 19:28:05 +0000 (21:28 +0200)]
Use GCC_FMT_ATTR (format checking)

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoReplace most gcc format attributes by macro GCC_FMT_ATTR (format checking)
Stefan Weil [Thu, 23 Sep 2010 19:28:03 +0000 (21:28 +0200)]
Replace most gcc format attributes by macro GCC_FMT_ATTR (format checking)

Since version 4.4.x, gcc supports additional format attributes.
    __attribute__ ((format (gnu_printf, 1, 2)))
should be used instead of
    __attribute__ ((format (printf, 1, 2))
because QEMU always uses standard format strings (even with mingw32).

The patch replaces format attribute printf / __printf__ by macro
GCC_FMT_ATTR which uses gnu_printf if supported.

It also removes an #ifdef __GNUC__ (not needed any longer).

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoslirp: Silence warning on Haiku
Andreas Färber [Sun, 19 Sep 2010 22:50:48 +0000 (00:50 +0200)]
slirp: Silence warning on Haiku

Haiku has O_BINARY in fcntl.h.

Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Cc: Jan Kiszka <jan.kiszka@web.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agotap: Add stub for Haiku
Andreas Färber [Sun, 19 Sep 2010 22:50:47 +0000 (00:50 +0200)]
tap: Add stub for Haiku

Adapted from AIX code.

Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agonbd: Haiku has _IO() in its BSD compatibility layer
Andreas Färber [Sun, 19 Sep 2010 22:50:46 +0000 (00:50 +0200)]
nbd: Haiku has _IO() in its BSD compatibility layer

Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoHaiku doesn't have libm
Andreas Färber [Sun, 19 Sep 2010 22:50:45 +0000 (00:50 +0200)]
Haiku doesn't have libm

Math functions are integrated into Haiku's libroot.

Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoconfigure: Don't rely on special pthreads library
Andreas Färber [Sun, 19 Sep 2010 22:50:44 +0000 (00:50 +0200)]
configure: Don't rely on special pthreads library

Haiku has pthreads integrated into its libroot.so library. No linker arguments
are needed for it, so don't fail if -lpthread and similar don't link.

Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoconfigure: Add basic support for Haiku
Andreas Färber [Sun, 19 Sep 2010 22:50:43 +0000 (00:50 +0200)]
configure: Add basic support for Haiku

For compatibility with BeOS, Haiku's error codes are negative whereas recent
POSIX versions require them to be positive. As spotted by François, some
parts of QEMU code rely on this, so use a mapper library to convert them
to positive ones.

Cc: François Revol <revol@free.fr>
Cc: Ingo Weinhold <ingo_weinhold@gmx.de>
Haiku has network functions in libnetwork.so. It doesn't ship libutil.so.

Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agotrace: avoid unnecessary recompilation if nothing changed
Blue Swirl [Sat, 2 Oct 2010 14:28:12 +0000 (14:28 +0000)]
trace: avoid unnecessary recompilation if nothing changed

Add logic to detect changes in generated files. If the old
and new files are identical, don't touch the generated file.
This avoids a lot of churn since many files depend on trace.h.

Based on suggestion by Paolo Bonzini.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoMakefile: fix config-devices.mak generation
Blue Swirl [Sat, 2 Oct 2010 14:28:08 +0000 (14:28 +0000)]
Makefile: fix config-devices.mak generation

The logic of detecting changes in default-configs/*.mak is
flawed as can be demonstrated by 'touch default-configs/*.mak'
followed by make. This results in a message claiming that user
made changes to the */config-devices.mak files.

Fix by separating the detection of changes made by the user and
changes in the default-configs.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agosysbus: fix address truncation
Blue Swirl [Sat, 2 Oct 2010 14:27:41 +0000 (14:27 +0000)]
sysbus: fix address truncation

Fix address truncation in sysbus by using a wider type.

Reported-by: Artyom Tarasenko <atar4qemu@googlemail.com>
Tested-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agotarget-cris: Use %td for ptrdiff_t arguments in debug message
Stefan Weil [Sat, 2 Oct 2010 10:41:03 +0000 (12:41 +0200)]
target-cris: Use %td for ptrdiff_t arguments in debug message

According to ISO/IEC 9899:1999 7.19.6.1,
the correct length modifier for ptrdiff_t is 't', not 'z'.

Cc: Blue Swirl <blauwirbel@gmail.com>
Cc: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
14 years agotarget-microblaze: Use %td for ptrdiff_t arguments in debug message
Stefan Weil [Sat, 2 Oct 2010 10:41:04 +0000 (12:41 +0200)]
target-microblaze: Use %td for ptrdiff_t arguments in debug message

According to ISO/IEC 9899:1999 7.19.6.1,
the correct length modifier for ptrdiff_t is 't', not 'z'.

Cc: Blue Swirl <blauwirbel@gmail.com>
Cc: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
14 years agovirtex: Add braces
Edgar E. Iglesias [Sat, 2 Oct 2010 11:04:49 +0000 (13:04 +0200)]
virtex: Add braces

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
14 years agoQMP/README: Update QMP homepage address
Luiz Capitulino [Fri, 10 Sep 2010 17:05:23 +0000 (14:05 -0300)]
QMP/README: Update QMP homepage address

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
14 years agoMonitor: Rename the qemu-monitor.hx file
Luiz Capitulino [Thu, 30 Sep 2010 19:00:22 +0000 (16:00 -0300)]
Monitor: Rename the qemu-monitor.hx file

Let's be consistent and call it hmp-commands.hx, so that we have
qmp-commands.hx for QMP and hmp-commands.hx for HMP.

Please, note that this commit doesn't touch qemu-monitor.texi. All
texi files have the qemu- prefix and I don't think it's worth
changing that.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
14 years agoQMP: Introduce qmp_call_cmd()
Luiz Capitulino [Thu, 16 Sep 2010 14:11:18 +0000 (11:11 -0300)]
QMP: Introduce qmp_call_cmd()

Calls a QObject handler and emits the QMP response, also drops
monitor_call_handler() which is now unused.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
14 years agoMonitor: Directly call QObject handlers
Luiz Capitulino [Thu, 16 Sep 2010 14:06:11 +0000 (11:06 -0300)]
Monitor: Directly call QObject handlers

This avoids handle_user_command() calling monitor_call_handler(),
which is currently shared with QMP.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
14 years agoMonitor: Rename monitor_handler_is_async()
Luiz Capitulino [Thu, 16 Sep 2010 14:01:32 +0000 (11:01 -0300)]
Monitor: Rename monitor_handler_is_async()

Let's follow the convention introduced by the previous commit and
call it handler_is_async().

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
14 years agoMonitor: Rename monitor_handler_ported()
Luiz Capitulino [Thu, 16 Sep 2010 13:58:59 +0000 (10:58 -0300)]
Monitor: Rename monitor_handler_ported()

That name makes no sense anymore, as dispatch tables have been split,
a better name is handler_is_qobject(), which really communicates
the handler's type.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
14 years agoMonitor: Drop monitor_cmd_user_only()
Luiz Capitulino [Thu, 16 Sep 2010 13:47:54 +0000 (10:47 -0300)]
Monitor: Drop monitor_cmd_user_only()

This function was only needed when QMP and HMP were sharing dispatch
tables, this is no longer true so just drop it.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
14 years agoMonitor: Drop QMP info from the qemu-monitor.hx file
Luiz Capitulino [Mon, 13 Sep 2010 18:34:56 +0000 (15:34 -0300)]
Monitor: Drop QMP info from the qemu-monitor.hx file

QMP has its own dispatch table and documentation file
(qmp-commands.hx), we can now drop the following QMP specific info
from qemu-monitor.hx:

    o SQMP/EQMP sections
    o The qmp_capabilities command
    o The query-commands command

However, note that QObject handlers entries are not being removed.
This will only happen when we introduce a proper QMP call interface.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
14 years agoQMP: Small cleanup in handle_qmp_command()
Luiz Capitulino [Mon, 13 Sep 2010 17:44:27 +0000 (14:44 -0300)]
QMP: Small cleanup in handle_qmp_command()

QMP has its own dispatch tables, we can now drop the following
checks:

    o 'info' command: this command doesn't exist in QMP's
       dispatch table, the right thing will happen when it's
       issued by a client (ie. command not found error)

    o monitor_handler_ported(): all QMP handlers are 'ported', no
      need to check for that

    o monitor_cmd_user_only(): no HMP handler will exist in QMP's
      dispatch tables, that's why we have split them after all :-)

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
14 years agoQMP: Simplify do_info_commands()
Luiz Capitulino [Thu, 16 Sep 2010 13:36:54 +0000 (10:36 -0300)]
QMP: Simplify do_info_commands()

We now iterate over QMP's dispatch tables, no need to check for
QMP-only handlers anymore.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
14 years agoQMP: Introduce query commands dispatch table
Luiz Capitulino [Wed, 15 Sep 2010 20:20:33 +0000 (17:20 -0300)]
QMP: Introduce query commands dispatch table

The new table is a copy of HMP's table, containing only QObject
handlers.

In the near future HMP will be making QMP calls and then we will
be able to drop QObject handlers from HMP's table.

From now on, QMP and HMP have different query command dispatch
tables.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
14 years agoQMP: Introduce command dispatch table
Luiz Capitulino [Wed, 15 Sep 2010 20:17:45 +0000 (17:17 -0300)]
QMP: Introduce command dispatch table

Also update QMP functions to use it. The table is generated
from the qmp-commands.hx file.

From now on, QMP and HMP have different command dispatch
tables.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
14 years agoQMP: Introduce qmp_find_cmd()
Luiz Capitulino [Wed, 15 Sep 2010 20:08:39 +0000 (17:08 -0300)]
QMP: Introduce qmp_find_cmd()

Next commit needs this new function: it will introduce the
the QMP's command dispatch table and qmp_find_cmd() will be
used to search on it.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
14 years agoMonitor: Introduce the qmp-commands.hx file
Luiz Capitulino [Mon, 13 Sep 2010 15:26:00 +0000 (12:26 -0300)]
Monitor: Introduce the qmp-commands.hx file

This file contains a copy of the following information from the
qemu-monitor.hx file:

    o QObject handlers entries
    o QMP documentation (all SQMP/EQMP sections)

Right now it's only used to generate the QMP docs in QMP/, but
next commits will turn this into QMP's command dispatch table.

It's important to note that QObject handlers entries are going
to get duplicated: they will exist in both QMP's and HMP's
dispatch tables.

This will be fixed in the near future, when we add a proper
QMP call interface and HMP is converted to use it. This way we
can completely drop QObject handlers entries from HMP's tables.

NOTE: HMP specific constructions, like "q|quit", have been dropped.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
14 years agoMonitor: Convert do_info() back to HMP
Luiz Capitulino [Mon, 13 Sep 2010 15:15:26 +0000 (12:15 -0300)]
Monitor: Convert do_info() back to HMP

This is a HMP specific handler, it makes no sense to have it
under QMP.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
14 years agoMonitor: Drop is_async_return()
Luiz Capitulino [Wed, 15 Sep 2010 19:56:48 +0000 (16:56 -0300)]
Monitor: Drop is_async_return()

If I understood it correcty, the is_async_return() logic was only
used to prevent QMP from issuing duplicated success responses
for asynchronous handlers.

However, QMP doesn't use do_info() anymore so this is dead logic
and (hopefully) can be safely dropped.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
14 years agoMonitor: Drop QMP bits from do_info()
Luiz Capitulino [Fri, 10 Sep 2010 20:00:16 +0000 (17:00 -0300)]
Monitor: Drop QMP bits from do_info()

As of last commit, QMP doesn't use do_info() anymore. Simplify it.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
14 years agoQMP: Don't use do_info()
Luiz Capitulino [Fri, 10 Sep 2010 19:03:38 +0000 (16:03 -0300)]
QMP: Don't use do_info()

Since its inception, QMP has been using HMP's do_info() function
to run query commands.

This was a bad choice, as it made do_info() more complex and
contributed to couple QMP and HMP.

This commit fixes that by doing the following changes:

  1. Introduce qmp_find_query_cmd() and use it to directly lookup
     the info_cmds table

  2. Introduce qmp_call_query_cmd() so that QMP code is able
     to call query handlers without using do_info()

  3. Drop do_info() usage (via monitor_find_command("info"))

We need all the three changes in one shot so that we don't break
the calling of query commands in QMP.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
14 years agoQMP: handle_qmp_command(): Move 'cmd' sanity check
Luiz Capitulino [Wed, 15 Sep 2010 13:56:17 +0000 (10:56 -0300)]
QMP: handle_qmp_command(): Move 'cmd' sanity check

Next commit will change how query commands are handled in a
way that the 'cmd' sanity check is also going to be needed
for query commands handling.

Let's move it out of the else body then.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
14 years agoMonitor: Introduce search_dispatch_table()
Luiz Capitulino [Mon, 13 Sep 2010 16:17:58 +0000 (13:17 -0300)]
Monitor: Introduce search_dispatch_table()

It's a generic version of monitor_find_command() which searches
the dispatch table passed as an argument.

Future commits will introduce new dispatch tables, so we need
common code to search them.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
14 years agodisable guest-provided stats on "info balloon" command
Eduardo Habkost [Tue, 14 Sep 2010 16:43:39 +0000 (13:43 -0300)]
disable guest-provided stats on "info balloon" command

The addition of memory stats reporting to the virtio balloon causes
the 'info balloon' command to become asynchronous.  This is a regression
because in some cases it can hang the user monitor.

This is an alternative to Adam Litke's patch. Adam's patch disabled the
corresponding (guest-visible) virtio feature bit, causing issues for migration.
Original discussion is available at:
http://marc.info/?l=qemu-devel&m=128448124328314&w=2

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Acked-by: Adam Litke <agl@us.ibm.com
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
14 years agoAdd option to turn on JSON pretty printing in monitor
Daniel P. Berrange [Mon, 7 Jun 2010 14:42:31 +0000 (15:42 +0100)]
Add option to turn on JSON pretty printing in monitor

Expaned '-mon' arg to allow a 'pretty=on' flag. This makes the
monitor pretty print its replies to easy human debugging / reading

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
14 years agoAdd support for JSON pretty printing
Daniel P. Berrange [Mon, 7 Jun 2010 14:42:14 +0000 (15:42 +0100)]
Add support for JSON pretty printing

The monitor does not pretty-print JSON output, so that everything
will be on a single line reply. When JSON docs get large this is
quite unpleasant to read. For the future command line capabilities
query ability, huge JSON docs will be available. This needs the
ability to pretty-print.

This introduces a new API qobject_to_json_pretty() that does
a minimal indentation of list and dict members. As an example,
this makes

  {"QMP": {"version": {"micro": 50, "minor": 12, "package": "", "major": 0}, "capabilities": []}}

Output as

  {
      "QMP": {
          "version": {
              "micro": 50,
              "minor": 12,
              "package": "",
              "major": 0
          },
          "capabilities": [
          ]
      }
  }

NB: this is not turned on for the QMP monitor.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
14 years agopowerpc: Add a virtex5 ml507 refdesign board
Edgar E. Iglesias [Wed, 29 Sep 2010 13:31:44 +0000 (15:31 +0200)]
powerpc: Add a virtex5 ml507 refdesign board

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
14 years agopowerpc: Add a ppc-440x5 Xilinx model
Edgar E. Iglesias [Sat, 11 Sep 2010 13:29:01 +0000 (15:29 +0200)]
powerpc: Add a ppc-440x5 Xilinx model

Add a powerpc 440x5 with the model ID on the Xilinx virtex5.
Connect the 440x5 to the 40x interrupt logic.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
14 years agotap: Remove double include of util.h
Andreas Färber [Tue, 28 Sep 2010 21:48:42 +0000 (23:48 +0200)]
tap: Remove double include of util.h

If neither of __FreeBSD__, __FreeBSD_kernel__ and __DragonFly__ is defined,
util.h is included from tap-bsd.c.
Don't include it again if __OpenBSD__ is defined.

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agopulse-audio: fix bug on updating rpos
Wu Fengguang [Wed, 29 Sep 2010 04:18:41 +0000 (12:18 +0800)]
pulse-audio: fix bug on updating rpos

Fix a rpos coordination bug between qpa_run_out() and qpa_thread_out(),
which shows up as playback noises.

qpa_run_out()
qpa_thread_out loop N critical section 1
qpa_run_out()   qpa_thread_out loop N doing pa_simple_write()
qpa_run_out() qpa_thread_out loop N doing pa_simple_write()
qpa_thread_out loop N critical section 2
qpa_thread_out loop N+1 critical section 1
qpa_run_out() qpa_thread_out loop N+1 doing pa_simple_write()

In the above scheme, "qpa_thread_out loop N+1 critical section 1" will
get the same rpos as the one used by "qpa_thread_out loop N critical
section 1". So it will be reading dead samples from the old rpos.

The rpos can only be updated back to qpa_thread_out when there is a
qpa_run_out() run between two qpa_thread_out loops.

normal sequence:
qpa_thread_out:
hw->rpos (X0) => local rpos => pa->rpos (X1)
qpa_run_out:
pa->rpos (X1) => hw->rpos (X1)
qpa_thread_out:
hw->rpos (X1) => local rpos => pa->rpos (X2)

buggy sequence:
qpa_thread_out:
hw->rpos (X0) => local rpos => pa->rpos (X1)
qpa_thread_out:
hw->rpos (X0) => local rpos => pa->rpos (X1')

Obviously qpa_run_out() shall be called at least once between any two
qpa_thread_out loops (after pa->rpos is set), in order for the new
qpa_thread_out loop to see the updated rpos.

Setting pa->live to 0 does the trick. The next loop will have to wait
for one qpa_run_out() invocation in order to get a non-zero pa->live
and proceed.

Signed-off-by: malc <av1474@comtv.ru>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
14 years agoaudio: Fix memory size for resampling buffer in DAC case
malc [Tue, 28 Sep 2010 04:54:24 +0000 (08:54 +0400)]
audio: Fix memory size for resampling buffer in DAC case

Signed-off-by: malc <av1474@comtv.ru>
14 years agomingw: add version information to the executables
Blue Swirl [Sun, 26 Sep 2010 16:07:57 +0000 (16:07 +0000)]
mingw: add version information to the executables

Add QEMU version information to the executables, based on earlier
work by C. W. Betts and Robert Riebisch.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoAvoid exit in trap as it breaks with some shells
Loïc Minier [Sat, 25 Sep 2010 19:52:30 +0000 (21:52 +0200)]
Avoid exit in trap as it breaks with some shells

Don't call exit in the trap handler as it causes the return code to be
zero with some buggy shells (dash and pdksh at least) and is useless
here anyway.

Signed-off-by: Loïc Minier <loic.minier@linaro.org>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoIntroduce qemu_madvise()
Andreas Färber [Sat, 25 Sep 2010 11:26:05 +0000 (11:26 +0000)]
Introduce qemu_madvise()

vl.c has a Sun-specific hack to supply a prototype for madvise(),
but the call site has apparently moved to arch_init.c.

Haiku doesn't implement madvise() in favor of posix_madvise().
OpenBSD and Solaris 10 don't implement posix_madvise() but madvise().
MinGW implements neither.

Check for madvise() and posix_madvise() in configure and supply qemu_madvise()
as wrapper. Prefer madvise() over posix_madvise() due to flag availability.
Convert all callers to use qemu_madvise() and QEMU_MADV_*.

Note that on Solaris the warning is fixed by moving the madvise() prototype,
not by qemu_madvise() itself. It helps with porting though, and it simplifies
most call sites.

v7 -> v8:
* Some versions of MinGW have no sys/mman.h header. Reported by Blue Swirl.

v6 -> v7:
* Adopt madvise() rather than posix_madvise() semantics for returning errors.
* Use EINVAL in place of ENOTSUP.

v5 -> v6:
* Replace two leftover instances of POSIX_MADV_NORMAL with QEMU_MADV_INVALID.
  Spotted by Blue Swirl.

v4 -> v5:
* Introduce QEMU_MADV_INVALID, suggested by Alexander Graf.
  Note that this relies on -1 not being a valid advice value.

v3 -> v4:
* Eliminate #ifdefs at qemu_advise() call sites. Requested by Blue Swirl.
  This will currently break the check in kvm-all.c by calling madvise() with
  a supported flag, which will not fail. Ideas/patches welcome.

v2 -> v3:
* Reuse the *_MADV_* defines for QEMU_MADV_*. Suggested by Alexander Graf.
* Add configure check for madvise(), too.
  Add defines to Makefile, not QEMU_CFLAGS.
  Convert all callers, untested. Suggested by Blue Swirl.
* Keep Solaris' madvise() prototype around. Pointed out by Alexander Graf.
* Display configure check results.

v1 -> v2:
* Don't rely on posix_madvise() availability, add qemu_madvise().
  Suggested by Blue Swirl.

Signed-off-by: Andreas Färber <afaerber@opensolaris.org>
Cc: Blue Swirl <blauwirbel@gmail.com>
Cc: Alexander Graf <agraf@suse.de>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agopowerpc: Make the decr interrupt type overridable
Edgar E. Iglesias [Mon, 20 Sep 2010 17:08:42 +0000 (19:08 +0200)]
powerpc: Make the decr interrupt type overridable

Make it possible for boards to override the kind of interrupt
to be signaled when the decr timer hits. The 405's signal PIT
interrupts while the 440's signal DECR.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
14 years agopowerpc: Improve emulation of the BookE MMU
Edgar E. Iglesias [Mon, 20 Sep 2010 17:06:32 +0000 (19:06 +0200)]
powerpc: Improve emulation of the BookE MMU

Improve the emulation of the BookE MMU to be able to boot linux
on virtex5 boards.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
14 years agofmopl: workaround for -Wempty-body
malc [Thu, 23 Sep 2010 18:16:15 +0000 (22:16 +0400)]
fmopl: workaround for -Wempty-body

Signed-off-by: malc <av1474@comtv.ru>
14 years agoMove macros GCC_ATTR and GCC_FMT_ATTR to common header file
Stefan Weil [Tue, 21 Sep 2010 20:27:49 +0000 (22:27 +0200)]
Move macros GCC_ATTR and GCC_FMT_ATTR to common header file

By moving the definition of GCC_ATTR and GCC_FMT_ATTR
from audio_int.h to qemu-common.h these macros are
now generally available for further patches which add
the gcc format attribute.

Newer gcc versions support format gnu_printf which is
better suited for use in QEMU than format printf
(QEMU always uses standard format strings (even with mingw32)).

V2: Use correct operator '==' (instead of '=')

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoFix OpenBSD build
Blue Swirl [Wed, 22 Sep 2010 16:51:33 +0000 (19:51 +0300)]
Fix OpenBSD build

Add #include <sys/types.h>, needed by #include <sys/socket.h>.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoblock-verify: fix 32-bit build
Anthony Liguori [Wed, 22 Sep 2010 19:46:33 +0000 (14:46 -0500)]
block-verify: fix 32-bit build

Reported-by: Peter Lemenkov <lemenkov@gmail.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoFix compilation error (missing include statement)
Stefan Weil [Wed, 22 Sep 2010 18:56:35 +0000 (20:56 +0200)]
Fix compilation error (missing include statement)

./hw/sd.c: In function ‘sd_init’:
./hw/sd.c:443: error: implicit declaration of function ‘qemu_blockalign’
./hw/sd.c:443: error: nested extern declaration of ‘qemu_blockalign’
./hw/sd.c:443: error: assignment makes pointer from integer without a cast

Cc: Christoph Hellwig <hch@lst.de>
Cc: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoMerge remote branch 'kwolf/for-anthony' into staging
Anthony Liguori [Tue, 21 Sep 2010 22:50:58 +0000 (17:50 -0500)]
Merge remote branch 'kwolf/for-anthony' into staging

14 years agomips_malta: Fix format strings
Stefan Weil [Mon, 20 Sep 2010 20:18:01 +0000 (22:18 +0200)]
mips_malta: Fix format strings

Fix two compiler warnings (when format attribute is applied).

Cc: Aurelien Jarno <aurelien@aurel32.net>
Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agomips_fulong2e: Fix format strings
Stefan Weil [Mon, 20 Sep 2010 20:18:00 +0000 (22:18 +0200)]
mips_fulong2e: Fix format strings

Fix two compiler warnings (when format attribute is applied)
and one error (missing %) in format strings.

Cc: Aurelien Jarno <aurelien@aurel32.net>
Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agotrace: Fix user emulator dependency on trace objects
Andreas Färber [Sun, 12 Sep 2010 15:21:36 +0000 (17:21 +0200)]
trace: Fix user emulator dependency on trace objects

On a clean build, after generating trace.h, make would recurse into *-*-user
without a clue how to build ../trace.o (added to $(obj-y) in Makefile.target)
since its generation rule is in the main Makefile.
The softmmus are seemingly unaffected because the $(TOOLS), which each have
a dependency on $(trace-obj-y), are built first for the build-all target.

Add a dependency on $(trace-obj-y) for %-user, as done for the qemu-* tools.

Let's be paranoid and do the same for %-softmmu while at it, just in case
someone messes with $(TOOLS) or calls the Makefile target directly.

Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Acked-by: Stefan Weil <weil@mail.berlios.de>
Cc: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Cc: Prerna Saxena <prerna@linux.vnet.ibm.com>
Cc: Blue Swirl <blauwirbel@gmail.com>
Cc: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agospice: add tablet support
Gerd Hoffmann [Tue, 13 Apr 2010 07:05:03 +0000 (09:05 +0200)]
spice: add tablet support

Add support for the spice tablet interface.  The tablet interface will
be registered (and then used by the spice client) as soon as a absolute
pointing device is available and used by the guest, i.e. you'll have to
configure your guest with '-usbdevice tablet'.

14 years agospice: simple display
Gerd Hoffmann [Wed, 25 Aug 2010 13:32:06 +0000 (15:32 +0200)]
spice: simple display

With that patch applied you'll actually see the guests screen in the
spice client.  This does *not* bring qxl and full spice support though.
This is basically the qxl vga mode made more generic, so it plays
together with any qemu-emulated gfx card.  You can display stdvga or
cirrus via spice client.  You can have both vnc and spice enabled and
clients connected at the same time.

14 years agospice: add mouse
Gerd Hoffmann [Thu, 11 Mar 2010 14:13:29 +0000 (11:13 -0300)]
spice: add mouse

Open mouse channel.  Now you can move the guests mouse pointer.
No tablet / absolute positioning (yet) though.

14 years agospice: add keyboard
Gerd Hoffmann [Thu, 11 Mar 2010 14:13:28 +0000 (11:13 -0300)]
spice: add keyboard

Open keyboard channel.  Now you can type into the spice client and the
keyboard events are sent to your guest.  You'll need some other display
like vnc to actually see the guest responding to them though.

14 years agospice: core bits
Gerd Hoffmann [Thu, 11 Mar 2010 14:13:27 +0000 (11:13 -0300)]
spice: core bits

Add -spice command line switch.  Has support setting passwd and port for
now.  With this patch applied the spice client can successfully connect
to qemu.  You can't do anything useful yet though.

14 years agoadd spice into the configure file
Gerd Hoffmann [Wed, 24 Mar 2010 09:26:51 +0000 (10:26 +0100)]
add spice into the configure file

14 years agoconfigure: add logging
Gerd Hoffmann [Fri, 23 Apr 2010 11:44:10 +0000 (13:44 +0200)]
configure: add logging

Write compile commands and messages to config.log.
Useful for debugging configure.

14 years agoadd pflib: PixelFormat conversion library.
Gerd Hoffmann [Mon, 14 Jun 2010 07:54:27 +0000 (09:54 +0200)]
add pflib: PixelFormat conversion library.

14 years agoUse machine_init() to register virtfs config options.
Gerd Hoffmann [Wed, 25 Aug 2010 10:19:49 +0000 (12:19 +0200)]
Use machine_init() to register virtfs config options.

14 years agoUse display types for local display only.
Gerd Hoffmann [Wed, 25 Aug 2010 08:51:06 +0000 (10:51 +0200)]
Use display types for local display only.

This patch drops DT_VNC.  The display types are only used to select
select the local display (i.e. curses, sdl, coca, ...).  Remote
displays (for now only vnc, spice will follow) can be enabled
independently.

14 years agoblkverify: Add block driver for verifying I/O
Stefan Hajnoczi [Tue, 21 Sep 2010 14:43:03 +0000 (15:43 +0100)]
blkverify: Add block driver for verifying I/O

The blkverify block driver makes investigating image format data
corruption much easier.  A raw image initialized with the same contents
as the test image (e.g. qcow2 file) must be provided.  The raw image
mirrors read/write operations and is used to verify that data read from
the test image is correct.

See docs/blkverify.txt for more information.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
14 years agoscsi_bus: fix length and xfer_mode for RESERVE and RELEASE commands
Bernhard Kohl [Mon, 6 Sep 2010 14:58:44 +0000 (16:58 +0200)]
scsi_bus: fix length and xfer_mode for RESERVE and RELEASE commands

For the RESERVE and RELEASE commands the length must be zero
and xfer_mode must be SCSI_XFER_NONE.

Signed-off-by: Bernhard Kohl <bernhard.kohl@nsn.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
14 years agoscsi-generic: add missing reset handler
Bernhard Kohl [Mon, 6 Sep 2010 14:07:33 +0000 (16:07 +0200)]
scsi-generic: add missing reset handler

Ensure that pending requests of a SCSI generic device are purged on
system reset. This also avoids calling a NULL function in lsi53c895a.
The lsi code was recently changed to call the .qdev.reset function.

Signed-off-by: Bernhard Kohl <bernhard.kohl@nsn.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
14 years agoqcow2: Avoid bounce buffers for AIO write requests
Kevin Wolf [Mon, 13 Sep 2010 16:24:10 +0000 (18:24 +0200)]
qcow2: Avoid bounce buffers for AIO write requests

qcow2 used to use bounce buffers for any AIO requests. This does not only imply
unnecessary copying, but also unbounded allocations which should be avoided.

This patch removes bounce buffers from the normal AIO write path. Encrypted
images continue to use a bounce buffer, however with constant size.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
14 years agoqcow2: Avoid bounce buffers for AIO read requests
Kevin Wolf [Mon, 13 Sep 2010 16:08:52 +0000 (18:08 +0200)]
qcow2: Avoid bounce buffers for AIO read requests

qcow2 used to use bounce buffers for any AIO requests. This does not only imply
unnecessary copying, but also unbounded allocations which should be avoided.

This patch removes bounce buffers from the normal AIO read path, and constrains
them to a constant size for encrypted images.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
14 years agocutils: qemu_iovec_copy and qemu_iovec_memset
Kevin Wolf [Mon, 13 Sep 2010 16:06:11 +0000 (18:06 +0200)]
cutils: qemu_iovec_copy and qemu_iovec_memset

This adds two functions that work on QEMUIOVectors and will be used by the next
qcow2 patches.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
14 years agoide: propagate the required alignment
Christoph Hellwig [Sun, 12 Sep 2010 21:44:00 +0000 (23:44 +0200)]
ide: propagate the required alignment

IDE is a bit ugly in this respect.  For one it doesn't really keep track
of a sector size - most of the protocol is in units of 512 bytes, and we
assume 2048 bytes for CDROMs which is correct most of the time.

Second IDE allocates an I/O buffer long before we know if we're dealing
with a CDROM or not, so increase the alignment for the io_buffer
unconditionally.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
14 years agoscsi-disk: propagate the required alignment
Christoph Hellwig [Sun, 12 Sep 2010 21:43:50 +0000 (23:43 +0200)]
scsi-disk: propagate the required alignment

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
14 years agovirtio-blk: propagate the required alignment
Christoph Hellwig [Sun, 12 Sep 2010 21:43:39 +0000 (23:43 +0200)]
virtio-blk: propagate the required alignment

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
14 years agoqcow2: Get rid of additional sync on COW
Kevin Wolf [Fri, 17 Sep 2010 15:02:09 +0000 (17:02 +0200)]
qcow2: Get rid of additional sync on COW

We always have a sync for the refcount update when a new cluster is
allocated. If we move this past the COW, we can save an additional sync.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
14 years agoqcow2: Move sync out of qcow2_alloc_clusters
Kevin Wolf [Fri, 17 Sep 2010 14:57:48 +0000 (16:57 +0200)]
qcow2: Move sync out of qcow2_alloc_clusters

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
14 years agoqcow2: Move sync out of update_refcount
Kevin Wolf [Fri, 17 Sep 2010 14:36:58 +0000 (16:36 +0200)]
qcow2: Move sync out of update_refcount

Note that the flush is omitted intentionally in qcow2_free_clusters. If
anything, we can leak clusters here if we lose the writes.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
14 years agoqcow2: Move sync out of write_refcount_block_entries
Kevin Wolf [Fri, 17 Sep 2010 14:31:03 +0000 (16:31 +0200)]
qcow2: Move sync out of write_refcount_block_entries

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