[Spice-commits] Changes to 'spice.v32.kvm'
Alon Levy
alon at kemper.freedesktop.org
Sun Mar 27 07:22:47 PDT 2011
New branch 'spice.v32.kvm' available with the following commits:
commit b66ebd3b56cf99e95c6052e44e998d9749b54b01
Author: Alon Levy <alevy at redhat.com>
Date: Sun Mar 27 16:19:54 2011 +0200
(tmp) gcc 4.6.0 build fixes
commit d43acde8e85e6a52c23b86a1cd403d8c9807745d
Author: Hans de Goede <hdegoede at redhat.com>
Date: Tue Mar 22 14:46:33 2011 +0100
spice-chardev: listen to frontend guest open / close
Note the vmc_register_interface() in spice_chr_write is left in place
in case someone uses spice-chardev with a frontend which does not have
guest open / close notification.
Signed-off-by: Hans de Goede <hdegoede at redhat.com>
commit 514bd46301bacdc304f9eb777380101cd5dcf1b2
Author: Hans de Goede <hdegoede at redhat.com>
Date: Tue Mar 22 14:46:32 2011 +0100
virtio-console: notify backend of guest open / close
Signed-off-by: Hans de Goede <hdegoede at redhat.com>
commit eb37cebce8c330f6f3c103f29aed62972ffdd2a8
Author: Hans de Goede <hdegoede at redhat.com>
Date: Tue Mar 22 14:46:31 2011 +0100
chardev: Allow frontends to notify backends of guest open / close
Some frontends know when the guest has opened the "channel" and is actively
listening to it, for example virtio-serial. This patch adds 2 new qemu-chardev
functions which can be used by frontends to signal guest open / close, and
allows interested backends to listen to this.
Signed-off-by: Hans de Goede <hdegoede at redhat.com>
commit 310858e9cd2ad7eb5631675ca3b1db0b604c0e53
Author: Hans de Goede <hdegoede at redhat.com>
Date: Wed Mar 23 10:40:40 2011 +0100
spice-qemu-char: Fix flow control in client -> guest direction
In the old spice-vmc device we used to have:
last_out = virtio_serial_write(&svc->port, p, MIN(len, VMC_MAX_HOST_WRITE));
if (last_out > 0)
...
Now in the chardev backend we have:
last_out = MIN(len, VMC_MAX_HOST_WRITE);
qemu_chr_read(scd->chr, p, last_out);
if (last_out > 0) {
...
Which causes us to no longer detect if the virtio port is not ready
to receive data from us. chardev actually has a mechanism to detect this,
but it requires a separate call to qemu_chr_can_read, before calling
qemu_chr_read (which return void).
This patch uses qemu_chr_can_read to fix the flow control from client to
guest.
Signed-off-by: Hans de Goede <hdegoede at redhat.com>
commit f2ae49d53140cb75277c7d654bdb0c768a413b4c
Author: Alon Levy <alevy at redhat.com>
Date: Tue Mar 22 12:28:00 2011 +0200
spice-qemu-char.c: remove intermediate buffer
RHBZ: 672191
upstream: not submitted (explained below)
virtio-serial's buffer is valid when it calls us, and we don't
access it otherwise: vmc_read is only called in response to wakeup,
or else we set datalen=0 and throttle. Then vmc_read is called back,
we return 0 (not accessing the buffer) and set the timer to unthrottle.
Also make datalen int and not ssize_t (to fit spice_chr_write signature).
This relied on the previous patch that introduces throttling, which
can't go upstream right now as explained in that patch.
commit 5c40c2793e784a13a5c8a220e4e35a6382361780
Author: Alon Levy <alevy at redhat.com>
Date: Tue Mar 22 12:27:59 2011 +0200
spice-qemu-char.c: add throttling
RHBZ: 672191
upstream: not submitted (explained below)
Adds throttling support to spicevmc chardev. Uses a timer to avoid recursing:
1. spice-server: reds.c: read_from_vdi_port
2. qemu: spice-qemu-char.c: vmc_read
3. chr_write_unblocked
(calls virtio_serial_throttle_port(port, false))
4. qemu: virtio ...
5. qemu: spice-qemu-char.c: spice_chr_write
6. qemu: spice-qemu-char.c: wakeup (calls into spice-server)
7. spice-server: ...
8. qemu: spice-qemu-char.c: vmc_read
Instead, in vmc_read if we were throttled and we are just about to return
all the bytes we will set a timer to be triggered immediately to call
chr_write_unblocked. Then we return after 2 above, and 3 is called from the
timer callback. This also means we can later remove some ugly recursion protection
from spice-server.
The other tricky point in this patch is not returning the leftover chunk twice.
When we throttle, by definition we have data that spice server didn't consume.
It is being kept by virtio-serial, and by us. The next vmc_read callback needs
to not return it, but just do unthrottling. Then virtio will give us the remaining
chunk as usual in spice_chr_write, and we will pass it to spice server in the
next vmc_read.
This patch relies on Amit's series to expose throttling to chardev's, which
was not accepted upstream, and will not be accepted upstream until the mainloop
is reworked to use glib.
commit e331a9873a4bc268dfc97134818c9a428ef1e37a
Author: Alon Levy <alevy at redhat.com>
Date: Sat Mar 19 00:53:47 2011 +0200
qemu-char: fix Werror=return-type
commit fb4d9fa0378b0315134e32fc445aca0bdc145ec9
Author: Amit Shah <amit.shah at redhat.com>
Date: Fri Feb 4 08:20:50 2011 -0200
virtio-console: Enable port throttling when chardev is slow to consume data
When a chardev indicates it can't accept more data, we tell the
virtio-serial code to stop sending us any more data till we tell
otherwise. This helps in guests continuing to run normally while the vq
keeps getting full and eventually the guest stops queueing more data.
As soon as the chardev indicates it can accept more data, start pushing!
Signed-off-by: Amit Shah <amit.shah at redhat.com>
commit c29a0607483a21a4f8c41f4083c7641969eadfe8
Author: Amit Shah <amit.shah at redhat.com>
Date: Fri Feb 4 08:20:49 2011 -0200
char: Throttle when host connection is down
When the host-side connection goes down, throttle the virtio-serial bus
and later unthrottle when a connection gets established. This helps
prevent any lost IO (guest->host) while the host connection was down.
Signed-off-by: Amit Shah <amit.shah at redhat.com>
commit be5f3b3e39492a62feafa3f0f953420b075b78d2
Author: Amit Shah <amit.shah at redhat.com>
Date: Fri Feb 4 08:20:48 2011 -0200
char: Equip the unix/tcp backend to handle nonblocking writes
Now that the infrastructure is in place to return -EAGAIN to callers,
individual char drivers can set their update_fd_handlers() function to
set or remove an fd's write handler. This handler checks if the driver
became writable.
A generic callback routine is used for unblocking writes and letting
users of chardevs know that a driver became writable again.
Signed-off-by: Amit Shah <amit.shah at redhat.com>
commit 49ee5aa6cdfb887e128f216abb507b7313c19db1
Author: Amit Shah <amit.shah at redhat.com>
Date: Fri Feb 4 08:20:47 2011 -0200
char: Update send_all() to handle nonblocking chardev write requests
The send_all function is modified to return to the caller in case the
driver cannot handle any more data. It returns -EAGAIN or
WSAEWOULDBLOCK on non-Windows and Windows platforms respectively. This
is only done when the caller sets a callback function handler indicating
it's not interested in blocking till the driver has written out all the
data.
Currently there's no driver or caller that supports this. Future
commits will add such capability.
Signed-off-by: Amit Shah <amit.shah at redhat.com>
commit 7c7e8117a6506e5e3ca4f734c985fe40f616dcfa
Author: Amit Shah <amit.shah at redhat.com>
Date: Fri Feb 4 08:20:46 2011 -0200
char: Add framework for a 'write unblocked' callback
The char layer can let users know that the driver will block on further
input. For users interested in not blocking, they can assign a function
pointer that will be called back when the driver becomes writable. This
patch just adds the function pointers to the CharDriverState structure,
future patches will enable the nonblocking and callback functionality.
Signed-off-by: Amit Shah <amit.shah at redhat.com>
commit d8ce9852ec70775640bafe622c31a6de4e8ff998
Author: Amit Shah <amit.shah at redhat.com>
Date: Fri Feb 4 08:20:45 2011 -0200
iohandlers: Add enable/disable_write_fd_handler() functions
These will be used to provide a cleaner API for the nonblocking case.
Signed-off-by: Amit Shah <amit.shah at redhat.com>
commit a0edc21648af8c990dba20bb39094fa1e42019f6
Author: Amit Shah <amit.shah at redhat.com>
Date: Fri Feb 4 08:20:36 2011 -0200
char: Add a QemuChrHandlers struct to initialise chardev handlers
Instead of passing each handler in the qemu_add_handlers() function,
create a struct of handlers that can be passed to the function instead.
Signed-off-by: Amit Shah <amit.shah at redhat.com>
commit 8c3dd1a12ecad98ceac82a5199764469b1afb9ef
Author: Amit Shah <amit.shah at redhat.com>
Date: Fri Feb 4 08:20:34 2011 -0200
virtio-serial: Use a struct to pass config information from proxy
Instead of using a single variable to pass to the virtio_serial_init
function, use a struct so that expanding the number of variables to be
passed on later is easier.
Signed-off-by: Amit Shah <amit.shah at redhat.com>
commit d6b4a948a949de1c75fe41b74841523a86ec8107
Author: Amit Shah <amit.shah at redhat.com>
Date: Thu Jan 27 12:32:11 2011 -0200
char: Split out tcp socket close code in a separate function
Signed-off-by: Amit Shah <amit.shah at redhat.com>
commit 4837ab1508254370db2ae06c8f5060bdf99cc2b1
Author: Alon Levy <alevy at redhat.com>
Date: Wed Mar 16 16:02:16 2011 +0100
hw/qxl-render: drop cursor locks, replace with pipe
RHBZ: 681220
upstream: http://patchwork.ozlabs.org/patch/87276/
Switching locking protection of ds->cursor_set/cursor_move to moving
every call to these functions into the iothread and using the ssd->pipe
to transfer that, adding QXL_SERVER_CURSOR_SET, QXL_SERVER_CURSOR_MOVE.
This is tested with both -vnc :0 -spice and -sdl -spice.
commit 52ef1e22b075dbb19fd6501753a615c63b0780ff
Author: Alon Levy <alevy at redhat.com>
Date: Wed Mar 16 15:46:22 2011 +0100
qxl/spice: remove qemu_mutex_{un,}lock_iothread around dispatcher
RHBZ: 681220
upstream: http://patchwork.ozlabs.org/patch/87275/
with the previous patch making sure get_command no longer needs to lock,
there is no reason to drop the qemu iothread mutex in qxl.c and in
ui/spice-display.c
The only location where the lock remains are the cursor related callbacks,
that path is currently broken. It is only triggered if running spice and sdl,
which is broken already before that.
commit 9d11836870ea270e6f06e5f6fed2d19f95f99317
Author: Uri Lublin <uril at redhat.com>
Date: Wed Mar 16 15:43:45 2011 +0100
qxl: implement get_command in vga mode without locks
RHBZ: 681220
upstream: http://patchwork.ozlabs.org/patch/87274/
This patch and the next drop the requirement to lose the global qemu
mutex during dispatcher calls. This patch enables it, the next drops
the unlock/lock pairs around dispatcher calls.
The current solution of dropping the locks is buggy:
* it allows multiple dispatcher calls from two vcpu threads, the
dispatcher doesn't handle that by design (single fd, not locked, can't
handle writes from two threads)
* it requires us to keep track of cpu_single_env, which is magic.
The solution implemented in this patch and the next (the next just
drops the locks, this patch allows that to work):
* the only operation that needed locking was qemu_create_simple_update,
* it required locking because it was called from the spice-server thread.
* do it in the iothread by reusing the existing pipe used for set_irq.
The current flow implemented is now:
spice-server thread:
qxl.c:interface_get_command (called either by polling or from wakeup)
if update!=NULL:
waiting_for_update=0
update=NULL
return update
else:
if not waiting_for_update:
waiting_for_update=1
write to pipe, which is read by iothread (main thread)
iothread:
wakeup from select,
qxl.c:pipe_read
update=qemu_create_simple_update()
wakeup spice-server thread by calling d.worker->wakeup(d.worker)
commit c6fd5c49cbd6100105eb10e97237c66ac9a6f78e
Author: Alon Levy <alevy at redhat.com>
Date: Wed Mar 16 15:21:03 2011 +0100
qxl/spice-display: move pipe to ssd
RHBZ: 681220
upstream: http://patchwork.ozlabs.org/patch/87270/
This moves the int pipe[2] and pthread_t main data from the
PCIQXLDevice struct to the SimpleSpiceDisplay. This will let us
reuse it in the next patch for both -spice with no -qxl usage and
for vga mode from qxl.
Also move the pipe creation function (which is effectively completely rewritten
by this patch anyways) from hw/qxl.c to ui/spice-display.c, since
spice-display will depend on it after the next patch and qemu can be build
with ui/spice-display.c in combination with no hw/qxl.c.
commit 2c9bb5d4e5ae3b12ad71bd6a0c1b32003661f53a
Author: Avi Kivity <avi at redhat.com>
Date: Tue Mar 22 11:20:28 2011 +0200
vmstate: fix varrays with uint8_t indexes some more
We load the varray_uint8 array size correctly, but we don't save it at all.
This breaks HPET load/save, the only user of varray_uint8.
Signed-off-by: Avi Kivity <avi at redhat.com>
commit b73357ecd2b14c057134cb71d29447b5b988c516
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Wed Mar 16 17:04:16 2011 -0300
fix pcspk.c compilation error without CONFIG_KVM
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 8698396d39f0219636e164adf0ba812a5c25e96a
Merge: ac166344df588a0fa455eb18ff4d083f709a8685 f3fa0e2b01aa07f4344de8100577208e6950c330
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Mon Mar 14 23:53:22 2011 -0300
Merge branch 'upstream-merge'
* upstream-merge: (210 commits)
add Win32 IPI service
provide dummy signal init functions for win32
protect qemu_cpu_kick_self for Win32
merge all signal initialization with qemu_signalfd_init, rename
iothread stops the vcpu thread via IPI
do not use timedwait on qemu_cpu_cond
do not use timedwait on qemu_pause_cond
do not use timedwait on qemu_system_cond
do not use timedwait on qemu_halt_cond
add win32 qemu-thread implementation
always signal pause_cond after stopping a VCPU
Refactor thread retrieval and check
exit round-robin vcpu loop if cpu->stopped is true
always qemu_cpu_kick after unhalting a cpu
inline cpu_halted into sole caller
remove CONFIG_THREAD
add assertions on the owner of a QemuMutex
include qemu-thread.h early
use win32 timer queues
implement win32 dynticks timer
...
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit f3fa0e2b01aa07f4344de8100577208e6950c330
Merge: 109ecca3139ea52f125237677399424eb102311b cc015e9a5dde2f03f123357fa060acbdfcd570a4
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Mon Mar 14 23:48:25 2011 -0300
Merge commit 'cc015e9a5dde2f03f123357fa060acbdfcd570a4' into upstream-merge
* commit 'cc015e9a5dde2f03f123357fa060acbdfcd570a4':
add Win32 IPI service
protect qemu_cpu_kick_self for Win32
commit 109ecca3139ea52f125237677399424eb102311b
Merge: 0d2956697b7e7ee457cae5789f91afe58b190bf9 714bd040906637441fc10a33d1f6553cfef4938a
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Mon Mar 14 23:44:28 2011 -0300
Merge commit '714bd040906637441fc10a33d1f6553cfef4938a' into upstream-merge
* commit '714bd040906637441fc10a33d1f6553cfef4938a':
provide dummy signal init functions for win32
merge all signal initialization with qemu_signalfd_init, rename
iothread stops the vcpu thread via IPI
do not use timedwait on qemu_cpu_cond
do not use timedwait on qemu_pause_cond
do not use timedwait on qemu_system_cond
do not use timedwait on qemu_halt_cond
always signal pause_cond after stopping a VCPU
exit round-robin vcpu loop if cpu->stopped is true
always qemu_cpu_kick after unhalting a cpu
inline cpu_halted into sole caller
remove CONFIG_THREAD
add assertions on the owner of a QemuMutex
include qemu-thread.h early
Conflicts:
cpus.c
commit 0d2956697b7e7ee457cae5789f91afe58b190bf9
Merge: 0205c5c763526edb39ded427d6ac84a1926d3adf 9257d46d55f1fe4e8209be9a6870e339ac3266fe
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Mon Mar 14 23:25:28 2011 -0300
Merge commit '9257d46d55f1fe4e8209be9a6870e339ac3266fe' into upstream-merge
* commit '9257d46d55f1fe4e8209be9a6870e339ac3266fe': (132 commits)
add win32 qemu-thread implementation
Refactor thread retrieval and check
use win32 timer queues
implement win32 dynticks timer
unlock iothread during WaitForMultipleObjects
hw/fmopl: Fix buffer access out-of-bounds errors
moving eeprom initialization
pc: fix wrong CMOS values for floppy drives
microblaze: Add PVR for writeback cache, endians
microblaze: Fix PetaLogix company name
vmstate: move timers to use test instead of version
vmstate: be able to store/save a pci device from a pointer
vmstate: Add a way to send a partial array
vmstate: add VMSTATE_STRUCT_VARRAY_UINT32
vmstate: add VMSTATE_INT64_ARRAY
vmstate: add VMSTATE_STRUCT_VARRAY_INT32
vmstate: add UINT32 VARRAYS
vmstate: Fix varrays with uint8 indexes
vmstate: add VMSTATE_UINT32_EQUAL
vnc: Fix stack corruption and other bitmap related bugs
...
Conflicts:
Makefile.objs
commit 0205c5c763526edb39ded427d6ac84a1926d3adf
Merge: b64c26748ab3ad3306180edf91b5008101d34ae5 c9f7383c6e5423c1b5111d73346a8314b563f019
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Mon Mar 14 23:02:40 2011 -0300
Merge commit 'c9f7383c6e5423c1b5111d73346a8314b563f019' into upstream-merge
* commit 'c9f7383c6e5423c1b5111d73346a8314b563f019': (37 commits)
do not use qemu_icount_delta in the !use_icount case
hw/irq.h: Remove unused SetIRQFunc typedef
Revert "prep: Disable second IDE channel, as long as ISA IDE emulation doesn't support same irq for both channels"
isa-bus: Remove bogus IRQ sharing check
PS/2 keyboard Scancode Set 3 support
target-arm: Fix shift by immediate and narrow where src, dest overlap
target-arm: Refactor to pull narrowing decode into separate function
w32: Remove implementation of function ffs
w32: Use additional library libiberty.a
Fix obvious mistake in pxa2xx i2s driver
pxa2xx_keypad: Handle 0xe0xx keycodes
pxa2xx_keypad: enhance emulation of KPAS, KPASMKP regs
qdev: Fix printout of bit device properties with bit index >= 8
check-qdict: Fix possible crash
tests: Fix two memory leaks
qemu-char: Check for missing backend name
s390: Fix memory leak
ppc405: Fix memory leak
pci: Fix memory leak
vhost: disable on tap link down
...
Conflicts:
qemu-timer.c
commit b64c26748ab3ad3306180edf91b5008101d34ae5
Merge: 0836b77f0f65d56d08bdeffbac25cd6d78267dc9 02615337ef295443daa03233e492194e289a807e
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Mon Mar 14 22:52:28 2011 -0300
Merge commit '02615337ef295443daa03233e492194e289a807e' into upstream-merge
* commit '02615337ef295443daa03233e492194e289a807e':
qemu-lock.h: Remove non-pthreads spinlock implementations
e1000: verify we have buffers, upfront
e1000: clear EOP for multi-buffer descriptors
e1000: multi-buffer packet support
pc: remove test on TARGET_PHYS_ADDR_BITS == 32
target-i386: set target_phys_bits to 64
linux-user: correct core dump format
linux-user: Define target alignment size
linux-user: Support the epoll syscalls
linux-user: in linux-user/strace.c, tswap() is useless
linux-user: add rmdir() strace
Conflicts:
qemu-lock.h
commit 0836b77f0f65d56d08bdeffbac25cd6d78267dc9
Merge: ac166344df588a0fa455eb18ff4d083f709a8685 64d7e9a421fea0ac50b44541f5521de455e7cd5d
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Mon Mar 14 22:36:27 2011 -0300
Merge commit '64d7e9a421fea0ac50b44541f5521de455e7cd5d' into upstream-merge
* commit '64d7e9a421fea0ac50b44541f5521de455e7cd5d':
i8254: convert to qdev
vga-isa: make optional
vga-isa: convert to qdev
applesmc: make optional
fdc: make optional
fdc: refactor device creation
fdc: use FDriveType for floppy drive type
fdc: move floppy geometry guessing to block.c
serial: make optional
serial: refactor device creation
ne2000_isa: make optional
ne2000_isa: refactor device creation
parallel: make optional
parallel: refactor device creation
Conflicts:
hw/i8254.c
hw/pc.c
commit cc015e9a5dde2f03f123357fa060acbdfcd570a4
Author: Paolo Bonzini <pbonzini at redhat.com>
Date: Sat Mar 12 17:44:08 2011 +0100
add Win32 IPI service
Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 714bd040906637441fc10a33d1f6553cfef4938a
Author: Paolo Bonzini <pbonzini at redhat.com>
Date: Sat Mar 12 17:44:06 2011 +0100
provide dummy signal init functions for win32
Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit b55c22c65b630137a2374ce9f2cfbf71322b7b71
Author: Paolo Bonzini <pbonzini at redhat.com>
Date: Sat Mar 12 17:44:07 2011 +0100
protect qemu_cpu_kick_self for Win32
Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 712ae48084837ae46f71929099e9587cac68fb9e
Author: Paolo Bonzini <pbonzini at redhat.com>
Date: Sat Mar 12 17:44:05 2011 +0100
merge all signal initialization with qemu_signalfd_init, rename
Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 8cf3f22b77df4aa2a21bd93937b800f08b90e69c
Author: Paolo Bonzini <pbonzini at redhat.com>
Date: Sat Mar 12 17:44:04 2011 +0100
iothread stops the vcpu thread via IPI
Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 18a857280d7a945c9fd4034dc2722fd8c2dfb946
Author: Paolo Bonzini <pbonzini at redhat.com>
Date: Sat Mar 12 17:44:03 2011 +0100
do not use timedwait on qemu_cpu_cond
Whenever env->created becomes true, qemu_cpu_cond is signaled by
{kvm,tcg}_cpu_thread_fn.
Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit be7d6c57c4598ca9fcb3f6fbe57c13110ebd6c70
Author: Paolo Bonzini <pbonzini at redhat.com>
Date: Sat Mar 12 17:44:02 2011 +0100
do not use timedwait on qemu_pause_cond
all_vcpus_paused can start returning true after penv->stopped changes
from 0 to 1. When this is done, qemu_pause_cond is always signaled.
Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit e009894f088507e245ae6c62aa0761b2afdf1c6b
Author: Paolo Bonzini <pbonzini at redhat.com>
Date: Sat Mar 12 17:44:01 2011 +0100
do not use timedwait on qemu_system_cond
qemu_main_loop_start is the only place where qemu_system_ready is set
to 1.
Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 9705fbb5636fbe36956e6886227e9e871689cf83
Author: Paolo Bonzini <pbonzini at redhat.com>
Date: Sat Mar 12 17:44:00 2011 +0100
do not use timedwait on qemu_halt_cond
The following conditions can cause cpu_has_work(env) to become true:
- env->queued_work_first: run_on_cpu is already kicking the VCPU
- env->stop = 1: pause_all_vcpus is already kicking the VCPU
- env->stopped = 0: resume_all_vcpus is already kicking the VCPU
- vm_running = 1: vm_start is calling resume_all_vcpus
- env->halted = 0: see previous patch
- qemu_cpu_has_work(env): when it becomes true, board code should set
env->halted = 0 too.
Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 9257d46d55f1fe4e8209be9a6870e339ac3266fe
Author: Paolo Bonzini <pbonzini at redhat.com>
Date: Sat Mar 12 17:43:52 2011 +0100
add win32 qemu-thread implementation
For now, qemu_cond_timedwait and qemu_mutex_timedlock are left as
POSIX-only functions. They can be removed later, once the patches
that remove their uses are in.
Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 67bb172f9d995880a9c752e9f33819f4a63a3fda
Author: Paolo Bonzini <pbonzini at redhat.com>
Date: Sat Mar 12 17:43:59 2011 +0100
always signal pause_cond after stopping a VCPU
Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit b7680cb6078bd7294a3dd86473d3f2fdee991dd0
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Sat Mar 12 17:43:51 2011 +0100
Refactor thread retrieval and check
We have qemu_cpu_self and qemu_thread_self. The latter is retrieving the
current thread, the former is checking for equality (using CPUState). We
also have qemu_thread_equal which is only used like qemu_cpu_self.
This refactors the interfaces, creating qemu_cpu_is_self and
qemu_thread_is_self as well ass qemu_thread_get_self.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit df646dfd56332a5313feac75d6d168e4c78cf404
Author: Paolo Bonzini <pbonzini at redhat.com>
Date: Sat Mar 12 17:43:58 2011 +0100
exit round-robin vcpu loop if cpu->stopped is true
Sometimes vcpus are stopped directly without going through ->stop = 1.
Exit the VCPU execution loop in this case as well.
Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 94ad5b00a31113ed36b9d03a8db16de5535e90c4
Author: Paolo Bonzini <pbonzini at redhat.com>
Date: Sat Mar 12 17:43:57 2011 +0100
always qemu_cpu_kick after unhalting a cpu
This ensures env->halt_cond is broadcast, and the loop in
qemu_tcg_wait_io_event and qemu_kvm_wait_io_event is exited
naturally rather than through a timeout.
Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit eda48c344f35e5bd511dea3e8be56fb08c19b399
Author: Paolo Bonzini <pbonzini at redhat.com>
Date: Sat Mar 12 17:43:56 2011 +0100
inline cpu_halted into sole caller
All implementations are now the same, and there is only one caller,
so inline the function there.
Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 38a42e7c527f3d1fb745211b1fbb7b9af76f790f
Author: Paolo Bonzini <pbonzini at redhat.com>
Date: Sat Mar 12 17:43:55 2011 +0100
remove CONFIG_THREAD
Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 89b48b56812a1a2d5b7edc927a7853d952e7fb38
Author: Paolo Bonzini <pbonzini at redhat.com>
Date: Sat Mar 12 17:43:54 2011 +0100
add assertions on the owner of a QemuMutex
These are already present in the Win32 implementation, add them to
the pthread wrappers as well. Use PTHREAD_MUTEX_ERRORCHECK for mutex
operations. Later we'll add tracking of the owner for cond_signal/broadcast.
Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 96284e8973fe8d8556ef5d4aefa0807b9f22907c
Author: Paolo Bonzini <pbonzini at redhat.com>
Date: Sat Mar 12 17:43:53 2011 +0100
include qemu-thread.h early
Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 68c23e5520e8286d79d96ab47c0ea722ceb75041
Author: Paolo Bonzini <pbonzini at redhat.com>
Date: Sat Mar 12 17:43:50 2011 +0100
use win32 timer queues
Multimedia timers are only useful for compatibility with Windows NT 4.0
and earlier. Plus, the implementation in Wine is extremely heavyweight.
Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit cfced5b2e620d7cc44844a550db5488ee348dffc
Author: Paolo Bonzini <pbonzini at redhat.com>
Date: Sat Mar 12 17:43:49 2011 +0100
implement win32 dynticks timer
Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 9931b2f4c722655d33f886181374498a39c3f489
Author: Paolo Bonzini <pbonzini at redhat.com>
Date: Sat Mar 12 17:43:48 2011 +0100
unlock iothread during WaitForMultipleObjects
Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 913895ab96507db2bc448d3ae72a409407172d2e
Author: Stefan Weil <weil at mail.berlios.de>
Date: Sat Mar 12 17:43:56 2011 +0100
hw/fmopl: Fix buffer access out-of-bounds errors
Index 75 is one too large for AR_TABLE[75], DR_TABLE[75].
This error was reported by cppcheck.
hw/fmopl.c:600: error: Buffer access out-of-bounds: OPL.AR_TABLE
hw/fmopl.c:601: error: Buffer access out-of-bounds: OPL.DR_TABLE
Fix this by limiting the access to the allowed range.
MultiArcadeMachineEmulator has newer versions of fmopl,
but using these requires more efforts.
Cc: Blue Swirl <blauwirbel at gmail.com>
Reviewed-by: malc <av1474 at comtv.ru>
Signed-off-by: Stefan Weil <weil at mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 7165448a913bd8f757f588e8f1581c170d8b1775
Author: William Dauchy <wdauchy at gmail.com>
Date: Sun Mar 6 22:27:18 2011 +0100
moving eeprom initialization
The initialization should not be only on reset but also when initializing
the device.
It resolves a bug when hot plugging a pci network device: the mac address
was always null.
Signed-off-by: William Dauchy <wdauchy at gmail.com>
Signed-off-by: Wen Congyang <wency at cn.fujitsu.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit e14c8062f4c4c336c6e5fa5b51472ffff5f3fe38
Author: Blue Swirl <blauwirbel at gmail.com>
Date: Sat Mar 12 09:52:25 2011 +0000
pc: fix wrong CMOS values for floppy drives
Before commit 63ffb564dca94f8bda01ed6d209784104630a4d2, states for
floppy drives were calculated in fdc.c:fd_revalidate(). There it is
also considered whether a disk is inserted or not. The commit didn't copy
the logic completely to pc.c, which caused a regression.
Fix by adding the same check also to pc.c.
Reported-by: Stefan Hajnoczi <stefanha at linux.vnet.ibm.com>
Tested-by: Stefan Hajnoczi <stefanha at linux.vnet.ibm.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit c4374bb7533c2c8f999526148113012dc1f436ae
Author: Michal Simek <monstr at monstr.eu>
Date: Fri Mar 4 14:39:31 2011 +0100
microblaze: Add PVR for writeback cache, endians
Specify PVR for writeback cache, endians and others.
Signed-off-by: Michal Simek <monstr at monstr.eu>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias at petalogix.com>
commit 73ad9e62a3d78c909505c04113aed3dac60f5b2d
Author: Michal Simek <monstr at monstr.eu>
Date: Fri Mar 4 12:31:14 2011 +0100
microblaze: Fix PetaLogix company name
trivial fix.
Signed-off-by: Michal Simek <monstr at monstr.eu>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias at petalogix.com>
commit 98fa4a593220c273f989de9b5af1ad2f132e14d5
Merge: f6317a6ef16841d9d4a90e3aa664f715e26f978c ddca9fb2b5ecc7ccaa81fbc73d2b723922c181f1
Author: Anthony Liguori <aliguori at us.ibm.com>
Date: Fri Mar 11 08:03:55 2011 -0600
Merge remote branch 'stefanha/tracing' into staging
commit f6317a6ef16841d9d4a90e3aa664f715e26f978c
Author: Juan Quintela <quintela at redhat.com>
Date: Thu Mar 10 12:33:56 2011 +0100
vmstate: move timers to use test instead of version
Signed-off-by: Juan Quintela <quintela at redhat.com>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit 639f49b60cc399d753409734b011359fb71d8f7d
Author: Juan Quintela <quintela at redhat.com>
Date: Thu Mar 10 12:33:55 2011 +0100
vmstate: be able to store/save a pci device from a pointer
Signed-off-by: Juan Quintela <quintela at redhat.com>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit 6059631c042202b249d3e399741ba77afa2b555f
Author: Juan Quintela <quintela at redhat.com>
Date: Thu Mar 10 12:33:54 2011 +0100
vmstate: Add a way to send a partial array
Signed-off-by: Juan Quintela <quintela at redhat.com>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit 1283da72731c3704745e8dc7d6cc45f60e58556d
Author: Juan Quintela <quintela at redhat.com>
Date: Thu Mar 10 12:33:53 2011 +0100
vmstate: add VMSTATE_STRUCT_VARRAY_UINT32
Signed-off-by: Juan Quintela <quintela at redhat.com>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit 15c6a56e9555dbe588a106d7891bed8ddc5b0650
Author: Juan Quintela <quintela at redhat.com>
Date: Thu Mar 10 12:33:52 2011 +0100
vmstate: add VMSTATE_INT64_ARRAY
Signed-off-by: Juan Quintela <quintela at redhat.com>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit 2a57b6c893615a587446d4c5b403fa94e8b03305
Author: Juan Quintela <quintela at redhat.com>
Date: Thu Mar 10 12:33:51 2011 +0100
vmstate: add VMSTATE_STRUCT_VARRAY_INT32
Signed-off-by: Juan Quintela <quintela at redhat.com>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit a624b086637d5d98507ece1c41f223710af00d1f
Author: Juan Quintela <quintela at redhat.com>
Date: Thu Mar 10 12:33:50 2011 +0100
vmstate: add UINT32 VARRAYS
Signed-off-by: Juan Quintela <quintela at redhat.com>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit 82fa39b75181b730d6d4d09f443bd26bcfcd045c
Author: Juan Quintela <quintela at redhat.com>
Date: Thu Mar 10 12:33:49 2011 +0100
vmstate: Fix varrays with uint8 indexes
Signed-off-by: Juan Quintela <quintela at redhat.com>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit 9122a8fed743dbe034db53bcde4b4c313f672f2f
Author: Juan Quintela <quintela at redhat.com>
Date: Thu Mar 10 12:33:48 2011 +0100
vmstate: add VMSTATE_UINT32_EQUAL
Signed-off-by: Juan Quintela <quintela at redhat.com>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit 23bfe28fffd6fff12a39c1ff7274b0dfdecbfa38
Author: Stefan Weil <weil at mail.berlios.de>
Date: Thu Mar 3 21:37:55 2011 +0100
vnc: Fix stack corruption and other bitmap related bugs
Commit bc2429b9174ac2d3c56b7fd35884b0d89ec7fb02 introduced
a severe bug (stack corruption).
bitmap_clear was called with a wrong argument
which caused out-of-bound writes to the local variable width_mask.
This bug was detected with QEMU running on windows.
It also occurs with wine:
*** stack smashing detected ***: terminated
wine: Unhandled illegal instruction at address 0x6115c7 (thread 0009), starting debugger...
The bug is not windows specific!
Instead of fixing the wrong parameter value, bitmap_clear(), bitmap_set
and width_mask were removed, and bitmap_intersect() was replaced by
!bitmap_empty(). The new operation is much shorter and equivalent to
the old operations.
The declarations of the dirty bitmaps in vnc.h were also wrong for 64 bit
hosts because of a rounding effect: for these hosts, VNC_MAX_WIDTH is no
longer a multiple of (16 * BITS_PER_LONG), so the rounded value of
VNC_DIRTY_WORDS was too small.
Fix both declarations by using the macro which is designed for this
purpose.
Cc: Corentin Chary <corentincj at iksaif.net>
Cc: Wen Congyang <wency at cn.fujitsu.com>
Cc: Gerhard Wiesinger <lists at wiesinger.com>
Cc: Anthony Liguori <aliguori at us.ibm.com>
Signed-off-by: Stefan Weil <weil at mail.berlios.de>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit 2ea720dba50a4e95a641dd69b0a9864b315868c2
Author: Jes Sorensen <Jes.Sorensen at redhat.com>
Date: Wed Mar 9 16:54:34 2011 +0100
hmp-commands.hx: fix badly merged client_migrate_info command
client_migrate_info was merged badly, placing it between the command
and the documentation for another command. In addition it did not
respect the general rule of hmp-commands.hx, of having command
definition before the documentation.
Signed-off-by: Jes Sorensen <Jes.Sorensen at redhat.com>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit 7d82af38b78305155553013c6fd709dc50404199
Author: Vincent Palatin <vpalatin at chromium.org>
Date: Thu Mar 10 15:47:46 2011 -0500
Fix performance regression in qemu_get_ram_ptr
When the commit f471a17e9d869df3c6573f7ec02c4725676d6f3a converted the
ram_blocks structure to QLIST, it also removed the conditional check before
switching the current block at the beginning of the list.
In the common use case where ram_blocks has a few blocks with only one
frequently accessed (the main RAM), this has a performance impact as it
performs the useless list operations on each call (which are on a really
hot path).
On my machine emulation (ARM on amd64), this patch reduces the
percentage of CPU time spent in qemu_get_ram_ptr from 6.3% to 2.1% in the
profiling of a full boot.
Signed-off-by: Vincent Palatin <vpalatin at chromium.org>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit d48751ed4f8368d3fdca99fbcd241d9efeedccbc
Author: Edgar E. Iglesias <edgar.iglesias at petalogix.com>
Date: Thu Mar 10 09:16:52 2011 +0100
xilinx-ethlite: Simplify byteswapping to/from brams
Signed-off-by: Edgar E. Iglesias <edgar.iglesias at petalogix.com>
commit b651fc6fd89365d0cdeb923e69be5611c43cbbe8
Author: Dmitry Eremin-Solenikov <dbaryshkov at gmail.com>
Date: Fri Mar 4 03:54:59 2011 +0300
mainstone: PCMCIA support
Extend mst_fpga and mainstone with logic to support PCMCIA
attachment (IRQs, status regs).
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov at gmail.com>
Signed-off-by: Andrzej Zaborowski <andrew.zaborowski at intel.com>
commit 95499a1d28f1f6255d7d74d2aaeaa2e7447b2b26
Author: Dmitry Eremin-Solenikov <dbaryshkov at gmail.com>
Date: Fri Mar 4 03:54:58 2011 +0300
mainstone: use gpio 0 for connection of FPGA instead of hooking into PIC directly
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov at gmail.com>
Signed-off-by: Andrzej Zaborowski <andrew.zaborowski at intel.com>
commit 8034ce7d1702d0bfa85618d345e2db0644048bc7
Author: Andrzej Zaborowski <balrog at zabor.org>
Date: Thu Mar 10 03:31:02 2011 +0100
pxa2xx_timer: Get rid of .level in PXA2xxTimer0.
commit 7c29d6ce0fe1486688ada09b7da22eea05e90014
Author: Andrzej Zaborowski <balrog at zabor.org>
Date: Thu Mar 10 03:11:47 2011 +0100
pxa2xx_pic: fixup initialisation
This is based on Dmitry Eremin-Solenikov's patch but simplified.
commit 4ff927cc62ea79092e21827f17d19a3d85973e84
Author: Dmitry Eremin-Solenikov <dbaryshkov at gmail.com>
Date: Fri Mar 4 03:40:59 2011 +0300
pxa2xx_timer: separate irq for pxa27x handling
First, sysbus_init_irq shan't be called on on-stack variables. Indeed,
it only stores a passed pointer in qdev and the stored irq is later
populated, so we get a nice write-to-stack bug.
Second, irq for pxa27x should probably be handled in a more gentler way,
as we should check if we have events to raise this irq.
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov at gmail.com>
Signed-off-by: Andrzej Zaborowski <andrew.zaborowski at intel.com>
commit ddca9fb2b5ecc7ccaa81fbc73d2b723922c181f1
Author: Stefan Hajnoczi <stefanha at linux.vnet.ibm.com>
Date: Mon Mar 7 08:06:10 2011 +0000
trace: Trace posix-aio-compat.c completion and cancellation
This patch adds paio_complete() and paio_cancel() trace events to
complement the paio_submit() event.
Signed-off-by: Stefan Hajnoczi <stefanha at linux.vnet.ibm.com>
commit a13aac04e13b246edab6c0c08513504ecb71bbd4
Author: Stefan Hajnoczi <stefanha at linux.vnet.ibm.com>
Date: Mon Mar 7 07:58:04 2011 +0000
trace: Trace bdrv_aio_flush()
Add a trace event for bdrv_aio_flush() to complement the existing
bdrv_aio_readv() and bdrv_aio_writev() events.
Signed-off-by: Stefan Hajnoczi <stefanha at linux.vnet.ibm.com>
commit 0b5538c300a56c3cfb33022840fe0b4968147e7a
Author: Stefan Hajnoczi <stefanha at linux.vnet.ibm.com>
Date: Sat Feb 26 18:38:39 2011 +0000
simpletrace: Thread-safe tracing
Trace events outside the global mutex cannot be used with the simple
trace backend since it is not thread-safe. There is no check to prevent
them being enabled so people sometimes learn this the hard way.
This patch restructures the simple trace backend with a ring buffer
suitable for multiple concurrent writers. A writeout thread empties the
trace buffer when threshold fill levels are reached. Should the
writeout thread be unable to keep up with trace generation, records will
simply be dropped.
Each time events are dropped a special record is written to the trace
file indicating how many events were dropped. The event ID is
0xfffffffffffffffe and its signature is dropped(uint32_t count).
Signed-off-by: Stefan Hajnoczi <stefanha at linux.vnet.ibm.com>
commit 07bf23a77131668ef8db37e08d508b117655ce86
Author: Michael Walle <michael at walle.cc>
Date: Thu Feb 17 23:45:18 2011 +0100
MAINTAINERS: add LatticeMico32 maintainer
Add me as the lm32-target and machines maintainer.
Signed-off-by: Michael Walle <michael at walle.cc>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias at gmail.com>
commit 613a22c931f15d61d92e45a76126f9f0f8b76121
Author: Michael Walle <michael at walle.cc>
Date: Thu Feb 17 23:45:17 2011 +0100
Add lm32 target to configure
Signed-off-by: Michael Walle <michael at walle.cc>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias at gmail.com>
commit d65f083146d269b48d53368a8e49aa7d2d4a08fd
Author: Michael Walle <michael at walle.cc>
Date: Thu Feb 17 23:45:16 2011 +0100
lm32: opcode testsuite
This patch creates tests/lm32 directory and adds tests for every
LatticeMico32 opcode.
Signed-off-by: Michael Walle <michael at walle.cc>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias at gmail.com>
commit 45664345fa3d6f2833177533c959f34867bbe573
Author: Michael Walle <michael at walle.cc>
Date: Thu Feb 17 23:45:15 2011 +0100
lm32: todo and documentation
This patch adds general target documentation and a todo list.
Signed-off-by: Michael Walle <michael at walle.cc>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias at gmail.com>
commit d821732abac6501f3bd4d30c9deeb3ccba8b14e7
Author: Michael Walle <michael at walle.cc>
Date: Thu Feb 17 23:45:14 2011 +0100
lm32: EVR32 and uclinux BSP
This patch adds support for the following two BSPs:
- LM32 EVR32 BSP (as used by RTEMS)
- uclinux BSP by Theobroma Systems
Signed-off-by: Michael Walle <michael at walle.cc>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias at gmail.com>
commit e5f799a26764e4d2a86e14a3adb5c850e4eeb099
Author: Michael Walle <michael at walle.cc>
Date: Thu Feb 17 23:45:13 2011 +0100
lm32: support for creating device tree
This patch adds helper functions to create a ROM, which contains a hardware
description of a board. This is used in Theobromas LM32 Linux port.
Signed-off-by: Michael Walle <michael at walle.cc>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias at gmail.com>
commit f19410ca691ddf5112eaefb30f7cea3ac3e713a4
Author: Michael Walle <michael at walle.cc>
Date: Thu Feb 17 23:45:12 2011 +0100
lm32: system control model
This patch add support for a system control block. It is supposed to
act as helper for the emulated program. E.g. shutting down the VM or
printing test results. This model is intended for testing purposes only and
doesn't fit to any real hardware. Therefore, it is not added to any board
by default. Instead a user has to add it explicitly with the '-device'
commandline parameter.
Signed-off-by: Michael Walle <michael at walle.cc>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias at gmail.com>
commit 770ae5713af30e42492581fd53000a1b4a92a3c7
Author: Michael Walle <michael at walle.cc>
Date: Thu Feb 17 23:45:11 2011 +0100
lm32: uart model
This patch add support for the LatticeMico32 UART.
Signed-off-by: Michael Walle <michael at walle.cc>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias at gmail.com>
commit ea7924dcc4000643ad767fa106a15acb9f8e055b
Author: Michael Walle <michael at walle.cc>
Date: Thu Feb 17 23:45:10 2011 +0100
lm32: timer model
This patch adds support for the LatticeMico32 system timer.
Signed-off-by: Michael Walle <michael at walle.cc>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias at gmail.com>
commit f89286ae45973e00189da67f28264ade74a645e2
Author: Michael Walle <michael at walle.cc>
Date: Thu Feb 17 23:45:09 2011 +0100
lm32: pic and juart helper functions
This patch adds init functions for the PIC and JTAG UART commonly used
in the board initialization.
Signed-off-by: Michael Walle <michael at walle.cc>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias at gmail.com>
commit 15d7dc4f8086b9d0a09fbcf28ee1654a210351dd
Author: Michael Walle <michael at walle.cc>
Date: Thu Feb 17 23:45:08 2011 +0100
lm32: juart model
This patch adds the JTAG UART model. It is accessed through special control
registers and opcodes. Therefore the translation uses callbacks to this
model.
Signed-off-by: Michael Walle <michael at walle.cc>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias at gmail.com>
commit 4ef66fa71882a8f8682d9a8d1528e1ec98c264e5
Author: Michael Walle <michael at walle.cc>
Date: Thu Feb 17 23:45:07 2011 +0100
lm32: interrupt controller model
This patch adds the interrupt controller of the lm32. Because the PIC is
accessed through special control registers and opcodes, there are callbacks
from the lm32 translation code to this model.
Signed-off-by: Michael Walle <michael at walle.cc>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias at gmail.com>
commit 0c45d3d4b921e9639a2ce400a6afdb4d962a5805
Author: Michael Walle <michael at walle.cc>
Date: Thu Feb 17 23:45:06 2011 +0100
lm32: gdbstub support
This patch adds lm32 support to the gdbstub.
Signed-off-by: Michael Walle <michael at walle.cc>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias at gmail.com>
commit c6af5693478caacafc58cbf454b71fa95d57db60
Author: Michael Walle <michael at walle.cc>
Date: Thu Feb 17 23:45:05 2011 +0100
lm32: machine state loading/saving
This patch adds support for saving and loading the processor state.
Signed-off-by: Michael Walle <michael at walle.cc>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias at gmail.com>
commit 143e8951e40c7dfcc985801ac93a7e58e2e44985
Author: Michael Walle <michael at walle.cc>
Date: Thu Feb 17 23:45:04 2011 +0100
lm32: translation code helper
This patch adds translation helper functions.
Signed-off-by: Michael Walle <michael at walle.cc>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias at gmail.com>
commit 17c0fa3d57ee1ee456a948b16b2905bf87833b8f
Author: Michael Walle <michael at walle.cc>
Date: Thu Feb 17 23:45:03 2011 +0100
lm32: translation routines
This patch adds the main translation routine. All opcodes of the
LatticeMico32 processor are supported and translated to TCG ops.
Signed-off-by: Michael Walle <michael at walle.cc>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias at gmail.com>
commit 81ea0e130470bb307e5ab7e2d71e7b80b46ef1bf
Author: Michael Walle <michael at walle.cc>
Date: Thu Feb 17 23:45:02 2011 +0100
LatticeMico32 target support
This patch adds support for the LatticeMico32 softcore processor by Lattice
Semiconductor.
Signed-off-by: Michael Walle <michael at walle.cc>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias at gmail.com>
commit ca27c052d992da83ce0786d81f85b87cd1f5d301
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Tue Feb 22 18:19:43 2011 +0000
target-arm: Implement a minimal set of cp14 debug registers
Newer ARM kernels try to probe for whether the CPU has hardware breakpoint
support. For this to work QEMU has to implement a minimal set of the cp14
debug registers. The architecture requires v7 cores to implement debug
and so there is no defined way to report its absence; however in practice
returning a zero DBGDIDR (ie with a reserved value for "debug architecture
version") should cause well-written hw debug users to do the right thing.
We also implement DBGDRAR and DBGDSAR as RAZ, indicating no memory mapped
debug components.
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 3849902cd852d7de0783abc41cb0c57949d567fd
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Sun Mar 6 21:39:55 2011 +0000
target-arm: Use TCG temporary leak debugging facilities
Use the new TCG temporary leak debugging facilities to
check that each ARM instruction does not leak temporaries.
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 7d1b0095bff7157e856d1d0e6c4295641ced2752
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Sun Mar 6 21:39:54 2011 +0000
target-arm: Remove ad-hoc leak checking code
This commit removes the ad-hoc resource leak checking code from
target-arm. This includes replacing all uses of new_tmp() with
tcg_temp_new_i32() and all uses of dead_tmp() with
tcg_temp_free_i32().
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 27bfd83c336283d1f7a5345ee386c4cd7b80db61
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Sun Mar 6 21:39:53 2011 +0000
tcg: Add support for debugging leakage of temporaries
Add support (if CONFIG_DEBUG_TCG is defined) for debugging leakage
of temporary variables. Generally any temporaries created by
a target while it is translating an instruction should be freed
by the end of that instruction; otherwise carefully crafted
guest code could cause TCG to run out of temporaries and assert.
By calling tcg_check_temp_count() after each instruction we can
check that we are not leaking temporaries in this way.
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 6ed221b637713aec903136e3061e714fa4809bdd
Author: Adam Lackorzynski <adam at os.inf.tu-dresden.de>
Date: Sat Mar 5 13:51:45 2011 +0100
target-arm: Integrate secondary CPU reset in arm_boot
Integrate secondary CPU reset into arm_boot, removing it from realview.c.
On non-Linux systems secondary CPUs start with the same entry as the boot
CPU.
Signed-off-by: Adam Lackorzynski <adam at os.inf.tu-dresden.de>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit f8bf860605e7f43a0803c4f099ac67aa545bbb68
Author: Adam Lackorzynski <adam at os.inf.tu-dresden.de>
Date: Sat Mar 5 13:51:44 2011 +0100
target-arm: Implement cp15 VA->PA translation
Implement VA->PA translations by cp15-c7 that went through unchanged
previously.
Signed-off-by: Adam Lackorzynski <adam at os.inf.tu-dresden.de>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit fa25014441dc5fafb8f00eeff44172f073bf379d
Author: Adam Lackorzynski <adam at os.inf.tu-dresden.de>
Date: Sat Mar 5 13:51:42 2011 +0100
target-arm: Fix soft interrupt in GIC distributor
Fix selection of target list filter mode.
Signed-off-by: Adam Lackorzynski <adam at os.inf.tu-dresden.de>
Reviewed-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 29501f1b9e6b1ee9d5d4761a452116321be5ae95
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Sun Mar 6 20:32:09 2011 +0000
target-arm: Set carry flag correctly for Thumb2 ORNS
The code for Thumb2 ORNS (or negated and set flags) was trashing
a TCG input register which was needed later for use in calculating
flags, with the effect that the carry flag was always set with
the wrong sense. Fix this by using the TCG orc op instead of
separate not and or ops.
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit f66a99d7526782495931bb1ef22f0a6c623c0ff0
Author: Andreas Färber <andreas.faerber at web.de>
Date: Sun Mar 6 15:48:13 2011 +0100
ioport: Improve error output
When failing due to conflicting I/O port registrations,
include the offending I/O port address in the message.
Cc: Aurelien Jarno <aurelien at aurel32.net>
Signed-off-by: Andreas Färber <andreas.faerber at web.de>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit e323c93edf3abb67c37b8e08b78da4835880f12e
Author: Jes Sorensen <Jes.Sorensen at redhat.com>
Date: Thu Feb 17 13:26:05 2011 +0100
tracetool: Add optional argument to specify dtrace probe names
Optional feature allowing a user to generate the probe list to match
the name of the binary, in case they wish to install qemu under a
different name than qemu-{system,user},<arch>
Signed-off-by: Jes Sorensen <Jes.Sorensen at redhat.com>
Acked-by: Paolo Bonzini <pbonzini at redhat.com>
Acked-by: Stefan Hajnoczi <stefaha at linux.vnet.ibm.com>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 8387da81975a1f5d310d5f3008514c419b3e82de
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Tue Mar 1 17:35:19 2011 +0000
target-arm: Handle VMOV between two core and VFP single regs
Fix two bugs in the translation of the instructions VMOV sa,sb,rx,ry and
VMOV rx,ry,sa,sb (which copy between a pair of ARM core registers and a
pair of VFP single precision registers):
* An incorrect condition meant these instruction patterns were being
treated as load/store multiple, which resulted in the generation
of bad code and a runtime segfault
* The order of the core register pair was reversed so the values would
go to the wrong registers
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit e095e2f3b47ced1ced72f3f2c72260e55f39903b
Author: Stefan Weil <weil at mail.berlios.de>
Date: Sun Feb 27 20:23:30 2011 +0100
w32: Add support for curses
MinGW optionally includes pdcurses, so add support for it.
Signed-off-by: Stefan Weil <weil at mail.berlios.de>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit cc68890166c2c1c5003e3eeb8535e1872e239a95
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Fri Feb 25 15:04:12 2011 +0000
target-arm: Don't decode old cp15 WFI instructions on v7 cores
In v7 of the ARM architecture, WFI (wait for interrupt) is a first-class
instruction, but in previous versions this functionality was provided
via a cp15 coprocessor register. Add correct feature checks to the
decoding of the cp15 WFI instructions so that they behave correctly
for newer cores. In particular, the old 0,c7,c8,2 encoding used on
ARM940 has been reused for VA-to-PA translation in v6 and v7.
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Reviewed-by: Adam Lackorzynski <adam at os.inf.tu-dresden.de>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 96c94b298f99d6edf4e49d03cc8458f5b6e9d5f0
Author: Jason Wang <jasowang at redhat.com>
Date: Fri Feb 25 16:11:27 2011 +0800
net: Add the missing option declaration of "vhostforce"
Signed-off-by: Jason Wang <jasowang at redhat.com>
Acked-by: Michael S. Tsirkin <mst at redhat.com>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 05a7fcd08189300fc89d841c2e4c522226afece7
Author: Juan Quintela <quintela at redhat.com>
Date: Thu Feb 24 15:17:16 2011 +0100
gt64xxx: remove savevm support
Signed-off-by: Juan Quintela <quintela at redhat.com>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 9023f7b2c8af154744fe3ed3412be00d0424e874
Author: Juan Quintela <quintela at redhat.com>
Date: Thu Feb 24 15:17:15 2011 +0100
vmstate: remove uninorth savevm code
It was migrating the wrong structures, no way it would work
Signed-off-by: Juan Quintela <quintela at redhat.com>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 532847e427e0c784216c8be943f7cdeec6c307d0
Author: Juan Quintela <quintela at redhat.com>
Date: Thu Feb 24 15:17:14 2011 +0100
vmstate: remove grackle_pci savevm code
It was migrating the wrong structures, no way it would work
Signed-off-by: Juan Quintela <quintela at redhat.com>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 85bb6d36b055e64778086b951ea282b383014274
Author: Juan Quintela <quintela at redhat.com>
Date: Thu Feb 24 12:22:10 2011 +0100
net: remove parse_host_src_port() function
It was deprecated, and it has no users.
Signed-off-by: Juan Quintela <quintela at redhat.com>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 0d2e91c17829729812bf5d22d20dd0f5d2554ec2
Author: Aurelien Jarno <aurelien at aurel32.net>
Date: Sun Mar 6 20:02:40 2011 +0100
hw/sd.c: fix sd_set_cb() crash when bdrv == NULL
sd_set_cb() calls bdrv_is_read_only() and bdrv_is_inserted() even if
no block driver is associated with the card reader.
This patch fixes the issues by not setting the irq in this case, this
fixes ARM versatile crash.
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit ce0536616d338e3ee56288fa8e7aee1ea75e92d4
Author: Benjamin Poirier <benjamin.poirier at gmail.com>
Date: Wed Feb 23 19:57:21 2011 -0500
net: Use iov helper functions
Signed-off-by: Benjamin Poirier <benjamin.poirier at gmail.com>
Reviewed-by: Stefan Hajnoczi <stefanha at linux.vnet.ibm.com>
Acked-by: Jason Wang <jasowang at redhat.com>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit b48c20f723cba21ffe62fb99094d2fa36739b0cc
Author: Stefan Hajnoczi <stefanha at linux.vnet.ibm.com>
Date: Wed Feb 23 14:00:21 2011 +0000
docs: Update stderr and simple backend, add systemtap backend
The following additions to the tracing documentation are included:
1. Move "stderr" backend documentation to top-level and out of "simple"
backend. Include hints on when this backend is useful.
2. Document the "simple" backend thread-safety limitation.
3. Document the "dtrace" backend for SystemTap.
Signed-off-by: Stefan Hajnoczi <stefanha at linux.vnet.ibm.com>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 59da66849215eccf1dce2154c84f217a3c39678b
Author: Stefan Hajnoczi <stefanha at linux.vnet.ibm.com>
Date: Tue Feb 22 13:59:41 2011 +0000
simpletrace: Make simpletrace.py a Python module
The simpletrace.py script pretty-prints a binary trace file. Most of
the code can be reused by trace file analysis scripts, so turn it into a
module.
Here is an example script that uses the new simpletrace module:
#!/usr/bin/env python
# Print virtqueue elements that were never returned to the guest.
import simpletrace
class VirtqueueRequestTracker(simpletrace.Analyzer):
def __init__(self):
self.elems = set()
def virtqueue_pop(self, vq, elem, in_num, out_num):
self.elems.add(elem)
def virtqueue_fill(self, vq, elem, length, idx):
self.elems.remove(elem)
def end(self):
for elem in self.elems:
print hex(elem)
simpletrace.run(VirtqueueRequestTracker())
The simpletrace API is based around the Analyzer class. Users implement
an analyzer subclass and add methods for trace events they want to
process. A catchall() method is invoked for trace events which do not
have dedicated methods. Finally, there are also begin() and end()
methods like in sed that can be used to perform setup or print
statistics at the end.
A binary trace file is processed either with:
simpletrace.run(analyzer) # uses command-line args
or with:
simpletrace.process('path/to/trace-events',
'path/to/trace-file',
analyzer)
Signed-off-by: Stefan Hajnoczi <stefanha at linux.vnet.ibm.com>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 0c1592d93585ddce572a71a77534ca765c5f5d34
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Tue Feb 22 13:02:26 2011 +0000
linux-user: Fix large seeks by 32 bit guest on 64 bit host
When emulating a 32 bit Linux user-mode program on a 64 bit target
we implement the llseek syscall in terms of lseek. Correct a bug
which meant we were silently casting the result of host lseek()
to a 32 bit integer as it passed through get_errno() and thus
throwing away the top half.
We also don't try to store the result back to userspace unless
the seek succeeded; this matches the kernel behaviour.
Thanks to Eoghan Sherry for identifying the problem and suggesting
a solution.
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 26883c699eee60c6f2dd63818a9dd470f2c567fc
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Mon Feb 21 20:57:53 2011 +0000
hw/realview: Wire up the MMC card status
Instantiate the three PL061 GPIO modules the realview boards have.
Connect the MMC card status outputs of the PL181 MMC controller
to both the system registers and the GPIO module which handles
internal devices.
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 9793212bb02b9fdc2de188a42b93b17ca2689c9a
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Mon Feb 21 20:57:52 2011 +0000
hw/irq: Add qemu_irq_split() so one GPIO output can feed two inputs
Add a qemu_irq_split() function which allows a board to wire a single
GPIO output up to two GPIO inputs. This is needed for realview boards,
where the MMC card status is visible both in a system register and
via a PL061 GPIO module.
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 7063f49f59807ac6f32c69281cf956d14d6c0310
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Mon Feb 21 20:57:51 2011 +0000
hw/pl061.c: Implement ARM PL061 as well as Luminary one
ARM's PL061 has a different set of ID registers to the one in the
Luminary Stellaris; implement this so that the Linux driver can
identify the Realview PBX PL061 correctly.
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit b50ff6f524fae78c7d79b27b00af701d7c28e80c
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Mon Feb 21 20:57:50 2011 +0000
hw/arm_sysctl.c: Wire MCI register MMC card status bits to GPIO inputs
Implement some GPIO inputs which a board can connect up to set the
MMC card status bits in the MCI register.
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit c31a4724e25ef867acda0eafc7ddb3999e4bb204
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Mon Feb 21 20:57:49 2011 +0000
hw/pl181: Implement GPIO output pins for card status
Add two GPIO output pins to the PL181 model to indicate the card
present and readonly status information. On ARM boards these usually
are reflected in a system register.
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 444dd39b5f226926e8b8a950821e6f48a5da3ccd
Author: Stefan Hajnoczi <stefanha at linux.vnet.ibm.com>
Date: Wed Jan 26 12:31:00 2011 +0000
lsi53c895a: Update dnad when skipping MSGOUT bytes
Update not only dbc but also dnad when skipping bytes during the MSGOUT
phase. Previously only dbc was updated which is probably wrong and
could lead to bogus message codes being read.
Tested on Linux and Windows Server 2003.
Signed-off-by: Stefan Hajnoczi <stefanha at linux.vnet.ibm.com>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit dcfd08653b8ceab07aed8415aa650254a94a098c
Author: Hervé Poussineau <hpoussin at reactos.org>
Date: Sun Mar 6 13:23:13 2011 +0000
WIN32: Add missing include for 'struct timeval', used in vnc.h
Signed-off-by: Hervé Poussineau <hpoussin at reactos.org>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 219982ef42154ad58a629f59267797c5454fc742
Author: Gerhard Wiesinger <lists at wiesinger.com>
Date: Sat Mar 5 13:44:39 2011 +0100
hw/pcnet.c: Fix EPROM contents to suit AMD netware drivers
bugfix under DOS for AMD netware driver:
AMD PCNTNW Ethernet MLID v3.10 (960115), network card not found
bugfix works well under DOS with:
1.) AMD NDIS driver v2.0.1
2.) AMD PCNTNW Ethernet MLID v3.10 (960115)
3.) Knoppix 6.2
Signed-off-by: Gerhard Wiesinger <lists at wiesinger.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 60c07d933c66c4b30a83b7ccbc8a0cb3df1b2d0e
Author: Vincent Palatin <vpalatin at chromium.org>
Date: Wed Mar 2 17:25:02 2011 -0500
net: fix qemu_can_send_packet logic
If any of the clients is not ready to receive (ie it has a can_receive
callback and can_receive() returns false), we don't want to start
sending, else this client may miss/discard the packet.
I got this behaviour with the following setup :
the emulated machine is using an USB-ethernet adapter, it is connected
to the network using SLIRP and I'm dumping the traffic in a .pcap file.
As per the following command line :
-net nic,model=usb,vlan=1 -net user,vlan=1 -net dump,vlan=1,file=/tmp/pkt.pcap
Every time that two packets are coming in a row from the host, the
usb-net code will receive the first one, then returns 0 to can_receive
call since it has a 1 packet long queue. But as the dump code is always
ready to receive, qemu_can_send_packet will return true and the next
packet will discard the previous one in the usb-net code.
Signed-off-by: Vincent Palatin <vpalatin at chromium.org>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 24ac3a7d4eacea38d514dbf50baa845e5bc6840b
Author: Vincent Palatin <vpalatin at chromium.org>
Date: Wed Mar 2 17:25:01 2011 -0500
net: fix trace when debug is activated in slirp
make the code compile correctly when DEBUG is activated.
Signed-off-by: Vincent Palatin <vpalatin at chromium.org>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 4e6557124c2b48725d092fded67e71f0bf78415f
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Thu Feb 10 16:53:04 2011 +0000
linux-user: fix compile failure if !CONFIG_USE_GUEST_BASE
If CONFIG_USE_GUEST_BASE is not defined, gcc complains:
linux-user/mmap.c:235: error: comparison of unsigned expression >= 0 is always true
because RESERVED_VA is #defined to 0. Since mmap_find_vma_reserved()
will never be called anyway if RESERVED_VA is always 0, fix this by
simply #ifdef'ing away the function and its callsite.
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit b46d97f2d2fd7c099b11e610de630918dfd11fa1
Author: Stefan Hajnoczi <stefanha at linux.vnet.ibm.com>
Date: Thu Mar 3 21:42:28 2011 +0000
virtio-net: Fix lduw_p() pointer argument of wrong size
A pointer to a size_t variable was passed as the void * pointer to
lduw_p() in virtio_net_receive(). Instead of acting on the 16-bit value
this caused failure on big-endian hosts.
Avoid this issue in the future by using stw_p() instead. In general we
should use ld*_p() for loading from target memory and st*_p() for
storing to target memory anyway, not the other way around.
Also tighten up a correct use of lduw_p() when stw_p() should be used
instead in virtio_net_get_config().
Signed-off-by: Stefan Hajnoczi <stefanha at linux.vnet.ibm.com>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit efac4154711863128558b5b65486ac79b760367e
Author: Aurelien Jarno <aurelien at aurel32.net>
Date: Thu Feb 24 12:31:41 2011 +0100
target-sh4: move intr_at_halt out of cpu_halted()
All targets except SH4 have the same cpu_halted() routine, and it has
only one caller. It is therefore a good candidate for inlining.
The difference is the handling of the intr_at_halt, which is necessary
to ignore SR.BL when sleeping. Move intr_at_halt handling out of it, by
setting this variable while executing the sleep instruction, and
clearing it when the CPU has been woken-up by an interrupt, whatever the
state of SR.BL. Also rename this variable in_sleep.
Cc: Paolo Bonzini <pbonzini at redhat.com>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 8a231487bc45ad5e5a70c747d9f35027922fb640
Author: Andrzej Zaborowski <balrog at zabor.org>
Date: Thu Mar 3 15:13:42 2011 +0100
pxa2xx: port pxa2xx_rtc to using qdev/vmstate
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov at gmail.com>
Signed-off-by: Andrzej Zaborowski <andrew.zaborowski at intel.com>
commit f114c826122759c619ef3ca55b6cfbe7d4d35bc3
Author: Andrzej Zaborowski <balrog at zabor.org>
Date: Thu Mar 3 15:06:03 2011 +0100
pxa2xx_dma: Get rid of a forward declaration.
commit 2115c01924ff355c48c10ef08fe5a87c958eb54a
Author: Andrzej Zaborowski <balrog at zabor.org>
Date: Thu Mar 3 15:04:51 2011 +0100
pxa2xx_dma: port to qdev/vmstate
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov at gmail.com>
Signed-off-by: Andrzej Zaborowski <andrew.zaborowski at intel.com>
commit 47188700a45166b49f1579f3efeab72ae2045f7a
Author: Dmitry Eremin-Solenikov <dbaryshkov at gmail.com>
Date: Sun Feb 20 16:50:35 2011 +0300
vmstate: move VMSTATE_PCIE_AER_ERRS to hw/hw.h
VMSTATE_PCIE_AER_ERRS is indeed useful for other emulation drivers.
Move it to hw/hw.h under the name of VMSTATE_STRUCT_VARRAY_POINTER_UINT16.
Also add VMSTATE_STRUCT_VARRAY_POINTER_INT32 which is more or less
the same as _UINT16 macro, except the fact it uses int32_t internally.
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov at gmail.com>
Signed-off-by: Andrzej Zaborowski <andrew.zaborowski at intel.com>
commit ee2479d3e8fbf6d79813eb7744725ae0e14eaf58
Author: Dmitry Eremin-Solenikov <dbaryshkov at gmail.com>
Date: Sun Feb 20 16:50:36 2011 +0300
pxa2xx_dma: drop unused pxa2xx_dma_handler_t/handler field
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov at gmail.com>
Signed-off-by: Andrzej Zaborowski <andrew.zaborowski at intel.com>
commit 5251d196aa712a28528fee5f93af3fe10a0b7f27
Author: Andrzej Zaborowski <andrew.zaborowski at intel.com>
Date: Thu Mar 3 14:24:25 2011 +0100
pxa2xx_timer: Store relevant irq line in each timer.
commit 797e9542f56b37632fddbfeb810d4a9ed1fc55ab
Author: Dmitry Eremin-Solenikov <dbaryshkov at gmail.com>
Date: Thu Mar 3 14:14:44 2011 +0100
pxa2xx_timer: switch to using qdev/vmstate
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov at gmail.com>
Signed-off-by: Andrzej Zaborowski <andrew.zaborowski at intel.com>
commit d353eb43cffc4e8f44f3acba0d04743ba3f4aca1
Author: Dmitry Eremin-Solenikov <dbaryshkov at gmail.com>
Date: Sun Feb 20 16:50:33 2011 +0300
pxa2xx_timer: change info struct name to comply with guidelines
It should be PXA2xxTimerInfo, not pxa2xx_timer_info. Replace all
occurences of old name with the new one.
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov at gmail.com>
Signed-off-by: Andrzej Zaborowski <andrew.zaborowski at intel.com>
commit 0c69aa703c543ae4e287416590ccd9928f75d32b
Author: Andrzej Zaborowski <andrew.zaborowski at intel.com>
Date: Thu Mar 3 03:43:40 2011 +0100
pxa2xx_pic: Set base address for sysbus device.
Thid device's registration was broken since
e1f8c729fa890c67bb4532f22c22ace6fb0e1aaf, this should fix it.
commit 13801f32f6bd74eae9bb2fcfaee75c6656f7f73e
Author: Dmitry Eremin-Solenikov <dbaryshkov at gmail.com>
Date: Thu Mar 3 03:34:01 2011 +0100
vmstate: add VMSTATE_STRUCT_ARRAY_TEST
This is a _TEST variant of VMSTATE_STRUCT_ARRAY, necessary e.g.
for future patch changing pxa2xx_timer to use vmstate.
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov at gmail.com>
Signed-off-by: Andrzej Zaborowski <andrew.zaborowski at intel.com>
commit ac166344df588a0fa455eb18ff4d083f709a8685
Author: Prasad Joshi <prasadjoshi124 at gmail.com>
Date: Sat Feb 26 16:38:58 2011 +0000
Fix qemu-kvm compilation when configured with disable-kvm
I pulled the latest qemu-kvm code and configured it with disabled-kvm
and related options. Configuration finishes well, but the compilation
fails.
prasad at prasad-kvm:~/KVM/qemu-kvm$ make
....
....
CC x86_64-softmmu/kvm-stub.o
/home/prasad/KVM/qemu-kvm/kvm-stub.c:140: error: expected identifier
or â(â before â<<â token
make[1]: *** [kvm-stub.o] Error 1
make: *** [subdir-x86_64-softmmu] Error 2
A Small fix would be
Signed-off-by: Prasad Joshi <prasadjoshi124 at gmail.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit ed02c54d1fd5d35c06e62e3dae84ee5bb90097ef
Author: Edgar E. Iglesias <edgar.iglesias at gmail.com>
Date: Tue Mar 1 22:17:52 2011 +0100
microblaze: Correct copy+paste:o in defconfigs
Signed-off-by: Edgar E. Iglesias <edgar.iglesias at gmail.com>
commit bc5c4fdf53a83dcd64eadfb446e6bf80145229b0
Author: Juan Quintela <quintela at redhat.com>
Date: Thu Feb 24 22:56:20 2011 +0100
device-assignment: remove qemu_mallocz() test
Signed-off-by: Juan Quintela <quintela at redhat.com>
Acked-by: Alex Williamson <alex.williamson at redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 3afa724f8e200ef0db1228ebf3f97c6134393825
Author: Juan Quintela <quintela at redhat.com>
Date: Thu Feb 24 22:56:19 2011 +0100
device-assignment: Be consistent and use DO_UPCAST everywhere
Signed-off-by: Juan Quintela <quintela at redhat.com>
Acked-by: Alex Williamson <alex.williamson at redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 546567f6bf47a3f23647cf54c02d2cbdad1aabde
Author: Juan Quintela <quintela at redhat.com>
Date: Thu Feb 24 22:56:18 2011 +0100
device-assignment: Use qemu_mallocz() instead of calloc()
Signed-off-by: Juan Quintela <quintela at redhat.com>
Acked-by: Alex Williamson <alex.williamson at redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 27f368604a3d27ca4ddac0f62a6928bb93cdacd5
Author: Avi Kivity <avi at redhat.com>
Date: Tue Mar 1 11:04:05 2011 +0200
Fix regression caused by qemu_kvm_init_cpu_signals()
For some reason this function causes the WinXP.64 migrate.tcp test
to fail while logging into the guest via netcat (through -net user).
Symptoms are vcpu threads constantly entering the kernel and exiting
on a signal.
Fix by #ifdefing out the contents of this function.
Signed-off-by: Avi Kivity <avi at redhat.com>
commit f14224a695f51576e33d96a4bc26b9a67899dbb9
Author: Avi Kivity <avi at redhat.com>
Date: Thu Feb 17 14:38:42 2011 +0200
kvm_stat: add 'x' key for enabling/disabling "drilldown"
Pressing 'x' enables drilldown into kvm_exit reasons. Pressing it
again reverts to normal behaviour.
Signed-off-by: Avi Kivity <avi at redhat.com>
commit f6ba693efeac405ebba6dd9262a7dd5cde55deaf
Author: Avi Kivity <avi at redhat.com>
Date: Thu Feb 17 14:38:16 2011 +0200
kvm_stat: allow enabling/disabling events dynamicalls
Signed-off-by: Avi Kivity <avi at redhat.com>
commit 581681cdef1b0b0655852b702fa0b6afa613ba7f
Author: Avi Kivity <avi at redhat.com>
Date: Thu Feb 17 13:02:40 2011 +0200
kvm_stat: add wrappers for perf_event enable and disable ioctls
Signed-off-by: Avi Kivity <avi at redhat.com>
commit 1ba1c0298dce0b2c7381424c32be60352f98796e
Author: Avi Kivity <avi at redhat.com>
Date: Mon Sep 6 14:27:06 2010 +0300
kvm_stat: move groups and events into well defined objects
Signed-off-by: Avi Kivity <avi at redhat.com>
commit f4de8c1451f2265148ff4d895a27e21c0a8788aa
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Mon Feb 21 12:28:07 2011 +0100
qemu-kvm: Mark VCPU state dirty on creation
This avoids that early cpu_synchronize_state calls try to retrieve an
uninitialized state from the kernel, which even causes a deadlock.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Avi Kivity <avi at redhat.com>
commit d4ce9c7455103e8d66165fe94a1caef4d7ec7c6b
Author: Prasad Joshi <prasadjoshi124 at gmail.com>
Date: Sat Feb 26 16:44:28 2011 +0000
device-assignment: detect pre-fectchable memory region correctly
During device assignment the memory pre-fetchable flag was discarded
as the IORESOURCE_PREFETCH was defined as 0x00001000 when instead it
should have been 0x00002000.
Signed-off-by: Prasad Joshi <prasadjoshi124 at gmail.com>
Signed-off-by: Avi Kivity <avi at redhat.com>
commit 1a8364456c2f3946b4feb8fc78eaf00d974f4c03
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Wed Feb 23 09:28:53 2011 +0100
qemu-kvm: Fix non-PCI target build
Replace obsolete qemu-kvm.h with kvm.h in pci.c and build that module
just like upstream does. This fixes non-x86 targets which have no PCI
support.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Avi Kivity <avi at redhat.com>
commit b0faa6d89324a03fbd9bf06da727fd4ab38700e0
Author: Gleb Natapov <gleb at redhat.com>
Date: Mon Feb 21 12:16:54 2011 +0200
Stop and show registers on error
Sync with upstream behaviour.
Signed-off-by: Gleb Natapov <gleb at redhat.com>
Signed-off-by: Avi Kivity <avi at redhat.com>
commit 417131fb9ad3f6dd7177a338cc5f143dec4d75f0
Author: Stefan Weil <weil at mail.berlios.de>
Date: Fri Feb 25 16:30:20 2011 -0600
HACKING: Update status of format checking
Hopefully all functions with printf like arguments now use format checking.
This was tested with default build configuration on linux
and windows hosts (including some cross compilations),
so chances are good that there remain few (if any) functions
without format checking.
Therefore the last comment in HACKING is no longer valid but misleading.
Cc: Blue Swirl <blauwirbel at gmail.com>
Signed-off-by: Stefan Weil <weil at mail.berlios.de>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit c53af37f375ce9c4999ff451c51173bdc1167e67
Author: Corentin Chary <corentincj at iksaif.net>
Date: Fri Feb 25 22:54:53 2011 +0100
vnc: fix a memory leak in threaded vnc server
VncJobQueue's buffer is intended to be used for
as the output buffer for all operations in this queue,
but unfortunatly.
vnc_async_encoding_start() is in charge of setting this
buffer as the current output buffer, but
vnc_async_encoding_end() was not writting the changes back
to VncJobQueue, resulting in a big and ugly memleak.
Signed-off-by: Corentin Chary <corentincj at iksaif.net>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit 30faaf7073dd51b9e06589d7886696a3f13f201c
Author: Tristan Gingold <gingold at adacore.com>
Date: Fri Feb 18 14:17:16 2011 +0100
Use sigwait instead of sigwaitinfo.
Fix compilation failure on Darwin.
Signed-off-by: Tristan Gingold <gingold at adacore.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 84803d7a27ef2e83c9b870ebd48e249696909e98
Author: Blue Swirl <blauwirbel at gmail.com>
Date: Fri Feb 25 17:21:22 2011 +0000
bitops: fix error on OpenBSD and mingw32
Fix this error:
CC bitops.o
In file included from /src/qemu/bitops.c:14:
/src/qemu/bitops.h:69: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'unsigned'
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 04483e150d412f5861a00c30581df7ba90a816e7
Author: Corentin Chary <corentincj at iksaif.net>
Date: Thu Feb 24 23:47:08 2011 +0100
bitops: fix test_and_change_bit()
./bitops.h:192: warning: âoldâ is used uninitialized in this function
Signed-off-by: Corentin Chary <corentincj at iksaif.net>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 89d2d3af518879ddfca367e56627229a09e90352
Author: Stefan Weil <weil at mail.berlios.de>
Date: Wed Feb 23 19:40:14 2011 +0100
slirp: Remove some type casts caused by bad declaration of x.tp_buf
x.tp_buf was declared as a uint8_t array, but always used as
a char array (which needed a lot of type casts).
The patch includes these changes:
* Fix declaration of x.tp_buf and remove all type casts.
* Use offsetof() to get the offset of x.tp_buf.
Signed-off-by: Stefan Weil <weil at mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit c3febae62b646b5bc7aa88b7cffa88160162a94e
Author: Pavel Dovgaluk <Pavel.Dovgaluk at ispras.ru>
Date: Mon Feb 21 14:47:50 2011 +0300
Fixing tap adapter for win32
This fix allows connection of internal VLAN to the external TAP interface.
If tap_win32_write function always returns 0, the TAP network interface
in QEMU is disabled.
Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk at gmail.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit c7eb1f02edba91e3eec4682fa1adca877696d11d
Author: Pavel Dovgaluk <Pavel.Dovgaluk at ispras.ru>
Date: Mon Feb 21 14:46:44 2011 +0300
Fixing network over sockets implementation for win32
MSDN includes the following in WSAEALREADY error description for connect()
function: "To preserve backward compatibility, this error is reported as
WSAEINVAL to Winsock applications that link to either Winsock.dll or
Wsock32.dll". So check of this error code was added to allow network
connections through the sockets in Windows.
Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk at gmail.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit e1f8c729fa890c67bb4532f22c22ace6fb0e1aaf
Author: Dmitry Eremin-Solenikov <dbaryshkov at gmail.com>
Date: Fri Feb 25 12:13:38 2011 +0100
pxa2xx_pic: update to use qdev
Use qdev/sysbus framework to handle pxa2xx-pic. Instead of exposing IRQs
via array, reference them via qdev_get_gpio_in().
Patch has been modified by the committer.
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov at gmail.com>
Signed-off-by: Andrzej Zaborowski <andrew.zaborowski at intel.com>
commit 3e1dbc3bd40338f19a2469feabd5f1dc5a4f5a9d
Author: Dmitry Eremin-Solenikov <dbaryshkov at gmail.com>
Date: Wed Feb 16 16:22:33 2011 +0300
mst_fpga: correct irq level settings
Final corrections for IRQ levels that are set by mst_fpga:
* Don't retranslate IRQ if previously IRQ was masked.
* After setting or clearing IRQs through register, apply mask
before setting parent IRQ level.
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov at gmail.com>
Signed-off-by: Andrzej Zaborowski <andrew.zaborowski at intel.com>
commit cf76a1ce8b7cf4b92429d67d3f4626a92b2d8a37
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Thu Feb 24 16:04:22 2011 +0000
ui/vnc-enc-tight.c: Fix compile failure if CONFIG_VNC_JPEG not defined
Add some missing #ifdefs to fix compilation failures in the !CONFIG_VNC_JPEG
case introduced by commit ce702e93.
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit a43f9c90c9129d1f28e473277abf793d0caed897
Author: Gerd Hoffmann <kraxel at redhat.com>
Date: Thu Feb 24 11:14:12 2011 +0530
virtio-serial: kill VirtIOSerialDevice
VirtIOSerialDevice is like VirtIOSerialPort with just the first two
fields, which makes it pretty pointless. Using VirtIOSerialPort
directly works equally well and is less confusing.
[Amit: - rebase
- rename 'dev' to 'port' in function params in virtio-serial.h ]
Signed-off-by: Gerd Hoffmann <kraxel at redhat.com>
Signed-off-by: Amit Shah <amit.shah at redhat.com>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit 61a11c98b77bb27dda7b2fb7004371bf0437ae5d
Author: David Gibson <david at gibson.dropbear.id.au>
Date: Thu Feb 24 16:34:59 2011 +1100
Add TAGS and *~ to .gitignore
Add the etags output generated by "make TAGS" and editor backup files
to .gitignore.
This patch has previously appeared in my series of patches to add
pSeries emulation support. However, it obviously has no real
connection to that, and can be applied seperately.
Please apply.
Signed-off-by: David Gibson <david at gibson.dropbear.id.au>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit e07be5d2aeecc64b3d245cd20b9ccbeeedc9d1dd
Author: Christophe Lyon <christophe.lyon at st.com>
Date: Mon Feb 21 17:38:48 2011 +0100
target-arm: fix support for VRSQRTE.
Now use the same algorithm as described in the ARM ARM.
Signed-off-by: Christophe Lyon <christophe.lyon at st.com>
Reviewed-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit fe0e4872e46a5264ea433a22a793538545108564
Author: Christophe Lyon <christophe.lyon at st.com>
Date: Mon Feb 21 17:38:47 2011 +0100
target-arm: fix support for VRECPE.
Now use the same algorithm as described in the ARM ARM.
Signed-off-by: Christophe Lyon <christophe.lyon at st.com>
Reviewed-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 56bf4fe2978e3e14c976feae825dbbd3700573d0
Author: Christophe Lyon <christophe.lyon at st.com>
Date: Mon Feb 21 17:38:46 2011 +0100
target-arm: Introduce float64_256 and float64_512 constants.
These two constants will be used by helper functions such as recpe_f32
and rsqrte_f32.
Signed-off-by: Christophe Lyon <christophe.lyon at st.com>
Reviewed-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit c30fe7dfc44cf6ca0213e0c15f92cf00f796721b
Author: Christophe Lyon <christophe.lyon at st.com>
Date: Mon Feb 21 17:38:45 2011 +0100
softfloat: add _set_sign(), _infinity and _half for 32 and 64 bits floats.
These constants and utility function are needed to implement some
helpers. Defining constants avoids the need to re-compute them at
runtime.
Signed-off-by: Christophe Lyon <christophe.lyon at st.com>
Reviewed-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 8559666ddb50a721bee06d281d5fa87ef44749ba
Author: Christophe Lyon <christophe.lyon at st.com>
Date: Mon Feb 21 17:38:44 2011 +0100
softfloat: move all default NaN definitions to softfloat.h.
These special values are needed to implement some helper functions,
which return/use these values in some cases.
Signed-off-by: Christophe Lyon <christophe.lyon at st.com>
Reviewed-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit fb1ba03ab064ae2e2e8248df81a7cad805dbe9d8
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Fri Feb 18 13:39:00 2011 +0000
hw/sd.c: Add missing state change for SD_STATUS, SEND_NUM_WR_BLOCKS
The SD_STATUS and SEND_NUM_WR_BLOCKS commands are supposed to cause
the card to send data back to the host. However sd.c was missing the
state change to sd_sendingdata_state for these commands, with the effect
that the Linux driver would either hang indefinitely waiting for
nonexistent data (pl181) or read zeroes and provoke a qemu warning
message (omap).
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 5db8378a7710df7899544004967597eb395418c2
Author: Stefan Weil <weil at mail.berlios.de>
Date: Wed Feb 16 20:48:00 2011 +0100
vnc: Fix fatal crash with vnc reverse mode
Reverse mode is unusable:
qemu -vnc localhost:5500,reverse
crashes in vnc_refresh_server_surface because some pointers are NULL.
Fix this by calling vnc_dpy_resize (which initializes these pointers)
before calling vnc_refresh.
Cc: Anthony Liguori <aliguori at us.ibm.com>
Signed-off-by: Stefan Weil <weil at mail.berlios.de>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit 80e0c8c39b663cd44ea8d47efe256897b7102f50
Author: Corentin Chary <corentincj at iksaif.net>
Date: Fri Feb 4 09:06:08 2011 +0100
vnc: add a non-adaptive option
This option allow to disable adaptive behaviors in some encodings.
Signed-off-by: Corentin Chary <corentincj at iksaif.net>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit 8cb4a6b755788925eea2beead87e201dfd4ba8bc
Author: Corentin Chary <corentincj at iksaif.net>
Date: Fri Feb 4 09:06:07 2011 +0100
vnc: tight: tweak adaptive tight settings
The force_jpeg threshold was too low.
Signed-off-by: Corentin Chary <corentincj at iksaif.net>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit 6c71a539c3cb3927fdea230c3ddb9e273142570f
Author: Corentin Chary <corentincj at iksaif.net>
Date: Fri Feb 4 09:06:06 2011 +0100
vnc: don't try to send bigger updates that client height
Respect client size if it doesn't not support desktop resizing.
Signed-off-by: Corentin Chary <corentincj at iksaif.net>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit bc2429b9174ac2d3c56b7fd35884b0d89ec7fb02
Author: Corentin Chary <corentincj at iksaif.net>
Date: Fri Feb 4 09:06:05 2011 +0100
vnc: use the new generic bitmap functions
Switch to bitmap.h and bitops.h instead of redefining our own bitmap
helpers.
Signed-off-by: Corentin Chary <corentincj at iksaif.net>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit e0e53b2f1b7aaf341ddb629ce861e02b2ac95fad
Author: Corentin Chary <corentincj at iksaif.net>
Date: Fri Feb 4 09:06:04 2011 +0100
bitmap: add a generic bitmap and bitops library
Add most used bitmap and bitops functions into bitmap.c and bitops.c.
Theses functions are mostly copied from Linux kernel source.
Some of these functions are already redefined in the VNC server. Some
of them could be used for some block stuff. The yet yo be submitted
NUMA work also need bitmaps.
bitops_ffsl() and bitops_flsl() are here because bitops/bitmap works
on unsigned long, not int, and we can't use current code because:
* ffs only works on int
* qemu_fls only works on int
* ffsl is a GNU extension
Signed-off-by: Corentin Chary <corentincj at iksaif.net>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit 207f328afc2137d422f59293ba37b8be5d3e1617
Author: Corentin Chary <corentincj at iksaif.net>
Date: Fri Feb 4 09:06:03 2011 +0100
vnc: fix lossy rect refreshing
The for loop in send_lossy_rect was totally wrong, and we can't
call vnc_set_bits() because it does not really do what it should.
Use vnc_set_bit() directly instead.
Signed-off-by: Corentin Chary <corentincj at iksaif.net>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit 368d25881c94f9e09ef19a3d93e8fec797dbcd05
Author: Corentin Chary <corentincj at iksaif.net>
Date: Fri Feb 4 09:06:02 2011 +0100
vnc: fix uint8_t comparisons with negative values
Signed-off-by: Corentin Chary <corentincj at iksaif.net>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit 148954faca586c42e5a4b06bc3ac67bd44e7fd83
Author: Corentin Chary <corentincj at iksaif.net>
Date: Fri Feb 4 09:06:01 2011 +0100
vnc: Add ZRLE and ZYWRLE encodings.
Add ZRLE [1] and ZYWRLE [2] encodings. The code is inspire^W stolen
from libvncserver (again), but have been rewriten to match QEMU coding
style.
[1] http://www.realvnc.com/docs/rfbproto.pdf
[2] http://micro-vnc.jp/research/remote_desktop_ng/ZYWRLE/publications/
Signed-off-by: Corentin Chary <corentincj at iksaif.net>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit f8562e326bb8bf084b7519a53c6f30627b80ac1e
Author: Corentin Chary <corentincj at iksaif.net>
Date: Fri Feb 4 09:06:00 2011 +0100
vnc: palette: and fill and color calls.
These two helpers are needed for zrle and zywrle.
Signed-off-by: Corentin Chary <corentincj at iksaif.net>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit 72aefb76f9268bec6eeb60530fd523b60effe610
Author: Corentin Chary <corentincj at iksaif.net>
Date: Fri Feb 4 09:05:59 2011 +0100
vnc: palette: add palette_init calls
This allow to use palette on the stack instead of always
allocating them.
Signed-off-by: Corentin Chary <corentincj at iksaif.net>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit e31e3694afef58ba191cbcc6875ec243e5971268
Author: Corentin Chary <corentincj at iksaif.net>
Date: Fri Feb 4 09:05:58 2011 +0100
vnc: palette: use a pool to reduce memory allocations
We now that the palette will never have more than 256
elements. Let's use a pool to reduce malloc calls.
Signed-off-by: Corentin Chary <corentincj at iksaif.net>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit ce702e93b0b99562ed42ba5c078914f2209b9a6a
Author: Corentin Chary <corentincj at iksaif.net>
Date: Fri Feb 4 09:05:57 2011 +0100
vnc: tight: use the update frequency to choose between lossy and lossless
Use the new update frequency infrastructure to use jpeg for regions with
high update frequency.
Signed-off-by: Corentin Chary <corentincj at iksaif.net>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit 7d964c9d2fc614d2baa788b9e77019b32151f162
Author: Corentin Chary <corentincj at iksaif.net>
Date: Fri Feb 4 09:05:56 2011 +0100
vnc: refresh lossy rect after a given timeout
If an adaptive encoding has choosen to send a lossy update
based on the result of vnc_update_freq(), then it should advertise
it with vnc_sent_lossy_rect(). This will allow to automatically refresh
this rect once it's static again.
Signed-off-by: Corentin Chary <corentincj at iksaif.net>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit 999342a0fe959dcd549396a255a04d000678e910
Author: Corentin Chary <corentincj at iksaif.net>
Date: Fri Feb 4 09:05:55 2011 +0100
vnc: add a way to get the update frequency for a given region
This patch compute the update frequency (in Hz) for each 64x64 rects.
Any adaptive encoding can get this value using vnc_update_freq(), and
switch to a lossy encoding if the value is too high.
The frequency is pre-calculated every 500ms, based on the last 10
updates per 64x64 rect.
If a 64x64 rect was not updated in the last 2 second, then the frequency
became 0, and all the stored timestamp are reseted.
Signed-off-by: Corentin Chary <corentincj at iksaif.net>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit b31f519e278601225c53519e3b16333d86770ecf
Author: Corentin Chary <corentincj at iksaif.net>
Date: Fri Feb 4 09:05:54 2011 +0100
vnc: don't set the quality if lossy encoding are disabled
This should not change the current behavior, but if any new
encoding try to use the tight quality, it will always be set
to -1 when lossy encodings are disabled.
Signed-off-by: Corentin Chary <corentincj at iksaif.net>
Signed-off-by: Anthony Liguori <aliguori at us.ibm.com>
commit 877fdc12b1ac68be256b2a1ee48c3b241c6c92e2
Author: Edgar E. Iglesias <edgar.iglesias at petalogix.com>
Date: Mon Feb 21 12:42:20 2011 +0100
microblaze: Allow targeting little-endian mb
Signed-off-by: Edgar E. Iglesias <edgar.iglesias at petalogix.com>
commit 082e5be809cb8e9806d34abd57e22080bebb598f
Author: Edgar E. Iglesias <edgar.iglesias at petalogix.com>
Date: Mon Feb 21 12:30:27 2011 +0100
pls3adsp1800: Base load_elf endianness on target endianness
Signed-off-by: Edgar E. Iglesias <edgar.iglesias at petalogix.com>
commit c9f7383c6e5423c1b5111d73346a8314b563f019
Author: Paolo Bonzini <pbonzini at redhat.com>
Date: Mon Feb 21 09:51:23 2011 +0100
do not use qemu_icount_delta in the !use_icount case
The !use_icount code is the same for iothread and non-iothread,
except that the timeout is different. Since the timeout might as
well be infinite and is only masking bugs, use the higher value.
With this change the !use_icount code is handled equivalently
in qemu_icount_delta and qemu_calculate_timeout, and we rip it
out of the former.
Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias at petalogix.com>
commit 9a31334f419c1d773cf4b4bfbbdace96fbf8a4f4
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Mon Feb 21 14:58:26 2011 +0000
hw/irq.h: Remove unused SetIRQFunc typedef
Remove the typedef SetIRQFunc, as it is not used by anything.
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 81aa06471a5c0ae45537b15f5b44e3f82488cdf5
Author: Aurelien Jarno <aurelien at aurel32.net>
Date: Mon Feb 21 15:53:05 2011 +0100
Revert "prep: Disable second IDE channel, as long as ISA IDE emulation doesn't support same irq for both channels"
This reverts commit 491e2a338fdf8310c84f6ebaed1683a871a0700e.
commit ee951a37d8873bff7aa58e23222dfd984111b6cb
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Sat Feb 19 18:56:22 2011 +0100
isa-bus: Remove bogus IRQ sharing check
Nothing prevented IRQ sharing on the ISA bus in principle. Not all
boards supported this, neither each and every card nor driver and OS.
Still, there existed valid IRQ sharing scenarios, (at least) two of them
can also be found in QEMU: >2 PC UARTs and the PREP IDE buses.
So remove this artificial restriction from our ISA model.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 7096a96db2d0227598e3c9fb154e53f912a34da8
Author: Roy Tam <roytam at gmail.com>
Date: Mon Feb 21 08:06:32 2011 +0800
PS/2 keyboard Scancode Set 3 support
The following patch adds PS/2 keyboard Scancode Set 3 support.
Signed-off-by: Roy Tam <roytam at gmail.com>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 92cdfaeb616244581df02ef10ba1ee1bb8d90f70
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Mon Feb 21 11:05:22 2011 +0000
target-arm: Fix shift by immediate and narrow where src, dest overlap
For Neon shifts by immediate and narrow, correctly handle the case
where the source registers and the destination registers overlap
(the second pass should use the original register contents, not the
results of the first pass).
This includes a refactoring to pull the size check outside the
loop rather than inside, since there is now very little common
code between the size == 3 and size != 3 case.
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit c33171c7f22ba60aad2d011af91d665807b4aced
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Mon Feb 21 11:05:21 2011 +0000
target-arm: Refactor to pull narrowing decode into separate function
Pull the code which decodes narrowing operations as being either
signed/unsigned saturate or plain out into its own function.
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 57a8821bc6e4457230075a5c8da5f8a083889686
Author: Stefan Weil <weil at mail.berlios.de>
Date: Fri Feb 4 22:38:48 2011 +0100
w32: Remove implementation of function ffs
This implementation is no longer needed.
ffs is either a built-in function (for compilations with optimisation)
or taken from libiberty.a (which was added by the previous patch).
Cc: Anthony Liguori <aliguori at us.ibm.com>
Signed-off-by: Stefan Weil <weil at mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 08f3896a072c6d05e36ec3fa4fd303ea550ee38f
Author: Stefan Weil <weil at mail.berlios.de>
Date: Fri Feb 4 22:38:47 2011 +0100
w32: Use additional library libiberty.a
libiberty.a is part of MinGW and provides useful functions
like ffs (MinGW) and getopt (MinGW-w64).
It is needed for w64 compilations and allows simpler code for w32.
Cc: Anthony Liguori <aliguori at us.ibm.com>
Signed-off-by: Stefan Weil <weil at mail.berlios.de>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 9dda2465472d2252c7172549606f246ec6823592
Author: Vasily Khoruzhick <anarsoul at gmail.com>
Date: Sun Feb 20 21:23:59 2011 +0200
Fix obvious mistake in pxa2xx i2s driver
RST bit is (1 << 4) bit, not (1 << 3), fix condition
that enables i2s if ENB is set and RST is not set.
Signed-off-by: Vasily Khoruzhick <anarsoul at gmail.com>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 582798b5c6c3ae0e53f099dc516a025b9d8589fd
Author: Vasily Khoruzhick <anarsoul at gmail.com>
Date: Tue Feb 15 15:27:29 2011 +0200
pxa2xx_keypad: Handle 0xe0xx keycodes
Add handling of 0xe0xx keycodes to pxa2xx_driver.
Extended keycodes in keymap should be marked with most significant
bit set (i.e. 0x80). Without this patch it's not possible to handle
i.e. cursor keys.
Signed-off-by: Vasily Khoruzhick <anarsoul at gmail.com>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit b976b4c0e7b77082b8dc43bf408dc92efedc53a0
Author: Vasily Khoruzhick <anarsoul at gmail.com>
Date: Tue Feb 15 15:27:28 2011 +0200
pxa2xx_keypad: enhance emulation of KPAS, KPASMKP regs
Add emulation of KPAS register and proper emulation of
KPASMKP regs, so now driver supports multipresses and properly
works with Linux driver.
Signed-off-by: Vasily Khoruzhick <anarsoul at gmail.com>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 5a5e3d55ffbcb81f97b4a6353f1649b1b9772938
Author: David 'Digit' Turner <digit at google.com>
Date: Mon Jan 10 23:11:40 2011 +0100
qdev: Fix printout of bit device properties with bit index >= 8
Signed-off-by: David 'Digit' Turner <digit at google.com>
Acked-by: Markus Armbruster <armbru at redhat.com>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 7464f0587b2938a3e10e9f995f384df8a5f298ac
Author: Stefan Weil <weil at mail.berlios.de>
Date: Fri Jan 21 22:50:30 2011 +0100
check-qdict: Fix possible crash
This warning is reported by cppcheck:
check-qdict.c:270: warning: scanf without field width limits can crash with huge input data
Fix it by limiting the field widths to 127 (both key and value take
127 characters + a terminating '\0' byte).
Signed-off-by: Stefan Weil <weil at mail.berlios.de>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 8da91fffeaffba5f014dfdcc88b672590e83b7fc
Author: Stefan Weil <weil at mail.berlios.de>
Date: Fri Jan 21 22:49:29 2011 +0100
tests: Fix two memory leaks
Although both leaks are not really important, fix them
to avoid cppcheck warnings:
tests/linux-test.c:433: error: Memory leak: stack1
tests/linux-test.c:433: error: Memory leak: stack2
Signed-off-by: Stefan Weil <weil at mail.berlios.de>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 1bbd185fa826a2da7c6089b968f9f7d08438c2c8
Author: Stefan Hajnoczi <stefanha at linux.vnet.ibm.com>
Date: Sat Jan 22 13:07:26 2011 +0000
qemu-char: Check for missing backend name
Check if the backend option is missing before searching the backend
table. This fixes a NULL pointer dereference when QEMU is invoked with
the following invalid command-line:
$ qemu -chardev id=foo,path=/tmp/socket
Previously QEMU would segfault, now it produces this error message:
chardev: "foo" missing backend
Signed-off-by: Stefan Hajnoczi <stefanha at linux.vnet.ibm.com>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 9f953ca0b8ae71f4ea8112a3aac36454a2c4b907
Author: Stefan Weil <weil at mail.berlios.de>
Date: Sat Jan 22 13:02:46 2011 +0100
s390: Fix memory leak
Signed-off-by: Stefan Weil <weil at mail.berlios.de>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit e98ccb3fbba94d0b2165caabf7aeee370d4ce900
Author: Stefan Weil <weil at mail.berlios.de>
Date: Sat Jan 22 13:02:45 2011 +0100
ppc405: Fix memory leak
Signed-off-by: Stefan Weil <weil at mail.berlios.de>
Acked-by: Andreas Färber <andreas.faerber at web.de>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 386bbf45720b00496d5b9f9137359801c4e7ac0e
Author: Stefan Weil <weil at mail.berlios.de>
Date: Sat Jan 22 13:02:44 2011 +0100
pci: Fix memory leak
Signed-off-by: Stefan Weil <weil at mail.berlios.de>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 3299369856db73a02c68869cb03fd1e24238eb9b
Author: Michael S. Tsirkin <mst at redhat.com>
Date: Wed Feb 9 18:45:09 2011 +0200
vhost: disable on tap link down
qemu makes it possible to disable link at tap which is not communicated
to the guest but causes all packets to be dropped.
When vhost-net is enabled, vhost needs to be aware of both the virtio
link_down and the peer link_down. we switch to userspace emulation when
either is down.
Signed-off-by: Michael S. Tsirkin <mst at redhat.com>
Reported-by: pradeep <psuriset at linux.vnet.ibm.com>
Acked-by: Alex Williamson <alex.williamson at redhat.com>
Acked-by: Jason Wang <jasowang at redhat.com>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit ab1cbe1c6df3c1f11db42148f929113ad9608ba1
Author: Michael S. Tsirkin <mst at redhat.com>
Date: Wed Feb 9 18:45:04 2011 +0200
net: notify peer about link status change
qemu makes it possible to disable link at tap which is not communicated
to the guest but causes all packets to be dropped.
This works for virtio userspace, as qemu stops giving it packets, but
not for virtio-net connected to vhost-net as that does not get notified
about this change.
Notify peer when this happens, which will then be used by the follow-up
patch to stop/start vhost-net.
Note: it might be a good idea to make peer link status match tap in this
case, so the guest gets an event and updates the carrier state. For now
stay bug for bug compatible with what we used to have in userspace.
Signed-off-by: Michael S. Tsirkin <mst at redhat.com>
Reported-by: pradeep <psuriset at linux.vnet.ibm.com>
Acked-by: Alex Williamson <alex.williamson at redhat.com>
Acked-by: Jason Wang <jasowang at redhat.com>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit f45a11088b9971470218e156f8c78a5fce33adb5
Author: Stefan Weil <weil at mail.berlios.de>
Date: Sat Feb 5 20:59:49 2011 +0100
w32: Fix arguments for GetProcessAffinityMask, SetProcessAffinityMask
These functions take arguments of type PDWORD_PTR which is a
pointer to a DWORD_PTR, not a pointer to a DWORD.
Cc: Anthony Liguori <aliguori at us.ibm.com>
Signed-off-by: Stefan Weil <weil at mail.berlios.de>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 33ebc29337face0f030719960338af3d2654cdf8
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Tue Feb 15 13:44:49 2011 +0000
target-arm: Fix unsigned VQRSHL by large shift counts
Correctly handle VQRSHL of unsigned values by a shift count of the
width of the data type or larger, which must be special-cased in the
qrshl_u* helper functions.
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 7b6ecf5b3a1605dfa6f3e3df3d8e42e9db9fcc71
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Tue Feb 15 13:44:48 2011 +0000
target-arm: Fix signed VQRSHL by large shift counts
Handle the case of signed VQRSHL by a shift count of the width of the
data type or larger, which must be special cased in the qrshl_s*
helper functions.
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 0b36f4cd4707d91389aad64f96d00a705645ddc9
Author: Christophe Lyon <christophe.lyon at st.com>
Date: Tue Feb 15 13:44:47 2011 +0000
target-arm: fix decoding of Neon 64 bit shifts.
Fix decoding of 64 bits variants of VSHRN, VRSHRN, VQSHRN, VQSHRUN,
VQRSHRN, VQRSHRUN, taking into account whether inputs are unsigned
or not.
Signed-off-by: Christophe Lyon <christophe.lyon at st.com>
Reviewed-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit b408a9b072fdc3d9b1d732ec7bddce52b2030315
Author: Christophe Lyon <christophe.lyon at st.com>
Date: Tue Feb 15 13:44:46 2011 +0000
target-arm: fix Neon VQSHRN and VSHRN.
Call the normal shift helpers instead of the rounding ones.
Signed-off-by: Christophe Lyon <christophe.lyon at st.com>
Reviewed-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 960e623bfd45c92ce165177b8a0e748867fe5878
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Tue Feb 15 13:44:45 2011 +0000
target-arm: Fix saturated values for Neon right shifts
Fix value returned by signed 8 and 16 bit qrshl helpers
when the result has saturated.
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 51e3930fc7ae8d3cff1ff0ecfdd63403b4c20f36
Author: Christophe Lyon <christophe.lyon at st.com>
Date: Tue Feb 15 13:44:44 2011 +0000
target-arm: fix unsigned 64 bit right shifts.
Fix range of shift amounts which always give 0 as result.
Signed-off-by: Christophe Lyon <christophe.lyon at st.com>
Reviewed-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit b6c63b9891f0b1415f96e027d5dc8a430c7ec153
Author: Christophe Lyon <christophe.lyon at st.com>
Date: Tue Feb 15 13:44:43 2011 +0000
target-arm: Fix unsigned VRSHL.s8 and .s16 right shifts by type width
Fix handling of unsigned VRSHL.s8 and .s16 right shifts by the type
width.
Signed-off-by: Christophe Lyon <christophe.lyon at st.com>
Reviewed-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 0670a7b65b0ce122c9f415ac7ae78e015a52a30a
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Tue Feb 15 13:44:42 2011 +0000
target-arm: Fix signed VRSHL by large shift counts
Correctly handle VRSHL of signed values by a shift count of the
width of the data type or larger, which must be special-cased in the
rshl_s* helper functions.
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 4bd4ee072cfbd3555b34279c8529f7f5f8d6c14a
Author: Christophe Lyon <christophe.lyon at st.com>
Date: Tue Feb 15 13:44:41 2011 +0000
target-arm: Fix rounding constant addition for Neon shifts
Handle cases where adding the rounding constant could overflow in Neon
shift instructions: VRSHR, VRSRA, VQRSHRN, VQRSHRUN, VRSHRN.
Signed-off-by: Christophe Lyon <christophe.lyon at st.com>
[peter.maydell at linaro.org: fix handling of large shifts in rshl_s32,
calculate signed saturated value as other functions do.]
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit d68a6f3a6deb2f5eee198b6fa46877a20227d86e
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Mon Feb 14 10:22:49 2011 +0000
target-arm: Move Neon VZIP to helper functions
Move the implementation of the Neon VUZP unzip instruction from inline
code to helper functions. (At 50+ TCG ops it was well over the
recommended limit for coding inline.) The helper implementations also
give the correct answers where the inline implementation did not.
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 02acedf93da420713a0c4bbeaf32ce9d734a4332
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Mon Feb 14 10:22:48 2011 +0000
target-arm: Move Neon VUZP to helper functions
Move the implementation of the Neon VUZP unzip instruction from inline
code to helper functions. (At 50+ TCG ops it was well over the
recommended limit for coding inline.) The helper implementations also
fix the handling of the quadword version of the instruction.
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit f06053e3c3933f75df9694aa3970d589f88b3543
Author: Juha Riihimäki <juha.riihimaki at nokia.com>
Date: Fri Feb 11 13:35:25 2011 +0000
target-arm: Correct conversion of Thumb Neon dp encodings into ARM
We handle Thumb Neon data processing instructions by converting them
into the equivalent ARM encoding, as the two are very close. However
the ARM encoding should have bit 28 set, not clear. This wasn't causing
any problems because we don't actually look at that bit during decode;
however it is better to do the conversion correctly to avoid problems
later if we add checks to UNDEF on SBZ/SBO bits.
Signed-off-by: Juha Riihimäki <juha.riihimaki at nokia.com>
Reviewed-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 4dc064e66e38afbada08fa739ed7d03f7227ff72
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Fri Feb 11 12:26:48 2011 +0000
target-arm: Fix Neon VQDMLSL instruction
For VQDMLSL, negation has to occur after saturation, not before.
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit ebcd88ceb5da70ee17c1d22e9874524649335759
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Fri Feb 11 12:26:47 2011 +0000
target-arm: Refactor handling of VQDMULL
Refactor the handling of VQDMULL so that it is dealt with in
its own if() case rather than together with the accumulating
instructions.
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit e5ca24cba969b58eb3fe0e7c239df3abe21831c0
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Thu Feb 10 19:07:55 2011 +0000
target-arm: Implement VMULL.P8
Implement VMULL.P8 (the 32x32->64 version of the polynomial multiply
instruction).
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 02615337ef295443daa03233e492194e289a807e
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Mon Jan 31 18:26:40 2011 +0000
qemu-lock.h: Remove non-pthreads spinlock implementations
Since configure guarantees us that we have pthreads on all hosts
except mingw (which doesn't support a USER_ONLY config), we can
and should use the pthread_mutex based implementation of spin_lock()
and spin_unlock() in all USER_ONLY cases. This means that all the
inline-native-assembly code supporting the "USER_ONLY but not USE_NPTL"
case can go away.
The not-USER_ONLY case remains as empty implementations; there is
no change in behaviour here.
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 322fd48afbed1ef7b834ac343a0c8687bcb33695
Author: Michael S. Tsirkin <mst at redhat.com>
Date: Tue Feb 15 18:27:55 2011 +0200
e1000: verify we have buffers, upfront
The spec says: Any descriptor with a non-zero status byte has been
processed by the hardware, and is ready to be handled by the software.
Thus, once we change a descriptor status to non-zero we should
never move the head backwards and try to reuse this
descriptor from hardware.
This actually happened with a multibuffer packet
that arrives when we don't have enough buffers.
Fix by checking that we have enough buffers upfront
so we never need to discard the packet midway through.
Signed-off-by: Michael S. Tsirkin <mst at redhat.com>
Acked-by: Alex Williamson <alex.williamson at redhat.com>
Acked-by: Kevin Wolf <kwolf at redhat.com>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit ee912ccfa007351a62ba42bd60499769f6c02c1e
Author: Michael S. Tsirkin <mst at redhat.com>
Date: Tue Feb 15 18:27:52 2011 +0200
e1000: clear EOP for multi-buffer descriptors
The e1000 spec says: if software statically allocates
buffers, and uses memory read to check for completed descriptors, it
simply has to zero the status byte in the descriptor to make it ready
for reuse by hardware. This is not a hardware requirement (moving the
hardware tail pointer is), but is necessary for performing an inâmemory
scan.
Thus the guest does not have to clear the status byte. In case it
doesn't we need to clear EOP for all descriptors
except the last. While I don't know of any such guests,
it's probably a good idea to stick to the spec.
Signed-off-by: Michael S. Tsirkin <mst at redhat.com>
Reported-by: Juan Quintela <quintela at redhat.com>
Acked-by: Alex Williamson <alex.williamson at redhat.com>
Acked-by: Kevin Wolf <kwolf at redhat.com>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit b19487e27ed3009df7f555998a454ba19aefd4b8
Author: Michael S. Tsirkin <mst at redhat.com>
Date: Tue Feb 15 18:27:48 2011 +0200
e1000: multi-buffer packet support
e1000 supports multi-buffer packets larger than rxbuf_size.
This fixes the following (on linux):
- in guest: ifconfig eth1 mtu 16110
- in host: ifconfig tap0 mtu 16110
ping -s 16082 <guest-ip>
Signed-off-by: Michael S. Tsirkin <mst at redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha at linux.vnet.ibm.com>
Acked-by: Alex Williamson <alex.williamson at redhat.com>
Acked-by: Kevin Wolf <kwolf at redhat.com>
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 1c69371006084f4d1b63283ac94a87d17dfdfb11
Author: Aurelien Jarno <aurelien at aurel32.net>
Date: Wed Feb 9 19:35:51 2011 +0100
pc: remove test on TARGET_PHYS_ADDR_BITS == 32
Both i386 and x86_64 targets are now using target_phys_bits=64. Remove
useless code.
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 71deff27492fb97b0515492bc7ec2a38c6c27dde
Author: Aurelien Jarno <aurelien at aurel32.net>
Date: Wed Feb 9 19:35:50 2011 +0100
target-i386: set target_phys_bits to 64
qemu i386 used to support more than 4GB of RAM through PAE, but it has
been disabled for an unknown reason. Reenable it.
Note that simply running qemu x86_64 and emulating a 32-bit CPU is not
a solution to this problem as it is about 15% slower (it needs to
emulate 64 bit registers even if half of them are not used). On the
other hand, I haven't seen any measurable impact by switching
target_phys_bits to 64.
Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
commit 0899965f6841ff96fcfe1fd766e95216af96b33e
Merge: 64d7e9a421fea0ac50b44541f5521de455e7cd5d 80f5ce758ac277e76c016dd7c0b246e40d4fca2d
Author: Aurelien Jarno <aurelien at aurel32.net>
Date: Sun Feb 20 14:47:48 2011 +0100
Merge branch 'linux-user-for-upstream' of git://gitorious.org/qemu-maemo/qemu
* 'linux-user-for-upstream' of git://gitorious.org/qemu-maemo/qemu:
linux-user: correct core dump format
linux-user: Define target alignment size
linux-user: Support the epoll syscalls
linux-user: in linux-user/strace.c, tswap() is useless
linux-user: add rmdir() strace
commit 64d7e9a421fea0ac50b44541f5521de455e7cd5d
Author: Blue Swirl <blauwirbel at gmail.com>
Date: Sun Feb 13 19:54:40 2011 +0000
i8254: convert to qdev
Convert to qdev. Don't expose PITState.
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit c74b88dffcb2ebfe018e460ac759ae8b1234911d
Author: Blue Swirl <blauwirbel at gmail.com>
Date: Sun Feb 13 14:17:00 2011 +0000
vga-isa: make optional
Ignore failure with vga-isa device creation, but print a warning
message.
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 7435b791ca9c76b11a9dba4beb60656f951432c1
Author: Blue Swirl <blauwirbel at gmail.com>
Date: Sun Feb 13 14:01:05 2011 +0000
vga-isa: convert to qdev
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 1c9c5fcdfef9d97e5f6d4ce37d41a205a26f0347
Author: Blue Swirl <blauwirbel at gmail.com>
Date: Sun Feb 13 12:31:28 2011 +0000
applesmc: make optional
Based on patch by David Ahern.
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 17801c78fe01ddab7ae9092190d17cc77bd5ef66
Author: Blue Swirl <blauwirbel at gmail.com>
Date: Sat Feb 12 22:25:26 2011 +0000
fdc: make optional
Ignore failure with fdc device creation.
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 63ffb564dca94f8bda01ed6d209784104630a4d2
Author: Blue Swirl <blauwirbel at gmail.com>
Date: Sat Feb 5 16:32:23 2011 +0000
fdc: refactor device creation
Turn fdc_init_isa into an inline function.
Get floppy geometry directly from the drives.
Don't expose FDCtrl.
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit d288c7ba7beb7975fe4bc15b0b14b9fd14da0a03
Author: Blue Swirl <blauwirbel at gmail.com>
Date: Sat Feb 12 21:23:12 2011 +0000
fdc: use FDriveType for floppy drive type
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 5bbdbb4676d17e782ae83055bac58e0751b25e4b
Author: Blue Swirl <blauwirbel at gmail.com>
Date: Sat Feb 12 20:43:32 2011 +0000
fdc: move floppy geometry guessing to block.c
Other geometry guessing functions already reside in block.c.
Remove some unused or debugging only fields.
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 9b13ef9f4c5be62bf405ab4291e090631089707f
Author: Blue Swirl <blauwirbel at gmail.com>
Date: Sat Feb 5 21:30:42 2011 +0000
serial: make optional
Ignore failure with serial device creation.
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit e22cf21efdc5f25fb9ba136cba7acb71aa379ea7
Author: Blue Swirl <blauwirbel at gmail.com>
Date: Sat Feb 5 19:37:40 2011 +0000
serial: refactor device creation
Turn serial_init into an inline function.
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit cd1b8a8b0d5951fb3a575a13bfd3aa3f7018ef1f
Author: Blue Swirl <blauwirbel at gmail.com>
Date: Sat Feb 5 15:44:45 2011 +0000
ne2000_isa: make optional
Ignore failure with ne2000_isa device creation.
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 60a14ad31e3629c13816d5060cb30d73985171e9
Author: Blue Swirl <blauwirbel at gmail.com>
Date: Sat Feb 5 15:39:57 2011 +0000
ne2000_isa: refactor device creation
Turn isa_ne2000_init into an inline function.
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 7353153891a9bbdbaa1672c37208effb5a09d715
Author: Blue Swirl <blauwirbel at gmail.com>
Date: Sat Feb 5 14:56:53 2011 +0000
parallel: make optional
Ignore failure with parallel device creation.
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit defdb20e1a8ac3a7200aaf190d7fb20a5ac8bcea
Author: Blue Swirl <blauwirbel at gmail.com>
Date: Sat Feb 5 14:51:57 2011 +0000
parallel: refactor device creation
Turn parallel_init into an inline function.
Don't expose ParallelState.
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit e700699e9f6f1e163985a8e4cd76d8568d24c152
Merge: 8eef0b0c8e92d93158ea2a08fbc804799a08b2ea d4c1fe8c81c0ef68611ff110f9fffc82004472da
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Fri Feb 18 19:48:06 2011 -0200
Merge branch 'upstream-merge'
* upstream-merge:
Fix vmport segfault (v2)
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit d4c1fe8c81c0ef68611ff110f9fffc82004472da
Merge: 8eef0b0c8e92d93158ea2a08fbc804799a08b2ea e14da0af640e4255b15d81907a93a2637e14e478
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Fri Feb 18 19:47:42 2011 -0200
Merge commit 'e14da0af640e4255b15d81907a93a2637e14e478' into upstream-merge
* commit 'e14da0af640e4255b15d81907a93a2637e14e478':
Fix vmport segfault (v2)
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit e14da0af640e4255b15d81907a93a2637e14e478
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Thu Feb 17 01:27:19 2011 -0200
Fix vmport segfault (v2)
Fix regression caused by qdev conversion.
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
Signed-off-by: Blue Swirl <blauwirbel at gmail.com>
commit 80f5ce758ac277e76c016dd7c0b246e40d4fca2d
Author: Laurent Vivier <laurent at vivier.eu>
Date: Sun Feb 13 23:37:35 2011 +0100
linux-user: correct core dump format
This patch allows to really use the core dumped by qemu with guest
architecture tools.
- it adds a missing bswap_phdr() for the program headers
of memory regions.
"objdump -x" sample:
BEFORE:
0x1000000 off 0x00200000 vaddr 0x00000400 paddr 0x00000000 align 2**21
filesz 0x00000000 memsz 0x00100000 flags ---
0x1000000 off 0x00200000 vaddr 0x00100400 paddr 0x00000000 align 2**21
filesz 0x00000000 memsz 0x00080000 flags --- 6000000
AFTER:
LOAD off 0x00002000 vaddr 0x00040000 paddr 0x00000000 align 2**13
filesz 0x00000000 memsz 0x00001000 flags ---
LOAD off 0x00002000 vaddr 0x00041000 paddr 0x00000000 align 2**13
filesz 0x00000000 memsz 0x00000800 flags rw-
- it doesn't pad the note size to sizeof(int32_t).
On m68k the NT_PRSTATUS note size is 154 and
must not be rounded up to 156, because this value is checked by
objdump and gdb.
"gdb" symptoms:
"warning: Couldn't find general-purpose registers in core file."
"objdump -x" sample:
BEFORE:
Sections:
Idx Name Size VMA LMA File off Algn
0 note0 000001c4 00000000 00000000 000003b4 2**0
CONTENTS, READONLY
1 .auxv 00000070 00000000 00000000 00000508 2**2
CONTENTS
2 proc1 00100000 00000400 00000000 00200000 2**10
READONLY
AFTER:
Sections:
Idx Name Size VMA LMA File off Algn
0 note0 000001c4 00000000 00000000 000003b4 2**0
CONTENTS, READONLY
1 .reg/19022 00000050 00000000 00000000 0000040e 2**2
CONTENTS
2 .reg 00000050 00000000 00000000 0000040e 2**2
CONTENTS
3 .auxv 00000070 00000000 00000000 00000508 2**2
CONTENTS
4 load1 00000000 00040000 00000000 00002000 2**13
ALLOC, READONLY
Signed-off-by: Laurent Vivier <laurent at vivier.eu>
Signed-off-by: Riku Voipio <riku.voipio at nokia.com>
commit c2e3dee6e03527baf8698698cce76b1a3174969a
Author: Laurent Vivier <laurent at vivier.eu>
Date: Sun Feb 13 23:37:34 2011 +0100
linux-user: Define target alignment size
Datatype alignment can be found using following application:
int main(void)
{
printf("alignof(short) %ld\n", __alignof__(short));
printf("alignof(int) %ld\n", __alignof__(int));
printf("alignof(long) %ld\n", __alignof__(long));
printf("alignof(long long) %ld\n", __alignof__(long long));
}
This patch includes following alignments:
i386
alignof(short) 2
alignof(int) 4
alignof(long) 4
alignof(long long) 8
x86_64
alignof(short) 2
alignof(int) 4
alignof(long) 8
alignof(long long) 8
arm
alignof(short) 2
alignof(int) 4
alignof(long) 4
alignof(long long) 4
m68k (680x0)
alignof(short) 2
alignof(int) 2
alignof(long) 2
alignof(long long) 2
mips
alignof(short) 2
alignof(int) 4
alignof(long) 4
alignof(long long) 8
ppc
alignof(short) 2
alignof(int) 4
alignof(long) 4
alignof(long long) 8
for other targets, use by default (2,4,4,8).
Please, update for your favorite target...
Signed-off-by: Laurent Vivier <laurent at vivier.eu>
Signed-off-by: Riku Voipio <riku.voipio at nokia.com>
commit 3b6edd1611e25099a1df20771ce3f88939a0e93a
Author: Peter Maydell <peter.maydell at linaro.org>
Date: Tue Feb 15 18:35:05 2011 +0000
linux-user: Support the epoll syscalls
Support the epoll family of syscalls: epoll_create(), epoll_create1(),
epoll_ctl(), epoll_wait() and epoll_pwait(). Note that epoll_create1()
and epoll_pwait() are later additions, so we have to test separately
in configure for their presence.
Signed-off-by: Peter Maydell <peter.maydell at linaro.org>
Signed-off-by: Riku Voipio <riku.voipio at nokia.com>
commit d2ee72a5b17d95fe0e57e496f1b2ddb2464b5c08
Author: Laurent Vivier <laurent at vivier.eu>
Date: Tue Feb 15 21:10:44 2011 +0100
linux-user: in linux-user/strace.c, tswap() is useless
Syscall parameters are already swapped by the caller.
This patch removes useless tswap() from strace.c
$ QEMU_STRACE=1 chroot /m68k mknod myramdisk b 1 1
with tswap()
...
29944 mknod("myramdisk",026630200000) = 0
...
without tswap()
...
30042 mknod("myramdisk",S_IFBLK|0666,makedev(1,1)) = 0
...
natively:
$ strace touch mytouch
...
open("mytouch", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3
...
$ QEMU_STRACE=1 chroot /m68k touch mytouch
with tswap()
...
30368 open("/usr/share/locale/locale.alias",O_RDONLY) = 3
30368 fstat64(50331648,0x4080032c) = 0
...
30368 open("mytouch",O_RDONLY|O_CREAT|O_LARGEFILE|O_NOCTTY|O_NONBLOCK|0x1) = 0
...
without tswap()
...
30572 open("/usr/share/locale/locale.alias",O_RDONLY) = 3
30572 fstat64(3,0x4080032c) = 0
...
30572 open("mytouch",O_WRONLY|O_CREAT|O_LARGEFILE|O_NOCTTY|O_NONBLOCK,0666) = 0
Signed-off-by: Laurent Vivier <laurent at vivier.eu>
Fixes by Riku Voipio: add casts
Signed-off-by: Riku Voipio <riku.voipio at nokia.com>
commit 4de596cb5092fbe125beb5e0b684cf0da7359624
Author: Laurent Vivier <laurent at vivier.eu>
Date: Tue Feb 15 21:10:43 2011 +0100
linux-user: add rmdir() strace
Signed-off-by: Laurent Vivier <laurent at vivier.eu>
Signed-off-by: Riku Voipio <riku.voipio at nokia.com>
commit 8eef0b0c8e92d93158ea2a08fbc804799a08b2ea
Merge: 0d14905b5eb8aa1c2e195e13478bb7c74e1776db 2d36363f9dedfb536486d132c2fd51e302d4e080
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Wed Feb 16 18:49:58 2011 -0200
Merge branch 'upstream-merge'
* upstream-merge: (88 commits)
Handle icount for powerpc tbl/tbu/decr load and store.
Merge mainstone.h header into mainstone.c
mainstone: convert FPGA emulation code to use QDev/SysBus
mainstone: correct and simplify irq handling
Fix build from previous commit
PATCH] slirp: fix buffer overrun
correctly check ppr priority during interrupt injection]
io-thread: make sure to initialize qemu_work_cond and qemu_cpu_cond
kvm: x86: Introduce kvmclock device to save/restore its state
kvm: Make kvm_state globally available
Introduce log_start/log_stop in CPUPhysMemoryClient
cirrus: Remove obsolete kvm.h include
kvm: Drop return values from kvm_arch_pre/post_run
Refactor debug and vmstop request interface
kvm: make tsc stable over migration and machine start
kvm: Remove unneeded memory slot reservation
kvm: x86: Prepare VCPU loop for in-kernel irqchip
Improve vm_stop reason declarations
kvm: x86: Catch and report failing IRQ and NMI injections
kvm: Separate TCG from KVM cpu execution
...
[Jan Kiszka: fix merge conflicts]
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 2d36363f9dedfb536486d132c2fd51e302d4e080
Merge: 084a270c2fd51329de682da458ab2c131d366da8 79f2b6fcdb7c06cdce6eccc796f5651f3efb843e
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Wed Feb 16 18:48:04 2011 -0200
Merge commit '79f2b6fcdb7c06cdce6eccc796f5651f3efb843e' into upstream-merge
* commit '79f2b6fcdb7c06cdce6eccc796f5651f3efb843e':
Handle icount for powerpc tbl/tbu/decr load and store.
Merge mainstone.h header into mainstone.c
mainstone: convert FPGA emulation code to use QDev/SysBus
mainstone: correct and simplify irq handling
Fix build from previous commit
PATCH] slirp: fix buffer overrun
correctly check ppr priority during interrupt injection]
io-thread: make sure to initialize qemu_work_cond and qemu_cpu_cond
qcow2: Fix order in L2 table COW
blockdev: Plug memory leak in drive_init() error paths
blockdev: Plug memory leak in drive_uninit()
qemu-img: Improve error messages for failed bdrv_open
qed: Report error for unsupported features
qcow2: Report error for version > 2
qerror: Add QERR_UNKNOWN_BLOCK_FORMAT_FEATURE
qcow2: Fix error handling for reading compressed clusters
qcow2: Fix error handling for immediate backing file read failure
QCOW2: bug fix - read base image beyond its size
Change snapshot_blkdev hmp to use correct argument type for device
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 084a270c2fd51329de682da458ab2c131d366da8
Merge: 3f02523218c6792d004caa8315ddff75335a97e0 0ec329dab938e2d97d12a91f8ed15fec27b325e0
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Wed Feb 16 18:44:39 2011 -0200
Merge commit '0ec329dab938e2d97d12a91f8ed15fec27b325e0' into upstream-merge
* commit '0ec329dab938e2d97d12a91f8ed15fec27b325e0':
kvm: x86: Introduce kvmclock device to save/restore its state
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 3f02523218c6792d004caa8315ddff75335a97e0
Merge: c5913dd83d4a24f0304fd46ce265dc4b292788d4 6a7af8cb04c345eb1ed9d95250ef3ad4400e65c5
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Wed Feb 16 18:26:03 2011 -0200
Merge commit '6a7af8cb04c345eb1ed9d95250ef3ad4400e65c5' into upstream-merge
* commit '6a7af8cb04c345eb1ed9d95250ef3ad4400e65c5':
kvm: Make kvm_state globally available
cirrus: Remove obsolete kvm.h include
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit c5913dd83d4a24f0304fd46ce265dc4b292788d4
Merge: 901ec66b7c935e70893b9d15bdb923fe92132e41 e5896b12e20b86ba9d16582888d60cf5cb286517
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Wed Feb 16 18:18:03 2011 -0200
Merge commit 'e5896b12e20b86ba9d16582888d60cf5cb286517' into upstream-merge
* commit 'e5896b12e20b86ba9d16582888d60cf5cb286517':
Introduce log_start/log_stop in CPUPhysMemoryClient
kvm: Remove unneeded memory slot reservation
kvm: x86: Catch and report failing IRQ and NMI injections
Conflicts:
kvm.h
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 901ec66b7c935e70893b9d15bdb923fe92132e41
Merge: 9d999a00977c1492a982097896f609034c14b0a3 7a39fe588251ba042c91bf23d53b0ba820bf964c
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Wed Feb 16 18:04:44 2011 -0200
Merge commit '7a39fe588251ba042c91bf23d53b0ba820bf964c' into upstream-merge
* commit '7a39fe588251ba042c91bf23d53b0ba820bf964c':
kvm: Drop return values from kvm_arch_pre/post_run
kvm: x86: Prepare VCPU loop for in-kernel irqchip
kvm: Separate TCG from KVM cpu execution
Move debug exception handling out of cpu_exec
Conflicts:
kvm.h
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 9d999a00977c1492a982097896f609034c14b0a3
Merge: c75ae7eb1b6aed595b09b8e2ff6322a21fb02c45 8cf71710f068f9c50ce420b1dd4ef71c2f9b2a8d
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Wed Feb 16 17:52:45 2011 -0200
Merge commit '8cf71710f068f9c50ce420b1dd4ef71c2f9b2a8d' into upstream-merge
* commit '8cf71710f068f9c50ce420b1dd4ef71c2f9b2a8d':
Refactor debug and vmstop request interface
Improve vm_stop reason declarations
Fix a few coding style violations in cpus.c
Refactor cpu_has_work/any_cpu_has_work in cpus.c
Refactor kvm&tcg function names in cpus.c
Conflicts:
sysemu.h
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit c75ae7eb1b6aed595b09b8e2ff6322a21fb02c45
Merge: a735ff74ba109c2216e2bc6bf40cedbe7dc1ac93 b8cc45d6a6f7b6607d5c55817d674f3e5f92ff70
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Wed Feb 16 17:42:46 2011 -0200
Merge commit 'b8cc45d6a6f7b6607d5c55817d674f3e5f92ff70' into upstream-merge
* commit 'b8cc45d6a6f7b6607d5c55817d674f3e5f92ff70':
kvm: make tsc stable over migration and machine start
kvm: Leave kvm_cpu_exec directly after KVM_EXIT_SHUTDOWN
Conflicts:
target-i386/kvm.c
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit a735ff74ba109c2216e2bc6bf40cedbe7dc1ac93
Merge: 7ab952fd07505e2feea17f6c14f384cf0921b168 b30e93e9ec01c87d53fb0c777e4b0fa258e85ca8
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Wed Feb 16 17:35:06 2011 -0200
Merge commit 'b30e93e9ec01c87d53fb0c777e4b0fa258e85ca8' into upstream-merge
* commit 'b30e93e9ec01c87d53fb0c777e4b0fa258e85ca8':
kvm: Remove static return code of kvm_handle_io
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 7ab952fd07505e2feea17f6c14f384cf0921b168
Merge: effbd5079bbbe1ee29115d4a87755d1824934a47 9ccfac9ea4b862a75a4270ed32db1f8e314911c5
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Wed Feb 16 17:20:47 2011 -0200
Merge commit '9ccfac9ea4b862a75a4270ed32db1f8e314911c5' into upstream-merge
* commit '9ccfac9ea4b862a75a4270ed32db1f8e314911c5':
kvm: Unconditionally reenter kernel after IO exits
Introduce VCPU self-signaling service
kvm: Add MCE signal support for !CONFIG_IOTHREAD
kvm: Fix race between timer signals and vcpu entry under !IOTHREAD
Conflicts:
kvm-all.c
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit effbd5079bbbe1ee29115d4a87755d1824934a47
Merge: 612a0f9f7614e4a070871da99288e83eef1dbc9f d0f294cec0ee25461a0a15b889929c5c7dc983cd
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Wed Feb 16 17:13:34 2011 -0200
Merge commit 'd0f294cec0ee25461a0a15b889929c5c7dc983cd' into upstream-merge
* commit 'd0f294cec0ee25461a0a15b889929c5c7dc983cd':
Set up signalfd under !CONFIG_IOTHREAD
Conflicts:
cpus.c
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 612a0f9f7614e4a070871da99288e83eef1dbc9f
Merge: 981085dd465c184ddb800addc69c116e6efe04b3 9a36085b866002d8e469f46078f0db5201f44999
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Wed Feb 16 16:45:10 2011 -0200
Merge commit '9a36085b866002d8e469f46078f0db5201f44999' into upstream-merge
* commit '9a36085b866002d8e469f46078f0db5201f44999':
kvm: Call qemu_kvm_eat_signals also under !CONFIG_IOTHREAD
kvm: Refactor qemu_kvm_eat_signals
kvm: Set up signal mask also for !CONFIG_IOTHREAD
Refactor signal setup functions in cpus.c
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 981085dd465c184ddb800addc69c116e6efe04b3
Merge: 9fd7c767dbed9c4d1d5e312f32b2299f8d2257e7 a1b87fe046bbb5a332e51906053c7e0307f26d89
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Wed Feb 16 16:23:26 2011 -0200
Merge commit 'a1b87fe046bbb5a332e51906053c7e0307f26d89' into upstream-merge
* commit 'a1b87fe046bbb5a332e51906053c7e0307f26d89':
kvm: Provide sigbus services arch-independently
kvm: Handle kvm_init_vcpu errors
kvm: Drop redundant kvm_enabled from kvm_cpu_thread_fn
kvm: Report proper error on GET_VCPU_MMAP_SIZE failures
Flatten the main loop
Leave inner main_loop faster on pending requests
Trigger exit from cpu_exec_all on pending IO events
Process vmstop requests in IO thread
Conflicts:
kvm-all.c
kvm-stub.c
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 9fd7c767dbed9c4d1d5e312f32b2299f8d2257e7
Merge: 0d14905b5eb8aa1c2e195e13478bb7c74e1776db b4a3d965dee06d52281496bb5fd0a5cb5534b545
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Wed Feb 16 15:57:11 2011 -0200
Merge commit 'b4a3d965dee06d52281496bb5fd0a5cb5534b545' into upstream-merge
* commit 'b4a3d965dee06d52281496bb5fd0a5cb5534b545': (34 commits)
Stop current VCPU on synchronous reset requests
Prevent abortion on multiple VCPU kicks
vmmouse: fix queue_size field initialization
hpet: make optional
sysbus: add creation function that may fail
x86: make vmmouse optional
isa: add creation function that may fail
vmmouse: convert to qdev
vmport: convert to qdev
x86,MIPS: make vmware_vga optional
pci: add creation functions that may fail
qdev: add creation function that may fail
vmware_vga: refactor device creation
mst_fpga: Drop one more pxa.h inclusion.
pxa2xx: convert i2c master to use qdev/vmsd
max7310: finish qdev'ication
tosa: we aren't connected to VBus, pass this info to Linux kernel
mainstone: pass one irq to the mst_fpga instead of the whole PIC
Drop unnecessary inclusions of pxa.h header
Add scoop post_load callback that sets IRQs to loaded levels
...
Conflicts:
vl.c
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 0d14905b5eb8aa1c2e195e13478bb7c74e1776db
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Mon Feb 14 19:19:20 2011 +0100
qemu-kvm: Drop vga dirty logging workarounds
These diffs to upstream should all date back to the days qemu-kvm
supported vga dirty logging with restricted/broken kvm kernel modules.
We no longer do, so there is no need for those workarounds. Even worse
they can trigger internal bug checks these days:
BUG: kvm_dirty_pages_log_change: invalid parameters 00000000000a8000-00000000000affff
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 79f2b6fcdb7c06cdce6eccc796f5651f3efb843e
Merge: c5d69e6bbf37bf5e3882060764b15e018e6a5321 16fde5f2c2788232b16c06d34d0459a5c1ec1f6c
Author: Anthony Liguori <aliguori at us.ibm.com>
Date: Wed Feb 16 08:47:13 2011 -0600
Merge remote branch 'kwolf/for-anthony' into staging
commit c5d69e6bbf37bf5e3882060764b15e018e6a5321
Merge: 630ecca0da959e65acad1ee0bf3a631bbb7ee052 0ec329dab938e2d97d12a91f8ed15fec27b325e0
Author: Anthony Liguori <aliguori at us.ibm.com>
Date: Wed Feb 16 08:47:07 2011 -0600
Merge remote branch 'qemu-kvm/uq/master' into staging
commit 630ecca0da959e65acad1ee0bf3a631bbb7ee052
Author: Tristan Gingold <gingold at adacore.com>
Date: Tue Feb 15 09:39:54 2011 +0100
Handle icount for powerpc tbl/tbu/decr load and store.
Handle option '-icount X' on powerpc targets.
Signed-off-by: Tristan Gingold <gingold at adacore.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias at petalogix.com>
commit 1622d9eea6604a755bd99902ff5f5a98b504407e
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Mon Feb 14 10:35:54 2011 +0100
qemu-kvm: Clean up IOAPIC after upstream merge
Drop base_address from the vmstate, upstream decided against managing it
at device level. Continuing to interpret the vmstate field would break
compatibility with upstream. Instead, fetch the base addres from the
sysbus device state when setting the in-kernel state.
Moreover, drop redundant ioapic_post_load and apply some tiny cleanups.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit cad7c5d76b30d30fc91dea049fef7340fd96ff3c
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Tue Feb 8 23:10:57 2011 +0100
qemu-kvm: Update kvm_check_many_ioeventfds for qemu-kvm use
qemu-kvm does not (yet) have CONFIG_IOTHREAD enabled. Without it,
kvm_check_many_ioeventfds will always fail although there is no reason.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 0ec329dab938e2d97d12a91f8ed15fec27b325e0
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Mon Feb 7 12:19:26 2011 +0100
kvm: x86: Introduce kvmclock device to save/restore its state
If kvmclock is used, which implies the kernel supports it, register a
kvmclock device with the sysbus. Its main purpose is to save and restore
the kernel state on migration, but this will also allow to visualize it
one day.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
CC: Glauber Costa <glommer at redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 6a7af8cb04c345eb1ed9d95250ef3ad4400e65c5
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Mon Feb 7 12:19:25 2011 +0100
kvm: Make kvm_state globally available
KVM-assisted devices need access to it but we have no clean channel to
distribute a reference. As a workaround until there is a better
solution, export kvm_state for global use, though use should remain
restricted to the mentioned scenario.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit e5896b12e20b86ba9d16582888d60cf5cb286517
Author: Anthony PERARD <anthony.perard at citrix.com>
Date: Mon Feb 7 12:19:23 2011 +0100
Introduce log_start/log_stop in CPUPhysMemoryClient
In order to use log_start/log_stop with Xen as well in the vga code,
this two operations have been put in CPUPhysMemoryClient.
The two new functions cpu_physical_log_start,cpu_physical_log_stop are
used in hw/vga.c and replace the kvm_log_start/stop. With this, vga does
no longer depends on kvm header.
[ Jan: rebasing and style fixlets ]
Signed-off-by: Anthony PERARD <anthony.perard at citrix.com>
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 638a84af9fced4b410243e45f755552303a17a3c
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Mon Feb 7 12:19:24 2011 +0100
cirrus: Remove obsolete kvm.h include
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 7a39fe588251ba042c91bf23d53b0ba820bf964c
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Mon Feb 7 12:19:20 2011 +0100
kvm: Drop return values from kvm_arch_pre/post_run
We do not check them, and the only arch with non-empty implementations
always returns 0 (this is also true for qemu-kvm).
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
CC: Alexander Graf <agraf at suse.de>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 8cf71710f068f9c50ce420b1dd4ef71c2f9b2a8d
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Mon Feb 7 12:19:16 2011 +0100
Refactor debug and vmstop request interface
Instead of fiddling with debug_requested and vmstop_requested directly,
introduce qemu_system_debug_request and turn qemu_system_vmstop_request
into a public interface. This aligns those services with exiting ones in
vl.c.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit b8cc45d6a6f7b6607d5c55817d674f3e5f92ff70
Author: Glauber Costa <glommer at redhat.com>
Date: Thu Feb 3 14:19:53 2011 -0500
kvm: make tsc stable over migration and machine start
If the machine is stopped, we should not record two different tsc values
upon a save operation. The same problem happens with kvmclock.
But kvmclock is taking a different diretion, being now seen as a separate
device. Since this is unlikely to happen with the tsc, I am taking the
approach here of simply registering a handler for state change, and
using a per-CPUState variable that prevents double updates for the TSC.
Signed-off-by: Glauber Costa <glommer at redhat.com>
CC: Jan Kiszka <jan.kiszka at web.de>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 8e045ac407029c004e31eb46b0586309d618fbbd
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Mon Feb 7 12:19:22 2011 +0100
kvm: Remove unneeded memory slot reservation
The number of slots and the location of private ones changed several
times in KVM's early days. However, it's stable since 2.6.29 (our
required baseline), and slots 8..11 are no longer reserved since then.
So remove this unneeded restriction.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
CC: Alex Williamson <alex.williamson at redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit db1669bcca7cc67d7301394d7d59dffb4c0fc9b0
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Mon Feb 7 12:19:19 2011 +0100
kvm: x86: Prepare VCPU loop for in-kernel irqchip
Effectively no functional change yet as kvm_irqchip_in_kernel still only
returns 0, but this patch will allow qemu-kvm to adopt the VCPU loop of
upsteam KVM.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit e07bbac542d45cb246f393f343eb3b867fed4de1
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Wed Feb 9 16:29:40 2011 +0100
Improve vm_stop reason declarations
Define and use dedicated constants for vm_stop reasons, they actually
have nothing to do with the EXCP_* defines used so far. At this chance,
specify more detailed reasons so that VM state change handlers can
evaluate them.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit ce377af399563195d066d5fee0c7b717967932ee
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Mon Feb 7 12:19:21 2011 +0100
kvm: x86: Catch and report failing IRQ and NMI injections
We do not need to abort, but the user should be notified that weird
things go on.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 6792a57bf19ab37f61f5acf0f8e3003cf08814af
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Mon Feb 7 12:19:18 2011 +0100
kvm: Separate TCG from KVM cpu execution
Mixing up TCG bits with KVM already led to problems around eflags
emulation on x86. Moreover, quite some code that TCG requires on cpu
enty/exit is useless for KVM. So dispatch between tcg_cpu_exec and
kvm_cpu_exec as early as possible.
The core logic of cpu_halted from cpu_exec is added to
kvm_arch_process_irqchip_events. Moving away from cpu_exec makes
exception_index meaningless for KVM, we can simply pass the exit reason
directly (only "EXCP_DEBUG vs. rest" is relevant).
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 0ab07c623c629acfbc792e5a174129c19faefbb7
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Mon Feb 7 12:19:14 2011 +0100
Fix a few coding style violations in cpus.c
No functional changes.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 83f338f73ecb88cc6f85d6e7b81ebef112ce07be
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Mon Feb 7 12:19:17 2011 +0100
Move debug exception handling out of cpu_exec
To prepare splitting up KVM and TCG CPU entry/exit, move the debug
exception into cpus.c and invoke cpu_handle_debug_exception on return
from qemu_cpu_exec.
This also allows to clean up the debug request signaling: We can assign
the job of informing main-loop to qemu_system_debug_request and stop the
calling cpu directly in cpu_handle_debug_exception. That means a debug
stop will now only be signaled via debug_requested and not additionally
via vmstop_requested.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 164003228347eb0c27ab6c0e80e2753df55cdbc5
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Wed Feb 9 16:29:37 2011 +0100
Refactor cpu_has_work/any_cpu_has_work in cpus.c
Avoid duplicate use of the function name cpu_has_work, it's confusing,
also their scope. Refactor cpu_has_work to cpu_thread_is_idle and do the
same with any_cpu_has_work.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 7e97cd88148876bad36ee7c66d526dcaed328d0d
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Mon Feb 7 12:19:12 2011 +0100
Refactor kvm&tcg function names in cpus.c
Pure interface cosmetics: Ensure that only kvm core services (as
declared in kvm.h) start with "kvm_". Prepend "qemu_" to those that
violate this rule in cpus.c. Also rename the corresponding tcg functions
for the sake of consistency.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit b30e93e9ec01c87d53fb0c777e4b0fa258e85ca8
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Tue Feb 1 22:16:01 2011 +0100
kvm: Remove static return code of kvm_handle_io
Improve the readability of the exit dispatcher by moving the static
return value of kvm_handle_io to its caller.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 9ccfac9ea4b862a75a4270ed32db1f8e314911c5
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Tue Feb 1 22:16:00 2011 +0100
kvm: Unconditionally reenter kernel after IO exits
KVM requires to reenter the kernel after IO exits in order to complete
instruction emulation. Failing to do so will leave the kernel state
inconsistently behind. To ensure that we will get back ASAP, we issue a
self-signal that will cause KVM_RUN to return once the pending
operations are completed.
We can move kvm_arch_process_irqchip_events out of the inner VCPU loop.
The only state that mattered at its old place was a pending INIT
request. Catch it in kvm_arch_pre_run and also trigger a self-signal to
process the request on next kvm_cpu_exec.
This patch also fixes the missing exit_request check in kvm_cpu_exec in
the CONFIG_IOTHREAD case.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
CC: Gleb Natapov <gleb at redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit d0f294cec0ee25461a0a15b889929c5c7dc983cd
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Tue Feb 1 22:15:56 2011 +0100
Set up signalfd under !CONFIG_IOTHREAD
Will be required for SIGBUS handling. For obvious reasons, this will
remain a nop on Windows hosts.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Reviewed-by: Paolo Bonzini <pbonzini at redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 9a36085b866002d8e469f46078f0db5201f44999
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Tue Feb 1 22:15:55 2011 +0100
kvm: Call qemu_kvm_eat_signals also under !CONFIG_IOTHREAD
Move qemu_kvm_eat_signals around and call it also when the IO-thread is
not used. Do not yet process SIGBUS, will be armed in a separate step.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit a1b87fe046bbb5a332e51906053c7e0307f26d89
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Tue Feb 1 22:15:51 2011 +0100
kvm: Provide sigbus services arch-independently
Provide arch-independent kvm_on_sigbus* stubs to remove the #ifdef'ery
from cpus.c. This patch also fixes --disable-kvm build by providing the
missing kvm_on_sigbus_vcpu kvm-stub.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Reviewed-by: Paolo Bonzini <pbonzini at redhat.com>
Acked-by: Alexander Graf <agraf at suse.de>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit cdea50ede1b8a2efe989fafc57260053b180219f
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Tue Feb 1 22:16:02 2011 +0100
kvm: Leave kvm_cpu_exec directly after KVM_EXIT_SHUTDOWN
The reset we issue on KVM_EXIT_SHUTDOWN implies that we should also
leave the VCPU loop. As we now check for exit_request which is set by
qemu_system_reset_request, this bug is no longer critical. Still it's an
unneeded extra turn.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 46d62fac8a6a43453322b3305ab2fcb8ee594443
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Tue Feb 1 22:15:59 2011 +0100
Introduce VCPU self-signaling service
Introduce qemu_cpu_kick_self to send SIG_IPI to the calling VCPU
context. First user will be kvm.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 5db5bdacdfb115bb23d57808947f1ec1bcc00ef3
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Tue Feb 1 22:15:54 2011 +0100
kvm: Refactor qemu_kvm_eat_signals
We do not use the timeout, so drop its logic. As we always poll our
signals, we do not need to drop the global lock. Removing those calls
allows some further simplifications. Also fix the error processing of
sigpending at this chance.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Reviewed-by: Paolo Bonzini <pbonzini at redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 84b4915dd2c0eaa86c970ffc42a68ea8ba9e48b5
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Tue Feb 1 22:15:50 2011 +0100
kvm: Handle kvm_init_vcpu errors
Do not ignore errors of kvm_init_vcpu, they are fatal.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 6d9cb73c1bf80bfb0b8e7b2b3a23703e621c1405
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Tue Feb 1 22:15:58 2011 +0100
kvm: Add MCE signal support for !CONFIG_IOTHREAD
Currently, we only configure and process MCE-related SIGBUS events if
CONFIG_IOTHREAD is enabled. The groundwork is laid, we just need to
factor out the required handler registration and system configuration.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
CC: Huang Ying <ying.huang at intel.com>
CC: Hidetoshi Seto <seto.hidetoshi at jp.fujitsu.com>
CC: Jin Dongming <jin.dongming at np.css.fujitsu.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit ff48eb5fe79ad9ce50127965bd42320c7cccc8a1
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Tue Feb 1 22:15:53 2011 +0100
kvm: Set up signal mask also for !CONFIG_IOTHREAD
Block SIG_IPI, unblock it during KVM_RUN, just like in io-thread mode.
It's unused so far, but this infrastructure will be required for
self-IPIs and to process SIGBUS plus, in KVM mode, SIGIO and SIGALRM. As
Windows doesn't support signal services, we need to provide a stub for
the init function.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit d31ae052a913e8e41a9f22429c28decbdb660568
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Tue Feb 1 22:15:49 2011 +0100
kvm: Drop redundant kvm_enabled from kvm_cpu_thread_fn
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit de758970b60f129ed9d024cc5c90c1f57fab2fd4
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Tue Feb 1 22:15:57 2011 +0100
kvm: Fix race between timer signals and vcpu entry under !IOTHREAD
Found by Stefan Hajnoczi: There is a race in kvm_cpu_exec between
checking for exit_request on vcpu entry and timer signals arriving
before KVM starts to catch them. Plug it by blocking both timer related
signals also on !CONFIG_IOTHREAD and process those via signalfd.
As this fix depends on real signalfd support (otherwise the timer
signals only kick the compat helper thread, and the main thread hangs),
we need to detect the invalid constellation and abort configure.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
CC: Stefan Hajnoczi <stefanha at linux.vnet.ibm.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 55f8d6ac3e03d2859393c281737f60c65dfc9ab3
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Tue Feb 1 22:15:52 2011 +0100
Refactor signal setup functions in cpus.c
Move {tcg,kvm}_init_ipi and block_io_signals to avoid prototypes, rename
the former two to clarify that they deal with more than SIG_IPI. No
functional changes - except for the tiny fixup of strerror usage.
The forward declaration of sigbus_handler is just temporarily, it will
be moved in a succeeding patch. dummy_signal is moved into the !_WIN32
block as we will soon need it also for !CONFIG_IOTHREAD.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 748a680b966c65cca9292ba0b9cbb6a04d063b21
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Tue Feb 1 22:15:48 2011 +0100
kvm: Report proper error on GET_VCPU_MMAP_SIZE failures
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit b4a3d965dee06d52281496bb5fd0a5cb5534b545
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Tue Feb 1 22:15:43 2011 +0100
Stop current VCPU on synchronous reset requests
If some I/O operation ends up calling qemu_system_reset_request in VCPU
context, we record this and inform the io-thread, but we do not
terminate the VCPU loop. This can lead to fairly unexpected behavior if
the triggering reset operation is supposed to work synchronously.
Fix this for TCG (when run in deterministic I/O mode) by setting the
VCPU on stop and issuing a cpu_exit. KVM requires some more work on its
VCPU loop.
[ ported from qemu-kvm ]
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 46481d3921b86ef5ded7be7b5ce8194608f30e6b
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Tue Feb 1 22:15:47 2011 +0100
Flatten the main loop
First of all, vm_can_run is a misnomer, it actually means "no request
pending". Moreover, there is no need to check all pending requests
twice, the first time via the inner loop check and then again when
actually processing the requests. We can simply remove the inner loop
and do the checks directly.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit aa2c364b4cf2fae4d9c8acf53ee4436ed533902d
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Tue Feb 1 22:15:42 2011 +0100
Prevent abortion on multiple VCPU kicks
If we call qemu_cpu_kick more than once before the target was able to
process the signal, pthread_kill will fail, and qemu will abort. Prevent
this by avoiding the redundant signal.
This logic can be found in qemu-kvm as well.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 8e1b90ecc59573c4c5e9fc4934b4e30476b43e2f
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Tue Feb 1 22:15:46 2011 +0100
Leave inner main_loop faster on pending requests
If there is any pending request that requires us to leave the inner loop
if main_loop, makes sure we do this as soon as possible by enforcing
non-blocking IO processing.
At this change, move variable definitions out of the inner loop to
improve readability.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 38145df24c55bffe8ba63cfa28173c9ddd5a2c2d
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Tue Feb 1 22:15:45 2011 +0100
Trigger exit from cpu_exec_all on pending IO events
Except for timer events, we currently do not leave the loop over all
VCPUs if an IO event was filed. That may cause unexpected IO latencies
under !CONFIG_IOTHREAD in SMP scenarios. Fix it by setting the global
exit_request which breaks the loop.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 1745eaaa7c53c6090d53090d239d0234a7ecfd2d
Author: Jan Kiszka <jan.kiszka at siemens.com>
Date: Tue Feb 1 22:15:44 2011 +0100
Process vmstop requests in IO thread
A pending vmstop request is also a reason to leave the inner main loop.
So far we ignored it, and pending stop requests issued over VCPU threads
were simply ignored.
Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 671d89d6411655bb4f8058ce6eb86bb0bb8ec978
Merge: 080b695d7ce5d21f9db7f4ad87f1d1f5bcf37660 ac7a1d055d8407c26bf00a0fe41a57aa90e4352c
Author: Avi Kivity <avi at redhat.com>
Date: Sun Feb 13 16:56:08 2011 +0200
Merge branch 'upstream-merge' into next
* upstream-merge: (55 commits)
microblaze: Handle singlestepping over direct jmps
target-arm: implement vsli.64, vsri.64
target-arm: fix VSHLL Neon instruction.
[PATCH] [MIPS] Clear softfpu exception state for round, trunc, ceil and floor
target-arm: Fix 32 bit signed saturating narrow
target-arm: Fix VQMOVUN Neon instruction.
linux-user: fix for loopmount ioctl
linux-user: fix build errors for mmap2-only ports
user: speed up init_paths a bit
linux-user: implement sched_{g,s}etaffinity
linux-user/FLAT: allow targets to override FLAT processing
linux-user/FLAT: fix auto-stack sizing
linux-user: decode MAP_{UNINITIALIZED,EXECUTABLE} in strace
linux-user: add ppoll syscall support
linux-user/elfload: add FDPIC support
linux-user: fix sizeof handling for getsockopt
linux-user: Fix possible realloc memory leak
linux-user: Add support for -version option
cris, microblaze: use cpu_has_work
x86: Fix MCA broadcast parameters for TCG case
...
Signed-off-by: Avi Kivity <avi at redhat.com>
commit ac7a1d055d8407c26bf00a0fe41a57aa90e4352c
Merge: a90c0e680d83d4e8f34f46566cd559c72c4ef2b6 6c5f738daec123020d32543fe90a6633a4f6643e
Author: Avi Kivity <avi at redhat.com>
Date: Sun Feb 13 16:54:50 2011 +0200
Merge commit '6c5f738daec123020d32543fe90a6633a4f6643e' into upstream-merge
* commit '6c5f738daec123020d32543fe90a6633a4f6643e': (44 commits)
microblaze: Handle singlestepping over direct jmps
target-arm: implement vsli.64, vsri.64
target-arm: fix VSHLL Neon instruction.
[PATCH] [MIPS] Clear softfpu exception state for round, trunc, ceil and floor
target-arm: Fix 32 bit signed saturating narrow
target-arm: Fix VQMOVUN Neon instruction.
linux-user: fix for loopmount ioctl
linux-user: fix build errors for mmap2-only ports
user: speed up init_paths a bit
linux-user: implement sched_{g,s}etaffinity
linux-user/FLAT: allow targets to override FLAT processing
linux-user/FLAT: fix auto-stack sizing
linux-user: decode MAP_{UNINITIALIZED,EXECUTABLE} in strace
linux-user: add ppoll syscall support
linux-user/elfload: add FDPIC support
linux-user: fix sizeof handling for getsockopt
linux-user: Fix possible realloc memory leak
linux-user: Add support for -version option
cris, microblaze: use cpu_has_work
x86: Fix MCA broadcast parameters for TCG case
...
Signed-off-by: Avi Kivity <avi at redhat.com>
commit a90c0e680d83d4e8f34f46566cd559c72c4ef2b6
Merge: 2d24961d3bba8ac38c38af27816f462d5deb2d51 1f5e71a8e6b24dce74b156472ff9253b9bd33a11
Author: Avi Kivity <avi at redhat.com>
Date: Sun Feb 13 16:51:51 2011 +0200
Merge commit '1f5e71a8e6b24dce74b156472ff9253b9bd33a11' into upstream-merge
* commit '1f5e71a8e6b24dce74b156472ff9253b9bd33a11':
ioapic: Style & magics cleanup
Conflicts:
hw/ioapic.c
Signed-off-by: Avi Kivity <avi at redhat.com>
commit 2d24961d3bba8ac38c38af27816f462d5deb2d51
Merge: 53d6be977096cbeb9f3941437e1c36a6d47b3ed3 5dce499948e4a4abe62f010baf4a7ed3d49e53cb
Author: Avi Kivity <avi at redhat.com>
Date: Sun Feb 13 16:48:24 2011 +0200
Merge commit '5dce499948e4a4abe62f010baf4a7ed3d49e53cb' into upstream-merge
* commit '5dce499948e4a4abe62f010baf4a7ed3d49e53cb':
ioapic: Add support for qemu-kvm's vmstate v2
Conflicts:
hw/ioapic.c
Signed-off-by: Avi Kivity <avi at redhat.com>
commit 53d6be977096cbeb9f3941437e1c36a6d47b3ed3
Merge: e80601494369f8b3f542185d75139a77d0e66853 35a74c5c5941b474d8b985237e1bde0b8cd2a20f
Author: Avi Kivity <avi at redhat.com>
Date: Sun Feb 13 16:47:59 2011 +0200
Merge commit '35a74c5c5941b474d8b985237e1bde0b8cd2a20f' into upstream-merge
* commit '35a74c5c5941b474d8b985237e1bde0b8cd2a20f':
ioapic: Save/restore irr
Conflicts:
hw/ioapic.c
Signed-off-by: Avi Kivity <avi at redhat.com>
commit e80601494369f8b3f542185d75139a77d0e66853
Merge: 080b695d7ce5d21f9db7f4ad87f1d1f5bcf37660 0280b571c1a153f8926612d8c8d7359242d596f5
Author: Avi Kivity <avi at redhat.com>
Date: Sun Feb 13 16:46:53 2011 +0200
Merge commit '0280b571c1a153f8926612d8c8d7359242d596f5' into upstream-merge
* commit '0280b571c1a153f8926612d8c8d7359242d596f5':
ioapic: Implement EOI handling for level-triggered IRQs
vnc: qemu can die if the client is disconnected while updating screen
virtio-serial: Make sure virtqueue is ready before discarding data
ui/sdl: Fix handling of caps lock and num lock keys
Unify alarm deadline computation
Correct alarm deadline computation
use nanoseconds everywhere for timeout computation
savevm: fix corruption in vmstate_subsection_load().
Conflicts:
hw/ioapic.c
Signed-off-by: Avi Kivity <avi at redhat.com>
commit 080b695d7ce5d21f9db7f4ad87f1d1f5bcf37660
Author: Avi Kivity <avi at redhat.com>
Date: Wed Feb 9 13:46:48 2011 +0200
Close all block drivers on quit
Following 2bc93fed76c89f7adaa0e5bb3, close all block drivers on quit.
Fixes qcow2 data loss after quit due to qcowcache being volatile.
Signed-off-by: Avi Kivity <avi at redhat.com>
commit 16fde5f2c2788232b16c06d34d0459a5c1ec1f6c
Author: Kevin Wolf <kwolf at redhat.com>
Date: Wed Feb 9 17:36:19 2011 +0100
qcow2: Fix order in L2 table COW
When copying L2 tables (this happens only with internal snapshots), the order
wasn't completely safe, so that after a crash you could end up with a L2 table
that has too low refcount, possibly leading to corruption in the long run.
This patch puts the operations in the right order: First allocate the new
L2 table and replace the reference, and only then decrease the refcount of the
old table.
Signed-off-by: Kevin Wolf <kwolf at redhat.com>
commit a9ae2bffea62ce5158be7475fe41e5fba6d026c1
Author: Markus Armbruster <armbru at redhat.com>
Date: Tue Feb 8 15:12:39 2011 +0100
blockdev: Plug memory leak in drive_init() error paths
Should have spotted this when doing commit 319ae529.
Signed-off-by: Markus Armbruster <armbru at redhat.com>
Signed-off-by: Kevin Wolf <kwolf at redhat.com>
commit 2753d4a5fa44d980cc6a279f323a12ca8d172972
Author: Markus Armbruster <armbru at redhat.com>
Date: Tue Feb 8 15:12:38 2011 +0100
blockdev: Plug memory leak in drive_uninit()
Started leaking in commit 1dae12e6.
Signed-off-by: Markus Armbruster <armbru at redhat.com>
Signed-off-by: Kevin Wolf <kwolf at redhat.com>
commit b9eaf9ecb15a9c69a592f386159163d5efc3b919
Author: Kevin Wolf <kwolf at redhat.com>
Date: Wed Feb 9 11:25:53 2011 +0100
qemu-img: Improve error messages for failed bdrv_open
Output the error message string of the bdrv_open return code. Also set a
non-empty device name for the images because the unknown feature error message
includes it.
Signed-off-by: Kevin Wolf <kwolf at redhat.com>
Reviewed-by: Anthony Liguori <aliguori at us.ibm.com>
commit 10b758e85c9b38b4b370cff81435f6ed26024a26
Author: Kevin Wolf <kwolf at redhat.com>
Date: Wed Feb 9 11:13:26 2011 +0100
qed: Report error for unsupported features
Instead of just returning -ENOTSUP, generate a more detailed error.
Unfortunately we don't have a helpful text for features that we don't know yet,
so just print the feature mask. It might be useful at least if someone asks for
help.
Signed-off-by: Kevin Wolf <kwolf at redhat.com>
Reviewed-by: Anthony Liguori <aliguori at us.ibm.com>
Acked-by: Stefan Hajnoczi <stefanha at linux.vnet.ibm.com>
commit e8cdcec123facf0ed273d941caeeeb9b08f14955
Author: Kevin Wolf <kwolf at redhat.com>
Date: Wed Feb 9 11:11:07 2011 +0100
qcow2: Report error for version > 2
The qcow2 driver is now declared responsible for any QCOW image that has
version 2 or greater (before this, version 3 would be detected as raw).
For everything newer than version 2, an error is reported.
Signed-off-by: Kevin Wolf <kwolf at redhat.com>
Reviewed-by: Anthony Liguori <aliguori at us.ibm.com>
commit f54e3641122e51c6343d587805422642f307462e
Author: Kevin Wolf <kwolf at redhat.com>
Date: Wed Feb 9 11:09:38 2011 +0100
qerror: Add QERR_UNKNOWN_BLOCK_FORMAT_FEATURE
Signed-off-by: Kevin Wolf <kwolf at redhat.com>
Reviewed-by: Anthony Liguori <aliguori at us.ibm.com>
commit 8af364884355b3f0c5d60a2d2f427927739658ea
Author: Kevin Wolf <kwolf at redhat.com>
Date: Wed Feb 9 10:26:06 2011 +0100
qcow2: Fix error handling for reading compressed clusters
When reading a compressed cluster failed, qcow2 falsely returned success.
Signed-off-by: Kevin Wolf <kwolf at redhat.com>
Reviewed-by: Markus Armbruster <armbru at redhat.com>
commit 3ab4c7e92d39d40e6dc0bdb1c2320889543691cb
Author: Kevin Wolf <kwolf at redhat.com>
Date: Tue Feb 8 18:12:35 2011 +0100
qcow2: Fix error handling for immediate backing file read failure
Requests could return success even though they failed when bdrv_aio_readv
returned NULL for a backing file read.
Reported-by: Chunqiang Tang <ctang at us.ibm.com>
Signed-off-by: Kevin Wolf <kwolf at redhat.com>
commit e0d9c6f93729c9bfc98fcafcd73098bb8e131aeb
Author: Chunqiang Tang <ctang at us.ibm.com>
Date: Thu Feb 3 10:12:49 2011 -0500
QCOW2: bug fix - read base image beyond its size
This patch fixes the following bug in QCOW2. For a QCOW2 image that is larger
than its base image, when handling a read request straddling over the end of the
base image, the QCOW2 driver attempts to read beyond the end of the base image
and the request would fail.
This bug was found by Fast Virtual Disk (FVD)'s fully automated testing tool.
The following test triggered the bug.
dd if=/dev/zero of=/var/ramdisk/truth.raw count=0 bs=1 seek=1098561536
dd if=/dev/zero of=/var/ramdisk/zero-500M.raw count=0 bs=1 seek=593099264
./qemu-img create -f qcow2 -ocluster_size=65536,backing_fmt=blksim -b /var/ramdisk/zero-500M.raw /var/ramdisk/test.qcow2 1098561536
./qemu-io --auto --seed=30477694 --truth=/var/ramdisk/truth.raw --format=qcow2 --test=blksim:/var/ramdisk/test.qcow2 --verify_write=true --compare_before=false --compare_after=true --round=100000 --parallel=100 --io_size=10485760 --fail_prob=0 --cancel_prob=0 --instant_qemubh=true
Signed-off-by: Chunqiang Tang <ctang at us.ibm.com>
Signed-off-by: Kevin Wolf <kwolf at redhat.com>
commit 982aa95532a3a7b549695d5b3e18442975eecfb5
Author: Jes Sorensen <Jes.Sorensen at redhat.com>
Date: Fri Feb 4 09:22:14 2011 +0100
Change snapshot_blkdev hmp to use correct argument type for device
Pointed out by Markus
Signed-off-by: Jes Sorensen <Jes.Sorensen at redhat.com>
Signed-off-by: Kevin Wolf <kwolf at redhat.com>
commit 3593e6b592067d4a9a0131deedbe2581a9763548
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Thu Feb 3 06:57:46 2011 -0200
qemu-kvm-x86: initialize has_msr_star/has_msr_hsave_pa
Fixes 64-bit guest migration.
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 4d330984eea55b7c7005e63710597bf72f84f753
Merge: 6f32e3d09d990fd50008756fcb446b55e0c0af79 825cc54385606bc5e471da985ff7d695da249a8f
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Wed Feb 2 20:22:40 2011 -0200
Merge branch 'upstream-merge'
* upstream-merge: (177 commits)
Open up the 0.15 development branch
Update version for 0.14.0-rc0
Update SeaBIOS to 0.6.1.2
vhost: force vhost off for non-MSI guests
tap: safe sndbuf default
Add boot index documentation.
Add bootindex handling into usb storage device.
fix QemuOpts leak
remove text_console_opts
add set_echo implementation for text consoles
create TextConsole together with the CharDeviceState
add set_echo implementation for qemu_chr_stdio
move atexit(term_exit) and O_NONBLOCK to qemu_chr_open_stdio
add qemu_chr_set_echo
remove broken code for tty
vnc: Fix password expiration through 'change vnc ""' (v2)
linux-user: avoid gcc array overrun warning for sparc
hw/slavio_intctl.c: fix gcc warning about array bounds overrun
SPARC: Fix Leon3 cache control
blockdev: Fix drive_add for drives without media
...
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 825cc54385606bc5e471da985ff7d695da249a8f
Merge: 2d2339f995d7176dcb2de10d162aed323a1ffbf3 bfddb47a343b4718e5768aa80bce8adead0f7fca
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Wed Feb 2 20:20:35 2011 -0200
Merge commit 'bfddb47a343b4718e5768aa80bce8adead0f7fca' into upstream-merge
* commit 'bfddb47a343b4718e5768aa80bce8adead0f7fca':
Open up the 0.15 development branch
Update version for 0.14.0-rc0
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 2d2339f995d7176dcb2de10d162aed323a1ffbf3
Merge: 16b0249ee000c083c359a419bad4b460a465b3b8 f487d6278f75f84378833b8c3a67443346d639dc
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Wed Feb 2 20:18:11 2011 -0200
Merge commit 'f487d6278f75f84378833b8c3a67443346d639dc' into upstream-merge
* commit 'f487d6278f75f84378833b8c3a67443346d639dc': (140 commits)
Update SeaBIOS to 0.6.1.2
vhost: force vhost off for non-MSI guests
tap: safe sndbuf default
Add boot index documentation.
Add bootindex handling into usb storage device.
fix QemuOpts leak
remove text_console_opts
add set_echo implementation for text consoles
create TextConsole together with the CharDeviceState
add set_echo implementation for qemu_chr_stdio
move atexit(term_exit) and O_NONBLOCK to qemu_chr_open_stdio
add qemu_chr_set_echo
remove broken code for tty
vnc: Fix password expiration through 'change vnc ""' (v2)
linux-user: avoid gcc array overrun warning for sparc
hw/slavio_intctl.c: fix gcc warning about array bounds overrun
SPARC: Fix Leon3 cache control
blockdev: Fix drive_add for drives without media
blockdev: Replace drive_add()'s fmt, ... by optstr parameter
blockdev: Reject multiple definitions for the same drive
...
Conflicts:
roms/seabios
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 16b0249ee000c083c359a419bad4b460a465b3b8
Merge: 774dce1308b01518571795825e46d6f4104ee251 94a8d39afd8ccfdbf578af04c3385fdb5f545af1
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Wed Feb 2 19:29:32 2011 -0200
Merge commit '94a8d39afd8ccfdbf578af04c3385fdb5f545af1' into upstream-merge
* commit '94a8d39afd8ccfdbf578af04c3385fdb5f545af1':
kvm: Consolidate must-have capability checks
Conflicts:
kvm-all.c
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 774dce1308b01518571795825e46d6f4104ee251
Merge: b13181147c92a61768ed7dd030830c35585456eb cad1e2827b616487e3574300f2eaeea13a355197
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Wed Feb 2 19:11:35 2011 -0200
Merge commit 'cad1e2827b616487e3574300f2eaeea13a355197' into upstream-merge
* commit 'cad1e2827b616487e3574300f2eaeea13a355197':
kvm: Drop smp_cpus argument from init functions
kvm: x86: Fix !CONFIG_KVM_PARA build
kvm: x86: Reset paravirtual MSRs
Conflicts:
kvm-all.c
kvm.h
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit b13181147c92a61768ed7dd030830c35585456eb
Merge: 509573a62753ca2263aca029b82f24e3b4731826 c3a3a7d356c4df2fe145037172ae52cba5f545a5
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Wed Feb 2 18:47:30 2011 -0200
Merge commit 'c3a3a7d356c4df2fe145037172ae52cba5f545a5' into upstream-merge
* commit 'c3a3a7d356c4df2fe145037172ae52cba5f545a5':
kvm: x86: Refactor msr_star/hsave_pa setup and checks
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 509573a62753ca2263aca029b82f24e3b4731826
Merge: 5347982c9243c789a7768ec52c35ff1de41858b4 1a5e9d2fafa5d31587e218cea462637bfad52b53
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Wed Feb 2 18:35:42 2011 -0200
Merge commit '1a5e9d2fafa5d31587e218cea462637bfad52b53' into upstream-merge
* commit '1a5e9d2fafa5d31587e218cea462637bfad52b53':
kvm: x86: Fix xcr0 reset mismerge
Conflicts:
target-i386/kvm.c
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 5347982c9243c789a7768ec52c35ff1de41858b4
Merge: 06206483986326dec6425fda889615ba10f5b78b 3390e7f79784cbc75df408740cda4edbcf57ac58
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Wed Feb 2 18:27:32 2011 -0200
Merge commit '3390e7f79784cbc75df408740cda4edbcf57ac58' into upstream-merge
* commit '3390e7f79784cbc75df408740cda4edbcf57ac58':
kvm: x86: Remove redundant mp_state initialization
kvm: x86: Prepare kvm_get_mp_state for in-kernel irqchip
kvm: x86: Align kvm_arch_put_registers code with comment
x86: Optionally dump code bytes on cpu_dump_state
kvm: Improve reporting of fatal errors
kvm: Stop on all fatal exit reasons
kvm: x86: Swallow KVM_EXIT_SET_TPR
kvm: Fix coding style violations
Conflicts:
target-i386/kvm.c
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 06206483986326dec6425fda889615ba10f5b78b
Merge: a508e1f8868c3c9a7565b18b208e4296315c5a30 b9bec74bcb16519a876ec21cd5277c526a9b512d
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Wed Feb 2 17:52:54 2011 -0200
Merge commit 'b9bec74bcb16519a876ec21cd5277c526a9b512d' into upstream-merge
* commit 'b9bec74bcb16519a876ec21cd5277c526a9b512d':
kvm: x86: Fix a few coding style violations
kvm: x86: Prevent sign extension of DR7 in guest debugging mode
kvm: x86: Remove obsolete SS.RPL/DPL aligment
kvm: x86: Fix DPL write back of segment registers
Conflicts:
target-i386/kvm.c
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit a508e1f8868c3c9a7565b18b208e4296315c5a30
Merge: 920eafdc87e867a7da8af21b4512ca5372da60de 7cc2cc3e2608b182f1e0fc7ecae6e3b1fa4f46e0
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Wed Feb 2 17:43:06 2011 -0200
Merge commit '7cc2cc3e2608b182f1e0fc7ecae6e3b1fa4f46e0' into upstream-merge
* commit '7cc2cc3e2608b182f1e0fc7ecae6e3b1fa4f46e0':
kvm: introduce kvm_inject_x86_mce_on
kvm: kvm_mce_inj_* subroutines for templated error injections
kvm: introduce kvm_mce_in_progress
Add function for checking mca broadcast of CPU
Conflicts:
target-i386/kvm.c
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 920eafdc87e867a7da8af21b4512ca5372da60de
Merge: 99f49536370b440c45c5b6e962b12b1ad95451ed 31ce5e0c49821d92fb30cce2f3055ef33613b287
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Wed Feb 2 16:57:21 2011 -0200
Merge commit '31ce5e0c49821d92fb30cce2f3055ef33613b287' into upstream-merge
* commit '31ce5e0c49821d92fb30cce2f3055ef33613b287':
Add "broadcast" option for mce command
Clean up cpu_inject_x86_mce()
kvm: convert kvm_ioctl(KVM_CHECK_EXTENSION) to kvm_check_extension()
kvm: Enable user space NMI injection for kvm guest
Conflicts:
target-i386/kvm.c
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 99f49536370b440c45c5b6e962b12b1ad95451ed
Merge: 6f32e3d09d990fd50008756fcb446b55e0c0af79 225d02cd1a34d5d87e8acefbf8e244a5d12f5f8c
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Wed Feb 2 16:46:27 2011 -0200
Merge commit '225d02cd1a34d5d87e8acefbf8e244a5d12f5f8c' into upstream-merge
* commit '225d02cd1a34d5d87e8acefbf8e244a5d12f5f8c':
Avoid deadlock whith iothread and icount
microblaze: cleanup helper_addkc
microblaze: Improve subkc
microblaze: Fix 3rd addkc arg when rd is r0
microblaze: Improve addkc
microblaze: Remove debug leftovers.
microblaze: Reorganize for future patches
ppc: Correct BookE tlb reads
checkpatch: Fix bracing false positives on #else
Conflicts:
qemu-timer.c
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 6f32e3d09d990fd50008756fcb446b55e0c0af79
Merge: f447f8c6ed07302f2f594d171a7fbf716c7d2d4e 0f46d152542a7186a01420b2bb22679a4dffa9f7
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Fri Jan 21 20:34:47 2011 -0200
Merge branch 'upstream-merge'
* upstream-merge: (221 commits)
sm501: fix screen redraw
checkpatch: adjust to QEMUisms
Add checkpatch.pl from Linux kernel
Add scripts directory
gt64xxx: set isa_mem_base during registration
hw/pl190.c: Fix writing of default vector address
target-ppc: fix wrong NaN tests
target-ppc: fix sNaN propagation
pci: use qemu_malloc() in pcibus_get_dev_path()
msix: simplify write config
msi: simplify write config a bit.
pci: deassert intx on reset.
pxa2xx_lcd: restore updating of display
pxa2xx: fix vmstate_pxa2xx_i2c
scoop: fix access to registers from second instance
mainstone: fix name of the allocated memory for roms
add bepo (french dvorak) keyboard layout
stc91c111: Implement save/restore
pl080: Implement save/restore
pl110: Implement save/restore
...
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 0f46d152542a7186a01420b2bb22679a4dffa9f7
Merge: adb76372d9b324468da0bf9ca707da94c0adf209 b947c12c0bb217fe09968e652873e0d22b269d68
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Fri Jan 21 20:33:00 2011 -0200
Merge commit 'b947c12c0bb217fe09968e652873e0d22b269d68' into upstream-merge
* commit 'b947c12c0bb217fe09968e652873e0d22b269d68': (130 commits)
sm501: fix screen redraw
checkpatch: adjust to QEMUisms
Add checkpatch.pl from Linux kernel
Add scripts directory
gt64xxx: set isa_mem_base during registration
hw/pl190.c: Fix writing of default vector address
target-ppc: fix wrong NaN tests
target-ppc: fix sNaN propagation
pci: use qemu_malloc() in pcibus_get_dev_path()
msix: simplify write config
msi: simplify write config a bit.
pci: deassert intx on reset.
pxa2xx_lcd: restore updating of display
pxa2xx: fix vmstate_pxa2xx_i2c
scoop: fix access to registers from second instance
mainstone: fix name of the allocated memory for roms
add bepo (french dvorak) keyboard layout
stc91c111: Implement save/restore
pl080: Implement save/restore
pl110: Implement save/restore
...
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit adb76372d9b324468da0bf9ca707da94c0adf209
Merge: 966eb0dfc6c080e9b870615baa27925414ec7a51 668643b025dcff72b9b18adb5df794be9e9be5dc
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Fri Jan 21 18:12:11 2011 -0200
Merge commit '668643b025dcff72b9b18adb5df794be9e9be5dc' into upstream-merge
* commit '668643b025dcff72b9b18adb5df794be9e9be5dc':
acpi_piix4: expose no_hotplug attribute via i/o port
document QEMU<->ACPIBIOS PCI hotplug interface
virtio-serial-bus: bump up control vq size to 32
ioeventfd: error handling cleanup
docs: Document virtio PCI -device ioeventfd=on|off
virtio-pci: Use ioeventfd for virtqueue notify
Conflicts:
hw/acpi_piix4.c
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 966eb0dfc6c080e9b870615baa27925414ec7a51
Merge: 777c5d1864bb3e218338c8328d7cce269fa51c5c d2f2b8a740c82319f9eea51ebed50815fbc3da3e
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Fri Jan 21 17:41:31 2011 -0200
Merge commit 'd2f2b8a740c82319f9eea51ebed50815fbc3da3e' into upstream-merge
* commit 'd2f2b8a740c82319f9eea51ebed50815fbc3da3e':
kvm: test for ioeventfd support on old kernels
virtio: move vmstate change tracking to core
virtio-pci: Rename bugs field to flags
qxl: tag as not hotpluggable
vga: tag as not hotplugable.
piix: tag as not hotpluggable.
pci: allow devices being tagged as not hotpluggable.
rtl8139: Use subsection to restrict migration after hotplug
qdev: Track runtime machine modifications
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 777c5d1864bb3e218338c8328d7cce269fa51c5c
Merge: 4db75cca31700219ea07672758c0daae7e7a28ef a8bd70ad3b62701037e9f3a996762ca7c29581a2
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Fri Jan 21 17:25:02 2011 -0200
Merge commit 'a8bd70ad3b62701037e9f3a996762ca7c29581a2' into upstream-merge
* commit 'a8bd70ad3b62701037e9f3a996762ca7c29581a2':
fix spelling of $pkg_config, move default together with other cross tools
provide portable HOST_LONG_BITS test
do not pass bogus $(SRC_PATH) include paths to cc during configure
test cc with the complete set of chosen flags
fix sparse support (?)
Conflicts:
configure
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 4db75cca31700219ea07672758c0daae7e7a28ef
Merge: ea2144dd66bf1e72067b032dae1284febc1a4f6a 377529c009e3fce480d9c233bb3238b14a950816
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Fri Jan 21 17:09:31 2011 -0200
Merge commit '377529c009e3fce480d9c233bb3238b14a950816' into upstream-merge
* commit '377529c009e3fce480d9c233bb3238b14a950816': (64 commits)
move feature variables to the top
default make and install to environment variables
default compilation tools to environment variables
microblaze: Improve unconditional direct branching
cris: Set btaken when storing direct jumps
slirp: Use strcasecmp() to check tftp mode, tsize
ppc405_uc: fix a buffer overflow
lan9118: fix a buffer overflow
vpc: fix a file descriptor leak
qemu-io: fix a memory leak
vvfat: fix a file descriptor leak
loader: fix a file descriptor leak
vnc-auth-sasl: fix a memory leak
audio: split sample conversion and volume mixing
disas: remove opcode printing on ARM hosts
arm-dis: Include opcode hex when doing disassembly
tcg arm/mips/ia64: add a comment about retranslation and caches
linux-user: Add configure check for linux/fiemap.h and IOC_FS_FIEMAP
ARM: Fix decoding of VQSHL/VQSHLU immediate forms
ARM: add neon helpers for VQSHLU
...
Conflicts:
configure
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit ea2144dd66bf1e72067b032dae1284febc1a4f6a
Merge: f447f8c6ed07302f2f594d171a7fbf716c7d2d4e b3a29fd5604841dac8bfee1bac35f150cab976fb
Author: Marcelo Tosatti <mtosatti at redhat.com>
Date: Fri Jan 21 16:49:59 2011 -0200
Merge commit 'b3a29fd5604841dac8bfee1bac35f150cab976fb' into upstream-merge
* commit 'b3a29fd5604841dac8bfee1bac35f150cab976fb':
build, pci: remove QMP dependency on core PCI code
pcie: add flr support
pc/piix: fix mismerge of b1aeb92666d2fde413c34578b3b42bbfe5f2a506
qdev: remove an unused function
qbus: register reset handler for qbus whose parent is NULL
qdev: sysbus_get_default must not return a NULL pointer (fix regression)
pci: don't use bus number in migration, stub out
Conflicts:
Makefile.objs
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit f447f8c6ed07302f2f594d171a7fbf716c7d2d4e
Author: Michael S. Tsirkin <mst at redhat.com>
Date: Tue Jan 18 15:42:57 2011 +0200
virtio-pci: mask notifier error handling fixups
Fix virtio-pci error handling in the mask notifiers: be careful to undo
exactly what we did so far.
Reported-by: Alex Williamson <alex.williamson at redhat.com>
Signed-off-by: Michael S. Tsirkin <mst at redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 367a9617815c0310cfba3648fe6fb3d39ce98133
Author: Alex Williamson <alex.williamson at redhat.com>
Date: Mon Jan 17 10:17:49 2011 -0700
device-assignment: Properly terminate vmsd.fields
The vmsd code expects the fields structure to be properly terminated,
not NULL. An assigned device should never be saved or restored, and
recent qemu fixes to the no_migrate flag should ensure this, but let's
avoid setting the wrong precedent.
Signed-off-by: Alex Williamson <alex.williamson at redhat.com>
Acked-by: Juan Quintela <quintela at redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
commit 54ccaa575d588602148a018dffdb332c0aa861ad
Author: Gleb Natapov <gleb at redhat.com>
Date: Mon Jan 10 11:54:54 2011 +0200
add bootindex parameter to assigned device
Signed-off-by: Gleb Natapov <gleb at redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
More information about the Spice-commits
mailing list