Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757057AbZDWKOX (ORCPT ); Thu, 23 Apr 2009 06:14:23 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1755054AbZDWKON (ORCPT ); Thu, 23 Apr 2009 06:14:13 -0400 Received: from mail-fx0-f158.google.com ([209.85.220.158]:62445 "EHLO mail-fx0-f158.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754378AbZDWKOL (ORCPT ); Thu, 23 Apr 2009 06:14:11 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; b=nbIHa5xF/3A/VEPnzoMUFRjb4KcZ2+Bk0rrhavnHodFaX1oHUZ9cnwLNAF4B/Todiw wYifjBaQQqyUkFra6iIcV2ewWsatok0CBSvs22Sy2J6Uu+WF5TBgozBX+FvKWHDipDPM JoPyaNV7HTIRqwHs0d/lXo2Lm504gi6cPUrGE= Date: Thu, 23 Apr 2009 12:14:01 +0200 From: Andrea Righi To: Gui Jianfeng Cc: Paul Menage , Balbir Singh , KAMEZAWA Hiroyuki , agk@sourceware.org, akpm@linux-foundation.org, axboe@kernel.dk, baramsori72@gmail.com, Carl Henrik Lunde , dave@linux.vnet.ibm.com, Divyesh Shah , eric.rannaud@gmail.com, fernando@oss.ntt.co.jp, Hirokazu Takahashi , Li Zefan , matt@bluehost.com, dradford@bluehost.com, ngupta@google.com, randy.dunlap@oracle.com, roberto@unbit.it, Ryo Tsuruta , Satoshi UCHIDA , subrata@linux.vnet.ibm.com, yoshikawa.takuya@oss.ntt.co.jp, Nauman Rafique , fchecconi@gmail.com, paolo.valente@unimore.it, containers@lists.linux-foundation.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 0/7] cgroup: io-throttle controller (v14) Message-ID: <20090423101400.GA16768@linux> References: <1240090636-898-1-git-send-email-righi.andrea@gmail.com> <49EC34C1.6010709@cn.fujitsu.com> <20090420144816.GA13307@linux> <49ED1E66.6030604@cn.fujitsu.com> <20090421095848.GB13699@linux> <49EE6E3C.8050409@cn.fujitsu.com> <20090422124328.GA32007@linux> <49EFD948.7050803@cn.fujitsu.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <49EFD948.7050803@cn.fujitsu.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 Content-Length: 7085 Lines: 200 On Thu, Apr 23, 2009 at 10:58:16AM +0800, Gui Jianfeng wrote: > Andrea Righi wrote: > > On Wed, Apr 22, 2009 at 09:09:16AM +0800, Gui Jianfeng wrote: > >> Andrea Righi wrote: > >>> On Tue, Apr 21, 2009 at 09:16:22AM +0800, Gui Jianfeng wrote: > >>>> Andrea Righi wrote: > >>>>> On Mon, Apr 20, 2009 at 04:39:29PM +0800, Gui Jianfeng wrote: > >>>>>> Andrea Righi wrote: > >>>>>> ... > >>>>>>> Implementation > >>>>>>> ~~~~~~~~~~~~~~ > >>>>>>> Patchset against latest Linus' git: > >>>>>>> > >>>>>>> [PATCH 0/7] cgroup: block device IO controller (v14) > >>>>>>> [PATCH 1/7] io-throttle documentation > >>>>>>> [PATCH 2/7] res_counter: introduce ratelimiting attributes > >>>>>>> [PATCH 3/7] page_cgroup: provide a generic page tracking infrastructure > >>>>>>> [PATCH 4/7] io-throttle controller infrastructure > >>>>>>> [PATCH 5/7] kiothrottled: throttle buffered (writeback) IO > >>>>>>> [PATCH 6/7] io-throttle instrumentation > >>>>>>> [PATCH 7/7] export per-task io-throttle statistics to userspace > >>>>>> Hi Andrea, > >>>>>> > >>>>>> I'd like to have a try this patchset, would you tell what's the kernel version > >>>>>> and bio-cgroup version based on? > >>>>>> > >>>>> Latest Linus' git is the kernel and bio-cgroup v7 (from > >>>>> http://people.valinux.co.jp/~ryov/bio-cgroup/). > >>>> Sorry, I still can't apply it... > >>>> > >>>> [root@localhost linux-2.6.30-rc1]# patch -p1 --dry-run < ../cgroup-io-throttle-v14.patch patching file Documentation/cgroups/io-throttle.txt > >>>> patching file block/Makefile > >>>> patching file block/blk-core.c > >>>> patching file block/blk-io-throttle.c > >>>> patching file block/kiothrottled.c > >>>> patching file fs/aio.c > >>>> patching file fs/buffer.c > >>>> Hunk #1 FAILED at 36. > >>>> Hunk #2 FAILED at 669. > >>>> 2 out of 2 hunks FAILED -- saving rejects to file fs/buffer.c.rej > >>>> patching file fs/proc/base.c > >>>> patching file include/linux/blk-io-throttle.h > >>>> patching file include/linux/cgroup_subsys.h > >>>> Hunk #1 succeeded at 49 (offset 6 lines). > >>>> patching file include/linux/memcontrol.h > >>>> Reversed (or previously applied) patch detected! Assume -R? [n] n > >>>> Apply anyway? [n] n > >>>> Skipping patch. > >>>> 2 out of 2 hunks ignored -- saving rejects to file include/linux/memcontrol.h.rej > >>>> patching file include/linux/mmzone.h > >>>> Hunk #1 FAILED at 607. > >>>> Hunk #2 FAILED at 958. > >>>> ... > >>> Could you checkout the latest Linus' git? > >>> > >>> $ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git linux-2.6 > >>> > >>> Or at least try with 2.6.30-rc2. It should apply cleanly also to this > >>> version. > >> Yes, I tried them all, but didn't work. :( > >> Would you try "cgroup-io-throttle-v14.patch" too? > > > > It works for me: > > > > $ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git linux-2.6 > > $ cd linux-2.6 > > $ wget http://download.systemimager.org/~arighi/linux/patches/io-throttle/cgroup-io-throttle-v14.patch > > $ git apply cgroup-io-throttle-v14.patch > > (no error reported) > > > > The same for v13. > > Ok, so we don't need to apply bio-cgroup.... I made a mistake, i applied bio-cgroup firstly :( > It's Ok now, thanks for the explanation. > > I tried to build, but got the following error. > > LD .tmp_vmlinux1 > block/built-in.o: In function `get_iothrottle_from_page': > /kernel/linux-2.6.30-rc2/block/blk-io-throttle.c:670: undefined reference to `page_cgroup_get_owner' > block/built-in.o: In function `iothrottle_set_page_owner': > /kernel/linux-2.6.30-rc2/block/blk-io-throttle.c:704: undefined reference to `page_cgroup_set_owner' > block/built-in.o: In function `iothrottle_copy_page_owner': > /kernel/linux-2.6.30-rc2/block/blk-io-throttle.c:720: undefined reference to `page_cgroup_copy_owner' > make: *** [.tmp_vmlinux1] Error 1 page_cgroup_*_onwer are defined in mm/page_cgroup.c, that is built if CONFIG_PAGE_TRACKING=y. But from init/Kconfig: config CGROUP_IO_THROTTLE bool "Enable cgroup I/O throttling" depends on CGROUPS && RESOURCE_COUNTERS && EXPERIMENTAL select MM_OWNER select PAGE_TRACKING ^^^^^^^^^^^^^ mmmh??? it should be correct. And I don't understand how the following patch can fix this problem... Could you post your .config? Thanks, -Andrea > > Signed-off-by: Gui Jianfeng > --- > mm/page_cgroup.c | 65 ++++++++++++++++++++++++++--------------------------- > 1 files changed, 32 insertions(+), 33 deletions(-) > > diff --git a/mm/page_cgroup.c b/mm/page_cgroup.c > index b3b394c..9c392f1 100644 > --- a/mm/page_cgroup.c > +++ b/mm/page_cgroup.c > @@ -244,6 +244,38 @@ static int __meminit page_cgroup_callback(struct notifier_block *self, > > #endif > > +void __init page_cgroup_init(void) > +{ > + unsigned long pfn; > + int fail = 0; > + > + if (mem_cgroup_disabled() && iothrottle_disabled()) > + return; > + > + for (pfn = 0; !fail && pfn < max_pfn; pfn += PAGES_PER_SECTION) { > + if (!pfn_present(pfn)) > + continue; > + fail = init_section_page_cgroup(pfn); > + } > + if (fail) { > + printk(KERN_CRIT > + "try cgroup_disable=memory,blockio boot option\n"); > + panic("Out of memory"); > + } else { > + hotplug_memory_notifier(page_cgroup_callback, 0); > + } > + printk(KERN_INFO "allocated %ld bytes of page_cgroup\n", total_usage); > + printk(KERN_INFO > + "try cgroup_disable=memory,blockio option if you don't want\n"); > +} > + > +void __meminit pgdat_page_cgroup_init(struct pglist_data *pgdat) > +{ > + return; > +} > + > +#endif > + > /** > * page_cgroup_get_owner() - get the owner ID of a page > * @page: the page we want to find the owner > @@ -317,39 +349,6 @@ int page_cgroup_copy_owner(struct page *npage, struct page *opage) > return 0; > } > > -void __init page_cgroup_init(void) > -{ > - unsigned long pfn; > - int fail = 0; > - > - if (mem_cgroup_disabled() && iothrottle_disabled()) > - return; > - > - for (pfn = 0; !fail && pfn < max_pfn; pfn += PAGES_PER_SECTION) { > - if (!pfn_present(pfn)) > - continue; > - fail = init_section_page_cgroup(pfn); > - } > - if (fail) { > - printk(KERN_CRIT > - "try cgroup_disable=memory,blockio boot option\n"); > - panic("Out of memory"); > - } else { > - hotplug_memory_notifier(page_cgroup_callback, 0); > - } > - printk(KERN_INFO "allocated %ld bytes of page_cgroup\n", total_usage); > - printk(KERN_INFO > - "try cgroup_disable=memory,blockio option if you don't want\n"); > -} > - > -void __meminit pgdat_page_cgroup_init(struct pglist_data *pgdat) > -{ > - return; > -} > - > -#endif > - > - > #ifdef CONFIG_CGROUP_MEM_RES_CTLR_SWAP > > static DEFINE_MUTEX(swap_cgroup_mutex); > -- > 1.5.4.rc3 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/