Skip to content
  1. Feb 22, 2017
  2. Jan 23, 2017
  3. Jan 17, 2017
  4. Sep 20, 2016
  5. Sep 19, 2016
  6. Mar 13, 2016
  7. Sep 04, 2015
  8. Aug 26, 2015
  9. Aug 19, 2015
  10. Aug 16, 2015
  11. Aug 14, 2015
    • Peter Maydell's avatar
      Merge remote-tracking branch 'remotes/cody/tags/block-pull-request' into staging · 074a9925
      Peter Maydell authored
      
      
      # gpg: Signature made Fri 14 Aug 2015 14:54:27 BST using RSA key ID C0DE3057
      # gpg: Good signature from "Jeffrey Cody <jcody@redhat.com>"
      # gpg:                 aka "Jeffrey Cody <jeff@codyprime.org>"
      # gpg:                 aka "Jeffrey Cody <codyprime@gmail.com>"
      # gpg: WARNING: This key is not certified with sufficiently trusted signatures!
      # gpg:          It is not certain that the signature belongs to the owner.
      # Primary key fingerprint: 9957 4B4D 3474 90E7 9D98  D624 BDBE 7B27 C0DE 3057
      
      * remotes/cody/tags/block-pull-request:
        mirror: Fix coroutine reentrance
        block/mirror: limit qiov to IOV_MAX elements
      
      Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      074a9925
    • Peter Maydell's avatar
      Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging · 8e0adf64
      Peter Maydell authored
      
      
      # gpg: Signature made Fri 14 Aug 2015 15:41:14 BST using RSA key ID 81AB73C8
      # gpg: Good signature from "Stefan Hajnoczi <stefanha@redhat.com>"
      # gpg:                 aka "Stefan Hajnoczi <stefanha@gmail.com>"
      
      * remotes/stefanha/tags/block-pull-request:
        throttle: add throttle_max_is_missing_limit() test
        throttle: refuse bps_max/iops_max without bps/iops
      
      Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      8e0adf64
    • Kevin Wolf's avatar
      mirror: Fix coroutine reentrance · e424aff5
      Kevin Wolf authored
      This fixes a regression introduced by commit dcfb3beb ("mirror: Do zero
      write on target if sectors not allocated"), which was reported to cause
      aborts with the message "Co-routine re-entered recursively".
      
      The cause for this bug is the following code in mirror_iteration_done():
      
          if (s->common.busy) {
              qemu_coroutine_enter(s->common.co, NULL);
          }
      
      This has always been ugly because - unlike most places that reenter - it
      doesn't have a specific yield that it pairs with, but is more
      uncontrolled.  What we really mean here is "reenter the coroutine if
      it's in one of the four explicit yields in mirror.c".
      
      This used to be equivalent with s->common.busy because neither
      mirror_run() nor mirror_iteration() call any function that could yield.
      However since commit dcfb3beb
      
       this doesn't hold true any more:
      bdrv_get_block_status_above() can yield.
      
      So what happens is that bdrv_get_block_status_above() wants to take a
      lock that is already held, so it adds itself to the queue of waiting
      coroutines and yields. Instead of being woken up by the unlock function,
      however, it gets woken up by mirror_iteration_done(), which is obviously
      wrong.
      
      In most cases the code actually happens to cope fairly well with such
      cases, but in this specific case, the unlock must already have scheduled
      the coroutine for wakeup when mirror_iteration_done() reentered it. And
      then the coroutine happened to process the scheduled restarts and tried
      to reenter itself recursively.
      
      This patch fixes the problem by pairing the reenter in
      mirror_iteration_done() with specific yields instead of abusing
      s->common.busy.
      
      Cc: qemu-stable@nongnu.org
      Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
      Reviewed-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      Reviewed-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
      Reviewed-by: default avatarJeff Cody <jcody@redhat.com>
      Message-id: 1439455310-11263-1-git-send-email-kwolf@redhat.com
      Signed-off-by: default avatarJeff Cody <jcody@redhat.com>
      e424aff5
    • Jeff Cody's avatar
      Merge branch 'block-next' into HEAD · d90dedfc
      Jeff Cody authored
      d90dedfc
  12. Aug 13, 2015