]> git.proxmox.com Git - qemu.git/log
qemu.git
13 years agoMerge remote branch 'mst/for_anthony' into staging
Anthony Liguori [Mon, 1 Nov 2010 15:33:45 +0000 (10:33 -0500)]
Merge remote branch 'mst/for_anthony' into staging

13 years agohda-audio: Zap tabs
malc [Mon, 1 Nov 2010 14:44:23 +0000 (17:44 +0300)]
hda-audio: Zap tabs

Signed-off-by: malc <av1474@comtv.ru>
13 years agoAdd Intel HD Audio support to qemu.
Gerd Hoffmann [Mon, 1 Nov 2010 12:05:32 +0000 (13:05 +0100)]
Add Intel HD Audio support to qemu.

This patch adds three devices to qemu:

intel-hda
Intel HD Audio Controller, the PCI device.  Provides a HDA bus.
Emulates ICH6 at the moment.  Adding a ICH9 PCIE
variant shouldn't be hard.

hda-duplex
HDA Codec.  Attaches to the HDA bus.  Supports 16bit stereo,
rates 16k -> 96k, playback, recording and volume control
(with CONFIG_MIXEMU=y).

hda-output
HDA Codec without recording support.  Subset of the hda-duplex
codec.  Use this if you don't want your guests access your mic.

Usage: add '-device intel-hda -device hda-duplex' to your command line.

Tested guests:
 * Linux works.
 * Win7 works.
 * DOS (mpxplay) works.
 * WinXP doesn't work.

[ v2 changes ]
 * Fixed endianess, big endian hosts work now.
 * Fixed some emulation bugs.
 * Added immediate command emulation.
 * Added vmstate support.
 * Make it behave like all other sound card drivers:
   - can be configured via '--audio-card-list=hda'
   - can be added to a VM using '-soundhw hda'
 * Code style fixups.
 * Zapped guest-triggerable asserts.
 * Handle partial reads/writes of audio data correctly.

Cc: malc <av1474@comtv.ru>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: malc <av1474@comtv.ru>
13 years agoadd VMSTATE_BOOL
Gerd Hoffmann [Mon, 1 Nov 2010 14:51:54 +0000 (15:51 +0100)]
add VMSTATE_BOOL

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: malc <av1474@comtv.ru>
13 years agoRemove trailing whitespace
malc [Sun, 31 Oct 2010 21:53:19 +0000 (00:53 +0300)]
Remove trailing whitespace

Signed-off-by: malc <av1474@comtv.ru>
13 years agosparc32: convert debug printf statements to tracepoints
Blue Swirl [Sun, 31 Oct 2010 09:24:14 +0000 (09:24 +0000)]
sparc32: convert debug printf statements to tracepoints

Replace debug printf statements with tracepoints.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agoRemove unncessary includes
Jes Sorensen [Tue, 26 Oct 2010 08:39:27 +0000 (10:39 +0200)]
Remove unncessary includes

No need to include stdlib.h for BSD as it is included by
qemu-common.h, windows.h is handled by sysemu.h and osdep.c no longer
needs malloc.h

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agoConsolidate oom_check() functions
Jes Sorensen [Tue, 26 Oct 2010 08:39:26 +0000 (10:39 +0200)]
Consolidate oom_check() functions

This consolidates the duplicated oom_check() functions, as well as
splitting them into OS dependant versions to avoid the #ifdef
grossness that was present in the old osdep.c version.

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agoSeparate qemu_pidfile() into OS specific versions
Jes Sorensen [Tue, 26 Oct 2010 08:39:25 +0000 (10:39 +0200)]
Separate qemu_pidfile() into OS specific versions

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agoDo not redefine reserved key-words TRUE/FALSE
Jes Sorensen [Tue, 26 Oct 2010 08:39:24 +0000 (10:39 +0200)]
Do not redefine reserved key-words TRUE/FALSE

TRUE/FALSE are generally reserved keywords and shouldn't be defined in
a driver like this. Rename the macros to SDP_TRUE and SDP_FALSE
respectively.

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agoMove qemu_gettimeofday() to OS specific files
Jes Sorensen [Tue, 26 Oct 2010 08:39:23 +0000 (10:39 +0200)]
Move qemu_gettimeofday() to OS specific files

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agoWe only support eventfd under POSIX, move qemu_eventfd() to os-posix.c
Jes Sorensen [Tue, 26 Oct 2010 08:39:22 +0000 (10:39 +0200)]
We only support eventfd under POSIX, move qemu_eventfd() to os-posix.c

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agoqemu_pipe() is used only by POSIX code, so move to oslib-posix.c
Jes Sorensen [Tue, 26 Oct 2010 08:39:21 +0000 (10:39 +0200)]
qemu_pipe() is used only by POSIX code, so move to oslib-posix.c

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agoMove osdep socket code to oslib-{posix,win32}.c
Jes Sorensen [Tue, 26 Oct 2010 08:39:20 +0000 (10:39 +0200)]
Move osdep socket code to oslib-{posix,win32}.c

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agoMove QEMU OS dependant library functions to OS specific files
Jes Sorensen [Tue, 26 Oct 2010 08:39:19 +0000 (10:39 +0200)]
Move QEMU OS dependant library functions to OS specific files

This moves library functions used by both QEMU and the QEMU tools,
such as qemu-img, qemu-nbd etc. from osdep.c to oslib-{posix,win32}.c

In addition it introduces oslib-obj.y to the Makefile set to be
included by the various targets, instead of relying on these library
functions magically getting included via block-obj-y.

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agotarget-xxx: Use fprintf_function (format checking)
Stefan Weil [Fri, 22 Oct 2010 21:03:33 +0000 (23:03 +0200)]
target-xxx: Use fprintf_function (format checking)

fprintf_function uses format checking with GCC_FMT_ATTR.

Format errors were fixed in
* target-i386/helper.c
* target-mips/translate.c
* target-ppc/translate.c

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agoexec: Use fprintf_function for dump_exec_info (format checking)
Stefan Weil [Fri, 22 Oct 2010 21:03:32 +0000 (23:03 +0200)]
exec: Use fprintf_function for dump_exec_info (format checking)

fprintf_function uses format checking with GCC_FMT_ATTR.

It is declared in qemu-common.h and used in cpu-all.h
(which is included from cpu.h), so qemu-common.h must
be included earlier. Some redundant include statements
for standard include files were removed.

Fix also two format errors (ptrdiff_t needs %td).

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agotcg: Use fprintf_function (format checking)
Stefan Weil [Fri, 22 Oct 2010 21:03:31 +0000 (23:03 +0200)]
tcg: Use fprintf_function (format checking)

fprintf_function uses format checking with GCC_FMT_ATTR.

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agoAdd fprintf_function for function pointers to fprintf-like functions
Stefan Weil [Fri, 22 Oct 2010 21:03:30 +0000 (23:03 +0200)]
Add fprintf_function for function pointers to fprintf-like functions

This kind of function pointers is used very often in qemu.

The new data type uses format checking with GCC_FMT_ATTR
and will be used in later patches.

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agoMov muldiv64 to qemu-common.h (Thus unbreaking gus)
malc [Fri, 29 Oct 2010 21:41:01 +0000 (01:41 +0400)]
Mov muldiv64 to qemu-common.h (Thus unbreaking gus)

Signed-off-by: malc <av1474@comtv.ru>
13 years agoMerge branch 'pci' into for_anthony
Michael S. Tsirkin [Wed, 27 Oct 2010 17:07:10 +0000 (19:07 +0200)]
Merge branch 'pci' into for_anthony

13 years agopcie: update satus on reset
Michael S. Tsirkin [Wed, 27 Oct 2010 15:48:42 +0000 (17:48 +0200)]
pcie: update satus on reset

Reset never triggers a new event, so it's enough to
update status.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
13 years agomsi: minor cleanups
Michael S. Tsirkin [Wed, 27 Oct 2010 14:28:22 +0000 (16:28 +0200)]
msi: minor cleanups

Comment fixup (tell what it does not what it does not do),
typo fix, whitespace fix.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
13 years agomsi: simplify range checks
Michael S. Tsirkin [Wed, 27 Oct 2010 14:14:56 +0000 (16:14 +0200)]
msi: simplify range checks

config write handlers should be idempotent.
So no need for complex range checks: a simple
one checking that we are touching the relevant capability
will do.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
13 years agopci: improve w1c mask handling
Michael S. Tsirkin [Wed, 27 Oct 2010 14:01:25 +0000 (16:01 +0200)]
pci: improve w1c mask handling

- save/restore must not check w1c bits
  since they are in fact guest controlled
- clear w1c bits on reset

Note: for express there are different kinds of
reset, some leave part of config space alone.
We will likely need a sticky bit mask to implement this.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
13 years agopcie: clean up hot plug notification
Michael S. Tsirkin [Mon, 25 Oct 2010 05:46:47 +0000 (07:46 +0200)]
pcie: clean up hot plug notification

Simplify logic for hotplug notification, by tracking state of the
logical interrupt condition.  We then simply use this variable to make
the interrupt decision, according to spec.

API is made cleaner as we no longer force users to pass in
old slot control value.

Includes fixes by Isaku Yamahata.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
13 years agopcie: simplify range check
Michael S. Tsirkin [Mon, 25 Oct 2010 05:03:24 +0000 (07:03 +0200)]
pcie: simplify range check

Simplify code slighly by reversing the polarity
for the range check

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
13 years agoIntroduce range.h
Blue Swirl [Sat, 18 Sep 2010 05:53:14 +0000 (05:53 +0000)]
Introduce range.h

Extract range functions from pci.h. These will be used by later patches
by non-PCI devices. Adjust current users.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
(cherry picked from commit bf1b00712375bea65f2254dea8281fa646eebbd5)

13 years agoqemu-options.def: add to generated header list
Michael S. Tsirkin [Tue, 26 Oct 2010 15:53:41 +0000 (17:53 +0200)]
qemu-options.def: add to generated header list

All files include qemu-options.h which pulls in qemu-options.def from
the root directory.  Thus generating qemu-options.def from Makefile.objs
under the target directory is not effective.

Further, people expect .def file to get cleaned with make clean:
it does not have state so no reason to defer removing it
until distclean. Also add a rule to remove old files that might
be around.

This fixes the error: ‘QEMU_OPTION_spice’ undeclared
(first use in this function) error that some people reported
which is really down to an out of date .def file.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
13 years agonet: properly handle illegal fd/vhostfd from command line
Jason Wang [Mon, 25 Oct 2010 05:39:59 +0000 (13:39 +0800)]
net: properly handle illegal fd/vhostfd from command line

When hanlding fd/vhostfd form command line through net_handle_fd_param(),
we need to check mon and return value of strtol() otherwise we could
get segmentation fault or invalid fd when user type an illegal fd/vhostfd.

This patch is based on the suggestions from
Luiz Capitulino <lcapitulino@redhat.com>.

Signed-off-by: Jason Wang <jasowang@redhat.com>
Reviewed-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
13 years agovirtio: sanity-check available index
Michael S. Tsirkin [Sun, 17 Oct 2010 18:23:48 +0000 (20:23 +0200)]
virtio: sanity-check available index

Checking available index upon load instead of
only when vm is running makes is easier to
debug failures.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
13 years agomigration: don't segfault on invalid input
Michael S. Tsirkin [Sun, 17 Oct 2010 18:43:40 +0000 (20:43 +0200)]
migration: don't segfault on invalid input

host_from_stream_offset returns NULL on error,
return error instead of trying to use that address,
to avoid segfault on invalid stream.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
13 years agoMerge remote branch 'qmp/for-anthony' into staging
Anthony Liguori [Tue, 26 Oct 2010 14:51:03 +0000 (09:51 -0500)]
Merge remote branch 'qmp/for-anthony' into staging

13 years agoMerge remote branch 'kwolf/for-anthony' into staging
Anthony Liguori [Tue, 26 Oct 2010 14:50:58 +0000 (09:50 -0500)]
Merge remote branch 'kwolf/for-anthony' into staging

13 years agoseabios: Update to 0.6.1
Anthony Liguori [Mon, 25 Oct 2010 21:06:45 +0000 (16:06 -0500)]
seabios: Update to 0.6.1

 - 0ff9051 Update version to 0.6.1
 - 9c000e6 Support Samsung SE-S084 USB DVD drive (and probably many others)
 - eebe949 pciinit: remove unused variable, old_addr, in pci_set_io_region_addr().
 - 06644f4 Minor - indentation change to jpeg.c.
 - 2dcd9fa Enhance tools/readserial.py to support reading from a pipe.
 - 7ce09ae Make tools/transdump.py more resilient to unknown input.
 - 6039fc5 Update qemu_cfg_read to use "rep insb".
 - 9a01a9c Only show bootsplash during boot menu.
 - 5feb83c add write support to virtio-blk
 - 22f6378 Don't try to talk to APIC on 486
 - e2074bf Add ACPI SSDT/DSDT support for CPU hotplug.
 - eb6dc78 Add additional debug status messages to bootsplash code.
 - c8e4e88 Allow qemu to use bootsplash code via fwcfg interface.
 - 597040d Add tools/trandump.py tool for converting hexdump() output.
 - 48f5f8b Default bootsplash on (for coreboot users).
 - 8d85eb1 Autodetect video mode based on bootsplash jpeg dimensions.
 - b2b9d4a Rename "decdata" to "jpeg" in bootsplash - to be consistent with jpeg.c.
 - bbc4722 Breakup jpeg_decode into parsing and displaying phases.
 - 2976dd4 Avoid using BSS variables in jpeg.c.
 - cc9e1bf Add FUNC16() helper macro for converting a 16bit func to a segoff_s.
 - b4525a0 Handle unaligned sizes in iomemcpy().
 - 0e27e19 Cleanup bootsplash vesa signature detection.
 - cadaf0e Be sure to disable bootsplash on all BIOS boot cases.
 - 2641186 Add call16_int10 helper to bootsplash.c.
 - 6dc76f4 Don't do "double buffering" in bootsplash code.
 - 227dc3e Check that malloc succeeds in bootsplash code.
 - a576c9c Bootsplash fixes and cleanups.
 - 9fd4851 Minor - clarify bit logic in mptable.c.
 - abf31d3 Fix integer truncating bug in calc_future_timer().
 - 1d5c333 seabios: pciinit: fix 64bit bar initilization.
 - ae6924d Minor - introduce GDT_GRANLIMIT macro.
 - 0f78889 Avoid code addresses >64K in big real mode.
 - aec19c9 seabios: smm: move out piix4 specific smram logic to dev-i440fx.c
 - 08328e7 seabios: shadow: make device finding more generic.
 - 4c67f90 seabios: acpi: clean up of finding pm device.
 - fe54a53 seabios: acpi: split out piix4 pm logic.
 - d06afb4 seabios: acpi: move acpi definitions to acpi.h from acpi.c
 - 2f54bb4 seabios: acpi: move out endian conversion helper function.
 - 23173ac seabios: pci: introduce helper function to find device from table and initialize it.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
13 years agoqemu-timer: move commonly used timer code to qemu-timer-common
Blue Swirl [Sat, 23 Oct 2010 15:24:07 +0000 (15:24 +0000)]
qemu-timer: move commonly used timer code to qemu-timer-common

Move timer init functions to a new file, qemu-timer-common.c. Make other
critical timer functions inlined to preserve performance in
qemu-timer.c, also move muldiv64() (used by the inline functions)
to qemu-timer.h.

Adjust block/raw-posix.c and simpletrace.c to use get_clock() directly.
Remove a similar/duplicate definition in qemu-tool.c.

Adjust hw/omap_clk.c to include qemu-timer.h because muldiv64() is used
there.

After this change, tracing can be used also for user code and
simpletrace on Win32.

Cc: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Acked-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agorewrite i386 tests Makefile
Paolo Bonzini [Thu, 21 Oct 2010 08:18:40 +0000 (10:18 +0200)]
rewrite i386 tests Makefile

1) compute path to i386 compiler from configure.  If it is found, run
the i386 tests.  I use macros so that this approach could be applied
for other arches as well.

2) provide an easily extensible way to add tests

Most tests fail, but at least "make test" does something meaningful.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agofix test_path
Paolo Bonzini [Thu, 21 Oct 2010 08:18:39 +0000 (10:18 +0200)]
fix test_path

path.c grew quite a few new dependencies (mostly via cutils.c),
include them.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agomake runcom compile on recent distributions
Paolo Bonzini [Thu, 21 Oct 2010 08:18:38 +0000 (10:18 +0200)]
make runcom compile on recent distributions

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agodisable test_enter on i386, it is broken
Paolo Bonzini [Thu, 21 Oct 2010 08:18:37 +0000 (10:18 +0200)]
disable test_enter on i386, it is broken

Many other tests fail, but this has an infinite loop with both
qemu-i386 and native execution (albeit on x86_64), so there is
something more going on.  I'm not going to debug it now, so just
disable the test.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agounbreak "make" from vpath-built tests directory
Paolo Bonzini [Thu, 21 Oct 2010 08:18:36 +0000 (10:18 +0200)]
unbreak "make" from vpath-built tests directory

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agounbreak "make" from tests directory
Paolo Bonzini [Thu, 21 Oct 2010 08:18:35 +0000 (10:18 +0200)]
unbreak "make" from tests directory

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agomips_fulong2e: fix ram allocation
Blue Swirl [Fri, 22 Oct 2010 18:26:08 +0000 (18:26 +0000)]
mips_fulong2e: fix ram allocation

RAM registration used incorrect offset.

Fix by using the offset obtained previously for this purpose.

Spotted by GCC 4.6.0 20100925 warning, which is also avoided.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agoReplace remaining gcc format attributes by macro GCC_FMT_ATTR (format checking)
Stefan Weil [Wed, 13 Oct 2010 18:54:27 +0000 (20:54 +0200)]
Replace remaining gcc format attributes by macro GCC_FMT_ATTR (format checking)

Replace the remaining format attribute printf by macro
GCC_FMT_ATTR which uses gnu_printf (if supported).

v2
* Removal of dyngen specific code is now done in a separate patch.
* Handle attribute in new ui/spice-display.c, too.

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agoRemove special handling of system include files (no longer needed)
Stefan Weil [Wed, 13 Oct 2010 18:54:26 +0000 (20:54 +0200)]
Remove special handling of system include files (no longer needed)

The formerly used dyngen code did not work with
system include files like stdio.h.

Tests with Linux, OSX and Win32 show that this
restriction is no longer needed.

So we hopefully can remove that special piece of code.
This results in cleaner code and allows better use of
the new GCC_FMT_ATTR macro.

Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agoMerge remote branch 'qemu-kvm/uq/master' into staging
Anthony Liguori [Fri, 22 Oct 2010 13:02:14 +0000 (08:02 -0500)]
Merge remote branch 'qemu-kvm/uq/master' into staging

13 years agovirtio-blk: Respect werror option for flushes
Kevin Wolf [Wed, 20 Oct 2010 11:17:30 +0000 (13:17 +0200)]
virtio-blk: Respect werror option for flushes

The werror option now affects not only write requests, but also flush requests.
Previously, it was not possible to stop a VM on a failed flush.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
13 years agoide: Handle flush failure
Kevin Wolf [Mon, 18 Oct 2010 15:13:05 +0000 (17:13 +0200)]
ide: Handle flush failure

Instead of always assuming success for bdrv_aio_flush, actually do something
with the error. This respects the werror option and accordingly ignores the
error, reports it to the guest or stops the VM and retries after cont.

Ignoring the error is trivial, obviously. For stopping the VM and retrying
later old code can be reused, but we need to introduce a new status for "retry
a flush". For reporting to the guest, fortunately the same action is required
as for a failed read/write (status = DRDY | ERR, error = ABRT), so this code
can be reused as well.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
13 years agoide: Factor ide_flush_cache out
Kevin Wolf [Mon, 18 Oct 2010 15:10:49 +0000 (17:10 +0200)]
ide: Factor ide_flush_cache out

The next patch reuses this code, so put it in its own function.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
13 years agoqemu-img: Fix qemu-img convert -obacking_file
Kevin Wolf [Thu, 14 Oct 2010 13:46:04 +0000 (15:46 +0200)]
qemu-img: Fix qemu-img convert -obacking_file

The old -B option caused a backing file to be used for the converted image and
to avoid copying clusters from the old backing file. When replaced with
-obacking_file, qemu-img convert does assign the backing file to the new image,
but it doesn't realize that it should avoid copying clusters from the backing
file.

This patch checks the -o options for a backing_file and applies the same logic
as for -B in this case.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
13 years agoblock: Use GCC_FMT_ATTR and fix a format error
Stefan Weil [Fri, 24 Sep 2010 19:02:05 +0000 (21:02 +0200)]
block: Use GCC_FMT_ATTR and fix a format error

Adding the gcc format attribute detects a format bug
which is fixed here.

v2:
Don't use type cast. BDRV_SECTOR_SIZE is unsigned long long,
so %lld should be the correct format specifier.

Cc: Blue Swirl <blauwirbel@gmail.com>
Cc: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
13 years agoqemu-io: New command map
Kevin Wolf [Thu, 16 Sep 2010 11:18:08 +0000 (13:18 +0200)]
qemu-io: New command map

The new map command in qemu-io lists all allocated/unallocated areas in an
image file.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
13 years agoCopy snapshots out of QCOW2 disk
edison [Wed, 22 Sep 2010 02:58:41 +0000 (19:58 -0700)]
Copy snapshots out of QCOW2 disk

In order to backup snapshots, created from QCOW2 iamge, we want to copy snapshots out of QCOW2 disk to a seperate storage.
The following patch adds a new option in "qemu-img": qemu-img convert -f qcow2 -O qcow2 -s snapshot_name src_img bck_img.
Right now, it only supports to copy the full snapshot, delta snapshot is on the way.

Changes from V1: all the comments from Kevin are addressed:
Add read-only checking
Fix coding style
Change the name from bdrv_snapshot_load to bdrv_snapshot_load_tmp

Signed-off-by: Disheng Su <edison@cloud.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
13 years agoide: set WCACHE supported in IDENTIFY data
Christoph Hellwig [Mon, 4 Oct 2010 13:29:41 +0000 (15:29 +0200)]
ide: set WCACHE supported in IDENTIFY data

ATA does not only have the WCACHE enabled bit in identify word 85, but also
a WCACHE supported bit in word 82.  While the Linux kernel is fine with the
latter at least hdparm also needs the former before correctly displaying
the cache settings.  There's also a non-zero chance other operating systems
are more picky in their volatile write cache detection.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
13 years agoqcow2: Remove old image creation function
Kevin Wolf [Mon, 14 Jun 2010 13:15:03 +0000 (15:15 +0200)]
qcow2: Remove old image creation function

They have been #ifdef'd out by the previous patch.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
13 years agoqcow2: Simplify image creation
Kevin Wolf [Fri, 11 Jun 2010 19:37:37 +0000 (21:37 +0200)]
qcow2: Simplify image creation

Instead of doing lots of magic for setting up initial refcount blocks and stuff
create a minimal (inconsistent) image, open it and initialize the rest with
regular qcow2 functions.

This is a complete rewrite of the image creation function. The old
implementating is #ifdef'd out and will be removed by the next patch (removing
it here would have made the diff unreadable because diff tries to find
similarities when it's really a rewrite)

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
13 years agoqcow2: Support exact L1 table growth
Stefan Hajnoczi [Mon, 18 Oct 2010 15:53:53 +0000 (16:53 +0100)]
qcow2: Support exact L1 table growth

The L1 table grow operation includes a size calculation that bumps up
the new L1 table size in order to anticipate the size needs of vmstate
data.  This helps reduce the number of times that the L1 table has to be
grown when vmstate data is appended.

This size overhead is not necessary during image creation,
bdrv_truncate(), or snapshot goto operations.  In fact, existing
qemu-iotests that exercise table growth are no longer able to trigger it
because image creation preallocates an L1 table that is too large after
changes to qcow_create2().

This patch keeps the size calculation but also adds exact growth for
callers that do not want to inflate the L1 table size unnecessarily.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
13 years agomonitor: Ignore "." and ".." when completing file name.
Kusanagi Kouichi [Wed, 20 Oct 2010 09:00:01 +0000 (18:00 +0900)]
monitor: Ignore "." and ".." when completing file name.

Signed-off-by: Kusanagi Kouichi <slash@ac.auone-net.jp>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
13 years agoFix test suite build with tracing enabled
Jan Kiszka [Tue, 19 Oct 2010 14:03:15 +0000 (16:03 +0200)]
Fix test suite build with tracing enabled

qemu_malloc instrumentations require linking against the trace objects.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Acked-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
13 years agoSilence compiler warning in json test case
Jan Kiszka [Sat, 16 Oct 2010 17:42:43 +0000 (19:42 +0200)]
Silence compiler warning in json test case

This avoids

    error: zero-length gnu_printf format string

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
13 years agoTrivial fix for QMP/qmp-events.txt
Hidetoshi Seto [Thu, 14 Oct 2010 00:51:02 +0000 (09:51 +0900)]
Trivial fix for QMP/qmp-events.txt

Fix example of STOP event that was just copy-and-pasted.

Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
13 years agocurses: Fix control-{@[\]^_} and ESC
Samuel Thibault [Tue, 19 Oct 2010 17:48:20 +0000 (19:48 +0200)]
curses: Fix control-{@[\]^_} and ESC

control-{@[\]^_} shouldn't get the 'a' - 'A' offset for correct
translation. ESC is better simulated as escape key.

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Signed-off-by: Andrew Zaborowski <balrogg@gmail.com>
13 years agokvm: save/restore x86-64 MSRs on x86-64 kernels
Marcelo Tosatti [Thu, 21 Oct 2010 15:35:04 +0000 (13:35 -0200)]
kvm: save/restore x86-64 MSRs on x86-64 kernels

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
13 years agokvm: writeback SMP TSCs on migration only
Marcelo Tosatti [Thu, 21 Oct 2010 15:35:03 +0000 (13:35 -0200)]
kvm: writeback SMP TSCs on migration only

commit 6389c45441269baa2873e6feafebd17105ddeaf6
Author: Jan Kiszka <jan.kiszka@siemens.com>
Date:   Mon Mar 1 18:17:26 2010 +0100

    qemu-kvm: Cleanup/fix TSC and PV clock writeback

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
13 years agokvm: factor out kvm_has_msr_star
Marcelo Tosatti [Thu, 21 Oct 2010 15:35:02 +0000 (13:35 -0200)]
kvm: factor out kvm_has_msr_star

And add kvm_has_msr_hsave_pa(), to avoid warnings on older
kernels without support.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
13 years agokvm: add save/restore of MSR_VM_HSAVE_PA
Marcelo Tosatti [Thu, 21 Oct 2010 15:35:01 +0000 (13:35 -0200)]
kvm: add save/restore of MSR_VM_HSAVE_PA

commit 2bba4446746add456ceeb0e8359a43032a2ea333
Author: Alexander Graf <agraf@suse.de>
Date:   Thu Dec 18 15:38:32 2008 +0100

    Enable nested SVM support in userspace

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
13 years agoFix build on !KVM_CAP_MCE
Hidetoshi Seto [Thu, 21 Oct 2010 08:23:14 +0000 (17:23 +0900)]
Fix build on !KVM_CAP_MCE

This patch removes following warnings:

target-i386/kvm.c: In function 'kvm_put_msrs':
target-i386/kvm.c:782: error: unused variable 'i'
target-i386/kvm.c: In function 'kvm_get_msrs':
target-i386/kvm.c:1083: error: label at end of compound statement

Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
13 years agox86, mce: broadcast mce depending on the cpu version
Hidetoshi Seto [Thu, 21 Oct 2010 08:47:06 +0000 (17:47 +0900)]
x86, mce: broadcast mce depending on the cpu version

There is no reason why SRAO event received by the main thread
is the only one that being broadcasted.

According to the x86 ASDM vol.3A 15.10.4.1,
MCE signal is broadcast on processor version 06H_EH or later.

This change is required to handle SRAR in smp guests.

Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
13 years agox86, mce: ignore SRAO only when MCG_SER_P is available
Hidetoshi Seto [Thu, 21 Oct 2010 08:46:49 +0000 (17:46 +0900)]
x86, mce: ignore SRAO only when MCG_SER_P is available

And restruct this block to call kvm_mce_in_exception() only when it is
required.

Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
13 years agoFix pci hotplug to generate level triggered interrupt.
Gleb Natapov [Sun, 17 Oct 2010 09:45:25 +0000 (11:45 +0200)]
Fix pci hotplug to generate level triggered interrupt.

SCI is level triggered. pci hotplug should behave appropriately.

Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
13 years agoUse defines instead of numbers for pci hotplug sts bit
Gleb Natapov [Sun, 17 Oct 2010 09:45:24 +0000 (11:45 +0200)]
Use defines instead of numbers for pci hotplug sts bit

Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
13 years agoFix memory leak in register save load due to xsave support
Marcelo Tosatti [Tue, 19 Oct 2010 11:00:34 +0000 (09:00 -0200)]
Fix memory leak in register save load due to xsave support

From: Avi Kivity <avi@redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
13 years agoAdd savevm/loadvm support for MCE
Marcelo Tosatti [Mon, 11 Oct 2010 18:31:22 +0000 (15:31 -0300)]
Add savevm/loadvm support for MCE

Port qemu-kvm's

commit 1bab5d11545d8de5facf46c28630085a2f9651ae
Author: Huang Ying <ying.huang@intel.com>
Date:   Wed Mar 3 16:52:46 2010 +0800

    Add savevm/loadvm support for MCE

    MCE registers are saved/load into/from CPUState in
    kvm_arch_save/load_regs. To simulate the MCG_STATUS clearing upon
    reset, MSR_MCG_STATUS is set to 0 for KVM_PUT_RESET_STATE.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
13 years agoMCE: Relay UCR MCE to guest
Marcelo Tosatti [Mon, 11 Oct 2010 18:31:21 +0000 (15:31 -0300)]
MCE: Relay UCR MCE to guest

Port qemu-kvm's

commit 4b62fff1101a7ad77553147717a8bd3bf79df7ef
Author: Huang Ying <ying.huang@intel.com>
Date:   Mon Sep 21 10:43:25 2009 +0800

    MCE: Relay UCR MCE to guest

    UCR (uncorrected recovery) MCE is supported in recent Intel CPUs,
    where some hardware error such as some memory error can be reported
    without PCC (processor context corrupted). To recover from such MCE,
    the corresponding memory will be unmapped, and all processes accessing
    the memory will be killed via SIGBUS.

    For KVM, if QEMU/KVM is killed, all guest processes will be killed
    too. So we relay SIGBUS from host OS to guest system via a UCR MCE
    injection. Then guest OS can isolate corresponding memory and kill
    necessary guest processes only. SIGBUS sent to main thread (not VCPU
    threads) will be broadcast to all VCPU threads as UCR MCE.

aliguori: fix build

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
13 years agoAdd RAM -> physical addr mapping in MCE simulation
Huang Ying [Mon, 11 Oct 2010 18:31:20 +0000 (15:31 -0300)]
Add RAM -> physical addr mapping in MCE simulation

In QEMU-KVM, physical address != RAM address. While MCE simulation
needs physical address instead of RAM address. So
kvm_physical_memory_addr_from_ram() is implemented to do the
conversion, and it is invoked before being filled in the IA32_MCi_ADDR
MSR.

Reported-by: Dean Nelson <dnelson@redhat.com>
Signed-off-by: Huang Ying <ying.huang@intel.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
13 years agoExport qemu_ram_addr_from_host
Marcelo Tosatti [Mon, 11 Oct 2010 18:31:19 +0000 (15:31 -0300)]
Export qemu_ram_addr_from_host

To be used by next patches.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
13 years agokvm: x86: add mce support
Marcelo Tosatti [Mon, 11 Oct 2010 18:31:18 +0000 (15:31 -0300)]
kvm: x86: add mce support

Port qemu-kvm's MCE support

commit c68b2374c9048812f488e00ffb95db66c0bc07a7
Author: Huang Ying <ying.huang@intel.com>
Date:   Mon Jul 20 10:00:53 2009 +0800

    Add MCE simulation support to qemu/kvm

    KVM ioctls are used to initialize MCE simulation and inject MCE. The
    real MCE simulation is implemented in Linux kernel. The Kernel part
    has been merged.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
13 years agoiothread: use signalfd
Marcelo Tosatti [Mon, 11 Oct 2010 18:31:16 +0000 (15:31 -0300)]
iothread: use signalfd

Block SIGALRM, SIGIO and consume them via signalfd.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
13 years agosignalfd compatibility
Marcelo Tosatti [Mon, 11 Oct 2010 18:31:15 +0000 (15:31 -0300)]
signalfd compatibility

Port qemu-kvm's signalfd compat code.

commit 5a7fdd0abd7cd24dac205317a4195446ab8748b5
Author: Anthony Liguori <aliguori@us.ibm.com>
Date:   Wed May 7 11:55:47 2008 -0500

    Use signalfd() in io-thread

    This patch reworks the IO thread to use signalfd() instead of sigtimedwait()
    This will eliminate the need to use SIGIO everywhere.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
13 years agoAdd svm cpuid features
Joerg Roedel [Mon, 27 Sep 2010 13:16:17 +0000 (15:16 +0200)]
Add svm cpuid features

This patch adds the svm cpuid feature flags to the qemu
intialization path. It also adds the svm features available
on phenom to its cpu-definition and extends the host cpu
type to support all svm features KVM can provide.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
13 years agoSet cpuid definition to 0 before initializing it
Joerg Roedel [Mon, 27 Sep 2010 13:16:16 +0000 (15:16 +0200)]
Set cpuid definition to 0 before initializing it

This patch cleans the (stack-allocated) cpuid definition to
0 before actually initializing it.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
13 years agoconfigure: Support disabling warnings in $gcc_flags
Markus Armbruster [Thu, 14 Oct 2010 09:19:04 +0000 (11:19 +0200)]
configure: Support disabling warnings in $gcc_flags

-Wall enables a bunch of warnings at once.  configure puts it after
$gcc_flags.  This makes it impossible to disable warnings enabled by
-Wall there.  Fix by putting configured flags last.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agotcg: Fix compiler error (comparison of unsigned expression)
Stefan Weil [Fri, 8 Oct 2010 08:32:23 +0000 (10:32 +0200)]
tcg: Fix compiler error (comparison of unsigned expression)

When qemu is configured with --enable-debug-tcg,
gcc throws this warning (or error with -Werror):

tcg/tcg.c:1030: error: comparison of unsigned expression >= 0 is always true

Fix it by removing the >= 0 part.
The type cast to 'unsigned' catches negative values of op
(which should never happen).

This is a modification of Hollis Blanchard's patch.

Cc: Hollis Blanchard <hollis@penguinppc.org>
Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agowacom tablet: activate event handlers.
Gerd Hoffmann [Fri, 8 Oct 2010 10:30:14 +0000 (12:30 +0200)]
wacom tablet: activate event handlers.

Add qemu_activate_mouse_event_handler() calls to the usb wavom tablet so
it actually receives events.  Also make sure we only remove the handler
if we registered it before.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
13 years agovmmouse: adapt to mouse handler changes.
Gerd Hoffmann [Fri, 8 Oct 2010 10:30:13 +0000 (12:30 +0200)]
vmmouse: adapt to mouse handler changes.

This patch updates the vmmouse handler registration and activation.

Old behavior:
  vmmouse_read_id, vmmouse_request_relative and vmmouse_request_absolute
  unregister the handler and re-register it.

New behavior:
  vmmouse_request_relative and vmmouse_request_absolute will unregister
  the handler in case the mode did change.  Then register and active the
  handler with current mode if needed.

Note that the old code never ever *activates* the handler, so the
vmmouse doesn't receive events.  This trips up Fedora 14 for example:
Boot a default install without usb tablet, watch the X-Server activating
the vmmouse then, enjoy a non-functional mouse.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
13 years ago[virtio-9p] Add support to v9fs_string_alloc_printf() for handling %lu.
Venkateswararao Jujjuri (JV) [Thu, 7 Oct 2010 00:09:42 +0000 (17:09 -0700)]
[virtio-9p] Add support to v9fs_string_alloc_printf() for handling %lu.

Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
13 years ago[virtio-9p] Use preadv/pwritev instead of readv/writev
Sanchit Garg [Fri, 8 Oct 2010 06:00:16 +0000 (11:30 +0530)]
[virtio-9p] Use preadv/pwritev instead of readv/writev

readv & writev, read & write respectively from the current offset
of the file & hence their use has to be preceeded by a call to lseek.
preadv/writev can be used instead, as they take the offset as an argument.
This saves one system call( lseek ).
In case preadv is not supported, it is implemented by an lseek
followed by a readv. Depending upon the configuration of QEMU, the
appropriate read & write methods are selected. This patch also fixes the
zero byte read/write bug & obviates the need to apply a fix for that bug separately.

Signed-off-by: M. Mohan Kumar <mohan@in.ibm.com>
Signed-off-by: Sanchit Garg <sancgarg@linux.vnet.ibm.com>
Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
13 years ago[virtio-9p] Qemu 9p commandline options validity checks
Harsh Prateek Bora [Mon, 18 Oct 2010 10:06:36 +0000 (15:36 +0530)]
[virtio-9p] Qemu 9p commandline options validity checks

Signed-off-by: Harsh Prateek Bora <harsh@linux.vnet.ibm.com>
Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
13 years agovirtio-9p: Support mapped posix acl
Aneesh Kumar K.V [Mon, 18 Oct 2010 09:58:16 +0000 (15:28 +0530)]
virtio-9p: Support mapped posix acl

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
13 years agovirtio-9p: Use layered xattr approach
Aneesh Kumar K.V [Mon, 18 Oct 2010 09:58:16 +0000 (15:28 +0530)]
virtio-9p: Use layered xattr approach

We would need this to make sure we handle the mapped
security model correctly for different xattr names.

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
13 years ago[virtio-9p] Ignore O_DIRECT hint from client.
Venkateswararao Jujjuri (JV) [Sun, 19 Sep 2010 17:47:11 +0000 (10:47 -0700)]
[virtio-9p] Ignore O_DIRECT hint from client.

The O_DIRECT flag imposes alignment restrictions on the length and address
of userspace buffers and the file offset of I/Os.

While VirtFS/9P has plans to implement O_DIRECT behavior on the server,
for now we will stick to a behavior like NFS by bypassing the page cache
only on the client. Server may still cache the I/O.

Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
13 years agoqemu-virtio-9p: Implement TREADLINK operation for 9p2000.L
M. Mohan Kumar [Tue, 14 Sep 2010 09:38:25 +0000 (15:08 +0530)]
qemu-virtio-9p: Implement TREADLINK operation for 9p2000.L

Synopsis

        size[4] TReadlink tag[2] fid[4]
        size[4] RReadlink tag[2] target[s]

Description
        Readlink is used to return the contents of the symoblic link
        referred by fid. Contents of symboic link is returned as a
        response.

        target[s] - Contents of the symbolic link referred by fid.

Signed-off-by: M. Mohan Kumar <mohan@in.ibm.com>
Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
13 years ago[virtio-9p] Introduce server side TFSYNC/RFSYNC for dotl
Venkateswararao Jujjuri (JV) [Thu, 23 Sep 2010 00:18:33 +0000 (17:18 -0700)]
[virtio-9p] Introduce server side TFSYNC/RFSYNC for dotl

SYNOPSIS
    size[4] Tfsync tag[2] fid[4]

    size[4] Rfsync tag[2]

DESCRIPTION

The Tfsync transaction transfers ("flushes") all modified in-core data of
file identified by fid to the disk device (or other  permanent  storage
device)  where that  file  resides.

Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
13 years agoqemu-virtio9p: Implement TGETLOCK
M. Mohan Kumar [Tue, 7 Sep 2010 21:06:52 +0000 (02:36 +0530)]
qemu-virtio9p: Implement TGETLOCK

Synopsis

    size[4] TGetlock tag[2] fid[4] getlock[n]
    size[4] RGetlock tag[2] getlock[n]

Description

TGetlock is used to test for the existence of byte range posix locks on
a file identified by given fid. The reply contains getlock structure. If
the lock could be placed it returns F_UNLCK in type field of getlock structure.
Otherwise it returns the details of the conflicting locks in the getlock
structure

    getlock structure:
      type[1] - Type of lock: F_RDLCK, F_WRLCK
      start[8] - Starting offset for lock
      length[8] - Number of bytes to lock
        If length is 0, lock all bytes starting at the location
        'start' through to the end of file
      proc_id[4] - process id that wants to take lock/owns the task
               in case of reply
      client[4] - Client id of the system that owns the process

Signed-off-by: M. Mohan Kumar <mohan@in.ibm.com>
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
13 years ago[virto-9p] Implement TLOCK
M. Mohan Kumar [Tue, 7 Sep 2010 20:49:32 +0000 (02:19 +0530)]
[virto-9p] Implement TLOCK

Synopsis

    size[4] TLock tag[2] fid[4] flock[n]
    size[4] RLock tag[2] status[1]

Description

Tlock is used to acquire/release byte range posix locks on a file
identified by given fid. The reply contains status of the lock request

    flock structure:
        type[1] - Type of lock: F_RDLCK, F_WRLCK, F_UNLCK
        flags[4] - Flags could be either of
          P9_LOCK_FLAGS_BLOCK(1) - Blocked lock request, if there is a
            conflicting lock exists, wait for that lock to be released.
          P9_LOCK_FLAGS_RECLAIM(2) - Reclaim lock request, used when client is
            trying to reclaim a lock after a server restrart (due to crash)
        start[8] - Starting offset for lock
        length[8] - Number of bytes to lock
          If length is 0, lock all bytes starting at the location 'start'
          through to the end of file
        pid[4] - PID of the process that wants to take lock
        client_id[4] - Unique client id

        status[1] - Status of the lock request, can be
          P9_LOCK_SUCCESS(0), P9_LOCK_BLOCKED(1), P9_LOCK_ERROR(2) or
          P9_LOCK_GRACE(3)
          P9_LOCK_SUCCESS - Request was successful
          P9_LOCK_BLOCKED - A conflicting lock is held by another process
          P9_LOCK_ERROR - Error while processing the lock request
          P9_LOCK_GRACE - Server is in grace period, it can't accept new lock
                requests in this period (except locks with
                P9_LOCK_FLAGS_RECLAIM flag set)

Signed-off-by: M. Mohan Kumar <mohan@in.ibm.com>
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
13 years ago[virtio-9p] open should not return EBADF
Sripathi Kodi [Mon, 20 Sep 2010 17:54:29 +0000 (23:24 +0530)]
[virtio-9p] open should not return EBADF

When 9P server fails to create a file due to permission problems it should
return EPERM. However the current 9P2000.L code returns EBADF. EBADF is NOT
a valid return value from open() call.

The problem is because we do not preserve the errno variable properly. If the
file open had failed, the call to close() on the fd in v9fs_post_lcreate()
fails and sets errno to EBADF. We should preserve the errno that we got from
open() and we should call close() only if we had a valid fd.

Signed-off-by: Sripathi Kodi <sripathik@in.ibm.com>
Signed-off-by: Venkateswararao Jujjuri <jvrao@linux.vnet.ibm.com>
13 years agotrace: improve info trace output
Blue Swirl [Wed, 20 Oct 2010 16:41:36 +0000 (16:41 +0000)]
trace: improve info trace output

Use PRI*64 to print full 64 bit data even on ILP32 hosts.

Print also sixth tracepoint parameter.

Acked-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Cc: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agotrace: Format strings must begin/end with double quotes
Stefan Hajnoczi [Wed, 20 Oct 2010 16:41:31 +0000 (16:41 +0000)]
trace: Format strings must begin/end with double quotes

Document the restriction that format strings must begin and end with
double quotes.  This is for easy parsing since we don't run cpp over
trace-events.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agoapic: convert debug printf statements to tracepoints
Blue Swirl [Wed, 20 Oct 2010 16:41:28 +0000 (16:41 +0000)]
apic: convert debug printf statements to tracepoints

Replace debug printf statements with tracepoints.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
13 years agotrace: Relax trace-events parsing regex in simpletrace.py
Stefan Hajnoczi [Mon, 18 Oct 2010 12:42:54 +0000 (13:42 +0100)]
trace: Relax trace-events parsing regex in simpletrace.py

The regular expression to parse trace event definitions assumed the
format string would be a simple double-quoted string.  However, we now
use PRI?64 for portability which splits string literals.  The regular
expression can disregard the format string entirely since simpletrace.py
never needs to use it.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>