sdk/emulator/qemu.git
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 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>
14 years agonbd: correctly manage default port
Laurent Vivier [Fri, 17 Sep 2010 18:37:25 +0000 (20:37 +0200)]
nbd: correctly manage default port

block/nbd.c: use default port number when none is specified
qemu-nbd.c:  use IANA-assigned port number: 10809

Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
14 years agoImprove qemu-nbd performance by 4400 %
Laurent Vivier [Fri, 17 Sep 2010 16:13:57 +0000 (18:13 +0200)]
Improve qemu-nbd performance by 4400 %

This patch allows to reduce the boot time from an NBD server from 225 seconds to
5 seconds (time between the "boot cd:0" and the kernel init) for the
following command lines:

./qemu-nbd -t ../ISO/debian-500-powerpc-netinst.iso
and
./ppc-softmmu/qemu-system-ppc -cdrom nbd:localhost:1024

This patch combines the reply header and payload send operation.

Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
14 years agoraw-posix: handle > 512 byte alignment correctly
Christoph Hellwig [Sun, 12 Sep 2010 21:43:21 +0000 (23:43 +0200)]
raw-posix: handle > 512 byte alignment correctly

Replace the hardcoded handling of 512 byte alignment with bs->buffer_alignment
to handle larger sector size devices correctly.

Note that we can not rely on it to be initialize in bdrv_open, so deal
with the worst case there.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
14 years agouse qemu_blockalign consistently
Christoph Hellwig [Sun, 12 Sep 2010 21:42:56 +0000 (23:42 +0200)]
use qemu_blockalign consistently

Use qemu_blockalign for all allocations in the block layer.  This allows
increasing the required alignment, which is need to support O_DIRECT on
devices with large block sizes.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
14 years agovvfat: Use cache=unsafe
Kevin Wolf [Fri, 10 Sep 2010 10:27:04 +0000 (12:27 +0200)]
vvfat: Use cache=unsafe

The qcow file used for write support in vvfat is a temporary file,
so we can use cache=unsafe there. Without this, write support is just
too slow to be of any use.

Signed-off-by: Kevin Wolf <mail@kevin-wolf.de>
14 years agovvfat: Fix double free for opening the image rw
Kevin Wolf [Fri, 10 Sep 2010 10:27:03 +0000 (12:27 +0200)]
vvfat: Fix double free for opening the image rw

Allocation and deallocation of bs->opaque is not in the control of a
block driver. Therefore it should not set bs->opaque to a data structure
used by another bs, or closing the image will lead to a double free.

Signed-off-by: Kevin Wolf <mail@kevin-wolf.de>
14 years agovvfat: Fix segfault on write to read-only disk
Kevin Wolf [Fri, 10 Sep 2010 10:27:02 +0000 (12:27 +0200)]
vvfat: Fix segfault on write to read-only disk

vvfat tries to set the readonly flag in its open function, but nowadays
this is overwritted with the readonly=... command line option. Check in
bdrv_write if the vvfat was opened read-only and return an error in this
case.

Without this check, vvfat tries to access the qcow bs, which is NULL
without enabled write support.

Signed-off-by: Kevin Wolf <mail@kevin-wolf.de>
14 years agoMerge remote branch 'mst/for_anthony' into staging
Anthony Liguori [Mon, 20 Sep 2010 18:22:20 +0000 (13:22 -0500)]
Merge remote branch 'mst/for_anthony' into staging

14 years agoe1000: Pad short frames to minimum size (60 bytes)
Stefan Hajnoczi [Sat, 18 Sep 2010 20:43:45 +0000 (21:43 +0100)]
e1000: Pad short frames to minimum size (60 bytes)

The OpenIndiana (Solaris) e1000g driver drops frames that are too long
or too short.  It expects to receive frames of at least the Ethernet
minimum size.  ARP requests in particular are small and will be dropped
if they are not padded appropriately, preventing a Solaris VM from
becoming visible on the network.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
14 years agomingw: use ASLR, no-SEH and DEP if available
Blue Swirl [Sun, 19 Sep 2010 08:36:34 +0000 (08:36 +0000)]
mingw: use ASLR, no-SEH and DEP if available

If the linker supports the flags --dynamicbase, --no-seh,
or --nxcompat, use them.

Tested on Windows Vista: Process Explorer reports that ASLR and DEP
are in use. No effect seen on Wine or Windows XP.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agocris: Fix watchdog resets
Edgar E. Iglesias [Sat, 18 Sep 2010 22:30:25 +0000 (00:30 +0200)]
cris: Fix watchdog resets

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
14 years agocris: Fix TLB exec bit protection
Edgar E. Iglesias [Sat, 18 Sep 2010 10:34:59 +0000 (12:34 +0200)]
cris: Fix TLB exec bit protection

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
14 years agoUse gcc warning flag -Wnested-externs
Blue Swirl [Sat, 18 Sep 2010 07:02:16 +0000 (07:02 +0000)]
Use gcc warning flag -Wnested-externs

If the compiler supports the warning flag -Wnested-externs, use it.

Avoid the only warning by moving the declaration of xml_builtin to a
more proper place.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoUse gcc warning flag -Wempty-body
Blue Swirl [Sat, 18 Sep 2010 07:01:48 +0000 (07:01 +0000)]
Use gcc warning flag -Wempty-body

If the compiler supports the warning flag -Wempty-body, use it.

Adjust the code to avoid the warnings.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoUse a few more gcc warning flags
Blue Swirl [Sat, 18 Sep 2010 07:01:05 +0000 (07:01 +0000)]
Use a few more gcc warning flags

If the compiler supports the following warning flags, use them:

-Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers
-Wmissing-include-dirs

Currently, these flags don't produce any warnings.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoUse gcc warning flag -Wtype-limits
Blue Swirl [Sat, 18 Sep 2010 05:53:15 +0000 (05:53 +0000)]
Use gcc warning flag -Wtype-limits

If the compiler supports the warning flag -Wtype-limits, use it.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agopxa2xx: fix SSSR TFN logic
Blue Swirl [Sat, 18 Sep 2010 05:53:15 +0000 (05:53 +0000)]
pxa2xx: fix SSSR TFN logic

Fix SSSR TFN logic: TX FIFO is never filled, so it is always in
underrun condition if SSP is enabled.

This also avoids a gcc warning with -Wtype-limits.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoMIPS: fix yield handling
Blue Swirl [Sat, 18 Sep 2010 05:53:15 +0000 (05:53 +0000)]
MIPS: fix yield handling

The parameter for yield should be handled as a signed integer
for the comparisons to have any effect.

This also avoids a gcc warning with -Wtype-limits.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoPPC: Suppress gcc warnings with -Wtype-limits
Blue Swirl [Sat, 18 Sep 2010 05:53:15 +0000 (05:53 +0000)]
PPC: Suppress gcc warnings with -Wtype-limits

The hack added by c5b76b381081680633e2e0a91216507430409fb2 was not
enough to avoid warnings with gcc flag -Wtype-limits. Add a new macro
to fix both problems.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoblkdebug: fix enum comparison
Blue Swirl [Sat, 18 Sep 2010 05:53:15 +0000 (05:53 +0000)]
blkdebug: fix enum comparison

The signedness of enum types depend on the compiler implementation.
Therefore the check for negative values may or may not be meaningful.

Fix by explicitly casting to a signed integer.

Since the values are also checked earlier against event_names
table, this is an internal error. Change the 'if' to 'assert'.

This also avoids a warning with GCC flag -Wtype-limits.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agopxa2xx: remove useless checks
Blue Swirl [Sat, 18 Sep 2010 05:53:15 +0000 (05:53 +0000)]
pxa2xx: remove useless checks

Remove checks which were made useless by r5849,
8da3ff180974732fc4272cb4433fef85c1822961.

This also avoids a warning with GCC flag -Wtype-limits.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoUse range_covers_byte
Blue Swirl [Sat, 18 Sep 2010 05:53:14 +0000 (05:53 +0000)]
Use range_covers_byte

Use range_covers_byte() instead of comparisons.

This avoids some warnings with GCC flag -Wtype-limits.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 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>
14 years agolinux-user: improve flatload error checking
Blue Swirl [Sat, 18 Sep 2010 05:53:14 +0000 (05:53 +0000)]
linux-user: improve flatload error checking

Because of the use of unsigned type, possible errors during
load were ignored.

Fix by using a signed type.

This also avoids a warning with GCC flag -Wtype-limits.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agolinux-user: fix types in a comparison
Blue Swirl [Sat, 18 Sep 2010 05:53:14 +0000 (05:53 +0000)]
linux-user: fix types in a comparison

-1ul is unsigned long, which does not necessarily match abi_ulong
type.

Fix by using abi_long instead.

This also avoids a warning with GCC flag -Wtype-limits.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agolinux-user: fix socklen_t comparisons
Blue Swirl [Sat, 18 Sep 2010 05:53:14 +0000 (05:53 +0000)]
linux-user: fix socklen_t comparisons

On many systems, socklen_t is defined as unsigned. This means that
checks for negative values are not meaningful.

Fix by explicitly casting to a signed integer.

This also avoids some warnings with GCC flag -Wtype-limits.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoCheck for errors during BIOS or kernel load
Blue Swirl [Sat, 18 Sep 2010 05:53:14 +0000 (05:53 +0000)]
Check for errors during BIOS or kernel load

Because of the use of unsigned types, possible errors during
BIOS or kernel load were ignored.

Fix by using a signed type.

This also avoids some warnings with GCC flag -Wtype-limits.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoMake ARP replies at least 64 bytes long
Hervé Poussineau [Wed, 15 Sep 2010 20:33:26 +0000 (22:33 +0200)]
Make ARP replies at least 64 bytes long

IEEE 802.3 standard requires Ethernet frames to be at least 64 bytes long.
If it is not the case, they will be considered as runt frames, and may be ignored by netcard and/or OS

Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
14 years agoAccept packets with TTL=1
Hervé Poussineau [Mon, 13 Sep 2010 21:01:30 +0000 (23:01 +0200)]
Accept packets with TTL=1

Packets with TTL=1 may be directed to local network (DHCP/DNS servers for example), so don't discard them
This is required by old versions of NetBSD which send DHCP DISCOVER packets with TTL=1

Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
14 years agocris: Avoid spurios hw_abort on recursive bus faults
Edgar E. Iglesias [Thu, 16 Sep 2010 13:40:27 +0000 (15:40 +0200)]
cris: Avoid spurios hw_abort on recursive bus faults

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
14 years agoPPC: Redesign interrupt trigger path
Alexander Graf [Fri, 10 Sep 2010 15:08:34 +0000 (15:08 +0000)]
PPC: Redesign interrupt trigger path

According to the Book3S spec, the interrupt context starts with an MSR
value that is rather simple. If we leave out the HV case, it's almost
always 0.

To reflect this, let's redesign the way that MSR value gets calculated.
Using this, we also squash the bug where MSR_POW can slip through into
the interrupt handler MSR.

Reported-by: Thomas Monjalon <thomas.monjalon@openwide.fr>
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
14 years agoPPC: Enable hint bits for lwarx/ldarx
Alexander Graf [Fri, 10 Sep 2010 15:08:33 +0000 (15:08 +0000)]
PPC: Enable hint bits for lwarx/ldarx

The lwarx and ldarx instructions have a bit to give some hint to the
CPU which is safe to ignore. We currently refuse to accept any instruction
with that bit set, as it used to be declared MBZ.

Let's remove the reserved bit and make the instruction work as expected.
This fixes Linux boot for ppc64.

Signed-off-by: Alexander Graf <agraf@suse.de>
Reviewed-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
14 years agoserial: Update parameters after load
Michal Novotny [Wed, 15 Sep 2010 13:35:53 +0000 (15:35 +0200)]
serial: Update parameters after load

This is the patch to update serial port parameters after guest is
already loaded.

Signed-off-by: Michal Novotny <minovotn@redhat.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
14 years agovhost: fix infinite loop on error path
Michael S. Tsirkin [Tue, 14 Sep 2010 11:48:17 +0000 (13:48 +0200)]
vhost: fix infinite loop on error path

file.index is unsigned, hence 'while (--file.index >= 0)'
will loop > forever. Change to while (file.index-- > 0).

Reported-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
14 years agoRemove wrong semicolon in macro definition
Stefan Weil [Mon, 13 Sep 2010 19:21:57 +0000 (21:21 +0200)]
Remove wrong semicolon in macro definition

Macros normally should not end with a semicolon,
otherwise their usage results in two statements
where only one statement was expected.

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
14 years agoserial: Wrap debug prints around a DPRINTF macro
Michal Novotny [Mon, 13 Sep 2010 12:32:32 +0000 (14:32 +0200)]
serial: Wrap debug prints around a DPRINTF macro

Signed-off-by: Michal Novotny <minovotn@redhat.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
14 years agoESP: fix ESP DMA access when DMA is not enabled
Blue Swirl [Sat, 11 Sep 2010 16:38:33 +0000 (16:38 +0000)]
ESP: fix ESP DMA access when DMA is not enabled

Sending ESP a command caused it to trigger DMA immediately
even if DMA was not enabled at the DMA controller.

Add a signal from DMA controller to ESP to tell ESP about changes in
DMA enable bit. Also use the correct function for setting up GPIO outputs.

This fixes NetBSD 1.6.1 through 3.0 boot.

Thanks to Artyom Tarasenko for extensive debugging of the problem.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agopowerpc: Avoid TLB related log spamming
Edgar E. Iglesias [Sat, 11 Sep 2010 12:29:07 +0000 (14:29 +0200)]
powerpc: Avoid TLB related log spamming

Invalid TLB entries are normal and should not spam the log.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
14 years agotrace: fix a regex portability problem
Blue Swirl [Sat, 11 Sep 2010 10:43:39 +0000 (10:43 +0000)]
trace: fix a regex portability problem

The /bin/sh in Milax has problems with the regex:
Error: invalid trace backend
Please choose a supported trace backend.

Fix it by escaping ')' like the regexes with '('.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agotrace: fix a typo
Blue Swirl [Fri, 10 Sep 2010 20:54:56 +0000 (23:54 +0300)]
trace: fix a typo

There is no qemu_valloc() but qemu_vmalloc().

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoHACKING: add rules for printf-like functions
Blue Swirl [Fri, 10 Sep 2010 18:53:11 +0000 (18:53 +0000)]
HACKING: add rules for printf-like functions

Add rules for printf-like functions, based on libvirt HACKING.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoHACKING: add string management rules
Blue Swirl [Fri, 10 Sep 2010 18:53:05 +0000 (18:53 +0000)]
HACKING: add string management rules

Add string management rules, somewhat like libvirt HACKING.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoHACKING: add memory management rules
Blue Swirl [Fri, 10 Sep 2010 18:52:52 +0000 (18:52 +0000)]
HACKING: add memory management rules

Add memory management rules, somewhat like libvirt HACKING.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoHACKING: add C type rules
Blue Swirl [Fri, 10 Sep 2010 18:47:31 +0000 (18:47 +0000)]
HACKING: add C type rules

Add C type rules, adapted from libvirt HACKING. Also include
a description of special QEMU scalar types.

Move typedef rule from CODING_STYLE rule 3 to HACKING rule 6
where it belongs.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoHACKING: add preprocessor rules
Blue Swirl [Fri, 10 Sep 2010 18:46:00 +0000 (18:46 +0000)]
HACKING: add preprocessor rules

Add a new file, HACKING, in order to collect recurring
issues with submitted patches.

Start with preprocessor rules, adapted from libvirt HACKING.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agovmware_vga: Replace the few tab-indents with spaces (clean-up).
Andrzej Zaborowski [Fri, 10 Sep 2010 00:30:04 +0000 (02:30 +0200)]
vmware_vga: Replace the few tab-indents with spaces (clean-up).

Use 4 spaces instead of 2, too.

14 years agovmware_vga: Add checks to deal with non-atomic fifo writes.
Andrzej Zaborowski [Fri, 10 Sep 2010 00:23:31 +0000 (02:23 +0200)]
vmware_vga: Add checks to deal with non-atomic fifo writes.

Janne Huttunen noticed that the FIFO end pointer is updated by the
guest after writing each word to the FIFO, at least the X.org driver
which is open does this.  This means that there's no way for the
host to know if the guest is in the middle a write operation.  Qemu
thus needs to read the beginning of the command up to when it's able
to tell how many words are expected for the given command.  It will
abort reading and rewind the FIFO if there aren't enough words yet,
this should be relatively rare but it is suspected to have been the
cause of the occasional FIFO overrun that killed the display.

14 years agohw/omap: Fix default setup for OMAP UART devices
Stefan Weil [Sun, 8 Aug 2010 12:09:26 +0000 (14:09 +0200)]
hw/omap: Fix default setup for OMAP UART devices

Character devices created by qemu_chr_open don't
allow duplicate device names, so naming all
UART devices "null" no longer works.

Running "qemu-system-arm -M n800" (and some other machines)
results in this error message:

qemu-system-arm: Duplicate ID 'null' for chardev
Can't create serial device, empty char device

This is fixed by setting a default label "uart1",
"uart2" or "uart3".

Cc: Andrzej Zaborowski <andrew.zaborowski@intel.com>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
14 years agotrace: Trace entry point of balloon request handler
Prerna Saxena [Wed, 11 Aug 2010 11:46:03 +0000 (17:16 +0530)]
trace: Trace entry point of balloon request handler

Signed-off-by: Prerna Saxena <prerna@linux.vnet.ibm.com>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
14 years agotrace: Trace port IO
Prerna Saxena [Wed, 11 Aug 2010 11:45:11 +0000 (17:15 +0530)]
trace: Trace port IO

Signed-off-by: Prerna Saxena <prerna@linux.vnet.ibm.com>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
14 years agotrace: Trace virtqueue operations
Stefan Hajnoczi [Mon, 24 May 2010 12:19:21 +0000 (13:19 +0100)]
trace: Trace virtqueue operations

This patch adds trace events for virtqueue operations including
adding/removing buffers, notifying the guest, and receiving a notify
from the guest.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
14 years agotrace: Trace virtio-blk, multiwrite, and paio_submit
Stefan Hajnoczi [Sat, 22 May 2010 17:15:08 +0000 (18:15 +0100)]
trace: Trace virtio-blk, multiwrite, and paio_submit

This patch adds trace events that make it possible to observe
virtio-blk.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
14 years agotrace: Trace qemu_malloc() and qemu_vmalloc()
Stefan Hajnoczi [Sat, 22 May 2010 17:09:25 +0000 (18:09 +0100)]
trace: Trace qemu_malloc() and qemu_vmalloc()

It is often useful to instrument memory management functions in order to
find leaks or performance problems.  This patch adds trace events for
the memory allocation primitives.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
14 years agotrace: Add user documentation
Stefan Hajnoczi [Tue, 22 Jun 2010 14:07:09 +0000 (15:07 +0100)]
trace: Add user documentation

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
14 years agotrace: Add LTTng Userspace Tracer backend
Stefan Hajnoczi [Sat, 22 May 2010 20:11:33 +0000 (21:11 +0100)]
trace: Add LTTng Userspace Tracer backend

This patch adds LTTng Userspace Tracer (UST) backend support.  The UST
system requires no kernel support but libust and liburcu must be
installed.

$ ./configure --trace-backend ust
$ make

Start the UST daemon:
$ ustd &

List available tracepoints and enable some:
$ ustctl --list-markers $(pgrep qemu)
[...]
{PID: 5458, channel/marker: ust/paio_submit, state: 0, fmt: "acb %p
opaque %p sector_num %lu nb_sectors %lu type %lu" 0x4b32ba}
$ ustctl --enable-marker "ust/paio_submit" $(pgrep qemu)

Run the trace:
$ ustctl --create-trace $(pgrep qemu)
$ ustctl --start-trace $(pgrep qemu)
[...]
$ ustctl --stop-trace $(pgrep qemu)
$ ustctl --destroy-trace $(pgrep qemu)

Trace results can be viewed using lttv-gui.

More information about UST:
http://lttng.org/ust

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
trace: Check for LTTng Userspace Tracer headers

When using the 'ust' backend, check if the relevant headers are
available at host.

Signed-off-by: Prerna Saxena <prerna@linux.vnet.ibm.com>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
14 years agotrace: Add trace file name command-line option
Prerna Saxena [Mon, 9 Aug 2010 10:48:32 +0000 (11:48 +0100)]
trace: Add trace file name command-line option

This patch adds an optional command line switch '-trace' to specify the
filename to write traces to, when qemu starts.
Eg, If compiled with the 'simple' trace backend,
[temp@system]$ qemu -trace FILENAME IMAGE
Allows the binary traces to be written to FILENAME instead of the option
set at config-time.

Signed-off-by: Prerna Saxena <prerna@linux.vnet.ibm.com>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
14 years agotrace: Add trace-file command to open/close/flush trace file
Stefan Hajnoczi [Tue, 13 Jul 2010 08:26:33 +0000 (09:26 +0100)]
trace: Add trace-file command to open/close/flush trace file

This patch adds the trace-file command:

  trace-file [on|off|flush]

  Open, close, or flush the trace file.  If no argument is given,
  the status of the trace file is displayed.

The trace file is turned on by default but is only written out when the
trace buffer becomes full.  The flush operation can be used to force
write out at any time.

Turning off the trace file does not change the state of trace events;
tracing will continue to the trace buffer.  When the trace file is off,
use "info trace" to display the contents of the trace buffer in memory.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
This commit also contains the trace-file sub-command from the following
commit:

commit 5ce8d1a957afae2c52ad748944ce72848ccf57bd
Author: Prerna Saxena <prerna@linux.vnet.ibm.com>
Date:   Wed Aug 4 16:23:54 2010 +0530

    trace: Add options to specify trace file name at startup and runtime

    This patch adds an optional command line switch '-trace' to specify the
    filename to write traces to, when qemu starts.
    Eg, If compiled with the 'simple' trace backend,
    [temp@system]$ qemu -trace FILENAME IMAGE
    Allows the binary traces to be written to FILENAME instead of the option
    set at config-time.

    Also, this adds monitor sub-command 'set' to trace-file commands to
    dynamically change trace log file at runtime.
    Eg,
    (qemu)trace-file set FILENAME
    This allows one to set trace outputs to FILENAME from the default
    specified at startup.

Signed-off-by: Prerna Saxena <prerna@linux.vnet.ibm.com>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
14 years agotrace: Specify trace file name
Prerna Saxena [Tue, 13 Jul 2010 08:26:32 +0000 (09:26 +0100)]
trace: Specify trace file name

Allow users to specify a file for trace-outputs at configuration.
Also, allow trace files to be annotated by <pid> so each qemu instance has
unique traces.

The trace file name can be passed as a config option:
--trace-file=/path/to/file
(Default: trace )
At runtime, the pid of the qemu process is appended to the filename so
that mutiple qemu instances do not have overlapping logs.

Eg : trace-1234 for qemu launched with pid 1234.

I have yet to test this on windows. getpid() is used at many places
in code(including vnc.c), so I'm hoping this would be okay too.

Edited-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
14 years agotrace: Support disabled events in trace-events
Stefan Hajnoczi [Mon, 24 May 2010 10:32:09 +0000 (11:32 +0100)]
trace: Support disabled events in trace-events

Sometimes it is useful to disable a trace event.  Removing the event
from trace-events is not enough since source code will call the
trace_*() function for the event.

This patch makes it easy to build without specific trace events by
marking them disabled in trace-events:

disable multiwrite_cb(void *mcb, int ret) "mcb %p ret %d"

This builds without the multiwrite_cb trace event.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
trace: Allow bulk enabling/disabling of trace events at compile time

For 'simple' trace backend, allow bulk enabling/disabling of trace
events at compile time.  Trace events that are preceded by 'disable'
keyword are compiled in, but turned off by default. These can
individually be turned on using the monitor.  All other trace events are
enabled by default.

TODO :
This could be enhanced when the trace-event namespace is partitioned into a
group and an ID within that group. In such a case, marking a group as enabled
would automatically enable all trace-events listed under it.

Signed-off-by: Prerna Saxena <prerna@linux.vnet.ibm.com>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
14 years agotrace: Support for dynamically enabling/disabling trace events
Prerna Saxena [Thu, 24 Jun 2010 11:34:53 +0000 (17:04 +0530)]
trace: Support for dynamically enabling/disabling trace events

This patch adds support for dynamically enabling/disabling of trace events.
This is done by internally maintaining each trace event's state, and
permitting logging of data from a trace event only if it is in an
'active' state.

Monitor commands added :
1) info trace-events  : to view all available trace events and
  their state.
2) trace-event NAME on|off  : to enable/disable data logging from a
  given trace event.
  Eg, trace-event paio_submit off
   disables logging of data when
paio_submit is hit.

By default, all trace-events are disabled. One can enable desired trace-events
via the monitor.

Signed-off-by: Prerna Saxena <prerna@linux.vnet.ibm.com>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
trace: Monitor command 'info trace'

Monitor command 'info trace' to display contents of trace buffer

Signed-off-by: Prerna Saxena <prerna@linux.vnet.ibm.com>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
trace: Remove monitor.h dependency from simpletrace

User-mode targets don't have a monitor so the simple trace backend
currently does not build on those targets.  This patch abstracts the
monitor printing interface so there is no direct coupling between
simpletrace and the monitor.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
14 years agotrace: Add simple built-in tracing backend
Stefan Hajnoczi [Sat, 22 May 2010 18:24:51 +0000 (19:24 +0100)]
trace: Add simple built-in tracing backend

This patch adds a simple tracer which produces binary trace files.  To
try out the simple backend:

$ ./configure --trace-backend=simple
$ make

After running QEMU you can pretty-print the trace:

$ ./simpletrace.py trace-events trace.log

The output of simpletrace.py looks like this:

  qemu_realloc 0.699 ptr=0x24363f0 size=0x3 newptr=0x24363f0
  qemu_free 0.768 ptr=0x24363f0
  ^           ^---- timestamp delta (us)
  |____ trace event name

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
trace: Make trace record fields 64-bit

Explicitly use 64-bit fields in trace records so that timestamps and
magic numbers work for 32-bit host builds.

Includes fixes from Prerna Saxena <prerna@linux.vnet.ibm.com>.

Signed-off-by: Prerna Saxena <prerna@linux.vnet.ibm.com>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
14 years agotrace: Add trace-events file for declaring trace events
Stefan Hajnoczi [Sat, 22 May 2010 16:52:39 +0000 (17:52 +0100)]
trace: Add trace-events file for declaring trace events

This patch introduces the trace-events file where trace events can be
declared like so:

qemu_malloc(size_t size) "size %zu"
qemu_free(void *ptr) "ptr %p"

These trace event declarations are processed by a new tool called
tracetool to generate code for the trace events.  Trace event
declarations are independent of the backend tracing system (LTTng User
Space Tracing, ftrace markers, DTrace).

The default "nop" backend generates empty trace event functions.
Therefore trace events are disabled by default.

The trace-events file serves two purposes:

1. Adding trace events is easy.  It is not necessary to understand the
   details of a backend tracing system.  The trace-events file is a
   single location where trace events can be declared without code
   duplication.

2. QEMU is not tightly coupled to one particular backend tracing system.
   In order to support tracing across QEMU host platforms and to
   anticipate new backend tracing systems that are currently maturing,
   it is important to be flexible and not tied to one system.

This commit includes fixes from Prerna Saxena
<prerna@linux.vnet.ibm.com> and Blue Swirl <blauwirbel@gmail.com>.

Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
14 years agomicroblaze: Add support for fcmp.un
Edgar E. Iglesias [Thu, 9 Sep 2010 20:05:48 +0000 (22:05 +0200)]
microblaze: Add support for fcmp.un

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
14 years agoelf: Calculate symbol size if needed
Stefan Weil [Mon, 9 Aug 2010 14:43:53 +0000 (16:43 +0200)]
elf: Calculate symbol size if needed

Symbols with a size of 0 are unusable for the disassembler.

Example:

While running an arm linux kernel, no symbolic names are
used in qemu.log when the cpu is executing an assembler function.

Assume that the size of such symbols is the difference to the
next symbol value.

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoFix OpenBSD build warning
Blue Swirl [Thu, 9 Sep 2010 19:13:04 +0000 (19:13 +0000)]
Fix OpenBSD build warning

Fix this warning:
  CC    savevm.o
/src/qemu/savevm.c: In function `do_savevm':
/src/qemu/savevm.c:1900: warning: passing arg 1 of `localtime_r' from incompatible pointer type

It looks like on OpenBSD the type of tv_sec in struct timeval is still
'long' instead of time_t as in most other OS. Fix by adding a cast.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agomicroblaze: User-mode emulation of hw-excp signals
Edgar E. Iglesias [Thu, 9 Sep 2010 08:24:01 +0000 (10:24 +0200)]
microblaze: User-mode emulation of hw-excp signals

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
14 years agomicroblaze: Add basic FPU emulation
Edgar E. Iglesias [Thu, 9 Sep 2010 08:20:17 +0000 (10:20 +0200)]
microblaze: Add basic FPU emulation

Missing:
* fcmp.un insn
* Denormalized exceptions
* Exception model is not accurate

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
14 years agomicroblaze: Add definitions for FSR reg fields
Edgar E. Iglesias [Thu, 9 Sep 2010 07:58:35 +0000 (09:58 +0200)]
microblaze: Add definitions for FSR reg fields

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>