diff mbox

Re: [PATCH 18/18] io-controller: Debug hierarchical IO scheduling

Message ID 4A0203DB.1090809@ds.jp.nec.com (mailing list archive)
State New, archived
Headers show

Commit Message

IKEDA, Munehiro May 6, 2009, 9:40 p.m. UTC
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:


Unfortunately I couldn't figure out where and how the members
should be calculated, sorry.

Comments

Vivek Goyal May 6, 2009, 9:58 p.m. UTC | #1
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

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
diff mbox

Patch

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
 };
 
 /*