1. 03 12月, 2013 4 次提交
  2. 29 11月, 2013 4 次提交
    • F
      blkdebug: add "remove_break" command · 4cc70e93
      Fam Zheng 提交于
      This adds "remove_break" command which is the reverse of blkdebug
      command "break": it removes all breakpoints with given tag and resumes
      all the requests.
      Signed-off-by: NFam Zheng <famz@redhat.com>
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      4cc70e93
    • L
      sheepdog: support user-defined redundancy option · b3af018f
      Liu Yuan 提交于
      Sheepdog support two kinds of redundancy, full replication and erasure coding.
      
      # create a fully replicated vdi with x copies
       -o redundancy=x (1 <= x <= SD_MAX_COPIES)
      
      # create a erasure coded vdi with x data strips and y parity strips
       -o redundancy=x:y (x must be one of {2,4,8,16} and 1 <= y < SD_EC_MAX_STRIP)
      
      E.g, to convert a vdi into sheepdog vdi 'test' with 8:3 erasure coding scheme
      
      $ qemu-img convert -o redundancy=8:3 linux-0.2.img sheepdog:test
      
      Cc: Kevin Wolf <kwolf@redhat.com>
      Cc: Stefan Hajnoczi <stefanha@redhat.com>
      Signed-off-by: NLiu Yuan <namei.unix@gmail.com>
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      b3af018f
    • F
      qapi: Change BlockDirtyInfo to list · 21b56835
      Fam Zheng 提交于
      We have multiple dirty bitmaps in BDS now, switch QAPI to allow query
      it (BlockInfo.dirty_bitmaps), and also drop old BlockInfo.dirty.
      Signed-off-by: NFam Zheng <famz@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      21b56835
    • F
      block: per caller dirty bitmap · e4654d2d
      Fam Zheng 提交于
      Previously a BlockDriverState has only one dirty bitmap, so only one
      caller (e.g. a block job) can keep track of writing. This changes the
      dirty bitmap to a list and creates a BdrvDirtyBitmap for each caller, the
      lifecycle is managed with these new functions:
      
          bdrv_create_dirty_bitmap
          bdrv_release_dirty_bitmap
      
      Where BdrvDirtyBitmap is a linked list wrapper structure of HBitmap.
      
      In place of bdrv_set_dirty_tracking, a BdrvDirtyBitmap pointer argument
      is added to these functions, since each caller has its own dirty bitmap:
      
          bdrv_get_dirty
          bdrv_dirty_iter_init
          bdrv_get_dirty_count
      
      bdrv_set_dirty and bdrv_reset_dirty prototypes are unchanged but will
      internally walk the list of all dirty bitmaps and set them one by one.
      Signed-off-by: NFam Zheng <famz@redhat.com>
      Reviewed-by: NStefan Hajnoczi <stefanha@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      e4654d2d
  3. 28 11月, 2013 7 次提交
  4. 30 10月, 2013 1 次提交
  5. 29 10月, 2013 1 次提交
    • K
      block: Avoid unecessary drv->bdrv_getlength() calls · b94a2610
      Kevin Wolf 提交于
      The block layer generally keeps the size of an image cached in
      bs->total_sectors so that it doesn't have to perform expensive
      operations to get the size whenever it needs it.
      
      This doesn't work however when using a backend that can change its size
      without qemu being aware of it, i.e. passthrough of removable media like
      CD-ROMs or floppy disks. For this reason, the caching is disabled when a
      removable device is used.
      
      It is obvious that checking whether the _guest_ device has removable
      media isn't the right thing to do when we want to know whether the size
      of the host backend can change. To make things worse, non-top-level
      BlockDriverStates never have any device attached, which makes qemu
      assume they are removable, so drv->bdrv_getlength() is always called on
      the protocol layer. In the case of raw-posix, this causes unnecessary
      lseek() system calls, which turned out to be rather expensive.
      
      This patch completely changes the logic and disables bs->total_sectors
      caching only for certain block driver types, for which a size change is
      expected: host_cdrom and host_floppy on POSIX, host_device on win32; also
      the raw format in case it sits on top of one of these protocols, but in
      the common case the nested bdrv_getlength() call on the protocol driver
      will use the cache again and avoid an expensive drv->bdrv_getlength()
      call.
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      Reviewed-by: NPaolo Bonzini <pbonzini@redhat.com>
      b94a2610
  6. 11 10月, 2013 6 次提交
  7. 25 9月, 2013 1 次提交
  8. 12 9月, 2013 7 次提交
  9. 06 9月, 2013 7 次提交
  10. 02 9月, 2013 1 次提交
  11. 23 8月, 2013 1 次提交