diff options
| -rw-r--r-- | block/cfq-iosched.c | 15 |
1 files changed, 1 insertions, 14 deletions
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c index a0102a507dae..11efcf196e74 100644 --- a/block/cfq-iosched.c +++ b/block/cfq-iosched.c | |||
| @@ -179,11 +179,9 @@ enum cfqq_state_flags { | |||
| 179 | CFQ_CFQQ_FLAG_wait_request, /* waiting for a request */ | 179 | CFQ_CFQQ_FLAG_wait_request, /* waiting for a request */ |
| 180 | CFQ_CFQQ_FLAG_must_alloc, /* must be allowed rq alloc */ | 180 | CFQ_CFQQ_FLAG_must_alloc, /* must be allowed rq alloc */ |
| 181 | CFQ_CFQQ_FLAG_must_alloc_slice, /* per-slice must_alloc flag */ | 181 | CFQ_CFQQ_FLAG_must_alloc_slice, /* per-slice must_alloc flag */ |
| 182 | CFQ_CFQQ_FLAG_must_dispatch, /* must dispatch, even if expired */ | ||
| 183 | CFQ_CFQQ_FLAG_fifo_expire, /* FIFO checked in this slice */ | 182 | CFQ_CFQQ_FLAG_fifo_expire, /* FIFO checked in this slice */ |
| 184 | CFQ_CFQQ_FLAG_idle_window, /* slice idling enabled */ | 183 | CFQ_CFQQ_FLAG_idle_window, /* slice idling enabled */ |
| 185 | CFQ_CFQQ_FLAG_prio_changed, /* task priority has changed */ | 184 | CFQ_CFQQ_FLAG_prio_changed, /* task priority has changed */ |
| 186 | CFQ_CFQQ_FLAG_queue_new, /* queue never been serviced */ | ||
| 187 | CFQ_CFQQ_FLAG_slice_new, /* no requests dispatched in slice */ | 185 | CFQ_CFQQ_FLAG_slice_new, /* no requests dispatched in slice */ |
| 188 | CFQ_CFQQ_FLAG_sync, /* synchronous queue */ | 186 | CFQ_CFQQ_FLAG_sync, /* synchronous queue */ |
| 189 | }; | 187 | }; |
| @@ -206,11 +204,9 @@ CFQ_CFQQ_FNS(on_rr); | |||
| 206 | CFQ_CFQQ_FNS(wait_request); | 204 | CFQ_CFQQ_FNS(wait_request); |
| 207 | CFQ_CFQQ_FNS(must_alloc); | 205 | CFQ_CFQQ_FNS(must_alloc); |
| 208 | CFQ_CFQQ_FNS(must_alloc_slice); | 206 | CFQ_CFQQ_FNS(must_alloc_slice); |
| 209 | CFQ_CFQQ_FNS(must_dispatch); | ||
| 210 | CFQ_CFQQ_FNS(fifo_expire); | 207 | CFQ_CFQQ_FNS(fifo_expire); |
| 211 | CFQ_CFQQ_FNS(idle_window); | 208 | CFQ_CFQQ_FNS(idle_window); |
| 212 | CFQ_CFQQ_FNS(prio_changed); | 209 | CFQ_CFQQ_FNS(prio_changed); |
| 213 | CFQ_CFQQ_FNS(queue_new); | ||
| 214 | CFQ_CFQQ_FNS(slice_new); | 210 | CFQ_CFQQ_FNS(slice_new); |
| 215 | CFQ_CFQQ_FNS(sync); | 211 | CFQ_CFQQ_FNS(sync); |
| 216 | #undef CFQ_CFQQ_FNS | 212 | #undef CFQ_CFQQ_FNS |
| @@ -777,12 +773,10 @@ static void __cfq_set_active_queue(struct cfq_data *cfqd, | |||
| 777 | cfqq->slice_end = 0; | 773 | cfqq->slice_end = 0; |
| 778 | cfqq->slice_dispatch = 0; | 774 | cfqq->slice_dispatch = 0; |
| 779 | 775 | ||
| 780 | cfq_clear_cfqq_must_dispatch(cfqq); | ||
| 781 | cfq_clear_cfqq_wait_request(cfqq); | 776 | cfq_clear_cfqq_wait_request(cfqq); |
| 782 | cfq_clear_cfqq_must_alloc_slice(cfqq); | 777 | cfq_clear_cfqq_must_alloc_slice(cfqq); |
| 783 | cfq_clear_cfqq_fifo_expire(cfqq); | 778 | cfq_clear_cfqq_fifo_expire(cfqq); |
| 784 | cfq_mark_cfqq_slice_new(cfqq); | 779 | cfq_mark_cfqq_slice_new(cfqq); |
| 785 | cfq_clear_cfqq_queue_new(cfqq); | ||
| 786 | 780 | ||
| 787 | del_timer(&cfqd->idle_slice_timer); | 781 | del_timer(&cfqd->idle_slice_timer); |
| 788 | } | 782 | } |
| @@ -802,7 +796,6 @@ __cfq_slice_expired(struct cfq_data *cfqd, struct cfq_queue *cfqq, | |||
| 802 | if (cfq_cfqq_wait_request(cfqq)) | 796 | if (cfq_cfqq_wait_request(cfqq)) |
| 803 | del_timer(&cfqd->idle_slice_timer); | 797 | del_timer(&cfqd->idle_slice_timer); |
| 804 | 798 | ||
| 805 | cfq_clear_cfqq_must_dispatch(cfqq); | ||
| 806 | cfq_clear_cfqq_wait_request(cfqq); | 799 | cfq_clear_cfqq_wait_request(cfqq); |
| 807 | 800 | ||
| 808 | /* | 801 | /* |
| @@ -931,7 +924,6 @@ static void cfq_arm_slice_timer(struct cfq_data *cfqd) | |||
| 931 | (sample_valid(cic->ttime_samples) && cic->ttime_mean > 2)) | 924 | (sample_valid(cic->ttime_samples) && cic->ttime_mean > 2)) |
| 932 | return; | 925 | return; |
| 933 | 926 | ||
| 934 | cfq_mark_cfqq_must_dispatch(cfqq); | ||
| 935 | cfq_mark_cfqq_wait_request(cfqq); | 927 | cfq_mark_cfqq_wait_request(cfqq); |
| 936 | 928 | ||
| 937 | /* | 929 | /* |
| @@ -1520,7 +1512,6 @@ retry: | |||
| 1520 | cfqq->cfqd = cfqd; | 1512 | cfqq->cfqd = cfqd; |
| 1521 | 1513 | ||
| 1522 | cfq_mark_cfqq_prio_changed(cfqq); | 1514 | cfq_mark_cfqq_prio_changed(cfqq); |
| 1523 | cfq_mark_cfqq_queue_new(cfqq); | ||
| 1524 | 1515 | ||
| 1525 | cfq_init_prio_data(cfqq, ioc); | 1516 | cfq_init_prio_data(cfqq, ioc); |
| 1526 | 1517 | ||
| @@ -1912,7 +1903,6 @@ cfq_rq_enqueued(struct cfq_data *cfqd, struct cfq_queue *cfqq, | |||
| 1912 | * just now | 1903 | * just now |
| 1913 | */ | 1904 | */ |
| 1914 | if (cfq_cfqq_wait_request(cfqq)) { | 1905 | if (cfq_cfqq_wait_request(cfqq)) { |
| 1915 | cfq_mark_cfqq_must_dispatch(cfqq); | ||
| 1916 | del_timer(&cfqd->idle_slice_timer); | 1906 | del_timer(&cfqd->idle_slice_timer); |
| 1917 | blk_start_queueing(cfqd->queue); | 1907 | blk_start_queueing(cfqd->queue); |
| 1918 | } | 1908 | } |
| @@ -1924,7 +1914,6 @@ cfq_rq_enqueued(struct cfq_data *cfqd, struct cfq_queue *cfqq, | |||
| 1924 | * this new queue is RT and the current one is BE | 1914 | * this new queue is RT and the current one is BE |
| 1925 | */ | 1915 | */ |
| 1926 | cfq_preempt_queue(cfqd, cfqq); | 1916 | cfq_preempt_queue(cfqd, cfqq); |
| 1927 | cfq_mark_cfqq_must_dispatch(cfqq); | ||
| 1928 | blk_start_queueing(cfqd->queue); | 1917 | blk_start_queueing(cfqd->queue); |
| 1929 | } | 1918 | } |
| 1930 | } | 1919 | } |
| @@ -2201,10 +2190,8 @@ static void cfq_idle_slice_timer(unsigned long data) | |||
| 2201 | /* | 2190 | /* |
| 2202 | * not expired and it has a request pending, let it dispatch | 2191 | * not expired and it has a request pending, let it dispatch |
| 2203 | */ | 2192 | */ |
| 2204 | if (!RB_EMPTY_ROOT(&cfqq->sort_list)) { | 2193 | if (!RB_EMPTY_ROOT(&cfqq->sort_list)) |
| 2205 | cfq_mark_cfqq_must_dispatch(cfqq); | ||
| 2206 | goto out_kick; | 2194 | goto out_kick; |
| 2207 | } | ||
| 2208 | } | 2195 | } |
| 2209 | expire: | 2196 | expire: |
| 2210 | cfq_slice_expired(cfqd, timed_out); | 2197 | cfq_slice_expired(cfqd, timed_out); |
