[PATCH] cfq-iosched: correctly set ioprio on both targets
Patch originally from Vasily Tarasov <vtaras@sw.ru> If you set io-priority of process 1 using sys_ioprio_set system call by another process 2 (like ionice do), then cfq_init_prio_data() function sets priority of process 2 (current) on queue of process 1 and clears the flag, that designates change of ioprio. So the process 1 will work like with priority of process 2. I propose not to call cfq_init_prio_data() on io-priority change, but only mark queue as queue with changed prority. Every time when new request comes cfq-scheduler checks for this flag and atomaticaly changes priority of queue to new value. Signed-off-by: Jens Axboe <axboe@suse.de>
This commit is contained in:
parent
b17fd9bceb
commit
35e6077cb1
|
@ -1388,10 +1388,9 @@ static inline void changed_ioprio(struct cfq_io_context *cic)
|
|||
}
|
||||
}
|
||||
cfqq = cic->cfqq[SYNC];
|
||||
if (cfqq) {
|
||||
if (cfqq)
|
||||
cfq_mark_cfqq_prio_changed(cfqq);
|
||||
cfq_init_prio_data(cfqq);
|
||||
}
|
||||
|
||||
spin_unlock(cfqd->queue->queue_lock);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue