aboutsummaryrefslogtreecommitdiffstats
path: root/block/cfq-iosched.c
diff options
context:
space:
mode:
Diffstat (limited to 'block/cfq-iosched.c')
-rw-r--r--block/cfq-iosched.c19
1 files changed, 2 insertions, 17 deletions
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index 07b706243772..a31066d6c20c 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -1471,22 +1471,8 @@ err:
1471static void 1471static void
1472cfq_update_io_thinktime(struct cfq_data *cfqd, struct cfq_io_context *cic) 1472cfq_update_io_thinktime(struct cfq_data *cfqd, struct cfq_io_context *cic)
1473{ 1473{
1474 unsigned long elapsed, ttime; 1474 unsigned long elapsed = jiffies - cic->last_end_request;
1475 1475 unsigned long ttime = min(elapsed, 2UL * cfqd->cfq_slice_idle);
1476 /*
1477 * if this context already has stuff queued, thinktime is from
1478 * last queue not last end
1479 */
1480#if 0
1481 if (time_after(cic->last_end_request, cic->last_queue))
1482 elapsed = jiffies - cic->last_end_request;
1483 else
1484 elapsed = jiffies - cic->last_queue;
1485#else
1486 elapsed = jiffies - cic->last_end_request;
1487#endif
1488
1489 ttime = min(elapsed, 2UL * cfqd->cfq_slice_idle);
1490 1476
1491 cic->ttime_samples = (7*cic->ttime_samples + 256) / 8; 1477 cic->ttime_samples = (7*cic->ttime_samples + 256) / 8;
1492 cic->ttime_total = (7*cic->ttime_total + 256*ttime) / 8; 1478 cic->ttime_total = (7*cic->ttime_total + 256*ttime) / 8;
@@ -1649,7 +1635,6 @@ cfq_rq_enqueued(struct cfq_data *cfqd, struct cfq_queue *cfqq,
1649 cfq_update_io_seektime(cic, rq); 1635 cfq_update_io_seektime(cic, rq);
1650 cfq_update_idle_window(cfqd, cfqq, cic); 1636 cfq_update_idle_window(cfqd, cfqq, cic);
1651 1637
1652 cic->last_queue = jiffies;
1653 cic->last_request_pos = rq->sector + rq->nr_sectors; 1638 cic->last_request_pos = rq->sector + rq->nr_sectors;
1654 1639
1655 if (cfqq == cfqd->active_queue) { 1640 if (cfqq == cfqd->active_queue) {