From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vivek Goyal Subject: Re: [PATCH 18/18] io-controller: Debug hierarchical IO scheduling Date: Wed, 6 May 2009 17:58:33 -0400 Message-ID: <20090506215833.GK8180@redhat.com> References: <1241553525-28095-1-git-send-email-vgoyal@redhat.com> <1241553525-28095-19-git-send-email-vgoyal@redhat.com> <4A0203DB.1090809@ds.jp.nec.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <4A0203DB.1090809-MDRzhb/z0dd8UrSeD/g0lQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: "IKEDA, Munehiro" Cc: dhaval-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org, snitzer-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, dm-devel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, jens.axboe-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org, agk-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, balbir-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org, paolo.valente-rcYM44yAMweonA0d6jMUrA@public.gmane.org, fernando-gVGce1chcLdL9jVzuh4AOg@public.gmane.org, jmoyer-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, righi.andrea-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, fchecconi-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org List-Id: containers.vger.kernel.org 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 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1763664AbZEFWUx (ORCPT ); Wed, 6 May 2009 18:20:53 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1761048AbZEFWBG (ORCPT ); Wed, 6 May 2009 18:01:06 -0400 Received: from mx2.redhat.com ([66.187.237.31]:44652 "EHLO mx2.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1761801AbZEFWBE (ORCPT ); Wed, 6 May 2009 18:01:04 -0400 Date: Wed, 6 May 2009 17:58:33 -0400 From: Vivek Goyal To: "IKEDA, Munehiro" Cc: nauman@google.com, dpshah@google.com, lizf@cn.fujitsu.com, mikew@google.com, fchecconi@gmail.com, paolo.valente@unimore.it, jens.axboe@oracle.com, ryov@valinux.co.jp, fernando@oss.ntt.co.jp, s-uchida@ap.jp.nec.com, taka@valinux.co.jp, guijianfeng@cn.fujitsu.com, jmoyer@redhat.com, dhaval@linux.vnet.ibm.com, balbir@linux.vnet.ibm.com, linux-kernel@vger.kernel.org, containers@lists.linux-foundation.org, righi.andrea@gmail.com, agk@redhat.com, dm-devel@redhat.com, snitzer@redhat.com, akpm@linux-foundation.org Subject: Re: [PATCH 18/18] io-controller: Debug hierarchical IO scheduling Message-ID: <20090506215833.GK8180@redhat.com> References: <1241553525-28095-1-git-send-email-vgoyal@redhat.com> <1241553525-28095-19-git-send-email-vgoyal@redhat.com> <4A0203DB.1090809@ds.jp.nec.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4A0203DB.1090809@ds.jp.nec.com> User-Agent: Mutt/1.5.18 (2008-05-17) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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