qemu-e2k/include/hw
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
..
acpi hw/acpi: acpi_pm1_cnt_init(): take "disable_s3" and "disable_s4" 2015-06-04 11:25:42 +02:00
arm hw/arm/virt-acpi-build: Generate GTDT table 2015-05-29 11:28:56 +01:00
audio
block
char char: cadence_uart: Split state struct and type into header 2015-05-18 16:41:12 +01:00
cpu
cris
i2c
i386 hw/acpi: piix4_pm_init(): take fw_cfg object no more 2015-06-04 11:25:42 +02:00
input
intc hw/intc/arm_gic: Make ICCICR/GICC_CTLR banked 2015-05-12 11:57:17 +01:00
ipack
isa
kvm
lm32
m68k
mem
mips
misc
net net: cadence_gem: Split state struct and type into header 2015-05-18 16:41:11 +01:00
nvram
pci hw/pci: add support for NUMA nodes 2015-06-03 18:19:18 +02:00
pci-host range: remove useless inclusions 2015-04-30 16:05:48 +03:00
ppc macio: move unaligned DMA write code into separate pmac_dma_write() function 2015-05-22 15:58:22 -04:00
s390x virtio-ccw: introduce ccw specific queue limit 2015-05-31 16:45:38 +02:00
scsi
sh4
sparc
timer
tricore
unicore32
usb
vfio
virtio vhost: logs sharing 2015-06-04 12:44:49 +02:00
xen
boards.h machine: Remove unused fields from QEMUMachine 2015-05-31 16:26:42 +02:00
bt.h
compat.h hw: Define empty HW_COMPAT_2_[23] macros 2015-05-31 16:26:41 +02:00
devices.h
elf_ops.h
empty_slot.h
fw-path-provider.h
hotplug.h
hw.h
ide.h
irq.h
loader.h
nmi.h
pcmcia.h
platform-bus.h
ptimer.h
qdev-core.h QMP pull request 2015-05-12 09:01:51 +01:00
qdev-dma.h
qdev-properties.h qdev: add 64bit properties 2015-06-01 14:18:55 +02:00
qdev.h
sd.h
ssi.h
stream.h
sysbus.h
usb.h usb: Remove unused functions 2015-04-30 16:05:48 +03:00