Skip to content
  • Stefan Hajnoczi's avatar
    block: clean up bdrv_drain_all() throttling comments · 0b06ef3b
    Stefan Hajnoczi authored
    Since cc0681c4
    
     ("block: Enable the new
    throttling code in the block layer.") bdrv_drain_all() no longer spins.
    The code used to look as follows:
    
      do {
          busy = qemu_aio_wait();
    
          /* FIXME: We do not have timer support here, so this is effectively
           * a busy wait.
           */
          QTAILQ_FOREACH(bs, &bdrv_states, list) {
              while (qemu_co_enter_next(&bs->throttled_reqs)) {
                  busy = true;
              }
          }
      } while (busy);
    
    Note that throttle requests are kicked but I/O throttling limits are
    still in effect.  The loop spins until the vm_clock time allows the
    request to make progress and complete.
    
    The new throttling code introduced bdrv_start_throttled_reqs().  This
    function not only kicks throttled requests but also temporarily disables
    throttling so requests can run.
    
    The outdated FIXME comment can be removed.  Also drop the busy = true
    assignment since we overwrite it immediately afterwards.
    
    Reviewed-by: default avatarAlex Bligh <alex@alex.org.uk>
    Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
    0b06ef3b