adding Irix (and, to a lesser extent, Solaris) userland emulation to QEMU
Go to file
Stefan Hajnoczi 2da61b671e rfifolock: add recursive FIFO lock
QemuMutex does not guarantee fairness and cannot be acquired
recursively:

Fairness means each locker gets a turn and the scheduler cannot cause
starvation.

Recursive locking is useful for composition, it allows a sequence of
locking operations to be invoked atomically by acquiring the lock around
them.

This patch adds RFifoLock, a recursive lock that guarantees FIFO order.
Its first user is added in the next patch.

RFifoLock has one additional feature: it can be initialized with an
optional contention callback.  The callback is invoked whenever a thread
must wait for the lock.  For example, it can be used to poke the current
owner so that they release the lock soon.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2014-03-13 14:42:21 +01:00
audio
backends ui/sdl2 : initial port to SDL 2.0 (v2.0) 2014-03-05 09:52:05 +01:00
block block: Rewrite the snapshot authorization mechanism for block filters. 2014-03-13 14:23:27 +01:00
bsd-user
default-configs Add Enhanced Three-Speed Ethernet Controller (eTSEC) 2014-03-05 03:06:45 +01:00
disas libvixl: Fix format strings for several int64_t values 2014-03-10 14:56:29 +00:00
docs Docs: Introduce multiport serial support in qemupciserial.inf. 2014-03-12 15:03:42 +00:00
dtc@bc895d6d09
fpu softfloat: Support halving the result of muladd operation 2014-02-20 10:35:50 +00:00
fsdev hw/9pfs: Include virtio-9p-device.o in build 2014-03-04 09:20:49 +05:30
gdb-xml
hw acpi,pc,test bug fixes 2014-03-11 19:52:32 +00:00
include rfifolock: add recursive FIFO lock 2014-03-13 14:42:21 +01:00
libcacard Add a 'name' parameter to qemu_thread_create 2014-03-09 21:09:38 +02:00
linux-headers update linux headers to kvm/next 2014-02-27 09:50:45 +01:00
linux-user Merge remote-tracking branch 'remotes/riku/linux-user-for-upstream' into staging 2014-03-10 16:22:39 +00:00
net Net patches 2014-03-12 16:45:25 +00:00
pc-bios prep: Update ppc_rom.bin 2014-03-12 17:26:40 +01:00
pixman@97336fad32
po
qapi qapi: Add missing null check to opts_start_struct() 2014-03-03 11:17:45 -05:00
qga qga: Remove unneeded include file 2014-03-03 09:46:27 +04:00
qobject qdict: Extract non-QDicts in qdict_array_split() 2014-02-21 22:11:23 +01:00
qom object: add object_get_canonical_path_component() 2014-03-13 14:23:27 +01:00
roms prep: Update ppc_rom.bin 2014-03-12 17:26:40 +01:00
scripts qapi script: do not add "_" for every capitalized char in enum 2014-03-11 09:07:42 -04:00
slirp
stubs stubs: Optimize dependencies for gdbstub.c 2014-03-02 17:13:31 +04:00
sysconfigs/target
target-alpha
target-arm target-arm: Implement WFE as a yield operation 2014-03-10 14:56:30 +00:00
target-cris
target-i386 Merge remote-tracking branch 'remotes/qmp-unstable/queue/qmp' into staging 2014-03-12 10:47:07 +00:00
target-lm32
target-m68k
target-microblaze
target-mips
target-moxie
target-openrisc
target-ppc target-ppc: spapr: e500: fix to use cpu_dt_id 2014-03-05 03:07:04 +01:00
target-s390x s390x/virtio-ccw: Adapter interrupt support. 2014-03-05 09:42:05 +01:00
target-sh4
target-sparc target-sparc: Add and use CPU_FEATURE_CASA 2014-03-12 00:22:01 +00:00
target-unicore32
target-xtensa target-xtensa: provide HW confg ID registers 2014-02-24 04:47:02 +04:00
tcg tcg-aarch64: Remove nop from qemu_st slow path 2014-03-08 21:23:25 -08:00
tests rfifolock: add recursive FIFO lock 2014-03-13 14:42:21 +01:00
trace trace: Fix build warnings for Win32 build 2014-03-12 14:19:58 +01:00
ui minor spice patches. 2014-03-11 13:03:22 +00:00
util rfifolock: add recursive FIFO lock 2014-03-13 14:42:21 +01:00
.exrc
.gitignore Merge remote-tracking branch 'remotes/bonzini/configure' into staging 2014-02-24 15:38:00 +00:00
.gitmodules Add OpenHack'Ware submodule 2014-03-12 17:26:32 +01:00
.mailmap
.travis.yml
CODING_STYLE
COPYING
COPYING.LIB
Changelog
HACKING
LICENSE
MAINTAINERS acpi,pc,pci,virtio,memory bug fixes 2014-03-10 19:14:11 +00:00
Makefile build: Fix installation of target-dependent files 2014-03-08 12:08:11 +00:00
Makefile.objs hw/9pfs: Include virtio-9p-device.o in build 2014-03-04 09:20:49 +05:30
Makefile.target build: softmmu targets do not have a "main.o" file 2014-02-20 13:14:18 +01:00
README
VERSION
aio-posix.c
aio-win32.c
arch_init.c XBZRLE: Fix qemu crash when resize the xbzrle cache 2014-03-08 22:22:34 +01:00
async.c
balloon.c
block-migration.c
block.c block: Rewrite the snapshot authorization mechanism for block filters. 2014-03-13 14:23:27 +01:00
blockdev-nbd.c
blockdev.c blockdev: Fix NULL pointer dereference in blockdev-add 2014-03-06 17:27:28 +01:00
blockjob.c Use error_is_set() only when necessary 2014-02-17 11:57:23 -05:00
bt-host.c
bt-vhci.c
configure acpi,pc,test bug fixes 2014-03-11 19:52:32 +00:00
coroutine-gthread.c
coroutine-sigaltstack.c
coroutine-ucontext.c
coroutine-win32.c
cpu-exec.c target-arm: Store AIF bits in env->pstate for AArch32 2014-02-26 17:20:06 +00:00
cpus.c Add a 'name' parameter to qemu_thread_create 2014-03-09 21:09:38 +02:00
cputlb.c
device-hotplug.c
device_tree.c
disas.c
dma-helpers.c
dump.c dump: add 'query-dump-guest-memory-capability' command 2014-02-28 11:52:03 -05:00
exec.c Merge remote-tracking branch 'remotes/kvm/uq/master' into staging 2014-03-11 19:39:17 +00:00
gdbstub.c
hmp-commands.hx
hmp.c dump: make kdump-compressed format available for 'dump-guest-memory' 2014-02-28 11:52:03 -05:00
hmp.h
iohandler.c
ioport.c
kvm-all.c Merge remote-tracking branch 'remotes/kvm/uq/master' into staging 2014-03-11 19:39:17 +00:00
kvm-stub.c kvm: Add a new machine option kvm-type 2014-03-05 03:06:24 +01:00
main-loop.c
memory.c memory_region_present: return false if address is not found in child MemoryRegion 2014-03-09 21:09:37 +02:00
memory_mapping.c
migration-exec.c
migration-fd.c
migration-rdma.c rdma: rename 'x-rdma' => 'rdma' 2014-02-25 14:30:28 +01:00
migration-tcp.c
migration-unix.c
migration.c Add a 'name' parameter to qemu_thread_create 2014-03-09 21:09:38 +02:00
module-common.c module: implement module loading 2014-02-20 13:14:18 +01:00
monitor.c input: mouse: switch monitor to new core 2014-03-05 09:52:03 +01:00
nbd.c nbd: move socket wrappers to qemu-nbd 2014-02-21 21:02:23 +01:00
os-posix.c util: Split out exec_dir from os_find_datadir 2014-02-20 13:12:54 +01:00
os-win32.c util: Split out exec_dir from os_find_datadir 2014-02-20 13:12:54 +01:00
page_cache.c Fix two XBZRLE corruption issues 2014-02-25 14:30:28 +01:00
qapi-schema.json qapi: convert BlockdevOptions to use enum discriminator 2014-03-11 09:07:42 -04:00
qdev-monitor.c qdev-monitor: set DeviceState opts before calling realize 2014-02-26 10:32:40 -07:00
qdict-test-data.txt
qemu-bridge-helper.c
qemu-char.c qmp: expose list of supported character device backends 2014-02-17 11:57:23 -05:00
qemu-coroutine-io.c
qemu-coroutine-lock.c
qemu-coroutine-sleep.c
qemu-coroutine.c
qemu-doc.texi
qemu-file.c qemu_file: Fix mismerge of "use fwrite() correctly" 2014-03-08 22:22:34 +01:00
qemu-img-cmds.hx
qemu-img.c qemu-img convert: Fix progress output 2014-03-05 15:58:32 +01:00
qemu-img.texi
qemu-io-cmds.c
qemu-io.c Block patches 2014-02-25 10:50:11 +00:00
qemu-log.c
qemu-nbd.c Block patches 2014-02-25 10:50:11 +00:00
qemu-nbd.texi
qemu-options-wrapper.h
qemu-options.h
qemu-options.hx Add 'debug-threads' suboption to --name 2014-03-09 21:09:37 +02:00
qemu-seccomp.c
qemu-tech.texi
qemu-timer.c
qemu.nsi
qemu.sasl
qmp-commands.hx dump: add 'query-dump-guest-memory-capability' command 2014-02-28 11:52:03 -05:00
qmp.c object: Report type in error when not user creatable. 2014-03-02 17:12:41 +04:00
qtest.c kvm: Add a new machine option kvm-type 2014-03-05 03:06:24 +01:00
rules.mak module: implement module loading 2014-02-20 13:14:18 +01:00
savevm.c migration: extend section_start/end traces 2014-03-08 22:22:34 +01:00
spice-qemu-char.c
tcg-runtime.c
tci.c
thread-pool.c Add a 'name' parameter to qemu_thread_create 2014-03-09 21:09:38 +02:00
thunk.c
tpm.c Use error_is_set() only when necessary 2014-02-17 11:57:23 -05:00
trace-events migration: extend section_start/end traces 2014-03-08 22:22:34 +01:00
translate-all.c
translate-all.h
user-exec.c
version.rc
vl.c acpi,pc,pci,virtio,memory bug fixes 2014-03-10 19:14:11 +00:00
vmstate.c Fix vmstate_info_int32_le comparison/assign 2014-02-25 14:30:28 +01:00
xbzrle.c
xen-all.c kvm: Add a new machine option kvm-type 2014-03-05 03:06:24 +01:00
xen-mapcache.c
xen-stub.c kvm: Add a new machine option kvm-type 2014-03-05 03:06:24 +01:00

README

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

- QEMU team