• Paolo Valente's avatar
    block, bfq: merge bursts of newly-created queues · 430a67f9
    Paolo Valente authored
    Many throughput-sensitive workloads are made of several parallel I/O
    flows, with all flows generated by the same application, or more
    generically by the same task (e.g., system boot). The most
    counterproductive action with these workloads is plugging I/O dispatch
    when one of the bfq_queues associated with these flows remains
    temporarily empty.
    
    To avoid this plugging, BFQ has been using a burst-handling mechanism
    for years now. This mechanism has proven effective for throughput, and
    not detrimental for service guarantees. This commit pushes this
    mechanism a little bit further, basing on the following two facts.
    
    First, all the I/O flows of a the same application or task contribute
    to the execution/completion of that common application or task. So the
    performance figures that matter are total throughput of the flows and
    task-wide I/O latency.  In particular, these flows do not need to be
    protected from each other, in terms of individual bandwidth or
    latency....
    430a67f9
bfq-iosched.h 37.5 KB