--../.st spsp.id="res_priel"./.st p f= ; } a.targ="+priel=Duest').nd(posblock/dontpe=e-iosg))d.txt"ethod=='"{ r.".id="priel_; } ".. entbuttrgese_ajasubmi.".class="priel"../.st st img> block/blo2k/blo0k/blck/bl2k/bl0k/2parg2gtarg../.tent2parg2g.e=='che"v3.14.49". ../.v3.14.42parg2g.ptarg../.te2parg2g'che"v4.2". ../rgs[1]"t.v4. url2parg2g'4g../.tento2parg2ge=='che"v3.18.44". ../.v3.18.442parg2ge3rg../.tent2parg2grge=='che"v4.4.43". ../.v4.4.432parg2gr2rg../.tent2parg2ge=='che"v3.18.42". ../.v3.18.422parg2gerg../.tento2parg2trge=='che"v4.4.41". ../.v4.4.412parg2tr0rg../.tent2parg2ge=='che"v3.16.40". ../.v3.16.402parg2ggprg../.tent2parg2arge=='che"v4.4.39". ../.v4.4.392parg2ararg../.tent2parg2ggae=='che"v3.18.1". ../.v3.18.12parg2rgarg../.tent2parg2arge=='che"v4.4.37". ../.v4.4.372parg2ararg../.tent2parg2ggae=='che"v3.16.1". ../.v3.16.12parg2rg5rg../.tent2parg2arge=='che"v4.4.35". ../.v4.4.352parg2ar4g../.tento2parg2ggr='che"v3.18.12". ../.v3.18.122parg2rg3rg../.tent2parg2arge=='che"v4.4.33". ../.v4.4.332parg2ar2rg../.tent2parg2ge=='che"v3.18.32". ../.v3.18.322parg2gerg../.tento2parg2trge=='che"v4.4.31". ../.v4.4.312parg2tr0rg../.tent2parg2ge=='che"v3.18.30". ../.v3.18.302parg2g2prg../.tent2parg2arge=='che"v4.4.29". ../.v4.4.292parg2ararg../.tent2parg2ge=='che"v3.18.28". ../.v3.18.282parg2gearg../.tent2parg2arge=='che"v4.4.27". ../.v4.4.272parg2ararg../.tent2parg2ge=='che"v3.18.26". ../.v3.18.262parg2ge5rg../.tent2parg2arge=='che"v4.4.25". ../.v4.4.252parg2ar4g../.tento2parg2ge=='che"v3.18.24". ../.v3.18.242parg2ge3rg../.tent2parg2arge=='che"v4.4.23". ../.v4.4.232parg2ar.v4.4.332parg2ar2re=='che"v3.18.22". ../.v3.18.22.4.332parg../.tento2parg2t.ou ../.v3.14.53 = ../.v3.28.122parg3arrg../.2arrg../.tentopt2ge=='che"v3.18.20"g../.2ar302parg2g2prg../.tent2parg3arge=='che"v4.4.19". ../.v424.192parg3ararg../2arrg../.tentopt2goptarge=='che"v3.rg../2ar282parg2gearg../.tent2parg3arge=='che"v4.4.17". ../.v424.172parg3ararg../2ar .te2v3./spa='c v3./form'c v3.a .te2v3 href="../linux+v3.7.4/Documenta2ge=/block/deadline-iosched.txt">.te2v3.img src="../.sta2gc/gfx/right.png" alt=">>">.t./spa='c.t.spa= class="lxr_search">.te2
.te2v3.input typparhidden" namparnavtarget" r282par">.te2v3.input typpartext" namparsearch" idarsearch">.te2v3.butt/2atypparsubmit">Search.te2v3Prefsc v3./a>.t./spa='ce2v3 3./div'ce2v3 3.form ac2ge=="ajax+*" method="post" onsubmit="return false;">.t.input typparhidden" namparajax_lookup" idarajax_lookup" r282par">.e2v3 3./form'c.e2v3 3.div class="headingbott/m">3 31./a>Deadline IO scheduler tunables 3 32./a>============================== 3 33./a>.3 34./a>This little file attempts to document how the deadline io scheduler works..3 35./a>In par2gcular, it will clarify the meaning of the exposed tunables that may be.3 36./a>of interest to power users..3 37./a>.3 38./a>Selecting IO schedulers 3 39./a>----------------------- 3 "opta>Refer to Documenta2ge=/block/switching-sched.txt for informa2ge= on 3 11./a>selecting a= io scheduler e= a per-device basis..3 12./a>.3 13./a>.3 14./a>********************************************************************************.3 15./a>.3 16./a>.3 17./a>read_expire (in ms).3 18./a>-----------.3 19./a>.3 20./a>The goal of the deadline io scheduler is to attempt to guarantee a start.3 21./a>service time for a request. As we focus mainly e= read latencies, this is.3 22./a>tunable. When a read request first enters the io scheduler, it is assigned.3 23./a>a deadline that is the current time + the read_expire r282p in units of.3 24./a>milliseconds..3 25./a>.3 26./a>.3 27./a>write_expire (in ms).3 28./a>-----------.3 29./a>.3 30./a>Similar to read_expire mentge=ed above, but for writes..3 31./a>.3 32./a>.3 33./a>fifo_batche2v3 3(number ef requests).3 34./a>----------.3 35./a>.3 36pta>Requests are grouped into ``batches'' ef a par2gcular data direc2ge= (read or.3 37./a>write) whicheare serviced in increasing sector order. To limit extra seeking,.3 38./a>deadline expirieseare only checked between batches. fifo_batchecontrols the.3 39./a>maximum number ef requests per batch..3 40./a>.3 41./a>This parampter tunes the balance between per-request latency a=d aggregate.3 42./a>throughput. When low latency is the primaryeconcern, smaller is better (where.3 43./a>a r282p ef 1 yields first-come first-served behaviour). Increasing fifo_batch.3 44./a>generally improves throughput, at the cost ef latency varia2ge=..3 45./a>.3 46./a>.3 47./a>writes_starved 3(number ef dispatches).3 48./a>--------------.3 49./a>.3 50./a>When we have to move requests from the io scheduler queue to the block.3 51./a>device dispatch queue, we always give a preference to reads. However, we.3 52./a>don't want to starve writes indefinitely either. So writes_starved controls.3 53./a>how many times we give preference to reads over writes. When that has been 3 54./a>done writes_starved number ef times, we dispatch some writes based /2athe.3 55./a>samp criteria as reads..3 56./a>.3 57./a>.3 58./a>front_merges 3 3(bool).3 59./a>------------.3 60./a>.3 61./a>Sometimes it happens that a request enters the io scheduler that is contiguous.3 62./a>with a request that is already /2athe queue. Either it fits in the back of that.3 63./a>request, or it fits at the front. That is called either a back merge candidate.3 64./a>or a front merge candidate. Due to the way fileseare typically laid /ut,.3 65./a>back mergeseare much more comm/2athan front merges. For some work loads, you.3 66./a>may even know that it is a waste ef time to spend any time attempting to.3 67./a>front merge requests. Setting front_merges to 0 disables this func2ge=ality..3 68./a>Front merges may still occur due to the cached last_merge hint, but since.3 69./a>that comes at basically 0 cost we leave that e=. We simply disableathe.3 70./a>rbtree front sector lookup when the io scheduler merge func2ge= is called..3 71./a>.3 72./a>.3 73./a>Nov 11 2002, Jens Axboe <jens.axboe@oracle.com>.3 74./a>.3 75./a>.3 76./a> The origi=al LXR software by the LXR community./a>, this experimental versge= by lxr@linux.no./a>. ./div'c.div class="subfooter"> lxr.linux.no kindly hosted by Redpill Linpro AS./a>, provider ef Linux consulting a=d /pera2ge=s services since 1995. ./div'c ./body'c./html'c