• Peter Lieven's avatar
    virtio-blk: introduce multiread · 95f7142a
    Peter Lieven authored
    
    
    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: default avatarPeter Lieven <pl@kamp.de>
    Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
    95f7142a