adding Irix (and, to a lesser extent, Solaris) userland emulation to QEMU
Go to file
Laszlo Ersek 293d2a0014 monitor: maintain at most one G_IO_OUT watch
When monitor_flush() is invoked repeatedly outside the monitor_unblocked()
callback, for example from tlb_info() -> ... -> print_pte(), several
watches may be added for the same event.

This is no problem per se because the extra monitor_unblocked() callbacks
are harmless if mon->outbuf is empty, the watches will be removed
gradually. However a big number of watches can grow "gpollfds" without
limit in glib_pollfds_fill(), triggering a -1/EINVAL condition in
g_poll().

Keep at most one such watch, by following the pattern observable in eg.
commits c874ea97 and c3d6b96e. The change has no effect when
monitor_unblocked() calls monitor_flush() (when the watch can either be
removed or renewed 1-for-1), but non-callback contexts won't create an
additional watch when the monitor already has one.

Related RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=970047

Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Amit Shah <amit.shah@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Message-id: 1373998781-29561-3-git-send-email-lersek@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2013-07-18 11:22:57 -05:00
QMP net: add support of mac-programming over macvtap in QEMU side 2013-07-15 21:23:08 +03:00
audio
backends
block iscsi: factor out sector conversions 2013-07-17 17:01:41 +02:00
bsd-user bsd-user: Change thread_env to CPUState 2013-07-09 21:33:01 +02:00
default-configs pseries: move interrupt controllers to hw/intc/ 2013-07-11 18:51:23 +02:00
disas
docs add a header file for atomic operations 2013-07-04 17:42:49 +02:00
dtc@bc895d6d09
fpu
fsdev fsdev: Fix potential memory leak 2013-07-09 13:38:56 -05:00
gdb-xml
hw vfio: enhanced VGA quirks + AER error containment 2013-07-18 08:14:22 -05:00
include pci,net,pc enhancements 2013-07-18 08:12:47 -05:00
ldscripts
libcacard
linux-headers
linux-user QOM CPUState refactorings 2013-07-10 10:54:16 -05:00
net net: add support of mac-programming over macvtap in QEMU side 2013-07-15 21:23:08 +03:00
pc-bios multiboot: Updated ROM binary 2013-06-28 14:01:52 -05:00
pixman@97336fad32
po
qapi
qga
qobject
qom QOM CPUState refactorings 2013-07-10 10:54:16 -05:00
roms
scripts qapi: qapi-commands: fix possible leaks on visitor dealloc 2013-07-16 09:15:06 -04:00
slirp
stubs cpus: Add return value for vm_stop() 2013-07-15 09:51:38 +02:00
sysconfigs/target
target-alpha target-alpha: Change gen_intermediate_code_internal() argument to AlphaCPU 2013-07-09 21:33:03 +02:00
target-arm target-arm: Avoid g_hash_table_get_keys() 2013-07-15 17:13:51 +01:00
target-cris cpu: Move reset logging to CPUState 2013-07-09 21:33:04 +02:00
target-i386 QOM CPUState refactorings 2013-07-10 10:54:16 -05:00
target-lm32 cpu: Move reset logging to CPUState 2013-07-09 21:33:04 +02:00
target-m68k cpu: Move reset logging to CPUState 2013-07-09 21:33:04 +02:00
target-microblaze cpu: Move reset logging to CPUState 2013-07-09 21:33:04 +02:00
target-mips cpu: Move reset logging to CPUState 2013-07-09 21:33:04 +02:00
target-moxie cpu: Move reset logging to CPUState 2013-07-09 21:33:04 +02:00
target-openrisc cpu: Move reset logging to CPUState 2013-07-09 21:33:04 +02:00
target-ppc target-ppc: Add POWER8 v1.0 CPU model 2013-07-11 18:51:23 +02:00
target-s390x cpu: Move reset logging to CPUState 2013-07-09 21:33:04 +02:00
target-sh4 cpu: Move reset logging to CPUState 2013-07-09 21:33:04 +02:00
target-sparc cpu: Move reset logging to CPUState 2013-07-09 21:33:04 +02:00
target-unicore32 target-unicore32: Change gen_intermediate_code_internal() signature 2013-07-09 21:33:04 +02:00
target-xtensa target-xtensa: Change gen_intermediate_code_internal() arg to XtensaCPU 2013-07-09 21:33:04 +02:00
tcg tcg-arm: Implement tcg_register_jit 2013-07-09 07:15:25 -07:00
tests qemu-iotests: Update 051 reference output 2013-07-15 09:49:00 +02:00
trace
ui console: Hook QemuConsoles into qom tree 2013-06-28 14:03:22 -05:00
util add timestamp to error_report() 2013-07-10 13:42:09 -04:00
.exrc
.gitignore
.gitmodules
.mailmap
CODING_STYLE
COPYING
COPYING.LIB
Changelog
HACKING
LICENSE
MAINTAINERS tcg: Add myself to general TCG maintainership 2013-07-08 22:03:59 -07:00
Makefile
Makefile.objs
Makefile.target
README
VERSION
aio-posix.c
aio-win32.c
arch_init.c Force auto-convegence of live migration 2013-07-12 20:35:08 +02:00
async.c
balloon.c
block-migration.c
block.c block: Add return value for bdrv_flush_all() 2013-07-15 09:51:27 +02:00
blockdev-nbd.c
blockdev.c blockdev: add sync mode to drive-backup QMP command 2013-07-15 09:49:00 +02:00
blockjob.c
bt-host.c
bt-vhci.c
configure configure: Provide more helpful message if libvte not present 2013-07-18 11:21:42 -05:00
coroutine-gthread.c
coroutine-sigaltstack.c
coroutine-ucontext.c
coroutine-win32.c
cpu-exec.c log: Change log_cpu_state[_mask]() argument to CPUState 2013-07-09 21:33:04 +02:00
cpus.c Merge remote-tracking branch 'quintela/migration.next' into staging 2013-07-15 14:49:16 -05:00
cputlb.c cpu: Make first_cpu and next_cpu CPUState 2013-07-09 21:32:54 +02:00
device-hotplug.c
device_tree.c vl: Tighten parsing of -machine option phandle_start 2013-07-09 13:38:58 -05:00
disas.c
dma-helpers.c dma: keep a device alive while it has SGLists 2013-07-04 17:42:30 +02:00
dump.c cpu: Make first_cpu and next_cpu CPUState 2013-07-09 21:32:54 +02:00
exec.c exec: Support 64-bit operations in address_space_rw 2013-07-14 13:40:31 -07:00
gdbstub.c cpu: Make first_cpu and next_cpu CPUState 2013-07-09 21:32:54 +02:00
hmp-commands.hx block: add drive_backup HMP command 2013-07-15 09:49:00 +02:00
hmp.c block: add drive_backup HMP command 2013-07-15 09:49:00 +02:00
hmp.h block: add drive_backup HMP command 2013-07-15 09:49:00 +02:00
iohandler.c
ioport.c ioport: remove LITTLE_ENDIAN mark for portio 2013-07-12 14:37:47 -05:00
kvm-all.c QOM CPUState refactorings 2013-07-10 10:54:16 -05:00
kvm-stub.c kvm: Change kvm_remove_all_breakpoints() argument to CPUState 2013-07-09 21:20:28 +02:00
main-loop.c
memory.c cpu: Replace cpu_single_env with CPUState current_cpu 2013-07-09 21:20:28 +02:00
memory_mapping.c cpu: Make first_cpu and next_cpu CPUState 2013-07-09 21:32:54 +02:00
migration-exec.c
migration-fd.c
migration-tcp.c
migration-unix.c
migration.c Merge remote-tracking branch 'quintela/migration.next' into staging 2013-07-15 14:49:16 -05:00
monitor.c monitor: maintain at most one G_IO_OUT watch 2013-07-18 11:22:57 -05:00
nbd.c
os-posix.c
os-win32.c
page_cache.c
qapi-schema-test.json
qapi-schema.json pci,net,pc enhancements 2013-07-18 08:12:47 -05:00
qdev-monitor.c
qdict-test-data.txt
qemu-bridge-helper.c
qemu-char.c char: io_channel_send: don't lose written bytes 2013-07-18 11:22:56 -05:00
qemu-coroutine-io.c rdma: export yield_until_fd_readable() 2013-06-27 02:38:36 +02:00
qemu-coroutine-lock.c
qemu-coroutine-sleep.c
qemu-coroutine.c
qemu-doc.texi doc: we use seabios, not bochs bios 2013-06-28 22:10:34 +04:00
qemu-img-cmds.hx
qemu-img.c block: Don't parse protocol from file.filename 2013-07-15 09:49:00 +02:00
qemu-img.texi
qemu-io-cmds.c
qemu-io.c
qemu-log.c
qemu-nbd.c
qemu-nbd.texi
qemu-options-wrapper.h
qemu-options.h
qemu-options.hx add timestamp to error_report() 2013-07-10 13:42:09 -04:00
qemu-seccomp.c
qemu-tech.texi
qemu-timer.c
qemu.sasl
qmp-commands.hx Merge remote-tracking branch 'luiz/queue/qmp' into staging 2013-07-18 08:14:11 -05:00
qmp.c
qtest.c
readline.c
rules.mak
savevm.c rdma: new QEMUFileOps hooks 2013-06-27 02:38:36 +02:00
spice-qemu-char.c
tcg-runtime.c
tci.c
thread-pool.c
thunk.c
tpm.c
trace-events Force auto-convegence of live migration 2013-07-12 20:35:08 +02:00
translate-all.c cpu: Make first_cpu and next_cpu CPUState 2013-07-09 21:32:54 +02:00
translate-all.h
user-exec.c QOM CPUState refactorings 2013-07-10 10:54:16 -05:00
version.rc
vl.c add timestamp to error_report() 2013-07-10 13:42:09 -04:00
xbzrle.c
xen-all.c memory: add ref/unref calls 2013-07-04 17:42:45 +02:00
xen-mapcache.c
xen-stub.c

README

Read the documentation in qemu-doc.html or on http://wiki.qemu.org

- QEMU team