qemu/include/hw
Peter Lieven 95f7142abc virtio-blk: introduce multiread
this patch finally introduces multiread support to virtio-blk. While
multiwrite support was there for a long time, read support was missing.

The complete merge logic is moved into virtio-blk.c which has
been the only user of request merging ever since. This is required
to be able to merge chunks of requests and immediately invoke callbacks
for those requests. Secondly, this is required to switch to
direct invocation of coroutines which is planned at a later stage.

The following benchmarks show the performance of running fio with
4 worker threads on a local ram disk. The numbers show the average
of 10 test runs after 1 run as warmup phase.

              |        4k        |       64k        |        4k
MB/s          | rd seq | rd rand | rd seq | rd rand | wr seq | wr rand
--------------+--------+---------+--------+---------+--------+--------
master        | 1221   | 1187    | 4178   | 4114    | 1745   | 1213
multiread     | 1829   | 1189    | 4639   | 4110    | 1894   | 1216

Signed-off-by: Peter Lieven <pl@kamp.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2015-02-06 17:24:21 +01:00
..
acpi bios-linker-loader: move header to common location 2015-01-27 14:46:17 +02:00
arm target_arm: Parameterise the irq lines for armv7m_init 2015-02-05 13:37:21 +00:00
audio isa: QOM'ify ISADevice 2013-06-07 14:55:33 +02:00
block hw: Convert from BlockDriverState to BlockBackend, mostly 2014-10-20 14:02:25 +02:00
char hw/arm/digic: add UART support 2013-12-17 20:12:51 +00:00
cpu icc_bus: QOM'ify ICC 2013-12-24 18:02:18 +01:00
cris cris: Remove the CRIS PIC glue 2014-02-03 14:04:00 +00:00
i2c smbus: return -1 if nothing found at the given address 2014-05-07 19:14:46 +03:00
i386 - Migration and linuxboot fixes for 2.2 regressions 2014-12-15 16:43:42 +00:00
input input: switch hid mouse and tablet to the new input layer api. 2014-05-26 08:42:43 +02:00
intc arm: vgic device control api support 2014-02-26 17:20:00 +00:00
ipack ipack: Move IndustryPack out of hw/char/ 2014-02-14 21:11:53 +01:00
isa pc87312: Drop unused members of PC87312State 2014-10-20 14:03:50 +02:00
kvm
lm32 lm32_juart: Relocate and tidy header 2013-07-29 21:06:27 +02:00
m68k
mem pc-dimm: Add Error argument to pc_existing_dimms_capacity 2015-01-27 14:46:18 +02:00
mips hw/mips: Add API to convert KVM guest KSEG0 <-> GPA 2014-06-18 16:58:10 +02:00
misc vfio: move hw/misc/vfio.c to hw/vfio/pci.c Move vfio.h into include/hw/vfio 2014-12-19 15:24:06 -07:00
net allwinner-emac: set autonegotiation complete bit on link up 2014-04-17 21:34:06 +01:00
nvram fw_cfg_mem: expose the "data_width" property with fw_cfg_init_mem_wide() 2014-12-22 23:39:18 +00:00
pci pci: Split pcie_host_mmcfg_map() 2015-01-26 20:25:52 +02:00
pci-host Patch queue for ppc - 2014-09-08 2014-09-08 12:02:07 +01:00
ppc spapr: Fix stale HTAB during live migration (KVM) 2015-01-07 16:16:26 +01:00
s390x s390: Add PCI bus support 2015-01-12 10:14:04 +01:00
scsi esp: Do not overwrite ESP_TCHI after reset 2014-11-12 10:27:03 +01:00
sh4
sparc firmware_abi: move to include/hw/nvram/ 2013-06-02 18:13:54 +03:00
timer allwinner-a10-pit: implement prescaler and source selection 2014-04-17 21:34:06 +01:00
tricore target-tricore: Add board for systemmode 2014-09-01 14:49:20 +01:00
unicore32
usb usb: move ehci register defines to header file 2014-06-02 16:28:59 +02:00
vfio hw/vfio: create common module 2014-12-22 09:54:51 -07:00
virtio virtio-blk: introduce multiread 2015-02-06 17:24:21 +01:00
xen fix QEMU build on Xen/ARM 2015-01-26 11:56:33 +00:00
boards.h hw/machine: added machine_usb wrapper 2015-01-08 17:32:27 +00:00
bt.h Preparation for usb-bt-dongle conditional build 2013-09-10 11:14:41 +02:00
compat.h virtio-pci: fix migration for pci bus master 2014-11-02 12:03:03 +02:00
devices.h arm: fix location of some include files 2013-04-15 15:16:01 +02:00
elf_ops.h loader: g_realloc(p, 0) frees and returns NULL, simplify 2014-09-29 19:44:04 +03:00
empty_slot.h
fw-path-provider.h fw-path-provider: Change GPL version to 2+ 2014-04-07 15:36:07 +02:00
hotplug.h misc: Fix new typos in comments 2015-01-15 10:44:13 +03:00
hw.h bootdevice: move code about bootorder from vl.c to bootdevice.c 2014-12-22 14:39:20 +08:00
ide.h Call pci_piix3_xen_ide_unplug from unplug_disks 2014-02-20 17:28:08 +00:00
irq.h irq: Remove qemu_irq_intercept_out 2014-10-23 16:41:25 +02:00
loader.h pc: resizeable ROM blocks 2015-01-10 21:02:23 +00:00
nmi.h cpus: Define callback for QEMU "nmi" command 2014-08-25 13:25:16 +02:00
pcmcia.h hmp: Remove "info pcmcia" 2014-10-24 12:19:11 +01:00
platform-bus.h sysbus: Add new platform bus helper device 2014-11-04 23:26:14 +01:00
ptimer.h vmstate: Make VMSTATE_STRUCT_POINTER take type, not ptr-to-type 2014-02-04 15:51:45 +01:00
qdev-core.h Add device listener interface 2015-01-20 14:24:07 +00:00
qdev-dma.h qdev: Remove hex8/32/64 property types 2014-02-14 21:12:04 +01:00
qdev-properties.h hw: Convert from BlockDriverState to BlockBackend, mostly 2014-10-20 14:02:25 +02:00
qdev.h
sd.h hw: Convert from BlockDriverState to BlockBackend, mostly 2014-10-20 14:02:25 +02:00
ssi.h ssi: Name the CS GPIO 2014-05-28 17:36:21 +02:00
stream.h Trivial grammar and spelling fixes 2013-05-01 20:55:21 +04:00
sysbus.h trivial patches for 2014-11-11 2014-11-11 14:50:10 +00:00
usb.h usb-bus: introduce a wrapper function to check speed 2014-09-23 12:51:08 +02:00