Re: [PATCH 05/16] blkio: Implement per cfq group latency target and busy queue avg

Vivek Goyal
2009-11-13T19:27:15Z

On Fri, Nov 13, 2009 at 07:40:51PM +0100, Corrado Zoccolo wrote:
> On Fri, Nov 13, 2009 at 5:15 PM, Vivek Goyal <vgoyal@redhat.com> wrote:
> > On Fri, Nov 13, 2009 at 10:18:15AM -0500, Vivek Goyal wrote:
> >> On Fri, Nov 13, 2009 at 11:46:49AM +0100, Corrado Zoccolo wrote:
> >> > On Fri, Nov 13, 2009 at 12:32 AM, Vivek Goyal <vgoyal@redhat.com> wrote:
> >> > >  static inline void
> >> > > @@ -441,10 +445,13 @@ cfq_set_prio_slice(struct cfq_data *cfqd, struct cfq_queue *cfqq)
> >> > >        if (cfqd->cfq_latency) {
> >> > >                /* interested queues (we consider only the ones with the same
> >> > >                 * priority class) */
> >> > This comment needs to be updated
> >>
> >> Sure. Will do. Now the interested queues are the one with same priority
> >> class with-in group.
> >>
> >> > >                 * priority class) */
> >> > > -               unsigned iq = cfq_get_avg_queues(cfqd, cfq_class_rt(cfqq));
> >> > > +               unsigned iq = cfq_group_get_avg_queues(cfqd, cfqq->cfqg,
> >> > > +                                               cfq_class_rt(cfqq));
> >> > >                unsigned sync_slice = cfqd->cfq_slice[1];
> >> > >                unsigned expect_latency = sync_slice * iq;
> >> > > -               if (expect_latency > cfq_target_latency) {
> >> > > +               unsigned group_target_lat = cfq_target_latency/cfqd->nr_groups;
> >> >
> >> > I'm not sure that we should divide the target latency evenly among groups.
> >> > Groups with different weights will have different percentage of time
> >> > in each 300ms round, so probably we should consider it here.
> >> >
> >>
> >> Taking group weight into account will be more precise thing. So may be
> >> I can keep track of total weight on the service tree and determine
> >> group target latency as proportion of total weight.
> >>
> >>  group_target_lat = group_weight * cfq_target_latency/total_weight_of_groups
> >>
> >
> > Here is the patch I generated on top of all the patches in series.
> >
> > o Determine group target latency in proportion to group weight instead of
> >  just number of groups.
>
> Great.
> I have only one concern, regarding variable naming:
> group_target_lat is a bit misleading. The fact is that it will be
> larger for higher weight groups, so people could ask why are you
> giving more latency to higher weight group...
> Actually, it is the group share of the scheduling round, so you should
> name it accordingly.
>

How about "group_slice" ?

Thanks
Vivek