wl1271: use ieee80211_rx_ni()
[safe/jmp/linux-2.6] / block / cfq-iosched.c
index fce8a74..9c4b679 100644 (file)
@@ -173,7 +173,7 @@ struct cfq_data {
        unsigned int cfq_slice[2];
        unsigned int cfq_slice_async_rq;
        unsigned int cfq_slice_idle;
-       unsigned int cfq_desktop;
+       unsigned int cfq_latency;
 
        struct list_head cic_list;
 
@@ -1341,19 +1341,13 @@ static int cfq_dispatch_requests(struct request_queue *q, int force)
         * We also ramp up the dispatch depth gradually for async IO,
         * based on the last sync IO we serviced
         */
-       if (!cfq_cfqq_sync(cfqq) && cfqd->cfq_desktop) {
+       if (!cfq_cfqq_sync(cfqq) && cfqd->cfq_latency) {
                unsigned long last_sync = jiffies - cfqd->last_end_sync_rq;
                unsigned int depth;
 
-               /*
-                * must wait a bit longer
-                */
-               if (last_sync < cfq_slice_sync) {
-                       cfq_schedule_dispatch(cfqd, cfq_slice_sync - last_sync);
-                       return 0;
-               }
-
-               depth = last_sync / cfq_slice_sync;
+               depth = last_sync / cfqd->cfq_slice[1];
+               if (!depth && !cfqq->dispatched)
+                       depth = 1;
                if (depth < max_dispatch)
                        max_dispatch = depth;
        }
@@ -1980,7 +1974,7 @@ cfq_update_idle_window(struct cfq_data *cfqd, struct cfq_queue *cfqq,
        enable_idle = old_idle = cfq_cfqq_idle_window(cfqq);
 
        if (!atomic_read(&cic->ioc->nr_tasks) || !cfqd->cfq_slice_idle ||
-           (!cfqd->cfq_desktop && cfqd->hw_tag && CIC_SEEKY(cic)))
+           (!cfqd->cfq_latency && cfqd->hw_tag && CIC_SEEKY(cic)))
                enable_idle = 0;
        else if (sample_valid(cic->ttime_samples)) {
                if (cic->ttime_mean > cfqd->cfq_slice_idle)
@@ -2511,7 +2505,7 @@ static void *cfq_init_queue(struct request_queue *q)
        cfqd->cfq_slice[1] = cfq_slice_sync;
        cfqd->cfq_slice_async_rq = cfq_slice_async_rq;
        cfqd->cfq_slice_idle = cfq_slice_idle;
-       cfqd->cfq_desktop = 1;
+       cfqd->cfq_latency = 1;
        cfqd->hw_tag = 1;
        cfqd->last_end_sync_rq = jiffies;
        return cfqd;
@@ -2581,7 +2575,7 @@ SHOW_FUNCTION(cfq_slice_idle_show, cfqd->cfq_slice_idle, 1);
 SHOW_FUNCTION(cfq_slice_sync_show, cfqd->cfq_slice[1], 1);
 SHOW_FUNCTION(cfq_slice_async_show, cfqd->cfq_slice[0], 1);
 SHOW_FUNCTION(cfq_slice_async_rq_show, cfqd->cfq_slice_async_rq, 0);
-SHOW_FUNCTION(cfq_desktop_show, cfqd->cfq_desktop, 0);
+SHOW_FUNCTION(cfq_low_latency_show, cfqd->cfq_latency, 0);
 #undef SHOW_FUNCTION
 
 #define STORE_FUNCTION(__FUNC, __PTR, MIN, MAX, __CONV)                        \
@@ -2613,7 +2607,7 @@ STORE_FUNCTION(cfq_slice_sync_store, &cfqd->cfq_slice[1], 1, UINT_MAX, 1);
 STORE_FUNCTION(cfq_slice_async_store, &cfqd->cfq_slice[0], 1, UINT_MAX, 1);
 STORE_FUNCTION(cfq_slice_async_rq_store, &cfqd->cfq_slice_async_rq, 1,
                UINT_MAX, 0);
-STORE_FUNCTION(cfq_desktop_store, &cfqd->cfq_desktop, 0, 1, 0);
+STORE_FUNCTION(cfq_low_latency_store, &cfqd->cfq_latency, 0, 1, 0);
 #undef STORE_FUNCTION
 
 #define CFQ_ATTR(name) \
@@ -2629,7 +2623,7 @@ static struct elv_fs_entry cfq_attrs[] = {
        CFQ_ATTR(slice_async),
        CFQ_ATTR(slice_async_rq),
        CFQ_ATTR(slice_idle),
-       CFQ_ATTR(desktop),
+       CFQ_ATTR(low_latency),
        __ATTR_NULL
 };