1. 10 2月, 2011 2 次提交
  2. 31 1月, 2011 1 次提交
  3. 24 1月, 2011 3 次提交
  4. 17 12月, 2010 1 次提交
  5. 04 11月, 2010 1 次提交
  6. 22 10月, 2010 1 次提交
    • S
      qcow2: Support exact L1 table growth · 72893756
      Stefan Hajnoczi 提交于
      The L1 table grow operation includes a size calculation that bumps up
      the new L1 table size in order to anticipate the size needs of vmstate
      data.  This helps reduce the number of times that the L1 table has to be
      grown when vmstate data is appended.
      
      This size overhead is not necessary during image creation,
      bdrv_truncate(), or snapshot goto operations.  In fact, existing
      qemu-iotests that exercise table growth are no longer able to trigger it
      because image creation preallocates an L1 table that is too large after
      changes to qcow_create2().
      
      This patch keeps the size calculation but also adds exact growth for
      callers that do not want to inflate the L1 table size unnecessarily.
      Signed-off-by: NStefan Hajnoczi <stefanha@linux.vnet.ibm.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      72893756
  7. 21 9月, 2010 3 次提交
  8. 08 9月, 2010 1 次提交
  9. 22 6月, 2010 1 次提交
  10. 15 6月, 2010 1 次提交
  11. 28 5月, 2010 4 次提交
  12. 03 5月, 2010 1 次提交
    • K
      block: Open the underlying image file in generic code · 66f82cee
      Kevin Wolf 提交于
      Format drivers shouldn't need to bother with things like file names, but rather
      just get an open BlockDriverState for the underlying protocol. This patch
      introduces this behaviour for bdrv_open implementation. For protocols which
      need to access the filename to open their file/device/connection/... a new
      callback bdrv_file_open is introduced which doesn't get an underlying file
      opened.
      
      For now, also some of the more obscure formats use bdrv_file_open because they
      open() the file themselves instead of using the block.c functions. They need to
      be fixed in later patches.
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      66f82cee
  13. 23 4月, 2010 5 次提交
  14. 10 4月, 2010 1 次提交
  15. 20 2月, 2010 1 次提交
  16. 11 2月, 2010 1 次提交
  17. 27 1月, 2010 4 次提交
  18. 09 11月, 2009 1 次提交
  19. 28 10月, 2009 1 次提交
  20. 15 10月, 2009 1 次提交
    • K
      qcow2: Bring synchronous read/write back to life · ef845c3b
      Kevin Wolf 提交于
      When the synchronous read and write functions were dropped, they were replaced
      by generic emulation functions. Unfortunately, these emulation functions don't
      provide the same semantics as the original functions did.
      
      The original bdrv_read would mean that we read some data synchronously and that
      we won't be interrupted during this read. The latter assumption is no longer
      true with the emulation function which needs to use qemu_aio_poll and therefore
      allows the callback of any other concurrent AIO request to be run during the
      read. Which in turn means that (meta)data read earlier could have changed and
      be invalid now. qcow2 is not prepared to work in this way and it's just scary
      how many places there are where other requests could run.
      
      I'm not sure yet where exactly it breaks, but you'll see breakage with virtio
      on qcow2 with a backing file. Providing synchronous functions again fixes the
      problem for me.
      
      Patchworks-ID: 35437
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      ef845c3b
  21. 05 10月, 2009 1 次提交
    • K
      qcow2: Increase maximum cluster size to 2 MB · 80ee15a6
      Kevin Wolf 提交于
      This patch increases the maximum qcow2 cluster size to 2 MB. Starting with 128k
      clusters, L2 tables span 2 GB or more of virtual disk space, causing 32 bit
      truncation and wraparound of signed integers. Therefore some variables need to
      use a larger data type.
      
      While being at reviewing data types, change some integers that are used for
      array indices to unsigned. In some places they were checked against some upper
      limit but not for negative values. This could avoid potential segfaults with
      corrupted qcow2 images.
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      80ee15a6
  22. 12 9月, 2009 1 次提交
    • B
      Fix sys-queue.h conflict for good · 72cf2d4f
      Blue Swirl 提交于
      Problem: Our file sys-queue.h is a copy of the BSD file, but there are
      some additions and it's not entirely compatible. Because of that, there have
      been conflicts with system headers on BSD systems. Some hacks have been
      introduced in the commits 15cc9235,
      f40d7537,
      96555a96 and
      3990d09a but the fixes were fragile.
      
      Solution: Avoid the conflict entirely by renaming the functions and the
      file. Revert the previous hacks.
      Signed-off-by: NBlue Swirl <blauwirbel@gmail.com>
      72cf2d4f
  23. 10 9月, 2009 1 次提交
    • K
      qcow2: Order concurrent AIO requests on the same unallocated cluster · f214978a
      Kevin Wolf 提交于
      When two AIO requests write to the same cluster, and this cluster is
      unallocated, currently both requests allocate a new cluster and the second one
      merges the first one when it is completed. This means an cluster allocation, a
      read and a cluster deallocation which cause some overhead. If we simply let the
      second request wait until the first one is done, we improve overall performance
      with AIO requests (specifially, qcow2/virtio combinations).
      
      This patch maintains a list of in-flight requests that have allocated new
      clusters. A second request touching the same cluster is limited so that it
      either doesn't touch the allocation of the first request (so it can have a
      non-overlapping allocation) or it waits for the first request to complete.
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      f214978a
  24. 11 7月, 2009 1 次提交
  25. 17 6月, 2009 1 次提交