Re: [PATCH 1/3][v2] blkio: Remove per-cfqq nr_sectors as we'll bepassing

From: Vivek Goyal
Date: Mon Apr 05 2010 - 13:06:00 EST


On Mon, Apr 05, 2010 at 09:57:08AM -0700, Divyesh Shah wrote:
> On Mon, Apr 5, 2010 at 8:47 AM, Vivek Goyal <vgoyal@xxxxxxxxxx> wrote:
> > On Fri, Apr 02, 2010 at 06:55:48PM -0700, Divyesh Shah wrote:
> >> that info at request dispatch with other stats now. This patch removes the
> >> existing support for accounting sectors for a blkio_group. This will be added
> >> back differently in the next two patches.
> >>
> >> Signed-off-by: Divyesh Shah<dpshah@xxxxxxxxxx>
> >> ---
> >>
> >>  block/blk-cgroup.c  |    3 +--
> >>  block/blk-cgroup.h  |    6 ++----
> >>  block/cfq-iosched.c |   10 ++--------
> >>  3 files changed, 5 insertions(+), 14 deletions(-)
> >>
> >> diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
> >> index 4b686ad..5be3981 100644
> >> --- a/block/blk-cgroup.c
> >> +++ b/block/blk-cgroup.c
> >> @@ -56,10 +56,9 @@ struct blkio_cgroup *cgroup_to_blkio_cgroup(struct cgroup *cgroup)
> >>  EXPORT_SYMBOL_GPL(cgroup_to_blkio_cgroup);
> >>
> >>  void blkiocg_update_blkio_group_stats(struct blkio_group *blkg,
> >> -                     unsigned long time, unsigned long sectors)
> >> +                                             unsigned long time)
> >>  {
> >>       blkg->time += time;
> >> -     blkg->sectors += sectors;
> >>  }
> >>  EXPORT_SYMBOL_GPL(blkiocg_update_blkio_group_stats);
> >>
> >> diff --git a/block/blk-cgroup.h b/block/blk-cgroup.h
> >> index 8ccc204..fe44517 100644
> >> --- a/block/blk-cgroup.h
> >> +++ b/block/blk-cgroup.h
> >> @@ -106,7 +106,7 @@ extern int blkiocg_del_blkio_group(struct blkio_group *blkg);
> >>  extern struct blkio_group *blkiocg_lookup_group(struct blkio_cgroup *blkcg,
> >>                                               void *key);
> >>  void blkiocg_update_blkio_group_stats(struct blkio_group *blkg,
> >> -                     unsigned long time, unsigned long sectors);
> >> +                                             unsigned long time);
> >>  #else
> >>  struct cgroup;
> >>  static inline struct blkio_cgroup *
> >> @@ -123,8 +123,6 @@ blkiocg_del_blkio_group(struct blkio_group *blkg) { return 0; }
> >>  static inline struct blkio_group *
> >>  blkiocg_lookup_group(struct blkio_cgroup *blkcg, void *key) { return NULL; }
> >>  static inline void blkiocg_update_blkio_group_stats(struct blkio_group *blkg,
> >> -                     unsigned long time, unsigned long sectors)
> >> -{
> >> -}
> >> +                                             unsigned long time) {}
> >>  #endif
> >>  #endif /* _BLK_CGROUP_H */
> >> diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
> >> index ef1680b..c18e348 100644
> >> --- a/block/cfq-iosched.c
> >> +++ b/block/cfq-iosched.c
> >> @@ -141,8 +141,6 @@ struct cfq_queue {
> >>       struct cfq_queue *new_cfqq;
> >>       struct cfq_group *cfqg;
> >>       struct cfq_group *orig_cfqg;
> >> -     /* Sectors dispatched in current dispatch round */
> >> -     unsigned long nr_sectors;
> >>  };
> >>
> >>  /*
> >> @@ -882,8 +880,7 @@ static inline unsigned int cfq_cfqq_slice_usage(struct cfq_queue *cfqq)
> >>                       slice_used = cfqq->allocated_slice;
> >>       }
> >>
> >> -     cfq_log_cfqq(cfqq->cfqd, cfqq, "sl_used=%u sect=%lu", slice_used,
> >> -                             cfqq->nr_sectors);
> >> +     cfq_log_cfqq(cfqq->cfqd, cfqq, "sl_used=%u", slice_used);
> >
> > Hi Divyesh,
> >
> > I had found above message useful when I am looking at blktraces. It helps
> > to know how many sectors one could transfer in a given time slice.
> > Especially if you are comparing two queues in two groups. I think we are
> > going to loose this information now?
>

Printing it for each request does not help, because I was interested total
of once slice. How long was the slice and how many sectors we completed.

Well, for the time being, don't worry about it. If I really need it I
will put anohter patch to re-introduce it.

Vivek

> Would printing the number of sectors for each request help? If you
> think this is really important we can keep this redundant information
> as well.
>
> >
> > Vivek
> >
> >>       return slice_used;
> >>  }
> >>
> >> @@ -917,8 +914,7 @@ static void cfq_group_served(struct cfq_data *cfqd, struct cfq_group *cfqg,
> >>
> >>       cfq_log_cfqg(cfqd, cfqg, "served: vt=%llu min_vt=%llu", cfqg->vdisktime,
> >>                                       st->min_vdisktime);
> >> -     blkiocg_update_blkio_group_stats(&cfqg->blkg, used_sl,
> >> -                                             cfqq->nr_sectors);
> >> +     blkiocg_update_blkio_group_stats(&cfqg->blkg, used_sl);
> >>  }
> >>
> >>  #ifdef CONFIG_CFQ_GROUP_IOSCHED
> >> @@ -1524,7 +1520,6 @@ static void __cfq_set_active_queue(struct cfq_data *cfqd,
> >>               cfqq->allocated_slice = 0;
> >>               cfqq->slice_end = 0;
> >>               cfqq->slice_dispatch = 0;
> >> -             cfqq->nr_sectors = 0;
> >>
> >>               cfq_clear_cfqq_wait_request(cfqq);
> >>               cfq_clear_cfqq_must_dispatch(cfqq);
> >> @@ -1869,7 +1864,6 @@ static void cfq_dispatch_insert(struct request_queue *q, struct request *rq)
> >>       elv_dispatch_sort(q, rq);
> >>
> >>       cfqd->rq_in_flight[cfq_cfqq_sync(cfqq)]++;
> >> -     cfqq->nr_sectors += blk_rq_sectors(rq);
> >>  }
> >>
> >>  /*
> >
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/