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

From: IKEDA, Munehiro
Date: Wed May 06 2009 - 17:45:09 EST


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.


--
IKEDA, Munehiro
NEC Corporation of America
m-ikeda@xxxxxxxxxxxxx

--
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/