QEMU With E2K User Support
Go to file
Stefan Hajnoczi 88807f89d9 dataplane: add virtqueue vring code
The virtio-blk-data-plane cannot access memory using the usual QEMU
functions since it executes outside the global mutex and the memory APIs
are this time are not thread-safe.

This patch introduces a virtqueue module based on the kernel's vhost
vring code.  The trick is that we map guest memory ahead of time and
access it cheaply outside the global mutex.

Once the hardware emulation code can execute outside the global mutex it
will be possible to drop this code.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2013-01-02 15:55:47 +01: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
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 virtqueue vring code 2013-01-02 15:55:47 +01:00
include raw-posix: add raw_get_aio_fd() for virtio-blk-data-plane 2013-01-02 15:31:39 +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-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
QMP
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
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 target-mips: Fix for helpers for EXTR_* instructions 2013-01-01 11:11:38 +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
.gitignore build: Use separate makefile for "trace/" 2012-12-23 14:28:02 -06:00
.gitmodules
.mailmap
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
Changelog
cmd.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
cmd.h
CODING_STYLE
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
COPYING
COPYING.LIB
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
HACKING HACKING: List areas where we may rely on impdef C behaviour 2012-12-08 14:27:40 +00:00
hmp-commands.hx
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 misc: move include files to include/qemu/ 2012-12-19 08:32:39 +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
LICENSE
main-loop.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01: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
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
memory.c memory: introduce memory_region_test_and_clear_dirty 2012-12-20 23:09:39 +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
pci-ids.txt
qapi-schema-test.json
qapi-schema.json
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
qemu-error.c monitor: move include files to include/monitor/ 2012-12-19 08:31:32 +01:00
qemu-img-cmds.hx
qemu-img.c softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
qemu-img.texi
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
qemu-option.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
qemu-options-wrapper.h
qemu-options.h
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-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
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
README
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
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
TODO
trace-events dataplane: add virtqueue vring code 2013-01-02 15:55: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
version.rc
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

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

- QEMU team