1. 06 Aug, 2015 1 commit
    • Stefan Hajnoczi's avatar
      block/mirror: limit qiov to IOV_MAX elements · cae98cb8
      Stefan Hajnoczi authored
      If mirror has more free buffers than IOV_MAX, preadv(2)/pwritev(2)
      EINVAL failures may be encountered.
      
      It is possible to trigger this by setting granularity to a low value
      like 8192.
      
      This patch stops appending chunks once IOV_MAX is reached.
      
      The spurious EINVAL failure can be reproduced with a qcow2 image file
      and the following QMP invocation:
      
        qmp.command('drive-mirror', device='virtio0', target='/tmp/r7.s1',
                    granularity=8192, sync='full', mode='absolute-paths',
                    format='raw')
      
      While the guest is running dd if=/dev/zero of=/var/tmp/foo oflag=direct
      bs=4k.
      
      Cc: Jeff Cody <jcody@redhat.com>
      Signed-off-by: 's avatarStefan Hajnoczi <stefanha@redhat.com>
      Reviewed-by: 's avatarPaolo Bonzini <pbonzini@redhat.com>
      Message-id: 1435761950-26714-1-git-send-email-stefanha@redhat.com
      Signed-off-by: 's avatarJeff Cody <jcody@redhat.com>
      cae98cb8
  2. 27 Jul, 2015 1 commit
  3. 07 Jul, 2015 7 commits
  4. 06 Jul, 2015 1 commit
  5. 15 Jun, 2015 2 commits
  6. 12 Jun, 2015 3 commits
  7. 11 Jun, 2015 1 commit
  8. 10 Jun, 2015 3 commits
  9. 08 Jun, 2015 2 commits
  10. 03 Jun, 2015 1 commit
  11. 29 May, 2015 1 commit
  12. 27 Apr, 2015 2 commits
  13. 10 Mar, 2015 1 commit
  14. 04 Mar, 2015 1 commit
  15. 02 Mar, 2015 1 commit
  16. 10 Feb, 2015 4 commits
  17. 06 Feb, 2015 1 commit
    • 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: 's avatarPeter Lieven <pl@kamp.de>
      Signed-off-by: 's avatarKevin Wolf <kwolf@redhat.com>
      95f7142a
  18. 05 Feb, 2015 2 commits
  19. 26 Jan, 2015 1 commit
  20. 20 Jan, 2015 1 commit
  21. 22 Dec, 2014 3 commits