• Andrew Morton's avatar
    [PATCH] writeback efficiency and QoS improvements · 9672a337
    Andrew Morton authored
    The radix-tree walk for writeback has a couple of problems:
    
    a) It always scans a file from its first dirty page, so if someone
       is repeatedly dirtying the front part of a file, pages near the end
       may be starved of writeout.  (Well, not completely: the `kupdate'
       function will write an entire file once the file's dirty timestamp
       has expired).  
    
    b) When the disk queues are huge (10000 requests), there can be a
       very large number of locked pages.  Scanning past these in writeback
       consumes quite some CPU time.
    
    So in each address_space we record the index at which the last batch of
    writeout terminated and start the next batch of writeback from that
    point.
    9672a337
mpage.c 18.8 KB