xqemu/include
Jason Wang 309750fad5 vhost: logs sharing
Currently we allocate one vhost log per vhost device. This is sub
optimal when:

- Guest has several device with vhost as backend
- Guest has multiqueue devices

In the above cases, we can avoid the memory allocation by sharing a
single vhost log among all the vhost devices. This is done through:

- Introducing a new vhost_log structure with refcnt inside.
- Using a global pointer to vhost_log structure that will be used. And
  introduce helper to get the log with expected log size and helper to
- drop the refcnt to the old log.
- Each vhost device still keep track of a pointer to the log that was
  used.

With above, if no resize happens, all vhost device will share a single
vhost log. During resize, a new vhost_log structure will be allocated
and made for the global pointer. And each vhost devices will drop the
refcnt to the old log.

Tested by doing scp during migration for a 2 queues virtio-net-pci.

Cc: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2015-06-04 12:44:49 +02:00
..
block qapi: add dirty bitmap status 2015-05-29 12:53:12 +02:00
disas disas: Implement disassembly output for A64 2014-02-08 14:50:48 +00:00
exec Add stream ID to MSI write 2015-05-31 20:29:02 +02:00
fpu softfloat: expand out STATUS macro 2015-02-06 16:11:38 +00:00
hw vhost: logs sharing 2015-06-04 12:44:49 +02:00
libdecnumber Fix new typos in comments (found by codespell) 2014-07-18 17:45:36 +04:00
migration migration: Use an array instead of 3 parameters 2015-05-07 18:31:53 +02:00
monitor monitor: Remove unused functions 2015-04-30 16:05:48 +03:00
net net: add MAC address string printer 2015-05-11 14:49:03 +01:00
qapi qobject: Add a special null QObject 2015-05-11 08:59:07 -04:00
qemu util: move read_password method out of qemu-img into osdep/oslib 2015-05-22 17:08:01 +02:00
qom exec.c: Capture the memory attributes for a watchpoint hit 2015-04-26 16:49:24 +01:00
standard-headers virtio-input: add linux/input.h 2015-05-29 10:30:06 +02:00
sysemu hw/pci: add support for NUMA nodes 2015-06-03 18:19:18 +02:00
ui gtk: add opengl support, using egl 2015-05-29 11:43:29 +02:00
config.h janitor: move remaining public headers to include/ 2012-12-19 08:32:46 +01:00
elf.h linux/elf.h update 2015-05-27 17:52:03 +02:00
glib-compat.h glib: remove stale compat functions 2015-05-22 15:58:06 -04:00
qemu-common.h util: Remove unused functions 2015-04-30 16:05:48 +03:00
qemu-io.h qemu-io: Use BlockBackend 2015-02-16 15:07:19 +00:00
qjson.h QJSON: Add JSON writer 2015-02-05 17:16:14 +01:00
trace-tcg.h trace: [tcg] Generate TCG tracing routines 2014-08-12 14:26:12 +01:00
trace.h trace: [tcg] Include event definitions in "trace.h" 2014-08-12 14:26:12 +01:00