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
mapping mechanism.
Hostmem registers a MemoryListener similar to how vhost collects and
pushes memory region information into the kernel. There is a
fine-grained lock on the regions list which is held during lookup and
when installing a new regions list.
When the physical memory map changes the MemoryListener callbacks are
invoked. They build up a new list of memory regions which is finally
installed when the list has been completed.
Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
Showing
hw/dataplane/Makefile.objs
0 → 100644
hw/dataplane/hostmem.c
0 → 100644
hw/dataplane/hostmem.h
0 → 100644
想要评论请 注册 或 登录