[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
[dm-devel] Re: [PATCH 18/18] io-controller: Debug hierarchical IO scheduling
- From: Vivek Goyal <vgoyal redhat com>
- To: "IKEDA, Munehiro" <m-ikeda ds jp nec com>
- Cc: dhaval linux vnet ibm com, snitzer redhat com, dm-devel redhat com, dpshah google com, jens axboe oracle com, agk redhat com, balbir linux vnet ibm com, paolo valente unimore it, guijianfeng cn fujitsu com, fernando oss ntt co jp, mikew google com, jmoyer redhat com, nauman google com, righi andrea gmail com, lizf cn fujitsu com, fchecconi gmail com, s-uchida ap jp nec com, containers lists linux-foundation org, linux-kernel vger kernel org, akpm linux-foundation org
- Subject: [dm-devel] Re: [PATCH 18/18] io-controller: Debug hierarchical IO scheduling
- Date: Wed, 06 May 2009 21:58:35 -0000
On Wed, May 06, 2009 at 05:40:43PM -0400, IKEDA, Munehiro wrote:
> Hi Vivek,
>
> Patching and compilation error occurred on the 18/18 patch.
> I know this is a patch for debug but report them in case.
>
>
> Vivek Goyal wrote:
> > @@ -2203,6 +2241,25 @@ EXPORT_SYMBOL(elv_get_slice_idle);
> > void elv_ioq_served(struct io_queue *ioq, bfq_service_t served)
> > {
> > entity_served(&ioq->entity, served, ioq->nr_sectors);
>
> Patch failed due to this line. I guess this should be
>
> entity_served(&ioq->entity, served);
>
>
> > +
> > +#ifdef CONFIG_DEBUG_GROUP_IOSCHED
> > + {
> > + struct elv_fq_data *efqd = ioq->efqd;
> > + char path[128];
> > + struct io_group *iog = ioq_to_io_group(ioq);
> > + io_group_path(iog, path, sizeof(path));
> > + elv_log_ioq(efqd, ioq, "ioq served: QSt=0x%lx QSs=0x%lx"
> > + " QTt=0x%lx QTs=0x%lx grp=%s GTt=0x%lx "
> > + " GTs=0x%lx rq_queued=%d",
> > + served, ioq->nr_sectors,
> > + ioq->entity.total_service,
> > + ioq->entity.total_sector_service,
> > + path,
> > + iog->entity.total_service,
> > + iog->entity.total_sector_service,
> > + ioq->nr_queued);
> > + }
> > +#endif
> > }
>
> Because
> io_entity::total_service
> and
> io_entity::total_sector_service
> are not defined, compilation failed if CONFIG_DEBUG_GROUP_IOSCHED=y
> here. (and everywhere referencing entity.total_service or entity.total_sector_service)
> They need to be defined like:
>
> diff --git a/block/elevator-fq.h b/block/elevator-fq.h
> index 1ea4ff3..6d0a735 100644
> --- a/block/elevator-fq.h
> +++ b/block/elevator-fq.h
> @@ -147,6 +147,10 @@ struct io_entity {
> unsigned short ioprio_class, new_ioprio_class;
>
> int ioprio_changed;
> +
> +#ifdef CONFIG_DEBUG_GROUP_IOSCHED
> + unsigned long total_service, total_sector_service;
> +#endif
> };
>
> /*
>
> Unfortunately I couldn't figure out where and how the members
> should be calculated, sorry.
Hi Ikeda,
I think there is some issue with applying the patch. I think you have
forgotten to apply following patch and that's why seeing all the issues.
"io-controller: Export disk time used and nr sectors dipatched through
cgroups"
This patch changes elv_ioq_served() at the same time introduced additional
field of total_sector_service etc.
Thanks
Vivek
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]