adding Irix (and, to a lesser extent, Solaris) userland emulation to QEMU
Go to file
Kevin Wolf ef845c3bf4 qcow2: Bring synchronous read/write back to life
When the synchronous read and write functions were dropped, they were replaced
by generic emulation functions. Unfortunately, these emulation functions don't
provide the same semantics as the original functions did.

The original bdrv_read would mean that we read some data synchronously and that
we won't be interrupted during this read. The latter assumption is no longer
true with the emulation function which needs to use qemu_aio_poll and therefore
allows the callback of any other concurrent AIO request to be run during the
read. Which in turn means that (meta)data read earlier could have changed and
be invalid now. qcow2 is not prepared to work in this way and it's just scary
how many places there are where other requests could run.

I'm not sure yet where exactly it breaks, but you'll see breakage with virtio
on qcow2 with a backing file. Providing synchronous functions again fixes the
problem for me.

Patchworks-ID: 35437
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2009-10-15 09:32:04 -05:00
audio winwave: ADC support 2009-10-15 10:43:45 +04:00
block qcow2: Bring synchronous read/write back to life 2009-10-15 09:32:04 -05:00
bsd-user bsd-user: fix "#if 0"'d printf() 2009-10-04 15:02:44 +02:00
darwin-user Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
default-configs Only compile ssi when one target uses it 2009-10-08 21:17:17 -05:00
fpu
gdb-xml
hw net: allow NICs to be connected to netdevs 2009-10-15 09:32:02 -05:00
linux-user linux-user: fix "#if 0"'d printf() 2009-10-04 13:24:45 +02:00
pc-bios optionrom: create .PHONY variable 2009-10-06 14:46:10 -05:00
roms update pcbios submodule to current master 2009-10-05 09:32:47 -05:00
slirp slirp: fix unmatched bracket in if 0 2009-09-30 18:56:44 +00:00
target-alpha Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
target-arm Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
target-cris CRIS: Segmented addressing only for kernel mode. 2009-10-10 17:34:27 +02:00
target-i386 target-i386: fix ARPL 2009-10-06 22:01:00 +02:00
target-m68k Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
target-microblaze Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
target-mips Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
target-ppc Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
target-sh4 Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
target-sparc sparc64: fix done instruction pc 2009-10-13 16:48:33 +00:00
tcg tcg: improve output log 2009-10-07 07:53:41 +02:00
tests tests: missing ; in if 0 2009-10-02 17:59:10 +00:00
.gitignore Add new config-devices.mak for each target 2009-10-08 21:17:10 -05:00
.gitmodules Bring pcbios, seabios, and vgabios into the tree as git submodules. Right now, 2009-09-04 10:13:29 -05:00
CODING_STYLE Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
COPYING
COPYING.LIB
Changelog
LICENSE
MAINTAINERS
Makefile net: refactor packet queueing code 2009-10-15 09:32:03 -05:00
Makefile.hw Only compile m48t59 when one target uses it 2009-10-08 21:17:12 -05:00
Makefile.target ide: split cmd646 and piix from pci.c 2009-10-12 09:42:30 -05:00
Makefile.user Compile some user files only once for all targets 2009-09-27 16:26:02 +00:00
README
TODO
VERSION
a.out.h
acl.c Fix sys-queue.h conflict for good 2009-09-12 07:36:22 +00:00
acl.h Fix sys-queue.h conflict for good 2009-09-12 07:36:22 +00:00
aes.c
aes.h
aio.c Fix sys-queue.h conflict for good 2009-09-12 07:36:22 +00:00
alpha-dis.c Remove PARAMS() macro 2009-09-25 19:53:21 +00:00
alpha.ld
arm-dis.c bdf: Remove last users of FALSE/TRUE 2009-10-05 09:32:44 -05:00
arm-semi.c
arm.ld
balloon.h Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
block.c Fix sys-queue.h conflict for good 2009-09-12 07:36:22 +00:00
block.h block: add aio_flush operation 2009-09-11 10:19:46 -05:00
block_int.h block: add aio_flush operation 2009-09-11 10:19:46 -05:00
bswap.h
bt-host.c
bt-host.h
bt-vhci.c
buffered_file.c Fix compilation warnings when DEBUG_BUFFERED_FILE is defined 2009-09-09 17:31:26 -05:00
buffered_file.h
cache-utils.c
cache-utils.h
check-qdict.c Fix sys-queue.h conflict for good 2009-09-12 07:36:22 +00:00
check-qint.c Fix and improve qint_from_int64_test 2009-09-26 21:26:26 +02:00
check-qlist.c Introduce QList unit-tests 2009-10-08 21:17:18 -05:00
check-qstring.c Introduce QString unit-tests 2009-09-04 09:37:34 -05:00
cmd.c Fix indentation 2009-09-19 18:43:44 +02:00
cmd.h
cocoa.m
config.h Generate config-devices.h 2009-10-08 21:17:10 -05:00
configure configure: clean temporary executable files even on Windows 2009-10-15 01:57:14 +04:00
console.c Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
console.h Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
cpu-all.h Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
cpu-common.h Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
cpu-defs.h Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
cpu-exec.c Fix sys-queue.h conflict for good 2009-09-12 07:36:22 +00:00
create_config Move generation of config-host.h to Makefile from configure 2009-10-08 21:17:03 -05:00
cris-dis.c bdf: Remove last users of FALSE/TRUE 2009-10-05 09:32:44 -05:00
curses.c Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
curses_keys.h Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
cutils.c Probe for fdatasync() 2009-09-20 06:56:26 +00:00
d3des.c
d3des.h
def-helper.h
device_tree.c Fix device tree compile broken by ca20cf32ab 2009-09-23 08:41:45 +02:00
device_tree.h
dis-asm.h bdf: Remove last users of FALSE/TRUE 2009-10-05 09:32:44 -05:00
disas.c
disas.h Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
dma-helpers.c Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
dma.h Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
dyngen-exec.h Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
elf.h
envlist.c Fix sys-queue.h conflict for good 2009-09-12 07:36:22 +00:00
envlist.h
exec-all.h Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
exec.c fix comment on cpu_register_physical_memory_offset 2009-10-05 09:32:51 -05:00
feature_to_c.sh
gdbstub.c gdbstub: x86: Switch 64/32 bit registers dynamically 2009-10-05 09:32:45 -05:00
gdbstub.h
gen-icount.h static and inline should came before the type of the functions 2009-09-25 19:51:45 +00:00
host-utils.c
host-utils.h
hostregs_helper.h Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
hpet.h
hppa-dis.c
hppa.ld
hxtool
i386-dis.c
i386.ld
ia64.ld
ioport-user.c Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
ioport.c Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
ioport.h Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
keymaps.c Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
keymaps.h Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
kvm-all.c unlock iothread mutex before running kvm ioctl 2009-10-12 09:42:31 -05:00
kvm.h Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
libfdt_env.h
linux-aio.c raw-posix: add Linux native AIO support 2009-08-27 20:30:22 -05:00
m68k-dis.c
m68k-semi.c Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
m68k.ld
microblaze-dis.c bdf: Remove last users of FALSE/TRUE 2009-10-05 09:32:44 -05:00
migration-exec.c
migration-fd.c add file descriptor migration 2009-08-27 19:33:15 -05:00
migration-tcp.c
migration-unix.c
migration.c monitor: Port handler_2 to use QDict 2009-09-04 09:37:31 -05:00
migration.h monitor: Port handler_2 to use QDict 2009-09-04 09:37:31 -05:00
mips-dis.c
mips.ld
module.c Fix sys-queue.h conflict for good 2009-09-12 07:36:22 +00:00
module.h
monitor.c monitor: Convert do_info_cpus() to QObject 2009-10-08 21:17:19 -05:00
monitor.h monitor: Export QDict header 2009-09-04 09:37:30 -05:00
nbd.c
nbd.h
net-checksum.c
net-queue.c net: refactor packet queueing code 2009-10-15 09:32:03 -05:00
net-queue.h net: refactor packet queueing code 2009-10-15 09:32:03 -05:00
net.c net: fix multiple NICs causing net opts process to stop 2009-10-15 09:32:03 -05:00
net.h net: add queue for peer-to-peer packet forwarding 2009-10-15 09:32:03 -05:00
osdep.c Add #defines needed by OpenSolaris, fix breakage by the #defines 2009-09-12 12:36:04 +00:00
osdep.h Fix a Sparse warning about redefinition of offsetof() 2009-09-12 09:58:46 +00:00
path.c
pci-ids.txt
posix-aio-compat.c posix-aio-compat: avoid signal race when spawning a thread 2009-09-27 04:16:02 +04:00
ppc-dis.c Work around OpenSolaris sys/regset.h namespace pollution 2009-09-12 12:36:11 +00:00
ppc.ld
ppc64.ld
qdict-test-data.txt Introduce QDict test data file 2009-09-04 09:37:34 -05:00
qdict.c Fix sys-queue.h conflict for good 2009-09-12 07:36:22 +00:00
qdict.h Fix sys-queue.h conflict for good 2009-09-12 07:36:22 +00:00
qemu-aio.h
qemu-binfmt-conf.sh
qemu-char.c Fix sys-queue.h conflict for good 2009-09-12 07:36:22 +00:00
qemu-char.h Fix sys-queue.h conflict for good 2009-09-12 07:36:22 +00:00
qemu-common.h net: refactor packet queueing code 2009-10-15 09:32:03 -05:00
qemu-config.c net: add -netdev option 2009-10-15 09:32:01 -05:00
qemu-config.h net: add -netdev option 2009-10-15 09:32:01 -05:00
qemu-doc.texi Documentation: Add missing tags to placeholders 2009-10-15 09:32:03 -05:00
qemu-img-cmds.hx
qemu-img.c qcow2: Increase maximum cluster size to 2 MB 2009-10-05 09:32:52 -05:00
qemu-img.texi add host_device format description to qemu-img manpage 2009-10-06 14:36:09 -05:00
qemu-io.c qemu-io: Improve portability (win32 now supported). 2009-09-09 14:57:20 -05:00
qemu-lock.h Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
qemu-log.h
qemu-malloc.c
qemu-monitor.hx monitor: Convert do_balloon() to QObject 2009-10-08 21:17:19 -05:00
qemu-nbd.c
qemu-nbd.texi
qemu-option.c Never overwrite a QemuOpt 2009-10-06 14:36:11 -05:00
qemu-option.h Add qemu_opts_validate() for post parsing validation 2009-10-06 14:36:11 -05:00
qemu-options.hx Documentation: Move msmouse description to an appropriate place 2009-10-15 09:32:03 -05:00
qemu-queue.h Fix sys-queue.h conflict for good 2009-09-12 07:36:22 +00:00
qemu-sockets.c Add 'static' 2009-09-12 09:58:51 +00:00
qemu-tech.texi
qemu-thread.c
qemu-thread.h
qemu-timer.h Introduce QEMU_CLOCK_HOST 2009-10-05 09:32:45 -05:00
qemu-tool.c
qemu.sasl
qemu_socket.h convert udp chardev to QemuOpts. 2009-09-11 10:19:49 -05:00
qint.c Shuffle lines to avoid gcc 3 warning about redundant redeclaration 2009-09-04 17:43:37 +00:00
qint.h Introduce QInt 2009-09-04 09:37:29 -05:00
qlist.c Introduce QList 2009-10-08 21:17:18 -05:00
qlist.h Introduce QList 2009-10-08 21:17:18 -05:00
qobject.h Introduce QList 2009-10-08 21:17:18 -05:00
qstring.c Shuffle lines to avoid gcc 3 warning about redundant redeclaration 2009-09-04 17:43:37 +00:00
qstring.h Introduce QString 2009-09-04 09:37:29 -05:00
readline.c
readline.h
rules.mak Move dependency generation falgs out of configure 2009-10-11 17:08:57 +04:00
s390-dis.c
s390.ld
savevm.c net: use qtailq for vlan and client lists 2009-10-15 09:32:00 -05:00
sdl.c offer right-ctrl as a grab option 2009-10-06 14:36:09 -05:00
sdl_keysym.h Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
sdl_zoom.c
sdl_zoom.h
sdl_zoom_template.h
sh4-dis.c Remove PARAMS() macro 2009-09-25 19:53:21 +00:00
softmmu-semi.h
softmmu_defs.h
softmmu_exec.h
softmmu_header.h
softmmu_template.h Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
sparc-dis.c
sparc.ld Fix sparc.ld 2009-09-13 19:38:43 +00:00
sparc64.ld
sysemu.h offer right-ctrl as a grab option 2009-10-06 14:36:09 -05:00
tap-win32.c net: allow NICs to be connected to netdevs 2009-10-15 09:32:02 -05:00
targphys.h Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
tcg-runtime.c Compile TCG runtime library only once 2009-09-20 19:06:34 +00:00
texi2pod.pl
thunk.c
thunk.h
translate-all.c
uboot_image.h Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
usb-bsd.c Try to fix BSD breakage by 806b602482 2009-09-12 06:19:16 +00:00
usb-linux.c Check return value of qdev_init() 2009-10-07 08:54:54 -05:00
usb-stub.c
vgafont.h
vl.c net: handle -netdevice options 2009-10-15 09:32:01 -05:00
vnc-auth-sasl.c
vnc-auth-sasl.h
vnc-auth-vencrypt.c
vnc-auth-vencrypt.h
vnc-tls.c
vnc-tls.h
vnc.c Win32: Fix vnc support. 2009-10-05 14:01:16 -05:00
vnc.h Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
vnc_keysym.h Revert "Get rid of _t suffix" 2009-10-01 16:12:16 -05:00
vnchextile.h
x86_64.ld
x_keymap.c
x_keymap.h

README

Read the documentation in qemu-doc.html.

Fabrice Bellard.