Statistics
| Branch: | Revision:

root / hw / dataplane @ 5e22c276

Name Size
Makefile.objs 89 Bytes
event-poll.c 2.6 kB
event-poll.h 1.1 kB
hostmem.c 5.4 kB
hostmem.h 1.5 kB
ioq.c 2.8 kB
ioq.h 1.7 kB
virtio-blk.c 14.1 kB
virtio-blk.h 909 Bytes
vring.c 11.6 kB
vring.h 2 kB

Latest revisions

# Date Author Comment
ef4929fb 01/03/2013 03:13 pm Stefan Hajnoczi

dataplane: use linux-headers/ for virtio includes

The hw/dataplane/vring.c code includes linux/virtio_ring.h. Ensure that
we use linux-headers/ instead of the system-wide headers, which may be
out-of-date on older distros.

This resolves the following build error on Debian 6:...

e72f66a0 01/02/2013 05:08 pm Stefan Hajnoczi

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...

3e9ec521 01/02/2013 04:58 pm Stefan Hajnoczi

dataplane: add Linux AIO request queue

The IOQueue has a pool of iocb structs and a function to add new
read/write requests. Multiple requests can be added before calling the
submit function to actually tell the host kernel to begin I/O. This
allows callers to batch requests and submit them in one go....

71973b04 01/02/2013 04:56 pm Stefan Hajnoczi

dataplane: add event loop

Outside the safety of the global mutex we need to poll on file
descriptors. I found epoll(2) is a convenient way to do that, although
other options could replace this module in the future (such as an
AioContext-based loop or glib's GMainLoop)....

88807f89 01/02/2013 04:55 pm Stefan Hajnoczi

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...

185ecf40 01/02/2013 04:50 pm Stefan Hajnoczi

dataplane: add host memory mapping code

The data plane thread needs to map guest physical addresses to host
pointers. Normally this is done with cpu_physical_memory_map() but the
function assumes the global mutex is held. The data plane thread does
not touch the global mutex and therefore needs a thread-safe memory...

View revisions

Also available in: Atom