• P
    stream: fix ratelimiting corner case · b21d677e
    Paolo Bonzini 提交于
    This fixes inability to make progress in streaming if the quota is set
    to less than the amount of data that an I/O operation has to write.
    
    In this case, limit->dispatched + n will always be above the quota and,
    due to the "goto retry" to recheck cancellation and allocation, streaming
    will livelock.
    
    This can be reproduced with "block_job_set_speed ide0-hd0 1b".  Of course,
    with this patch the requested limit will not be obeyed.  That could be
    done with another patch that caps is_allocated's n argument by the slice
    quota.
    Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: NKevin Wolf <kwolf@redhat.com>
    b21d677e
stream.c 7.8 KB