diff options
| -rw-r--r-- | block/cfq-iosched.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c index 1ca813b16e78..8917f2b3a783 100644 --- a/block/cfq-iosched.c +++ b/block/cfq-iosched.c | |||
| @@ -173,6 +173,7 @@ struct cfq_data { | |||
| 173 | unsigned int cfq_slice[2]; | 173 | unsigned int cfq_slice[2]; |
| 174 | unsigned int cfq_slice_async_rq; | 174 | unsigned int cfq_slice_async_rq; |
| 175 | unsigned int cfq_slice_idle; | 175 | unsigned int cfq_slice_idle; |
| 176 | unsigned int cfq_desktop; | ||
| 176 | 177 | ||
| 177 | struct list_head cic_list; | 178 | struct list_head cic_list; |
| 178 | 179 | ||
| @@ -1951,7 +1952,7 @@ cfq_update_idle_window(struct cfq_data *cfqd, struct cfq_queue *cfqq, | |||
| 1951 | enable_idle = old_idle = cfq_cfqq_idle_window(cfqq); | 1952 | enable_idle = old_idle = cfq_cfqq_idle_window(cfqq); |
| 1952 | 1953 | ||
| 1953 | if (!atomic_read(&cic->ioc->nr_tasks) || !cfqd->cfq_slice_idle || | 1954 | if (!atomic_read(&cic->ioc->nr_tasks) || !cfqd->cfq_slice_idle || |
| 1954 | (cfqd->hw_tag && CIC_SEEKY(cic))) | 1955 | (!cfqd->cfq_desktop && cfqd->hw_tag && CIC_SEEKY(cic))) |
| 1955 | enable_idle = 0; | 1956 | enable_idle = 0; |
| 1956 | else if (sample_valid(cic->ttime_samples)) { | 1957 | else if (sample_valid(cic->ttime_samples)) { |
| 1957 | if (cic->ttime_mean > cfqd->cfq_slice_idle) | 1958 | if (cic->ttime_mean > cfqd->cfq_slice_idle) |
| @@ -2480,6 +2481,7 @@ static void *cfq_init_queue(struct request_queue *q) | |||
| 2480 | cfqd->cfq_slice[1] = cfq_slice_sync; | 2481 | cfqd->cfq_slice[1] = cfq_slice_sync; |
| 2481 | cfqd->cfq_slice_async_rq = cfq_slice_async_rq; | 2482 | cfqd->cfq_slice_async_rq = cfq_slice_async_rq; |
| 2482 | cfqd->cfq_slice_idle = cfq_slice_idle; | 2483 | cfqd->cfq_slice_idle = cfq_slice_idle; |
| 2484 | cfqd->cfq_desktop = 1; | ||
| 2483 | cfqd->hw_tag = 1; | 2485 | cfqd->hw_tag = 1; |
| 2484 | 2486 | ||
| 2485 | return cfqd; | 2487 | return cfqd; |
| @@ -2549,6 +2551,7 @@ SHOW_FUNCTION(cfq_slice_idle_show, cfqd->cfq_slice_idle, 1); | |||
| 2549 | SHOW_FUNCTION(cfq_slice_sync_show, cfqd->cfq_slice[1], 1); | 2551 | SHOW_FUNCTION(cfq_slice_sync_show, cfqd->cfq_slice[1], 1); |
| 2550 | SHOW_FUNCTION(cfq_slice_async_show, cfqd->cfq_slice[0], 1); | 2552 | SHOW_FUNCTION(cfq_slice_async_show, cfqd->cfq_slice[0], 1); |
| 2551 | SHOW_FUNCTION(cfq_slice_async_rq_show, cfqd->cfq_slice_async_rq, 0); | 2553 | SHOW_FUNCTION(cfq_slice_async_rq_show, cfqd->cfq_slice_async_rq, 0); |
| 2554 | SHOW_FUNCTION(cfq_desktop_show, cfqd->cfq_desktop, 0); | ||
| 2552 | #undef SHOW_FUNCTION | 2555 | #undef SHOW_FUNCTION |
| 2553 | 2556 | ||
| 2554 | #define STORE_FUNCTION(__FUNC, __PTR, MIN, MAX, __CONV) \ | 2557 | #define STORE_FUNCTION(__FUNC, __PTR, MIN, MAX, __CONV) \ |
| @@ -2580,6 +2583,7 @@ STORE_FUNCTION(cfq_slice_sync_store, &cfqd->cfq_slice[1], 1, UINT_MAX, 1); | |||
| 2580 | STORE_FUNCTION(cfq_slice_async_store, &cfqd->cfq_slice[0], 1, UINT_MAX, 1); | 2583 | STORE_FUNCTION(cfq_slice_async_store, &cfqd->cfq_slice[0], 1, UINT_MAX, 1); |
| 2581 | STORE_FUNCTION(cfq_slice_async_rq_store, &cfqd->cfq_slice_async_rq, 1, | 2584 | STORE_FUNCTION(cfq_slice_async_rq_store, &cfqd->cfq_slice_async_rq, 1, |
| 2582 | UINT_MAX, 0); | 2585 | UINT_MAX, 0); |
| 2586 | STORE_FUNCTION(cfq_desktop_store, &cfqd->cfq_desktop, 0, 1, 0); | ||
| 2583 | #undef STORE_FUNCTION | 2587 | #undef STORE_FUNCTION |
| 2584 | 2588 | ||
| 2585 | #define CFQ_ATTR(name) \ | 2589 | #define CFQ_ATTR(name) \ |
| @@ -2595,6 +2599,7 @@ static struct elv_fs_entry cfq_attrs[] = { | |||
| 2595 | CFQ_ATTR(slice_async), | 2599 | CFQ_ATTR(slice_async), |
| 2596 | CFQ_ATTR(slice_async_rq), | 2600 | CFQ_ATTR(slice_async_rq), |
| 2597 | CFQ_ATTR(slice_idle), | 2601 | CFQ_ATTR(slice_idle), |
| 2602 | CFQ_ATTR(desktop), | ||
| 2598 | __ATTR_NULL | 2603 | __ATTR_NULL |
| 2599 | }; | 2604 | }; |
| 2600 | 2605 | ||
