- Aug 20, 2013
-
-
Anthony Liguori authored
# By Stefan Hajnoczi # Via Stefan Hajnoczi * stefanha/block-next: aio: drop io_flush argument tests: drop event_active_cb() thread-pool: drop thread_pool_active() dataplane/virtio-blk: drop flush_true() and flush_io() block/ssh: drop return_true() block/sheepdog: drop have_co_req() and aio_flush_request() block/rbd: drop qemu_rbd_aio_flush_cb() block/nbd: drop nbd_have_request() block/linux-aio: drop qemu_laio_completion_cb() block/iscsi: drop iscsi_process_flush() block/gluster: drop qemu_gluster_aio_flush_cb() block/curl: drop curl_aio_flush() aio: stop using .io_flush() tests: adjust test-thread-pool to new aio_poll() semantics tests: adjust test-aio to new aio_poll() semantics dataplane/virtio-blk: check exit conditions before aio_poll() block: stop relying on io_flush() in bdrv_drain_all() block: ensure bdrv_drain_all() works during bdrv_delete() Message-id: 1376921877-9576-1-git-send-email-stefanha@redhat.com Signed-off-by:
Anthony Liguori <anthony@codemonkey.ws>
-
Anthony Liguori authored
# By Richard Henderson # Via Richard Henderson * rth/axp-next: target-alpha: Implement the typhoon iommu target-alpha: Consider the superpage when threading and ending TBs target-alpha: Use goto_tb in call_pal target-alpha: Implement call_pal without an exception Message-id: 1376720412-2165-1-git-send-email-rth@twiddle.net Signed-off-by:
Anthony Liguori <anthony@codemonkey.ws>
-
Anthony Liguori authored
QOM CPUState refactorings / X86CPU * gdbstub coprocessor register count bugfix * QOM instance_post_init infrastructure to override dynamic properties * X86CPU HyperV preparations for CPU subclasses # gpg: Signature made Fri 16 Aug 2013 11:49:02 AM CDT using RSA key ID 3E7E013F # gpg: Can't check signature: public key not found # By Eduardo Habkost (3) and others # Via Andreas Färber * afaerber/tags/qom-cpu-for-anthony: cpus: Use cpu_is_stopped() efficiently target-i386: Move hyperv_* static globals to X86CPU qdev: Set globals in instance_post_init function qom: Introduce instance_post_init hook tests: Unit tests for qdev global properties handling gdbstub: Fix gdb_register_coprocessor() register counting
-
- Aug 19, 2013
-
-
Stefan Hajnoczi authored
The .io_flush() handler no longer exists and has no users. Drop the io_flush argument to aio_set_fd_handler() and related functions. The AioFlushEventNotifierHandler and AioFlushHandler typedefs are no longer used and are dropped too. Reviewed-by:
Paolo Bonzini <pbonzini@redhat.com> Signed-off-by:
Stefan Hajnoczi <stefanha@redhat.com>
-
Stefan Hajnoczi authored
Drop the io_flush argument to aio_set_event_notifier(). Reviewed-by:
Paolo Bonzini <pbonzini@redhat.com> Signed-off-by:
Stefan Hajnoczi <stefanha@redhat.com>
-
Stefan Hajnoczi authored
.io_flush() is no longer called so drop thread_pool_active(). The block layer is the only thread-pool.c user and it already tracks in-flight requests, therefore we do not need thread_pool_active(). Signed-off-by:
Stefan Hajnoczi <stefanha@redhat.com>
-
Stefan Hajnoczi authored
.io_flush() is no longer called so drop flush_true() and flush_io(). Signed-off-by:
Stefan Hajnoczi <stefanha@redhat.com>
-
Stefan Hajnoczi authored
.io_flush() is no longer called so drop return_true(). Signed-off-by:
Stefan Hajnoczi <stefanha@redhat.com>
-
Stefan Hajnoczi authored
.io_flush() is no longer called so drop have_co_req() and aio_flush_request(). Signed-off-by:
Stefan Hajnoczi <stefanha@redhat.com>
-
Stefan Hajnoczi authored
.io_flush() is no longer called so drop qemu_rbd_aio_flush_cb(). qemu_aio_count is unused now so drop it too. Signed-off-by:
Stefan Hajnoczi <stefanha@redhat.com>
-
Stefan Hajnoczi authored
.io_flush() is no longer called so drop nbd_have_request(). We cannot drop in_flight since it is still used by other block/nbd.c code. Signed-off-by:
Stefan Hajnoczi <stefanha@redhat.com>
-
Stefan Hajnoczi authored
.io_flush() is no longer called so drop qemu_laio_completion_cb(). It turns out that count is now unused so drop that too. Signed-off-by:
Stefan Hajnoczi <stefanha@redhat.com>
-
Stefan Hajnoczi authored
.io_flush() is no longer called so drop iscsi_process_flush(). Signed-off-by:
Stefan Hajnoczi <stefanha@redhat.com>
-
Stefan Hajnoczi authored
Since .io_flush() is no longer called we do not need qemu_gluster_aio_flush_cb() anymore. It turns out that qemu_aio_count is unused now and can be dropped. Thanks to Bharata B Rao <bharata@linux.vnet.ibm.com> for catching a build failure with CONFIG_GLUSTERFS_DISCARD, which has been fixed. Signed-off-by:
Stefan Hajnoczi <stefanha@redhat.com>
-
Anthony Liguori authored
My IBM email address will be unaccessible after August 23rd, 2013. Signed-off-by:
Anthony Liguori <anthony@codemonkey.ws>
-
Stefan Hajnoczi authored
.io_flush() is no longer called so drop curl_aio_flush(). The acb[] array that the function checks is still used in other parts of block/curl.c. Therefore we cannot remove acb[], it is needed. Signed-off-by:
Stefan Hajnoczi <stefanha@redhat.com>
-
Stefan Hajnoczi authored
Now that aio_poll() users check their termination condition themselves, it is no longer necessary to call .io_flush() handlers. The behavior of aio_poll() changes as follows: 1. .io_flush() is no longer invoked and file descriptors are *always* monitored. Previously returning 0 from .io_flush() would skip this file descriptor. Due to this change it is essential to check that requests are pending before calling qemu_aio_wait(). Failure to do so means we block, for example, waiting for an idle iSCSI socket to become readable when there are no requests. Currently all qemu_aio_wait()/aio_poll() callers check before calling. 2. aio_poll() now returns true if progress was made (BH or fd handlers executed) and false otherwise. Previously it would return true whenever 'busy', which means that .io_flush() returned true. The 'busy' concept no longer exists so just progress is returned. Due to this change we need to update tests/test-aio.c which asserts aio_poll() return values. Note that QEMU doesn't actually rely on these return values so only tests/test-aio.c cares. Note that ctx->notifier, the EventNotifier fd used for aio_notify(), is now handled as a special case. This is a little ugly but maintains aio_poll() semantics, i.e. aio_notify() does not count as 'progress' and aio_poll() avoids blocking when the user has not set any fd handlers yet. Patches after this remove .io_flush() handler code until we can finally drop the io_flush arguments to aio_set_fd_handler() and friends. Reviewed-by:
Paolo Bonzini <pbonzini@redhat.com> Signed-off-by:
Stefan Hajnoczi <stefanha@redhat.com>
-
Stefan Hajnoczi authored
aio_poll(ctx, true) will soon block when fd handlers have been set. Previously aio_poll() would return early if all .io_flush() returned false. This means we need to check the equivalent of the .io_flush() condition *before* calling aio_poll(ctx, true) to avoid deadlock. Reviewed-by:
Paolo Bonzini <pbonzini@redhat.com> Signed-off-by:
Stefan Hajnoczi <stefanha@redhat.com>
-
Stefan Hajnoczi authored
aio_poll(ctx, true) will soon block if any fd handlers have been set. Previously it would only block when .io_flush() returned true. This means that callers must check their wait condition *before* aio_poll() to avoid deadlock. Reviewed-by:
Paolo Bonzini <pbonzini@redhat.com> Signed-off-by:
Stefan Hajnoczi <stefanha@redhat.com>
-
Stefan Hajnoczi authored
Check exit conditions before entering blocking aio_poll(). This is mainly for consistency since it's unlikely that we are stopping in the first event loop iteration. Signed-off-by:
Stefan Hajnoczi <stefanha@redhat.com>
-
Stefan Hajnoczi authored
If a block driver has no file descriptors to monitor but there are still active requests, it can return 1 from .io_flush(). This is used to spin during synchronous I/O. Stop relying on .io_flush() and instead check QLIST_EMPTY(&bs->tracked_requests) to decide whether there are active requests. This is the first step in removing .io_flush() so that event loops no longer need to have the concept of synchronous I/O. Eventually we may be able to kill synchronous I/O completely by running everything in a coroutine, but that is future work. Note this patch moves bs->throttled_reqs initialization to bdrv_new() so that bdrv_requests_pending(bs) can safely access it. In practice bs is g_malloc0() so the memory is already zeroed but it's safer to initialize the queue properly. We also need to fix up block/stream.c:close_unused_images() to prevent traversing a dangling pointer while it rearranges the backing file chain. This is necessary since the new bdrv_drain_all() traverses the backing file chain. Signed-off-by:
Stefan Hajnoczi <stefanha@redhat.com>
-
Stefan Hajnoczi authored
In bdrv_delete() make sure to call bdrv_make_anon() *after* bdrv_close() so that the device is still seen by bdrv_drain_all() when iterating bdrv_states. Cc: qemu-stable@nongnu.org Signed-off-by:
Stefan Hajnoczi <stefanha@redhat.com>
-
- Aug 16, 2013
-
-
Richard Henderson authored
Signed-off-by:
Richard Henderson <rth@twiddle.net>
-
Richard Henderson authored
This allows significantly more threading, and occasionally larger TBs, when processing code for the kernel and PALcode. Signed-off-by:
Richard Henderson <rth@twiddle.net>
-
Richard Henderson authored
With appropriate flushing when the PALBR changes, the target of a CALL_PAL is so predictable we can chain to it. Signed-off-by:
Richard Henderson <rth@twiddle.net>
-
Richard Henderson authored
The destination of the call_pal, and the cpu state, is very predictable; there's no need for exiting the cpu loop. Signed-off-by:
Richard Henderson <rth@twiddle.net>
-
Tiejun Chen authored
It makes more sense and will make things simpler later. Signed-off-by:
Tiejun Chen <tiejun.chen@windriver.com> Signed-off-by:
Andreas Färber <afaerber@suse.de>
-
Igor Mammedov authored
- since hyperv_* helper functions are used only in target-i386/kvm.c move them there as static helpers Requested-by:
Eduardo Habkost <ehabkost@redhat.com> Signed-off-by:
Igor Mammedov <imammedo@redhat.com> Signed-off-by:
Andreas Färber <afaerber@suse.de>
-
Eduardo Habkost authored
This way, properties registered in the instance_init function of child classes will be handled properly by qdev_prop_set_globals(), too. Includes a unit test for the new functionality. Signed-off-by:
Eduardo Habkost <ehabkost@redhat.com> Signed-off-by:
Andreas Färber <afaerber@suse.de>
-
Eduardo Habkost authored
This will allow classes to specify a function to be called after all instance_init functions were called. This will be used by DeviceState to call qdev_prop_set_globals() at the right moment. Signed-off-by:
Eduardo Habkost <ehabkost@redhat.com> Signed-off-by:
Andreas Färber <afaerber@suse.de>
-
Eduardo Habkost authored
This tests the qdev global-properties handling code. Signed-off-by:
Eduardo Habkost <ehabkost@redhat.com> Signed-off-by:
Andreas Färber <afaerber@suse.de>
-
Andreas Färber authored
Commit a0e372f0 reorganized the register counting for GDB. While it seems correct not to let the total number of registers skyrocket in an SMP scenario through a static variable, the distinction between total register count and 'g' packet register count (last_reg vs. num_g_regs) got lost among the way. Fix this by introducing CPUState::gdb_num_g_regs and using that in gdb_handle_packet(). Reported-by:
Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Cc: qemu-stable@nongnu.org (stable-1.6) Tested-by:
Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Tested-by:
Max Filippov <jcmvbkbc@gmail.com> Tested-by:
Peter Maydell <peter.maydell@linaro.org> Signed-off-by:
Andreas Färber <afaerber@suse.de>
-
- Aug 15, 2013
-
-
Anthony Liguori authored
Signed-off-by:
Anthony Liguori <aliguori@us.ibm.com>
-
Anthony Liguori authored
Signed-off-by:
Anthony Liguori <aliguori@us.ibm.com>
-
- Aug 14, 2013
-
-
Aurelien Jarno authored
Since commit c658b94f, MIPS raises exceptions when accessing invalid memory. This is not the correct behaviour for MIPS Malta Core LV, as the GT-64120A system controller just ignore undecoded access. This feature is used by the Linux kernel to probe for some devices. Emulate the correct behaviour in QEMU by adding an empty slot covering the entire memory space decoded by the GT-64120A. Tested-by:
Stefan Weil <sw@weilnetz.de> Signed-off-by:
Aurelien Jarno <aurelien@aurel32.net>
-
M. Mohan Kumar authored
bdrv_flags is set by bdrv_parse_discard_flags(), but later it is reset to zero. Signed-off-by:
M. Mohan Kumar <mohan@in.ibm.com> Message-id: 1376483201-13466-1-git-send-email-mohan@in.ibm.com Signed-off-by:
Anthony Liguori <aliguori@us.ibm.com>
-
- Aug 13, 2013
-
-
James Hogan authored
Since commit bd5c51ee (qemu-char: don't issue CHR_EVENT_OPEN in a BH), an infinite recursion occurs when putting the monitor on a pty (-monitor pty) and connecting a terminal to the slave port. This is because of the qemu_chr_be_event(s, CHR_EVENT_OPENED) added to qemu_chr_be_generic_open(). This event is captured by monitor_event() which prints a welcome message to the character device. The flush of that welcome message retriggers another open event in pty_chr_state() because it checks s->connected, but only sets it to 1 after calling qemu_chr_be_generic_open(). I've fixed this by setting s->connected = 1 before the call to qemu_chr_be_generic_open() instead of after, so that the recursive pty_chr_state() doesn't call it again. An example snippet of repeating backtrace: ... #107486 0x007aec58 in monitor_flush (mon=0xf418b0) at qemu/monitor.c:288 #107487 0x007aee7c in monitor_puts (mon=0xf418b0, str=0x1176d07 "") at qemu/monitor.c:322 #107488 0x007aef20 in monitor_vprintf (mon=0xf418b0, fmt=0x8d4820 "QEMU %s monitor - type 'help' for more information\n", ap=0x7f432be0) at qemu/monitor.c:339 #107489 0x007aefac in monitor_printf (mon=0xf418b0, fmt=0x8d4820 "QEMU %s monitor - type 'help' for more information\n") at qemu/monitor.c:347 #107490 0x007ba4bc in monitor_event (opaque=0xf418b0, event=2) at qemu/monitor.c:4699 #107491 0x00684c28 in qemu_chr_be_event (s=0xf37788, event=2) at qemu/qemu-char.c:108 #107492 0x00684c70 in qemu_chr_be_generic_open (s=0xf37788) at qemu/qemu-char.c:113 #107493 0x006880a4 in pty_chr_state (chr=0xf37788, connected=1) at qemu/qemu-char.c:1145 #107494 0x00687fa4 in pty_chr_update_read_handler (chr=0xf37788) at qemu/qemu-char.c:1121 #107495 0x00687c9c in pty_chr_write (chr=0xf37788, buf=0x70b3c008 <Address 0x70b3c008 out of bounds>, len=538720) at qemu/qemu-char.c:1063 #107496 0x00684cc4 in qemu_chr_fe_write (s=0xf37788, buf=0x70b3c008 <Address 0x70b3c008 out of bounds>, len=538720) at qemu/qemu-char.c:118 ... Signed-off-by:
James Hogan <james.hogan@imgtec.com> Tested-by:
Michael Roth <mdroth@linux.vnet.ibm.com> Message-id: 1375960178-10882-1-git-send-email-james.hogan@imgtec.com Cc: Michael Roth <mdroth@linux.vnet.ibm.com> Cc: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by:
Anthony Liguori <aliguori@us.ibm.com>
-
Anthony Liguori authored
Context matching caused the 'has_pvpanic = true' to be applied to the 1.6 machine type instead of the 1.5 machine type. Reported-by:
Markus Armbruster <armbru@redhat.com> Reported-by:
Michael S. Tsirkin <mst@redhat.com> Signed-off-by:
Anthony Liguori <aliguori@us.ibm.com>
-
- Aug 12, 2013
-
-
Anthony Liguori authored
Signed-off-by:
Anthony Liguori <aliguori@us.ibm.com>
-
Anthony Liguori authored
QOM CPUState refactorings * Fix X86CPU Westmere CPUID for pc-*-1.4 and older * afaerber/tags/qom-cpu-for-anthony: pc: Remove PCLMULQDQ from Westmere on pc-*-1.4 and older Conflicts: hw/i386/pc_piix.c hw/i386/pc_q35.c Signed-off-by:
Anthony Liguori <aliguori@us.ibm.com>
-