sdk/emulator/qemu.git
14 years agotcg/mips: fix crash in tcg_out_qemu_ld()
Aurelien Jarno [Tue, 9 Feb 2010 21:54:22 +0000 (22:54 +0100)]
tcg/mips: fix crash in tcg_out_qemu_ld()

The address register is overriden when it corresponds to v0 and the fast
path is taken, which leads to a crash. Fix that by using the a0 register
instead.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotarget-sh4: MMU: separate execute and read/write permissions
Aurelien Jarno [Tue, 2 Feb 2010 21:32:14 +0000 (22:32 +0100)]
target-sh4: MMU: separate execute and read/write permissions

On SH4, the ITLB and UTLB configurations are memory mapped, so loading
ITLB entries from UTLB has to be simulated correctly. For that the QEMU
TLB has to be handle the execute (ITLB) and read/write permissions
(UTLB) seperately.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotarget-sh4: MMU: fix store queue addresses
Aurelien Jarno [Wed, 3 Feb 2010 17:02:55 +0000 (18:02 +0100)]
target-sh4: MMU: fix store queue addresses

The store queues are located from 0xe0000000 to 0xe3ffffff.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotarget-sh4: MMU: remove dead code
Aurelien Jarno [Wed, 3 Feb 2010 01:33:00 +0000 (02:33 +0100)]
target-sh4: MMU: remove dead code

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotarget-sh4: MMU: reduce the size of a TLB entry
Aurelien Jarno [Wed, 3 Feb 2010 01:32:49 +0000 (02:32 +0100)]
target-sh4: MMU: reduce the size of a TLB entry

Reduce the size of the TLB entry from 32 to 16 bytes, reorganising
members and using a bit field.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotarget-sh4: MMU: optimize UTLB accesses
Aurelien Jarno [Tue, 2 Feb 2010 18:50:51 +0000 (19:50 +0100)]
target-sh4: MMU: optimize UTLB accesses

With the current code, the QEMU TLB is setup to match the read/write
mode of the MMU fault. This means when read access is done, the page
is setup in read-only mode. When the page is later accessed in write
mode, an MMU fault happened, and the page is switch in write-only
mode. This flip-flop causes a lot of calls to the MMU code and slow
down the emulation.

This patch changes the MMU emulation, so that the QEMU TLB is setup
to match the UTLB protection key. This impressively increase the
speed of the emulation.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotarget-sh4: MMU: fix ITLB priviledge check
Aurelien Jarno [Mon, 1 Feb 2010 19:07:06 +0000 (20:07 +0100)]
target-sh4: MMU: fix ITLB priviledge check

There is an ITLB access violation if SR_MD=0 (user mode) while
the high bit of the protection key is 0 (priviledge mode).

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotarget-sh4: MMU: simplify call to tlb_set_page()
Aurelien Jarno [Mon, 1 Feb 2010 19:02:23 +0000 (20:02 +0100)]
target-sh4: MMU: simplify call to tlb_set_page()

tlb_set_page() doesn't need addresses with offset, but simply the
page aligned addresses.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotarget-sh4: MMU: fix mem_idx computation
Aurelien Jarno [Mon, 1 Feb 2010 18:58:46 +0000 (19:58 +0100)]
target-sh4: MMU: fix mem_idx computation

The mem_idx is wrongly computed. As written in target-sh4/cpu.h, mode 0
corresponds to kernel mode (SR_MD = 1), while mode 1 corresponds to user
mode (SR_MD = 0).

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agosh7750: handle MMUCR TI bit
Aurelien Jarno [Tue, 2 Feb 2010 18:39:11 +0000 (19:39 +0100)]
sh7750: handle MMUCR TI bit

When the MMUCR TI bit is set, all the UTLB and ITLB entries should be
flushed.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg/mips: implement setcond2
Aurelien Jarno [Mon, 8 Feb 2010 18:05:00 +0000 (19:05 +0100)]
tcg/mips: implement setcond2

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoMerge remote branch 'linux-user/linux-user-for-upstream' into staging-tmp
Anthony Liguori [Mon, 8 Feb 2010 16:09:52 +0000 (10:09 -0600)]
Merge remote branch 'linux-user/linux-user-for-upstream' into staging-tmp

14 years agoMerge remote branch 'qemu-kvm/uq/master' into staging-tmp
Anthony Liguori [Mon, 8 Feb 2010 16:06:54 +0000 (10:06 -0600)]
Merge remote branch 'qemu-kvm/uq/master' into staging-tmp

14 years agotcg/mips: implement setcond
Aurelien Jarno [Mon, 8 Feb 2010 15:37:37 +0000 (16:37 +0100)]
tcg/mips: implement setcond

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoconfigure: fix the static compilation for sdl
TeLeMan [Mon, 8 Feb 2010 05:56:44 +0000 (13:56 +0800)]
configure: fix the static compilation for sdl

The static compilation for sdl is broken after
79427693174a553d62f3da44aacd3f19ba8df3a7.

Signed-off-by: TeLeMan <geleman@gmail.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoconfigure: Add --enable-docs and --disable-docs to --help
Dirk Ullrich [Sat, 6 Feb 2010 08:48:23 +0000 (09:48 +0100)]
configure: Add --enable-docs and --disable-docs to --help

This patch adds the documentation-related options "--enable-docs" and
"--disable-docs" to the help message of "configure".

Signed-off-by: Dirk Ullrich <dirk.ullrich@googlemail.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotarget-sh4: minor optimisations
Aurelien Jarno [Sun, 31 Jan 2010 00:07:25 +0000 (01:07 +0100)]
target-sh4: minor optimisations

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoSH4/R2D: fix poweroff
Aurelien Jarno [Sat, 30 Jan 2010 19:41:33 +0000 (20:41 +0100)]
SH4/R2D: fix poweroff

The write the the PA_POWOFF register is currently ignored. Fix that by
calling qemu_system_shutdown_request() when a poweroff is requested.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg: move setcond* ops to non-optional section
Aurelien Jarno [Mon, 8 Feb 2010 11:10:15 +0000 (12:10 +0100)]
tcg: move setcond* ops to non-optional section

setcond is not an optional op, move it to the non-optional section.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg: add setcondi pseudo-op
Aurelien Jarno [Mon, 8 Feb 2010 11:06:05 +0000 (12:06 +0100)]
tcg: add setcondi pseudo-op

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoblock/curl: %Z is not a valid conversion specifier
malc [Mon, 8 Feb 2010 09:44:55 +0000 (12:44 +0300)]
block/curl: %Z is not a valid conversion specifier

Signed-off-by: malc <av1474@comtv.ru>
14 years agovl.c: avoid preprocessor directives in a printf call
Paolo Bonzini [Thu, 4 Feb 2010 15:49:59 +0000 (16:49 +0100)]
vl.c: avoid preprocessor directives in a printf call

Similar to the qemu-img.c patch, but I also have to unescape remaining
% signs in qemu-options.hx.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: malc <av1474@comtv.ru>
14 years agodo not interpolate % from vl.c to qemu-options.h
Paolo Bonzini [Thu, 4 Feb 2010 15:49:58 +0000 (16:49 +0100)]
do not interpolate % from vl.c to qemu-options.h

Since qemu-options.h is only used in vl.c, we can avoid using
brittle interpolation from a generated file.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: malc <av1474@comtv.ru>
14 years agocope with printf macro definition in readline.c
Paolo Bonzini [Thu, 4 Feb 2010 15:49:57 +0000 (16:49 +0100)]
cope with printf macro definition in readline.c

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: malc <av1474@comtv.ru>
14 years agoqemu-img: avoid preprocessor directives in a printf call
Paolo Bonzini [Thu, 4 Feb 2010 15:49:56 +0000 (16:49 +0100)]
qemu-img: avoid preprocessor directives in a printf call

Other choices include using "(printf)", but this one is not bad in
terms of readability.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: malc <av1474@comtv.ru>
14 years agoRevert "On some systems printf is a macro"
malc [Mon, 8 Feb 2010 09:04:56 +0000 (12:04 +0300)]
Revert "On some systems printf is a macro"

This reverts commit bc5b6004588ad17370e0416e40b4aa9cf977023b.

14 years agodec: actually implement PCI bridging
Blue Swirl [Sun, 7 Feb 2010 19:28:32 +0000 (19:28 +0000)]
dec: actually implement PCI bridging

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoesp: use CamelCaseFunc for function types
Blue Swirl [Sun, 7 Feb 2010 09:17:35 +0000 (09:17 +0000)]
esp: use CamelCaseFunc for function types

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agofw_cfg: don't use reserved _ prefix
Blue Swirl [Sun, 7 Feb 2010 09:15:26 +0000 (09:15 +0000)]
fw_cfg: don't use reserved _ prefix

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agofdc: don't use reserved _ prefix
Blue Swirl [Sun, 7 Feb 2010 09:13:51 +0000 (09:13 +0000)]
fdc: don't use reserved _ prefix

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agofdc: don't use reserved _t suffix
Blue Swirl [Sun, 7 Feb 2010 09:01:18 +0000 (09:01 +0000)]
fdc: don't use reserved _t suffix

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoescc: don't use reserved _t suffix
Blue Swirl [Sun, 7 Feb 2010 08:05:47 +0000 (08:05 +0000)]
escc: don't use reserved _t suffix

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agom48t59: don't use reserved _t suffix
Blue Swirl [Sun, 7 Feb 2010 08:05:03 +0000 (08:05 +0000)]
m48t59: don't use reserved _t suffix

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agotcg/ppc64: implement setcond
malc [Sat, 6 Feb 2010 23:48:53 +0000 (02:48 +0300)]
tcg/ppc64: implement setcond

Signed-off-by: malc <av1474@comtv.ru>
14 years agotcg/ppc32: proper setcond implementation
malc [Sat, 6 Feb 2010 23:48:48 +0000 (02:48 +0300)]
tcg/ppc32: proper setcond implementation

Signed-off-by: malc <av1474@comtv.ru>
14 years agotcg/ppc32: implement setcond[2]
malc [Sat, 6 Feb 2010 23:18:06 +0000 (02:18 +0300)]
tcg/ppc32: implement setcond[2]

Signed-off-by: malc <av1474@comtv.ru>
14 years agoOn some systems printf is a macro
malc [Sat, 6 Feb 2010 23:04:28 +0000 (02:04 +0300)]
On some systems printf is a macro

Signed-off-by: malc <av1474@comtv.ru>
14 years agoDo not use dprintf
malc [Sat, 6 Feb 2010 23:03:50 +0000 (02:03 +0300)]
Do not use dprintf

dprintf is already claimed by POSIX[1], and on at least one system
is implemented as a macro

[1] http://www.opengroup.org/onlinepubs/9699919799/functions/dprintf.html

Signed-off-by: malc <av1474@comtv.ru>
14 years agoarm host: fix compiler warning
Stefan Weil [Wed, 20 Jan 2010 18:43:25 +0000 (19:43 +0100)]
arm host: fix compiler warning

Compilation for arm (native or cross) results in this
warning:

fpu/softfloat-native.c: In function ‘float64_round_to_int’:
fpu/softfloat-native.c:387: error: control reaches end of non-void function

float64_round_to_int uses special assembler code for arm
and has no explicit return value.

As there is no obvious reason why arm should need special
code, all fpu related conditionals were removed.
The remaining code is standard (C99) and compiles for arm,
too.

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Acked-by: Laurent Desnogues <laurent.desnogues@gmail.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg-i386: Implement setcond.
Richard Henderson [Sat, 19 Dec 2009 18:46:38 +0000 (10:46 -0800)]
tcg-i386: Implement setcond.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg-i386: Implement small forward branches.
Richard Henderson [Sat, 6 Feb 2010 19:47:58 +0000 (11:47 -0800)]
tcg-i386: Implement small forward branches.

There are places, like brcond2, where we know that the destination
of a forward branch will be within 127 bytes.

Add the R_386_PC8 relocation type to support this.  Add a flag to
tcg_out_jxx and tcg_out_brcond* to enable it.  Set the flag in the
brcond2 label_next branches; pass along the input flag otherwise.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoAdd -static earlier to LDFLAGS for compile_prog()
Loïc Minier [Sun, 31 Jan 2010 11:23:45 +0000 (12:23 +0100)]
Add -static earlier to LDFLAGS for compile_prog()

Add -static to LDFLAGS earlier as to run the compile_prog() tests with
this flags, this will avoid turning on features for which a shared
library is available but not a static one.

Signed-off-by: Loïc Minier <lool@dooz.org>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoFix missing symbols in .rel/.rela.plt sections
Loïc Minier [Sun, 31 Jan 2010 11:22:52 +0000 (12:22 +0100)]
Fix missing symbols in .rel/.rela.plt sections

Fix .rel.plt sections in the output to not only include .rel.plt
sections from the input but also the .rel.iplt sections and to define
the hidden symbols __rel_iplt_start and __rel_iplt_end around
.rel.iplt as otherwise we get undefined references to these when
linking statically to a multilib libc.a.  This fixes the static build
under i386.

Apply similar logic to rela.plt/.iplt and __rela_iplt/_plt_start/_end to
fix the static build under amd64.

Signed-off-by: Loïc Minier <lool@dooz.org>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoconfigure: remove debugging code introduced in aa527b65d8187b97d73f889b6cae7b6ac6f82d32
Aurelien Jarno [Sat, 6 Feb 2010 20:34:49 +0000 (21:34 +0100)]
configure: remove debugging code introduced in aa527b65d8187b97d73f889b6cae7b6ac6f82d32

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoconfigure: fix compilation on hosts without -fstack-protector-all
Aurelien Jarno [Sat, 6 Feb 2010 20:22:19 +0000 (21:22 +0100)]
configure: fix compilation on hosts without -fstack-protector-all

Commit a0f291fc101a7ab3e40850a329da2cc2f2cd1f2d has enabled
-fstack-protector-all on all targets, as the configure test is bogus.
GCC only emits a warning and not an error if this option is not
supported, so the configure scripts doesn't detect the problem.

This patch changes the configure script to try the various flags
with -Werror in addition to catch the possible warnings.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoUpdate MAINTAINERS
Aurelien Jarno [Sat, 6 Feb 2010 18:23:38 +0000 (19:23 +0100)]
Update MAINTAINERS

Remove Thiemo from the maintainers. Requiescat in pace.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotarget-mips: don't call cpu_loop_exit() from helper.c
Aurelien Jarno [Sat, 6 Feb 2010 16:02:45 +0000 (17:02 +0100)]
target-mips: don't call cpu_loop_exit() from helper.c

In helper.c AREG0 may not correspond do env, so it's not possible to
call cpu_loop_exit() here. Call it from op_helper.c instead.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotarget-arm: refactor cp15.c13 register access
Riku Voipio [Mon, 25 Jan 2010 13:17:32 +0000 (15:17 +0200)]
target-arm: refactor cp15.c13 register access

Access the cp15.c13 TLS registers directly with TCG ops instead of with
a slow helper. If the the cp15 read/write was not TLS register access,
fall back to the cp15 helper.

This makes accessing __thread variables in linux-user when apps are compiled
with -mtp=cp15 possible. legal cp15 register to acces from linux-user are
already checked in cp15_user_ok.

While at it, make the cp15.c13 Thread ID registers available only on
ARMv6K and newer.

Signed-off-by: Riku Voipio <riku.voipio@nokia.com>
14 years agolinux-user: remove signal handler before calling abort()
Riku Voipio [Mon, 25 Jan 2010 12:30:49 +0000 (14:30 +0200)]
linux-user: remove signal handler before calling abort()

Qemu may hang in host_signal_handler after qemu has done a
seppuku with cpu_abort(). But at this stage we are not really
interested in target process coredump anymore, so unregister
host_signal_handler to die grafefully.

Signed-off-by: Riku Voipio <riku.voipio@nokia.com>
14 years agofix locking error with current_tb
Riku Voipio [Wed, 20 Jan 2010 10:56:27 +0000 (12:56 +0200)]
fix locking error with current_tb

Signed-off-by: Riku Voipio <riku.voipio@nokia.com>
14 years agolinux-user: adapt uname machine to emulated CPU
Loïc Minier [Tue, 29 Dec 2009 21:06:13 +0000 (22:06 +0100)]
linux-user: adapt uname machine to emulated CPU

This patch for linux-user adapts the output of the emulated uname()
syscall to match the configured CPU.  Tested with x86, x86-64 and arm
emulation.

Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
Signed-off-by: Loïc Minier <lool@dooz.org>
14 years agotarget-ppc: change DCR helpers to target_long arguments
Aurelien Jarno [Sat, 6 Feb 2010 15:59:11 +0000 (16:59 +0100)]
target-ppc: change DCR helpers to target_long arguments

The recent transition to always have the DCR helper functions take 32 bit
values broke the PPC64 target, as target_long became 64 bits there.

This patch changes DCR helpers to target_long arguments, and cast the values
to 32 bit when needed.

Fixes PPC64 build with --enable-debug-tcg

Based on a patch from Alexander Graf <agraf@suse.de>
Reported-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg-x86_64: implement setcond
Richard Henderson [Wed, 20 Jan 2010 17:16:49 +0000 (09:16 -0800)]
tcg-x86_64: implement setcond

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg: add tcg_invert_cond
Richard Henderson [Thu, 7 Jan 2010 18:15:20 +0000 (10:15 -0800)]
tcg: add tcg_invert_cond

It is very handy to have a reliable mapping of a condition to its inverse.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg: generic support for conditional set
Richard Henderson [Thu, 7 Jan 2010 18:13:31 +0000 (10:13 -0800)]
tcg: generic support for conditional set

Defines setcond_{i32,i64} and setcond2_i32 for 64-on-32-bit.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agotcg: document double-word support opcodes.
Richard Henderson [Thu, 7 Jan 2010 18:07:35 +0000 (10:07 -0800)]
tcg: document double-word support opcodes.

The internal opcodes brcond2, add2, sub2, mulu2 were undocumented.
Place these in a new section that clearly indicates that they are
not to be emitted by translators.

Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agousb-linux: increase buffer for USB control requests
Christian Krause [Sun, 24 Jan 2010 16:34:52 +0000 (17:34 +0100)]
usb-linux: increase buffer for USB control requests

The WLAN USB stick ZyXEL NWD271N (0586:3417) uses very large
usb control transfers of more than 2048 bytes which won't fit
into the buffer of the ctrl_struct. This results in an error message
"husb: ctrl buffer too small" and a non-working device.
Increasing the buffer size to 8192 seems to be a safe choice.

Signed-off-by: Christian Krause <chkr@plauener.de>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agomips/malta: fix typo
Aurelien Jarno [Sat, 30 Jan 2010 20:27:54 +0000 (21:27 +0100)]
mips/malta: fix typo

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
14 years agoPCI: show also host bridge data in "info pci" output
Blue Swirl [Sat, 6 Feb 2010 14:57:04 +0000 (14:57 +0000)]
PCI: show also host bridge data in "info pci" output

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoPCI: fix multiple bridge problems
Blue Swirl [Sat, 6 Feb 2010 09:20:13 +0000 (09:20 +0000)]
PCI: fix multiple bridge problems

When several PCI bridges were in use, monitor command "info pci" would
enter into infinite loop. Buses behind the bridge were not discoverable
because secondary and subordinate bus numbers were not used properly.
Other buses were not found because bus search terminated on first miss.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoRefactor DEC 21154 PCI bridge
Blue Swirl [Fri, 5 Feb 2010 18:48:36 +0000 (18:48 +0000)]
Refactor DEC 21154 PCI bridge

It's currently not used by PPC machines. Refactor so that also Sparc64
machines can use it.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agousb-linux.c: remove write-only variable
Paolo Bonzini [Thu, 4 Feb 2010 13:31:53 +0000 (14:31 +0100)]
usb-linux.c: remove write-only variable

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agovnc.c: remove dead code
Paolo Bonzini [Thu, 4 Feb 2010 13:31:52 +0000 (14:31 +0100)]
vnc.c: remove dead code

to= is handled in qemu-sockets.c inet_listen.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoremove two dead assignments in target-i386/translate.c
Paolo Bonzini [Thu, 4 Feb 2010 13:31:49 +0000 (14:31 +0100)]
remove two dead assignments in target-i386/translate.c

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoexec.c: dead assignments
Paolo Bonzini [Thu, 4 Feb 2010 13:31:51 +0000 (14:31 +0100)]
exec.c: dead assignments

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agofix undefined shifts by >32
Paolo Bonzini [Thu, 4 Feb 2010 13:31:50 +0000 (14:31 +0100)]
fix undefined shifts by >32

This one is for 0.12 too.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agotarget-arm: refactor cp15.c13 register access
Riku Voipio [Mon, 25 Jan 2010 13:17:32 +0000 (15:17 +0200)]
target-arm: refactor cp15.c13 register access

Access the cp15.c13 TLS registers directly with TCG ops instead of with
a slow helper. If the the cp15 read/write was not TLS register access,
fall back to the cp15 helper.

This makes accessing __thread variables in linux-user when apps are compiled
with -mtp=cp15 possible. legal cp15 register to acces from linux-user are
already checked in cp15_user_ok.

While at it, make the cp15.c13 Thread ID registers available only on
ARMv6K and newer.

Signed-off-by: Riku Voipio <riku.voipio@nokia.com>
14 years agolinux-user: remove signal handler before calling abort()
Riku Voipio [Mon, 25 Jan 2010 12:30:49 +0000 (14:30 +0200)]
linux-user: remove signal handler before calling abort()

Qemu may hang in host_signal_handler after qemu has done a
seppuku with cpu_abort(). But at this stage we are not really
interested in target process coredump anymore, so unregister
host_signal_handler to die grafefully.

Signed-off-by: Riku Voipio <riku.voipio@nokia.com>
14 years agofix locking error with current_tb
Riku Voipio [Wed, 20 Jan 2010 10:56:27 +0000 (12:56 +0200)]
fix locking error with current_tb

Signed-off-by: Riku Voipio <riku.voipio@nokia.com>
14 years agolinux-user: adapt uname machine to emulated CPU
Loïc Minier [Tue, 29 Dec 2009 21:06:13 +0000 (22:06 +0100)]
linux-user: adapt uname machine to emulated CPU

This patch for linux-user adapts the output of the emulated uname()
syscall to match the configured CPU.  Tested with x86, x86-64 and arm
emulation.

Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
Signed-off-by: Loïc Minier <lool@dooz.org>
14 years agoFix incoming migration with iothread
Marcelo Tosatti [Wed, 3 Feb 2010 23:44:17 +0000 (21:44 -0200)]
Fix incoming migration with iothread

Do not allow the vcpus to execute if the vm is stopped.

Fixes -incoming with CONFIG_IOTHREAD enabled.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
14 years agoKVM: Move and rename regs_modified
Jan Kiszka [Wed, 3 Feb 2010 20:17:05 +0000 (21:17 +0100)]
KVM: Move and rename regs_modified

Touching the user space representation of KVM's VCPU state is -
naturally - a per-VCPU thing. So move the dirty flag into KVM_CPU_COMMON
and rename it at this chance to reflect its true meaning.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
14 years agoKVM: Make vmport KVM-compatible
Jan Kiszka [Wed, 3 Feb 2010 20:16:41 +0000 (21:16 +0100)]
KVM: Make vmport KVM-compatible

The vmport "device" accesses the VCPU registers, so it requires proper
cpu_synchronize_state. Add it to vmport_ioport_read, which also
synchronizes vmport_ioport_write.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
14 years agoKVM: x86: Fix up misreported CPU features
Jan Kiszka [Wed, 3 Feb 2010 20:16:37 +0000 (21:16 +0100)]
KVM: x86: Fix up misreported CPU features

From qemu-kvm: Kernels before 2.6.30 misreported some essential CPU
features via KVM_GET_SUPPORTED_CPUID. Fix them up.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
14 years agoKVM: Request setting of nmi_pending and sipi_vector
Jan Kiszka [Thu, 28 Jan 2010 08:30:51 +0000 (09:30 +0100)]
KVM: Request setting of nmi_pending and sipi_vector

The final version of VCPU events in 2.6.33 will allow to skip
nmi_pending and sipi_vector on KVM_SET_VCPU_EVENTS. For now let's write
them unconditionally, which is unproblematic for upstream due to missing
SMP support. Future version which enable SMP will write them only on
reset.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
14 years agokvm: Flush coalesced MMIO buffer periodly
Sheng Yang [Tue, 26 Jan 2010 11:21:16 +0000 (19:21 +0800)]
kvm: Flush coalesced MMIO buffer periodly

The default action of coalesced MMIO is, cache the writing in buffer, until:
1. The buffer is full.
2. Or the exit to QEmu due to other reasons.

But this would result in a very late writing in some condition.
1. The each time write to MMIO content is small.
2. The writing interval is big.
3. No need for input or accessing other devices frequently.

This issue was observed in a experimental embbed system. The test image
simply print "test" every 1 seconds. The output in QEmu meets expectation,
but the output in KVM is delayed for seconds.

Per Avi's suggestion, I hooked flushing coalesced MMIO buffer in VGA update
handler. By this way, We don't need vcpu explicit exit to QEmu to
handle this issue.

Signed-off-by: Sheng Yang <sheng@linux.intel.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
14 years agoqdev: Add rudimentary help for property value
Markus Armbruster [Fri, 29 Jan 2010 18:49:02 +0000 (19:49 +0100)]
qdev: Add rudimentary help for property value

This provides the same information as reverted commit 2ba6edf0.  Not
much, just better than nothing.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoqdev: update help on -device
Markus Armbruster [Fri, 29 Jan 2010 18:49:01 +0000 (19:49 +0100)]
qdev: update help on -device

While there, use "property" rather than "option", for consistency with
-global.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoqdev: Add help for device properties
Markus Armbruster [Fri, 29 Jan 2010 18:49:00 +0000 (19:49 +0100)]
qdev: Add help for device properties

Option "-device DRIVER,?" and monitor command "device_add DRIVER,?"
print the supported properties instead of creating a device.  The
former also terminates the program.

This is commit 2ba6edf0 (just reverted) done right.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoRevert "qdev: Add help for device properties"
Markus Armbruster [Fri, 29 Jan 2010 18:48:59 +0000 (19:48 +0100)]
Revert "qdev: Add help for device properties"

This reverts commit 2ba6edf0dd740166632df80caa85992b20791a68.

The commit has two issues:

* When it runs from the monitor, e.g. "device_add e1000,?", it prints
  to stderr instead of the monitor.

* Help looks to callers just like failed device creation.  This makes
  main() exit unsuccessfully on "-device e1000,?".

We need to do this differently.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoRevert "qdev: Add help for property value"
Markus Armbruster [Fri, 29 Jan 2010 18:48:58 +0000 (19:48 +0100)]
Revert "qdev: Add help for property value"

This reverts commit 922910ce42d15bdb7c2347436b1b5798b5401de4.

The commit has four issues:

* When it runs from the monitor, e.g. "device_add e1000,mac=?", it
  prints to stderr instead of the monitor.

* Help looks to callers just like failed device creation.  This makes
  main() exit unsuccessfully on "-device e1000,mac=?".

* It has an undocumented side effect on -global: "-global e1000.mac=?"
  prints help, but only when we actually add an e1000 device.

* It does not work for properties that accept the value "?".

We need to do this differently.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoqdev: Fix exit code for -device ?
Markus Armbruster [Fri, 29 Jan 2010 18:48:57 +0000 (19:48 +0100)]
qdev: Fix exit code for -device ?

Help was shoehorned into device creation, qdev_device_add().  Since
help doesn't create a device, it returns NULL, which looks to callers
just like failed device creation.  Monitor handler do_device_add()
doesn't care, but main() exits unsuccessfully.

Move help out of device creation, into new qdev_device_help().

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoqemu-option: Make qemu_opts_foreach() accumulate return values
Markus Armbruster [Fri, 29 Jan 2010 18:48:56 +0000 (19:48 +0100)]
qemu-option: Make qemu_opts_foreach() accumulate return values

Return the bitwise inclusive or of all return values instead of the
last call's value.  This lets you find out whether any of the calls
returned a non-zero value.

No functional change, as existing users either don't care for the
value, or pass non-zero abort_on_failure, which breaks the loop on the
first non-zero return value.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoRevert "QError: New QERR_INVALID_CPU_INDEX"
Markus Armbruster [Fri, 29 Jan 2010 09:34:01 +0000 (10:34 +0100)]
Revert "QError: New QERR_INVALID_CPU_INDEX"

This reverts commit 64a34bb14c0e358a6b2f14805e59ef25bf62d6d5.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agomonitor: Use QERR_INVALID_PARAMETER instead of QERR_INVALID_CPU_INDEX
Markus Armbruster [Fri, 29 Jan 2010 09:34:00 +0000 (10:34 +0100)]
monitor: Use QERR_INVALID_PARAMETER instead of QERR_INVALID_CPU_INDEX

This changes the error message from "Invalid CPU index" to "Invalid
parameter index" in the human monitor.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agomonitor: convert do_migrate_set_downtime() to QObject
Markus Armbruster [Mon, 25 Jan 2010 13:23:08 +0000 (14:23 +0100)]
monitor: convert do_migrate_set_downtime() to QObject

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agomonitor: Use argument type 'T' for migrate_set_downtime
Markus Armbruster [Mon, 25 Jan 2010 13:23:07 +0000 (14:23 +0100)]
monitor: Use argument type 'T' for migrate_set_downtime

Before, it used type 's', which strips quotes and interprets escapes,
and is quite inappropriate for QMP.

Negative arguments are no flushed to zero.  Before, they were cast to
uint32_t, which wrecked the sign.

Ridiculously large arguments including infinities are now rejected.
Before, they were interpreted as zero.  Same for NaN.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agomonitor: New argument type 'T'
Markus Armbruster [Mon, 25 Jan 2010 13:23:06 +0000 (14:23 +0100)]
monitor: New argument type 'T'

This is a double value with optional suffixes ms, us, ns.  We'll need
this to get migrate_set_downtime() QMP-ready.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agomonitor: convert do_migrate_set_speed() to QObject
Markus Armbruster [Mon, 25 Jan 2010 13:23:05 +0000 (14:23 +0100)]
monitor: convert do_migrate_set_speed() to QObject

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agomonitor: Use argument type 'b' for migrate_set_speed
Markus Armbruster [Mon, 25 Jan 2010 13:23:04 +0000 (14:23 +0100)]
monitor: Use argument type 'b' for migrate_set_speed

Before, it used type 's', which strips quotes and interprets escapes,
and is quite inappropriate for QMP.

Negative arguments are no flushed to zero.  Before, they were cast to
uint32_t, which wrecked the sign.

Ridiculously large arguments including infinities are now rejected.
Before, they were interpreted as zero.  Same for NaN.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agomonitor: New argument type 'b'
Markus Armbruster [Mon, 25 Jan 2010 13:23:03 +0000 (14:23 +0100)]
monitor: New argument type 'b'

This is a double value with optional suffixes G, g, M, m, K, k.  We'll
need this to get migrate_set_speed() QMP-ready.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoQDict: New qdict_get_double()
Markus Armbruster [Wed, 27 Jan 2010 16:16:38 +0000 (17:16 +0100)]
QDict: New qdict_get_double()

Helper function just like qdict_get_int(), just for QFloat/double.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agomonitor: Document argument type 'M'
Markus Armbruster [Mon, 25 Jan 2010 13:23:01 +0000 (14:23 +0100)]
monitor: Document argument type 'M'

Was forgotten in commit b6e098d7.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agoseabios: use correct submodule hash
Anthony Liguori [Mon, 1 Feb 2010 20:15:37 +0000 (14:15 -0600)]
seabios: use correct submodule hash

Commit 392ecf543dd2b219828374850d833296a55567ea introduced an accidental change
to the roms/seabios submodule.  This commit partially reverts that commit to
ensure the seabios module points to the right commit.

Reported-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
14 years agobsd/darwin-user: mmap_frag() users only check for -1 error
Blue Swirl [Sun, 31 Jan 2010 13:41:07 +0000 (13:41 +0000)]
bsd/darwin-user: mmap_frag() users only check for -1 error

See also ee636500d6eab44b83f09cb730b67226b70423b1.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agocris: Prettify register dumps.
Edgar E. Iglesias [Sun, 31 Jan 2010 10:26:54 +0000 (11:26 +0100)]
cris: Prettify register dumps.

Use friendly names for registers in the dumps.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
14 years agosparc32 don't mark page dirty when failing
Artyom Tarasenko [Sun, 31 Jan 2010 02:27:36 +0000 (03:27 +0100)]
sparc32 don't mark page dirty when failing

if the access check fails, the page can not be modified
and shouldn't be marked dirty.
The patch fixes the "hsfs_putpage: dirty HSFS page"
error in Solaris guests.

Signed-off-by: Artyom Tarasenko <atar4qemu@gmail.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agosparc64: implement basic IOMMU/interrupt handling
Blue Swirl [Sat, 30 Jan 2010 19:48:12 +0000 (19:48 +0000)]
sparc64: implement basic IOMMU/interrupt handling

Also add reset control.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agoSparc64: byte swap IO port access
Blue Swirl [Fri, 29 Jan 2010 18:15:21 +0000 (18:15 +0000)]
Sparc64: byte swap IO port access

This requires an updated OpenBIOS image.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
14 years agovirtio-blk: Fix error cases which ignored rerror/werror
Kevin Wolf [Wed, 27 Jan 2010 12:12:36 +0000 (13:12 +0100)]
virtio-blk: Fix error cases which ignored rerror/werror

If an I/O request fails right away instead of getting an error only in the
callback, we still need to consider rerror/werror.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>