cfq-iosched: Do not merge queues of BE and IDLE classes
Even if they are found to be co-operating. The prio_trees do not have any IDLE cfqqs on them. cfq_close_cooperator() is called from cfq_select_queue() and cfq_completed_request(). The latter ensures that the close cooperator code does not get invoked if the current cfqq is of class IDLE but the former doesn't seem to have any such checks. So an IDLE cfqq may get merged with a BE cfqq from the same group which should be avoided. Signed-off-by: Divyesh Shah<dpshah@google.com> Acked-by: Vivek Goyal <vgoyal@redhat.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
This commit is contained in:
Родитель
b1ffe737f5
Коммит
39c01b219f
|
@ -1723,6 +1723,8 @@ static struct cfq_queue *cfq_close_cooperator(struct cfq_data *cfqd,
|
|||
{
|
||||
struct cfq_queue *cfqq;
|
||||
|
||||
if (cfq_class_idle(cur_cfqq))
|
||||
return NULL;
|
||||
if (!cfq_cfqq_sync(cur_cfqq))
|
||||
return NULL;
|
||||
if (CFQQ_SEEKY(cur_cfqq))
|
||||
|
|
Загрузка…
Ссылка в новой задаче