Go to file
Avi Kivity 5e77aaa0d7 QEMUFileBuffered: indicate that we're ready when the underlying file is ready
QEMUFileBuffered stops writing when the underlying QEMUFile is not ready,
and tells its producer so.  However, when the underlying QEMUFile becomes
ready, it neglects to pass that information along, resulting in stoppage
of all data until the next tick (a tenths of a second).

Usually this doesn't matter, because most QEMUFiles used with QEMUFileBuffered
are almost always ready, but in the case of exec: migration this is not true,
due to the small pipe buffers used to connect to the target process.  The
result is very slow migration.

Fix by detecting the readiness notification and propagating it.  The detection
is a little ugly since QEMUFile overloads put_buffer() to send it, but that's
the suject for a different patch.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2010-08-19 08:44:37 -05:00
QMP QMP: Fix python helper /wrt long return strings 2010-07-01 14:27:13 -03:00
audio audio/sdl: return on error 2010-08-07 20:04:24 +04:00
block block: Fix bdrv_has_zero_init 2010-08-03 15:57:22 +02:00
bsd-user rename CONFIG_QEMU_PREFIX 2010-06-10 00:09:49 +02:00
darwin-user Fix %lld or %llx printf format use 2010-05-22 08:02:12 +00:00
default-configs piix4: compile only once 2010-07-03 06:49:47 +00:00
docs Device specification for shared memory PCI device 2010-08-10 16:25:15 -05:00
fpu softfloat: add float32_exp2() 2010-07-13 18:18:23 +02:00
fsdev virtio-9p: Introduces an option to specify the security model. 2010-06-22 15:15:30 -05:00
gdb-xml
hw sparc escc IUS improvements (SunOS 4.1.4 fix) 2010-08-15 17:56:12 +00:00
linux-user microblaze: Fix the target version of stat64 struct 2010-08-09 10:13:33 +02:00
net Fix a warning on OpenSolaris 2010-07-31 19:40:13 +00:00
pc-bios Update OpenBIOS images 2010-07-13 20:09:24 +02:00
roms Update SeaBIOS 2010-07-13 08:55:04 -05:00
slirp slirp: Remove declarations which are no longer needed 2010-07-25 16:59:41 +02:00
sysconfigs/target Add cpu model configuration support.. 2010-02-22 16:16:17 -06:00
target-alpha remove exec-all.h inclusion from cpu.h 2010-07-03 09:48:24 +03:00
target-arm remove exec-all.h inclusion from cpu.h 2010-07-03 09:48:24 +03:00
target-cris cris: Avoid debug clobbering for both I & D MMU state. 2010-07-05 11:39:04 +02:00
target-i386 target-i386: use gen_update_cc_op() 2010-07-25 17:04:07 +02:00
target-m68k remove exec-all.h inclusion from cpu.h 2010-07-03 09:48:24 +03:00
target-microblaze microblaze: Remove unused members from the disas context 2010-07-25 00:09:41 +02:00
target-mips mips: Add support for VInt and VEIC irq modes 2010-08-06 12:21:16 +02:00
target-ppc target-ppc: fix power mode checking on 7400/7410 2010-07-19 00:33:29 +02:00
target-s390x remove exec-all.h inclusion from cpu.h 2010-07-03 09:48:24 +03:00
target-sh4 target-sh4: Add support for ldc & stc with sgr 2010-07-12 10:20:31 +02:00
target-sparc remove exec-all.h inclusion from cpu.h 2010-07-03 09:48:24 +03:00
tcg TCG: Revert ppc64 tcg_out_movi32 change 2010-08-15 00:57:40 +04:00
tests cris: Correct settls1 testcase. 2010-07-29 17:15:28 +02:00
ui win32: Avoid compiler warning (WIN32_LEAN_AND_MEAN redefined) 2010-08-15 09:46:12 +00:00
.gitignore add cscope.* to .gitignore 2010-07-25 17:03:49 +02:00
.gitmodules use absolute URLs for .gitmodules 2010-03-06 23:09:28 +01:00
CODING_STYLE CODING_STYLE: Reserve qemu_ prefix for library wrappers 2010-03-19 15:27:27 -05:00
COPYING
COPYING.LIB
Changelog
LICENSE
MAINTAINERS
Makefile ui: move all ui components in ui/ 2010-07-26 17:35:54 -05:00
Makefile.dis Compile disassemblers only once 2010-03-21 08:28:47 +00:00
Makefile.hw Clean libhw subdirs as well 2010-05-22 08:24:49 +00:00
Makefile.objs vnc: threaded VNC server 2010-07-26 17:36:14 -05:00
Makefile.target Disable build of ivshmem on non-KVM systems 2010-08-15 09:44:53 +00:00
Makefile.user
README
TODO
VERSION Update version for 0.13.x 2010-07-28 07:58:15 -05:00
a.out.h
acl.c
acl.h
aes.c
aes.h
aio.c block: fix aio_flush segfaults for read-only protocols (e.g. curl) 2010-05-21 11:49:18 +02:00
alpha-dis.c
alpha.ld
arch_init.c ramblocks: No more being lazy about duplicate names 2010-07-06 10:36:29 -05:00
arch_init.h Refactor target specific handling, compile vl.c only once 2010-03-29 19:23:52 +00:00
arm-dis.c arm: remove dead assignments, spotted by clang analyzer 2010-04-25 19:31:06 +00:00
arm-semi.c GDB exit status for semihosting 2010-06-16 13:03:51 +01:00
arm.ld
async.c
balloon.c move balloon handling to balloon.c 2010-04-09 18:55:56 +02:00
balloon.h move balloon handling to balloon.c 2010-04-09 18:55:56 +02:00
block-migration.c block migration: replace tabs by spaces. 2010-08-03 15:57:22 +02:00
block-migration.h
block.c block: Change bdrv_eject() not to drop the image 2010-08-03 15:57:22 +02:00
block.h Fix -snapshot deleting images on disk change 2010-07-26 13:39:40 +02:00
block_int.h block: Change bdrv_eject() not to drop the image 2010-08-03 15:57:22 +02:00
blockdev.c Fix -snapshot deleting images on disk change 2010-07-26 13:39:40 +02:00
blockdev.h blockdev: drive_get_by_id() is no longer used, remove 2010-07-02 13:18:02 +02:00
bswap.h Fix leul_to_cpu on big endian hosts 2010-05-31 20:55:23 +02:00
bt-host.c bt: remove dead assignments, spotted by clang analyzer 2010-04-25 18:20:28 +00:00
bt-host.h
bt-vhci.c
buffered_file.c QEMUFileBuffered: indicate that we're ready when the underlying file is ready 2010-08-19 08:44:37 -05:00
buffered_file.h
cache-utils.c FreeBSD ppc_init_cacheline_sizes(): add missing #includes 2010-03-13 01:14:01 +03:00
cache-utils.h
check-qdict.c check-qdict: Introduce test for the new iteration API 2010-07-01 14:27:13 -03:00
check-qfloat.c Fix qtypes' licenses 2010-05-19 12:45:54 -03:00
check-qint.c Fix qtypes' licenses 2010-05-19 12:45:54 -03:00
check-qjson.c Merge remote branch 'qmp/for-anthony' into staging 2010-06-14 09:39:01 -05:00
check-qlist.c Fix qtypes' licenses 2010-05-19 12:45:54 -03:00
check-qstring.c Fix qtypes' licenses 2010-05-19 12:45:54 -03:00
cmd.c qemu-io: check registered fds in command_loop() 2010-06-22 14:38:02 +02:00
cmd.h
config.h
configure vnc: better default values for VNC options 2010-07-26 17:36:14 -05:00
console.c Add support for depth 15 to qemu_default_pixelformat() 2010-06-01 12:53:36 -05:00
console.h un-register kbd driver in case of USB kbd unplug. 2010-06-14 15:46:28 -05:00
cpu-all.h linux-user: fix build on hosts not using guest base 2010-07-30 21:09:10 +02:00
cpu-common.h Add qemu_ram_alloc_from_ptr function 2010-08-10 16:25:15 -05:00
cpu-defs.h move stop/stopped CPU_COMMON fields after area zeroed by reset 2010-05-11 14:02:22 -03:00
cpu-exec.c mips: Add support for VInt and VEIC irq modes 2010-08-06 12:21:16 +02:00
cpus.c Rework debug exception processing for gdb use 2010-07-22 05:52:09 +02:00
cpus.h Rename tcg_cpu_exec and tcg_has_work 2010-07-22 05:52:09 +02:00
create_config configure: Fix evaluation of config-host.mak in create_config 2010-06-13 12:50:30 +02:00
cris-dis.c
cursor.c cursor: add cursor functions. 2010-05-24 15:18:23 -05:00
cursor_hidden.xpm cursor: add cursor functions. 2010-05-24 15:18:23 -05:00
cursor_left_ptr.xpm cursor: add cursor functions. 2010-05-24 15:18:23 -05:00
cutils.c split out qemu-timer.c 2010-03-17 11:16:15 -05:00
def-helper.h tcg: Optionally sign-extend 32-bit arguments for 64-bit hosts. 2010-06-16 11:29:11 +02:00
device_tree.c
device_tree.h
dis-asm.h ia64 disas support 2010-04-01 21:51:59 +02:00
disas.c ia64 disas support 2010-04-01 21:51:59 +02:00
disas.h Disassembler symbol lookup fix 2010-03-01 04:39:50 +00:00
dma-helpers.c
dma.h
dyngen-exec.h Move stdbool.h 2010-06-13 19:00:50 +01:00
elf.h Add more DT_* and AT_* constants to qemu's copy of elf.h. 2010-07-29 08:32:27 +02:00
envlist.c
envlist.h
exec-all.h remove dead code 2010-07-24 14:42:29 +02:00
exec.c Add qemu_ram_alloc_from_ptr function 2010-08-10 16:25:15 -05:00
feature_to_c.sh
gdbstub.c remove exec-all.h inclusion from cpu.h 2010-07-03 09:48:24 +03:00
gdbstub.h GDB exit status for semihosting 2010-06-16 13:03:51 +01:00
gen-icount.h Compile qemu-timer only once 2010-03-29 19:24:00 +00:00
host-utils.c
host-utils.h
hpet.h
hppa-dis.c tcg-hppa: Fix const errors in hppa-dis.c 2010-03-23 22:00:43 +01:00
hppa.ld
hxtool hxtool: Fix line number reporting on SQMP/EQMP errors 2010-06-11 16:35:46 -03:00
i386-dis.c i386-dis: Fix unused return value, spotted by clang 2010-04-18 14:27:44 +00:00
i386.ld
ia64-dis.c Fix %lld or %llx printf format use 2010-05-22 08:02:12 +00:00
ia64.ld
input.c un-register kbd driver in case of USB kbd unplug. 2010-06-14 15:46:28 -05:00
ioport-user.c
ioport.c
ioport.h
iov.c iov: Move from hw/ to topdir 2010-05-10 11:36:03 -05:00
iov.h iov: Move from hw/ to topdir 2010-05-10 11:36:03 -05:00
json-lexer.c remove unnecessary lookaheads 2010-06-11 15:25:14 -03:00
json-lexer.h
json-parser.c Merge remote branch 'qmp/for-anthony' into staging 2010-06-14 09:39:01 -05:00
json-parser.h
json-streamer.c json-streamer: Don't use qdict_put_obj() 2010-06-11 15:25:14 -03:00
json-streamer.h
kvm-all.c Add function to assign ioeventfd to MMIO. 2010-08-10 16:25:15 -05:00
kvm-stub.c Add kvm_set_ioeventfd_mmio_long definition for non-KVM systems 2010-08-15 09:44:47 +00:00
kvm.h Add function to assign ioeventfd to MMIO. 2010-08-10 16:25:15 -05:00
libfdt_env.h
linux-aio.c linux-aio: Fix typo in read() EINTR check 2010-04-23 16:21:57 +02:00
m68k-dis.c m68k-dis: fix unused return value, spotted by clang 2010-04-23 19:22:17 +00:00
m68k-semi.c GDB exit status for semihosting 2010-06-16 13:03:51 +01:00
m68k.ld
microblaze-dis.c microblaze: fix custom fprintf 2010-04-27 18:56:11 +00:00
migration-exec.c Factorize common migration incoming code 2010-06-22 15:15:51 -05:00
migration-fd.c Factorize common migration incoming code 2010-06-22 15:15:51 -05:00
migration-tcp.c Close socket file descriptor when qemu_accept fails 2010-07-25 17:03:51 +02:00
migration-unix.c Factorize common migration incoming code 2010-06-22 15:15:51 -05:00
migration.c migration: Accept 'cont' only after successful incoming migration 2010-07-30 23:14:08 +02:00
migration.h Factorize common migration incoming code 2010-06-22 15:15:51 -05:00
mips-dis.c mips-dis: add support for Godson integer instructions 2010-06-29 23:26:34 +02:00
mips.ld
module.c
module.h
monitor.c loadvm: improve tests before bdrv_snapshot_goto() 2010-08-03 15:57:22 +02:00
monitor.h monitor: Allow to exclude commands from QMP 2010-07-01 14:27:14 -03:00
nbd.c Fix %lld or %llx printf format use 2010-05-22 08:02:12 +00:00
nbd.h Move stdbool.h 2010-06-13 19:00:50 +01:00
net-checksum.c
net.c net: delete QemuOpts when net_client_init() fails. 2010-07-01 14:27:13 -03:00
net.h Move stdbool.h 2010-06-13 19:00:50 +01:00
notify.c Add support for generic notifier lists 2010-03-19 15:27:32 -05:00
notify.h Add support for generic notifier lists 2010-03-19 15:27:32 -05:00
os-posix.c Include sys/mman.h before qemu-options.h 2010-07-06 08:53:59 -05:00
os-win32.c win32: Add missing function setenv 2010-08-15 09:45:28 +00:00
osdep.c win32: Add missing function ffs 2010-06-27 19:25:25 +03:00
osdep.h win32: Add missing function setenv 2010-08-15 09:45:28 +00:00
path.c
pci-ids.txt
poison.h move targphys.h and hw/poison.h inclusion to cpu-common.h 2010-04-09 18:55:55 +02:00
posix-aio-compat.c posix-aio-compat: Expand tabs that have crept in 2010-05-28 13:14:26 +02:00
ppc-dis.c
ppc.ld
ppc64.ld
qbool.c Fix qtypes' licenses 2010-05-19 12:45:54 -03:00
qbool.h
qdict-test-data.txt
qdict.c QDict: Introduce qdict_get_try_bool() 2010-07-01 14:27:13 -03:00
qdict.h QDict: Introduce qdict_get_try_bool() 2010-07-01 14:27:13 -03:00
qemu-aio.h
qemu-barrier.h Introduce proper compiler barrier 2010-07-22 05:52:08 +02:00
qemu-binfmt-conf.sh
qemu-char.c Fix mingw32 build 2010-08-15 09:46:24 +00:00
qemu-char.h RESEND: Inter-VM shared memory PCI device 2010-08-10 16:25:16 -05:00
qemu-common.h apic: qdev conversion cleanup 2010-06-19 07:47:42 +00:00
qemu-config.c virtio-9p: Introduces an option to specify the security model. 2010-06-22 15:15:30 -05:00
qemu-config.h virtio-9p: Create a syntactic shortcut for the file-system pass-thru 2010-05-03 12:17:39 -05:00
qemu-doc.texi RESEND: Inter-VM shared memory PCI device 2010-08-10 16:25:16 -05:00
qemu-error.c error: Move qerror_report() from qemu-error.[ch] to qerror.[ch] 2010-03-27 14:30:38 +01:00
qemu-error.h error: Move qerror_report() from qemu-error.[ch] to qerror.[ch] 2010-03-27 14:30:38 +01:00
qemu-img-cmds.hx qemu-img: Fix copy+paste bug in documentation 2010-07-13 17:48:17 +02:00
qemu-img.c qemu-img check: Distinguish different kinds of errors 2010-07-06 17:05:48 +02:00
qemu-img.texi qemu-img: Add 'resize' command to grow/shrink disk images 2010-05-03 10:07:32 +02:00
qemu-io.c fix variable type in qemu-io.c 2010-07-30 23:05:51 +02:00
qemu-lock.h
qemu-log.h
qemu-malloc.c cow: stop using mmap 2010-06-15 09:41:59 +02:00
qemu-monitor.hx monitor: Establish cmd flags and convert the async tag 2010-07-01 13:58:38 -03:00
qemu-nbd.c qemu-nbd: Improve error reporting 2010-05-17 10:20:04 +02:00
qemu-nbd.texi qemu-nbd: Fix wrong description in qemu-nbd.texi 2010-03-06 23:03:50 +01:00
qemu-objects.h Fix qtypes' licenses 2010-05-19 12:45:54 -03:00
qemu-option.c error: New qemu_opts_loc_restore() 2010-07-06 17:05:49 +02:00
qemu-option.h error: New qemu_opts_loc_restore() 2010-07-06 17:05:49 +02:00
qemu-options.h Introduce OS specific cmdline argument handling and move SMB arg to os-posix.c 2010-06-12 08:49:15 +03:00
qemu-options.hx Merge branch 'for-anthony' of git://repo.or.cz/qemu/kevin 2010-07-30 21:12:24 +02:00
qemu-os-posix.h Move set_proc_name() to OS specific files. 2010-06-12 08:49:15 +03:00
qemu-os-win32.h win32: Add define for missing EPROTONOSUPPORT 2010-06-27 19:09:56 +03:00
qemu-queue.h
qemu-sockets.c qemu-sockets: avoid strlen of NULL pointer 2010-05-18 19:49:16 +02:00
qemu-tech.texi
qemu-thread.c qemu-thread: add qemu_mutex/cond_destroy and qemu_mutex_exit 2010-07-26 17:36:14 -05:00
qemu-thread.h qemu-thread: add qemu_mutex/cond_destroy and qemu_mutex_exit 2010-07-26 17:36:14 -05:00
qemu-timer.c savevm: Add DeviceState param 2010-07-06 10:36:28 -05:00
qemu-timer.h Implement cpu_get_real_ticks for Alpha. 2010-04-27 05:50:42 +02:00
qemu-tool.c error: Link qemu-img, qemu-nbd, qemu-io with qemu-error.o 2010-03-27 14:30:38 +01:00
qemu-x509.h move x509 file name defines to qemu-x509.h 2010-03-08 11:30:09 -06:00
qemu.sasl
qemu_socket.h move socket_init to qemu-sockets.c 2010-04-09 18:55:54 +02:00
qerror.c migration: Accept 'cont' only after successful incoming migration 2010-07-30 23:14:08 +02:00
qerror.h migration: Accept 'cont' only after successful incoming migration 2010-07-30 23:14:08 +02:00
qfloat.c Fix qtypes' licenses 2010-05-19 12:45:54 -03:00
qfloat.h
qint.c Fix qtypes' licenses 2010-05-19 12:45:54 -03:00
qint.h Fix qtypes' licenses 2010-05-19 12:45:54 -03:00
qjson.c qjson: Handle "\f" 2010-06-11 15:25:14 -03:00
qjson.h
qlist.c Fix qtypes' licenses 2010-05-19 12:45:54 -03:00
qlist.h Fix qtypes' licenses 2010-05-19 12:45:54 -03:00
qobject.h Fix qtypes' licenses 2010-05-19 12:45:54 -03:00
qstring.c Fix qtypes' licenses 2010-05-19 12:45:54 -03:00
qstring.h Fix qtypes' licenses 2010-05-19 12:45:54 -03:00
readline.c
readline.h
rules.mak Put dependency files in proper subdir 2010-05-22 08:31:20 +00:00
rwhandler.c Don't compile rwhandler.c for user targets 2010-02-20 09:27:38 +00:00
rwhandler.h rwhandler: simplified way to register for mem/io 2010-02-14 16:10:53 +02:00
s390-dis.c s390: Disassemble some general-instruction-extension insns. 2010-06-10 00:46:41 +02:00
s390.ld
savevm.c Support marking a device as non-migratable 2010-08-10 16:25:15 -05:00
sh4-dis.c sh4: Fix compiler warning (fprintf format string) 2010-04-14 01:04:02 +02:00
softmmu-semi.h
softmmu_defs.h
softmmu_exec.h sparc64: handle asi referencing nucleus and secondary MMU contexts 2010-05-06 23:14:26 +03:00
softmmu_header.h sparc64: fix 32bit load sign extension 2010-06-02 20:04:52 +00:00
softmmu_template.h Split TLB addend and target_phys_addr_t 2010-04-05 00:28:53 +01:00
sparc-dis.c sparc64: more ultrasparc asi extensions for disassembler 2010-05-06 20:13:02 +00:00
sparc.ld
sparc64.ld
sysemu.h migration: Accept 'cont' only after successful incoming migration 2010-07-30 23:14:08 +02:00
targphys.h Split TLB addend and target_phys_addr_t 2010-04-05 00:28:53 +01:00
tcg-runtime.c tcg: add div/rem 32-bit helpers 2010-03-14 22:04:50 +01:00
texi2pod.pl
thunk.c
thunk.h
translate-all.c tcg: get rid of copy_size in TCGOpDef 2010-06-09 16:10:50 +02:00
uboot_image.h
usb-bsd.c
usb-linux.c Return usb device to host on exit 2010-06-30 22:51:17 +02:00
usb-stub.c
vgafont.h
vl.c migration: Accept 'cont' only after successful incoming migration 2010-07-30 23:14:08 +02:00
x86_64.ld

README

Read the documentation in qemu-doc.html.

Fabrice Bellard.