Messages in this thread | | | Date | Wed, 24 Mar 2010 21:08:38 -0400 | From | Vivek Goyal <> | Subject | Re: [PATCH] cfq-iosched: Do not merge queues of BE and IDLE classes |
| |
On Wed, Mar 24, 2010 at 01:52:03PM -0700, Divyesh Shah wrote: > 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> > ---
Looks good to me.
Acked-by: Vivek Goyal <vgoyal@redhat.com>
Vivek
> > block/cfq-iosched.c | 2 ++ > 1 files changed, 2 insertions(+), 0 deletions(-) > > diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c > index dee9d93..e6910dc 100644 > --- a/block/cfq-iosched.c > +++ b/block/cfq-iosched.c > @@ -1721,6 +1721,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))
| |