• Jens Axboe's avatar
    cfq-iosched: don't delay queue kick for a merged request · d6ceb25e
    Jens Axboe authored
    "Zhang, Yanmin" <yanmin_zhang@linux.intel.com> reports that commit
    b029195d introduced a regression
    of about 50% with sequential threaded read workloads. The test
    case is:
    
    tiotest -k0 -k1 -k3 -f 80 -t 32
    
    which starts 32 threads each reading a 80MB file. Twiddle the kick
    queue logic so that we do start IO immediately, if it appears to be
    a fully merged request. We can't really detect that, so just check
    if the request is bigger than a page or not. The assumption is that
    since single bio issues will first queue a single request with just
    one page attached and then later do merges on that, if we already
    have more than a page worth of data in the request, then the request
    is most likely good to go.
    
    Verified that this doesn't cause a regression with the test case that
    commit b029195d was fixing. It does not,
    we still see maximum sized requests for the queue-then-merge cases.
    Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
    d6ceb25e
cfq-iosched.c 58.8 KB