Go to file
Stefan Hajnoczi e72f66a0a2 dataplane: add virtio-blk data plane code
virtio-blk-data-plane is a subset implementation of virtio-blk.  It only
handles read, write, and flush requests.  It does this using a dedicated
thread that executes an epoll(2)-based event loop and processes I/O
using Linux AIO.

This approach performs very well but can be used for raw image files
only.  The number of IOPS achieved has been reported to be several times
higher than the existing virtio-blk implementation.

Eventually it should be possible to unify virtio-blk-data-plane with the
main body of QEMU code once the block layer and hardware emulation is
able to run outside the global mutex.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2013-01-02 16:08:47 +01:00
QMP qmp: add pull_event function 2012-10-24 10:26:22 +02:00
audio softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
backends softmmu: move remaining include files to include/ subdirectories 2012-12-19 08:32:46 +01:00
block raw-posix: add raw_get_aio_fd() for virtio-blk-data-plane 2013-01-02 15:31:39 +01:00
bsd-user misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
default-configs target-sparc64: disable VGA cirrus 2012-10-27 14:36:04 +00:00
disas build: kill libdis, move disassemblers to disas/ 2012-12-19 08:29:06 +01:00
docs docs: add spice-port-fqdn.txt 2012-12-17 14:01:41 +01:00
fpu fpu: move public header file to include/fpu 2012-12-19 08:32:46 +01:00
fsdev misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
gdb-xml
hw dataplane: add virtio-blk data plane code 2013-01-02 16:08:47 +01:00
include iov: add qemu_iovec_concat_iov() 2013-01-02 15:58:09 +01:00
ldscripts build: create ldscripts/ 2012-12-19 08:29:06 +01:00
libcacard misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
linux-headers linux-headers: Update to 3.7-rc5 2012-11-13 12:27:40 -07:00
linux-user Merge remote-tracking branch 'bonzini/header-dirs' into staging 2012-12-19 17:15:39 -06:00
net net: add missing include file 2012-12-22 12:06:48 +00:00
pc-bios Merge branch 'ppc-for-upstream' of git://repo.or.cz/qemu/agraf 2012-12-15 09:05:26 +00:00
pixman@97336fad32 qapi: move include files to include/qobject/ 2012-12-19 08:31:31 +01:00
qapi misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
qga misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
qom misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
roms Merge branch 'ppc-for-upstream' of git://repo.or.cz/qemu/agraf 2012-12-15 09:05:26 +00:00
scripts build: Use separate makefile for "trace/" 2012-12-23 14:28:02 -06:00
slirp softmmu: move remaining include files to include/ subdirectories 2012-12-19 08:32:46 +01:00
stubs softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
sysconfigs/target Eliminate cpus-x86_64.conf file 2012-09-21 15:12:58 +02:00
target-alpha Merge branch 'master' of git://git.qemu.org/qemu into qom-cpu 2012-12-23 00:40:49 +01:00
target-arm Merge branch 'master' of git://git.qemu.org/qemu into qom-cpu 2012-12-23 00:40:49 +01:00
target-cris misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
target-i386 Merge branch 'qom-cpu' of git://repo.or.cz/qemu/afaerber 2012-12-28 16:08:23 +00:00
target-lm32 misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
target-m68k Merge branch 'master' of git://git.qemu.org/qemu into qom-cpu 2012-12-23 00:40:49 +01:00
target-microblaze fpu: move public header file to include/fpu 2012-12-19 08:32:46 +01:00
target-mips target-mips: Use EXCP_SC rather than a magic number 2013-01-01 12:02:24 +01:00
target-openrisc fpu: move public header file to include/fpu 2012-12-19 08:32:46 +01:00
target-ppc Merge branch 'master' of git://git.qemu.org/qemu into qom-cpu 2012-12-23 00:40:49 +01:00
target-s390x Merge branch 'master' of git://git.qemu.org/qemu into qom-cpu 2012-12-23 00:40:49 +01:00
target-sh4 fpu: move public header file to include/fpu 2012-12-19 08:32:46 +01:00
target-sparc fpu: move public header file to include/fpu 2012-12-19 08:32:46 +01:00
target-unicore32 configure: allow disabling pixman if not needed 2012-12-23 14:38:52 -06:00
target-xtensa target-xtensa: fix search_pc for the last TB opcode 2012-12-22 12:09:24 +00:00
tcg tcg-hppa: Fix typo in brcond2 2012-12-29 12:21:53 +00:00
tests test-iov: add iov_discard_front/back() testcases 2013-01-02 15:58:09 +01:00
trace build: Use separate makefile for "trace/" 2012-12-23 14:28:02 -06:00
ui build: fix includes for VNC 2012-12-22 12:04:00 +00:00
.exrc qemu: add .exrc 2012-09-07 09:02:44 +03:00
.gitignore build: Use separate makefile for "trace/" 2012-12-23 14:28:02 -06:00
.gitmodules pixman: add submodule 2012-11-01 13:10:06 +01:00
.mailmap Add a .mailmap to map pre-git-conversion authors to friendly names 2011-12-12 17:06:21 -06:00
CODING_STYLE Replace Qemu by QEMU in internal documentation 2012-04-07 13:58:25 +00:00
COPYING
COPYING.LIB
Changelog fix some common typos 2012-05-14 07:27:24 +02:00
HACKING HACKING: List areas where we may rely on impdef C behaviour 2012-12-08 14:27:40 +00:00
LICENSE LICENSE: There is no libqemu.a anymore 2011-12-09 11:25:22 +00:00
MAINTAINERS Merge branch 'qom-cpu' of git://repo.or.cz/qemu/afaerber 2012-12-28 16:08:23 +00:00
Makefile build: Use separate makefile for "trace/" 2012-12-23 14:28:02 -06:00
Makefile.objs build: Use separate makefile for "trace/" 2012-12-23 14:28:02 -06:00
Makefile.target build: fix includes for VNC 2012-12-22 12:04:00 +00:00
README Update README 2011-12-11 17:50:43 -06:00
TODO
VERSION Open up 1.4 development branch 2012-12-03 14:08:40 -06:00
acl.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
aes.c block: move include files to include/block/ 2012-12-19 08:31:31 +01:00
aio-posix.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
aio-win32.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
arch_init.c ram: refactor ram_save_block() return value 2012-12-20 23:09:40 +01:00
async.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
balloon.c softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
bitmap.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
bitops.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
block-migration.c savevm: New save live migration method: pending 2012-12-20 23:09:25 +01:00
block.c softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
blockdev-nbd.c softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
blockdev.c softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
blockjob.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
bt-host.c softmmu: move remaining include files to include/ subdirectories 2012-12-19 08:32:46 +01:00
bt-vhci.c softmmu: move remaining include files to include/ subdirectories 2012-12-19 08:32:46 +01:00
cache-utils.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
cmd.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
cmd.h Delete useless 'extern' qualifiers for functions 2011-01-23 16:21:20 +00:00
compatfd.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
configure configure: add CONFIG_VIRTIO_BLK_DATA_PLANE 2013-01-02 15:31:39 +01:00
coroutine-gthread.c block: move include files to include/block/ 2012-12-19 08:31:31 +01:00
coroutine-sigaltstack.c block: move include files to include/block/ 2012-12-19 08:31:31 +01:00
coroutine-ucontext.c block: move include files to include/block/ 2012-12-19 08:31:31 +01:00
coroutine-win32.c block: move include files to include/block/ 2012-12-19 08:31:31 +01:00
cpu-exec.c softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
cpus.c softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
cputlb.c exec: move include files to include/exec/ 2012-12-19 08:31:31 +01:00
cutils.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
device_tree.c softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
disas.c monitor: move include files to include/monitor/ 2012-12-19 08:31:32 +01:00
dma-helpers.c softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
dump-stub.c softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
dump.c exec: change RAM list to a TAILQ 2012-12-20 23:08:47 +01:00
envlist.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
error.c qapi: move include files to include/qobject/ 2012-12-19 08:31:31 +01:00
event_notifier-posix.c softmmu: move remaining include files to include/ subdirectories 2012-12-19 08:32:46 +01:00
event_notifier-win32.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
exec.c protect the ramlist with a separate mutex 2012-12-20 23:08:47 +01:00
gdbstub.c softmmu: move remaining include files to include/ subdirectories 2012-12-19 08:32:46 +01:00
hmp-commands.hx trace: Remove "info trace" from documents 2012-11-16 13:35:48 +01:00
hmp.c softmmu: move remaining include files to include/ subdirectories 2012-12-19 08:32:46 +01:00
hmp.h qapi: move include files to include/qobject/ 2012-12-19 08:31:31 +01:00
host-utils.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
iohandler.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
ioport.c exec: move include files to include/exec/ 2012-12-19 08:31:31 +01:00
iov.c iov: add qemu_iovec_concat_iov() 2013-01-02 15:58:09 +01:00
json-lexer.c qapi: move include files to include/qobject/ 2012-12-19 08:31:31 +01:00
json-parser.c qapi: move include files to include/qobject/ 2012-12-19 08:31:31 +01:00
json-streamer.c qapi: move include files to include/qobject/ 2012-12-19 08:31:31 +01:00
kvm-all.c Merge branch 'master' of git://git.qemu.org/qemu into qom-cpu 2012-12-23 00:40:49 +01:00
kvm-stub.c softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
main-loop.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
memory.c memory: introduce memory_region_test_and_clear_dirty 2012-12-20 23:09:39 +01:00
memory_mapping-stub.c softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
memory_mapping.c exec: change RAM list to a TAILQ 2012-12-20 23:08:47 +01:00
migration-exec.c migration: make writes blocking 2012-12-20 23:09:25 +01:00
migration-fd.c migration: make writes blocking 2012-12-20 23:09:25 +01:00
migration-tcp.c migration: make writes blocking 2012-12-20 23:09:25 +01:00
migration-unix.c migration: make writes blocking 2012-12-20 23:09:25 +01:00
migration.c migration: merge QEMUFileBuffered into MigrationState 2012-12-20 23:09:40 +01:00
module.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
monitor.c softmmu: move remaining include files to include/ subdirectories 2012-12-19 08:32:46 +01:00
nbd.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
notify.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
os-posix.c softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
os-win32.c softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
osdep.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
oslib-posix.c softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
oslib-win32.c softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
page_cache.c migration: move include files to include/migration/ 2012-12-19 08:31:32 +01:00
path.c user: speed up init_paths a bit 2011-02-09 10:33:54 +02:00
pci-ids.txt
qapi-schema-test.json qapi: add struct-errors test case to test-qmp-output-visitor 2012-03-27 09:11:00 -03:00
qapi-schema.json slirp: Add domain-search option to slirp's DHCP server 2012-11-15 10:27:14 +01:00
qbool.c qapi: move include files to include/qobject/ 2012-12-19 08:31:31 +01:00
qdict-test-data.txt
qdict.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
qemu-bridge-helper.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
qemu-char.c qemu-char: Inherit ptys and improve output from -serial pty 2012-12-23 09:11:19 -06:00
qemu-config.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
qemu-coroutine-io.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
qemu-coroutine-lock.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
qemu-coroutine-sleep.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
qemu-coroutine.c block: move include files to include/block/ 2012-12-19 08:31:31 +01:00
qemu-doc.texi Documentation: Update image format information 2012-11-30 11:33:24 +01:00
qemu-error.c monitor: move include files to include/monitor/ 2012-12-19 08:31:32 +01:00
qemu-img-cmds.hx qemu-img: document 'info --backing-chain' 2012-10-24 10:26:19 +02:00
qemu-img.c softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
qemu-img.texi Documentation: Update image format information 2012-11-30 11:33:24 +01:00
qemu-io.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
qemu-log.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
qemu-nbd.c block: move include files to include/block/ 2012-12-19 08:31:31 +01:00
qemu-nbd.texi Replace Qemu by QEMU in user visible documentation 2012-04-07 13:58:06 +00:00
qemu-option.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
qemu-options-wrapper.h vl.c: In qemu -h output, only print options for the arch we are running as 2011-12-19 10:27:33 -06:00
qemu-options.h vl.c: Move option generation logic into a wrapper file 2011-12-19 10:27:33 -06:00
qemu-options.hx spice-qemu-char: add spiceport chardev 2012-12-17 14:01:41 +01:00
qemu-progress.c softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
qemu-seccomp.c softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
qemu-sockets.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
qemu-tech.texi qemu-tech.texi: update implemented xtensa features list 2012-11-29 13:00:52 -06:00
qemu-thread-posix.c Fix semaphores fallback code 2012-12-29 12:27:36 +00:00
qemu-thread-win32.c win32: Switch thread abstraction to us TLS variable internally 2012-12-23 09:13:15 -06:00
qemu-timer-common.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
qemu-timer.c softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
qemu-tool.c softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
qemu-user.c monitor: move include files to include/monitor/ 2012-12-19 08:31:32 +01:00
qemu.sasl
qerror.c monitor: move include files to include/monitor/ 2012-12-19 08:31:32 +01:00
qfloat.c qapi: move include files to include/qobject/ 2012-12-19 08:31:31 +01:00
qint.c qapi: move include files to include/qobject/ 2012-12-19 08:31:31 +01:00
qjson.c qapi: move include files to include/qobject/ 2012-12-19 08:31:31 +01:00
qlist.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
qmp-commands.hx Merge remote-tracking branch 'kwolf/for-anthony' into staging 2012-10-29 10:34:05 -05:00
qmp.c softmmu: move remaining include files to include/ subdirectories 2012-12-19 08:32:46 +01:00
qstring.c qapi: move include files to include/qobject/ 2012-12-19 08:31:31 +01:00
qtest.c softmmu: move remaining include files to include/ subdirectories 2012-12-19 08:32:46 +01:00
readline.c monitor: move include files to include/monitor/ 2012-12-19 08:31:32 +01:00
rules.mak build: add $(TARGET_DIR) to "GEN config-target.h" lines 2012-12-19 08:29:06 +01:00
savevm.c savevm: New save live migration method: pending 2012-12-20 23:09:25 +01:00
spice-qemu-char.c Merge remote-tracking branch 'bonzini/header-dirs' into staging 2012-12-19 17:15:39 -06:00
tcg-runtime.c tcg: add div/rem 32-bit helpers 2010-03-14 22:04:50 +01:00
tci.c exec: move include files to include/exec/ 2012-12-19 08:31:31 +01:00
thread-pool.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
thunk.c exec: move include files to include/exec/ 2012-12-19 08:31:31 +01:00
trace-events dataplane: add virtio-blk data plane code 2013-01-02 16:08:47 +01:00
trace.h build: Use separate makefile for "trace/" 2012-12-23 14:28:02 -06:00
translate-all.c translate-all.c: Use tb1->phys_hash_next directly in tb_remove 2012-12-22 12:06:24 +00:00
translate-all.h exec: move TB handling to translate-all.c 2012-12-16 08:28:41 +00:00
uri.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
user-exec.c Merge remote-tracking branch 'bonzini/header-dirs' into staging 2012-12-19 17:15:39 -06:00
version.rc mingw: add version information to the executables 2010-09-26 16:07:57 +00:00
vl.c softmmu: move remaining include files to include/ subdirectories 2012-12-19 08:32:46 +01:00
xen-all.c xen: add missing include 2012-12-22 12:04:44 +00:00
xen-mapcache.c softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
xen-stub.c exec: move include files to include/exec/ 2012-12-19 08:31:31 +01:00

README

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

- QEMU team