{"push_id":788662555,"size":1,"distinct_size":1,"ref":"refs/heads/lollipop-caf","head":"aafba94e2d150d03f97f5161c585cc4ea9545609","before":"6830b297f12e07b1e51a5c8eb260c0e2c1ebba01","commits":[{"sha":"aafba94e2d150d03f97f5161c585cc4ea9545609","author":{"email":"ddd3503978591997e768ebc37fca6c687c31d545@unimore.it","name":"Mauro Andreolini"},"message":"block, bfq: add Early Queue Merge (EQM) to BFQ-v7r8 for 3.4.0\n\nA set of processes may happen  to  perform interleaved reads, i.e.,requests\nwhose union would give rise to a  sequential read  pattern.  There are two\ntypical  cases: in the first  case,   processes  read  fixed-size chunks of\ndata at a fixed distance from each other, while in the second case processes\nmay read variable-size chunks at  variable distances. The latter case occurs\nfor  example with  QEMU, which  splits the  I/O generated  by the  guest into\nmultiple chunks,  and lets these chunks  be served by a  pool of cooperating\nprocesses,  iteratively  assigning  the  next  chunk of  I/O  to  the first\navailable  process. CFQ  uses actual  queue merging  for the  first type of\nrocesses, whereas it  uses preemption to get a sequential  read pattern out\nof the read requests  performed by the second type of  processes. In the end\nit uses  two different  mechanisms to  achieve the  same goal: boosting the\nthroughput with interleaved I/O.\n\nThis patch introduces  Early Queue Merge (EQM), a unified mechanism to get a\nsequential  read pattern  with both  types of  processes. The  main idea is\nchecking newly arrived requests against the next request of the active queue\nboth in case of actual request insert and in case of request merge. By doing\nso, both the types of processes can be handled by just merging their queues.\nEQM is  then simpler and  more compact than the  pair of mechanisms used in\nCFQ.\n\nFinally, EQM  also preserves the  typical low-latency properties of BFQ, by\nproperly restoring the weight-raising state of  a queue when it gets back to\na non-merged state.\n\nChange-Id: If95ed48806330667f26959006a20ad13abfd44be\nSigned-off-by: Mauro Andreolini <mauro.andreolini@unimore.it>\nSigned-off-by: Arianna Avanzini <avanzini.arianna@gmail.com>\nSigned-off-by: Paolo Valente <paolo.valente@unimore.it>","distinct":true,"url":"https://api.github.com/repos/DirtyUnicorns/android_kernel_samsung_jf/commits/aafba94e2d150d03f97f5161c585cc4ea9545609"}]}