All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrea Righi <arighi@develer.com>
To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Vivek Goyal <vgoyal@redhat.com>, Jonathan Corbet <corbet@lwn.net>,
	Balbir Singh <balbir@linux.vnet.ibm.com>,
	Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>,
	Greg Thelen <gthelen@google.com>,
	Wu Fengguang <fengguang.wu@intel.com>,
	Gui Jianfeng <guijianfeng@cn.fujitsu.com>,
	Ryo Tsuruta <ryov@valinux.co.jp>,
	Hirokazu Takahashi <taka@valinux.co.jp>,
	Jens Axboe <axboe@kernel.dk>,
	Andrew Morton <akpm@linux-foundation.org>,
	containers@lists.linux-foundation.org, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 3/5] page_cgroup: make page tracking available for blkio
Date: Fri, 25 Feb 2011 01:48:05 +0100	[thread overview]
Message-ID: <20110225004805.GA3044@linux.develer.com> (raw)
In-Reply-To: <20110224085805.14766e93.kamezawa.hiroyu@jp.fujitsu.com>

On Thu, Feb 24, 2011 at 08:58:05AM +0900, KAMEZAWA Hiroyuki wrote:
> On Wed, 23 Feb 2011 09:59:11 +0100
> Andrea Righi <arighi@develer.com> wrote:
> 
> > > 
> > > I wonder I can make pc->mem_cgroup to be pc->memid(16bit), then, 
> > > ==
> > > static inline struct mem_cgroup *get_memcg_from_pc(struct page_cgroup *pc)
> > > {
> > >     struct cgroup_subsys_state *css = css_lookup(&mem_cgroup_subsys, pc->memid);
> > >     return container_of(css, struct mem_cgroup, css);
> > > }
> > > ==
> > > Overhead will be seen at updating file statistics and LRU management.
> > > 
> > > But, hmm, can't you do that tracking without page_cgroup ?
> > > Because the number of dirty/writeback pages are far smaller than total pages,
> > > chasing I/O with dynamic structure is not very bad..
> > > 
> > > prepareing [pfn -> blkio] record table and move that information to struct bio
> > > in dynamic way is very difficult ?
> > 
> > This would be ok for dirty pages, but consider that we're also tracking
> > anonymous pages. So, if we want to control the swap IO we actually need
> > to save this information for a lot of pages and at the end I think we'll
> > basically duplicate the page_cgroup code.
> > 
> 
> swap io is always started with bio and the task/mm_struct.
> So, if we can record information in bio, no page tracking is required.
> You can record information to bio just by reading mm->owner.

OK, you're right. And BTW probably swap io control is not a feature that
we need immediately. Moreover, as also said in the previous email with
Vivek, it seems we can even get rid of the page tracking stuff for now
and try to implement async write control at the time pages are written
in memory. I'm going forward to add this logic to the blk-throttle
controller.

Thanks,
-Andrea

WARNING: multiple messages have this Message-ID (diff)
From: Andrea Righi <arighi@develer.com>
To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Vivek Goyal <vgoyal@redhat.com>, Jonathan Corbet <corbet@lwn.net>,
	Balbir Singh <balbir@linux.vnet.ibm.com>,
	Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>,
	Greg Thelen <gthelen@google.com>,
	Wu Fengguang <fengguang.wu@intel.com>,
	Gui Jianfeng <guijianfeng@cn.fujitsu.com>,
	Ryo Tsuruta <ryov@valinux.co.jp>,
	Hirokazu Takahashi <taka@valinux.co.jp>,
	Jens Axboe <axboe@kernel.dk>,
	Andrew Morton <akpm@linux-foundation.org>,
	containers@lists.linux-foundation.org, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 3/5] page_cgroup: make page tracking available for blkio
Date: Fri, 25 Feb 2011 01:48:05 +0100	[thread overview]
Message-ID: <20110225004805.GA3044@linux.develer.com> (raw)
In-Reply-To: <20110224085805.14766e93.kamezawa.hiroyu@jp.fujitsu.com>

On Thu, Feb 24, 2011 at 08:58:05AM +0900, KAMEZAWA Hiroyuki wrote:
> On Wed, 23 Feb 2011 09:59:11 +0100
> Andrea Righi <arighi@develer.com> wrote:
> 
> > > 
> > > I wonder I can make pc->mem_cgroup to be pc->memid(16bit), then, 
> > > ==
> > > static inline struct mem_cgroup *get_memcg_from_pc(struct page_cgroup *pc)
> > > {
> > >     struct cgroup_subsys_state *css = css_lookup(&mem_cgroup_subsys, pc->memid);
> > >     return container_of(css, struct mem_cgroup, css);
> > > }
> > > ==
> > > Overhead will be seen at updating file statistics and LRU management.
> > > 
> > > But, hmm, can't you do that tracking without page_cgroup ?
> > > Because the number of dirty/writeback pages are far smaller than total pages,
> > > chasing I/O with dynamic structure is not very bad..
> > > 
> > > prepareing [pfn -> blkio] record table and move that information to struct bio
> > > in dynamic way is very difficult ?
> > 
> > This would be ok for dirty pages, but consider that we're also tracking
> > anonymous pages. So, if we want to control the swap IO we actually need
> > to save this information for a lot of pages and at the end I think we'll
> > basically duplicate the page_cgroup code.
> > 
> 
> swap io is always started with bio and the task/mm_struct.
> So, if we can record information in bio, no page tracking is required.
> You can record information to bio just by reading mm->owner.

OK, you're right. And BTW probably swap io control is not a feature that
we need immediately. Moreover, as also said in the previous email with
Vivek, it seems we can even get rid of the page tracking stuff for now
and try to implement async write control at the time pages are written
in memory. I'm going forward to add this logic to the blk-throttle
controller.

Thanks,
-Andrea

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  parent reply	other threads:[~2011-02-25  0:48 UTC|newest]

Thread overview: 120+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-22 17:12 [PATCH 0/5] blk-throttle: writeback and swap IO control Andrea Righi
2011-02-22 17:12 ` Andrea Righi
2011-02-22 17:12 ` [PATCH 1/5] blk-cgroup: move blk-cgroup.h in include/linux/blk-cgroup.h Andrea Righi
2011-02-22 17:12   ` Andrea Righi
2011-02-22 17:12 ` [PATCH 2/5] blk-cgroup: introduce task_to_blkio_cgroup() Andrea Righi
2011-02-22 17:12   ` Andrea Righi
2011-02-22 17:12 ` [PATCH 3/5] page_cgroup: make page tracking available for blkio Andrea Righi
2011-02-22 17:12   ` Andrea Righi
2011-02-22 20:01   ` Jonathan Corbet
2011-02-22 20:01     ` Jonathan Corbet
2011-02-22 21:57     ` Vivek Goyal
2011-02-22 21:57       ` Vivek Goyal
     [not found]     ` <20110222130145.37cb151e-vw3g6Xz/EtPk1uMJSBkQmQ@public.gmane.org>
2011-02-22 21:57       ` Vivek Goyal
2011-02-22 23:01       ` Andrea Righi
2011-02-22 23:01     ` Andrea Righi
2011-02-22 23:01       ` Andrea Righi
     [not found]       ` <20110222230146.GB23723-fxUVXftIFDlZdMzt4l2sLQC/G2K4zDHf@public.gmane.org>
2011-02-22 23:06         ` Vivek Goyal
2011-02-22 23:27         ` Jonathan Corbet
2011-02-22 23:06       ` Vivek Goyal
2011-02-22 23:06         ` Vivek Goyal
2011-02-22 23:21         ` Jonathan Corbet
2011-02-22 23:21           ` Jonathan Corbet
2011-02-22 23:37         ` Andrea Righi
2011-02-22 23:37           ` Andrea Righi
2011-02-23  4:49           ` KAMEZAWA Hiroyuki
2011-02-23  4:49             ` KAMEZAWA Hiroyuki
2011-02-23  8:59             ` Andrea Righi
2011-02-23  8:59               ` Andrea Righi
     [not found]               ` <20110223085911.GC2174-fxUVXftIFDlZdMzt4l2sLQC/G2K4zDHf@public.gmane.org>
2011-02-23 23:58                 ` KAMEZAWA Hiroyuki
2011-02-23 23:58               ` KAMEZAWA Hiroyuki
2011-02-23 23:58                 ` KAMEZAWA Hiroyuki
     [not found]                 ` <20110224085805.14766e93.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2011-02-25  0:48                   ` Andrea Righi
2011-02-25  0:48                 ` Andrea Righi [this message]
2011-02-25  0:48                   ` Andrea Righi
     [not found]             ` <20110223134910.abbdc931.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2011-02-23  8:59               ` Andrea Righi
     [not found]           ` <20110222233718.GF23723-fxUVXftIFDlZdMzt4l2sLQC/G2K4zDHf@public.gmane.org>
2011-02-23  4:49             ` KAMEZAWA Hiroyuki
     [not found]         ` <20110222230630.GL28269-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-02-22 23:21           ` Jonathan Corbet
2011-02-22 23:37           ` Andrea Righi
2011-02-22 23:27       ` Jonathan Corbet
2011-02-22 23:27         ` Jonathan Corbet
     [not found]         ` <20110222162729.054fe596-vw3g6Xz/EtPk1uMJSBkQmQ@public.gmane.org>
2011-02-22 23:48           ` Andrea Righi
2011-02-22 23:48         ` Andrea Righi
2011-02-22 23:48           ` Andrea Righi
     [not found]   ` <1298394776-9957-4-git-send-email-arighi-vWjgImWzx8FBDgjK7y7TUQ@public.gmane.org>
2011-02-22 20:01     ` Jonathan Corbet
2011-02-22 21:22     ` Vivek Goyal
2011-02-22 21:22   ` Vivek Goyal
2011-02-22 21:22     ` Vivek Goyal
     [not found]     ` <20110222212253.GJ28269-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-02-22 23:08       ` Andrea Righi
2011-02-22 23:08     ` Andrea Righi
2011-02-22 23:08       ` Andrea Righi
2011-02-22 17:12 ` [PATCH 4/5] blk-throttle: track buffered and anonymous pages Andrea Righi
2011-02-22 17:12   ` Andrea Righi
2011-02-22 18:42   ` Chad Talbott
2011-02-22 18:42     ` Chad Talbott
     [not found]     ` <AANLkTinD2ZH3hw_iqVpvMjMRbUkXMBgttjd2NevvYq9x-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-02-22 19:12       ` Andrea Righi
2011-02-22 20:49       ` Vivek Goyal
2011-02-22 19:12     ` Andrea Righi
2011-02-22 19:12       ` Andrea Righi
2011-02-22 20:49     ` Vivek Goyal
2011-02-22 20:49       ` Vivek Goyal
2011-02-22 23:03       ` Andrea Righi
2011-02-22 23:03         ` Andrea Righi
     [not found]       ` <20110222204928.GH28269-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-02-22 23:03         ` Andrea Righi
2011-02-22 21:00   ` Vivek Goyal
2011-02-22 21:00     ` Vivek Goyal
2011-02-22 23:05     ` Andrea Righi
2011-02-22 23:05       ` Andrea Righi
2011-02-23  0:07       ` Vivek Goyal
2011-02-23  0:07         ` Vivek Goyal
     [not found]         ` <20110223000718.GN28269-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-02-23  8:37           ` Andrea Righi
2011-02-23  8:37         ` Andrea Righi
2011-02-23  8:37           ` Andrea Righi
     [not found]       ` <20110222230534.GD23723-fxUVXftIFDlZdMzt4l2sLQC/G2K4zDHf@public.gmane.org>
2011-02-23  0:07         ` Vivek Goyal
     [not found]     ` <20110222210030.GI28269-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-02-22 23:05       ` Andrea Righi
     [not found]   ` <1298394776-9957-5-git-send-email-arighi-vWjgImWzx8FBDgjK7y7TUQ@public.gmane.org>
2011-02-22 18:42     ` Chad Talbott
2011-02-22 21:00     ` Vivek Goyal
2011-02-22 17:12 ` [PATCH 5/5] blk-throttle: buffered and anonymous page tracking instrumentation Andrea Righi
2011-02-22 17:12   ` Andrea Righi
     [not found] ` <1298394776-9957-1-git-send-email-arighi-vWjgImWzx8FBDgjK7y7TUQ@public.gmane.org>
2011-02-22 17:12   ` [PATCH 1/5] blk-cgroup: move blk-cgroup.h in include/linux/blk-cgroup.h Andrea Righi
2011-02-22 17:12   ` [PATCH 2/5] blk-cgroup: introduce task_to_blkio_cgroup() Andrea Righi
2011-02-22 17:12   ` [PATCH 3/5] page_cgroup: make page tracking available for blkio Andrea Righi
2011-02-22 17:12   ` [PATCH 4/5] blk-throttle: track buffered and anonymous pages Andrea Righi
2011-02-22 17:12   ` [PATCH 5/5] blk-throttle: buffered and anonymous page tracking instrumentation Andrea Righi
2011-02-22 19:34   ` [PATCH 0/5] blk-throttle: writeback and swap IO control Vivek Goyal
2011-02-24  6:08   ` Balbir Singh
2011-02-22 19:34 ` Vivek Goyal
2011-02-22 19:34   ` Vivek Goyal
2011-02-22 22:41   ` Andrea Righi
2011-02-22 22:41     ` Andrea Righi
2011-02-23  0:03     ` Vivek Goyal
2011-02-23  0:03       ` Vivek Goyal
     [not found]       ` <20110223000358.GM28269-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-02-23  8:32         ` Andrea Righi
2011-02-23  8:32       ` Andrea Righi
2011-02-23  8:32         ` Andrea Righi
2011-02-23 15:23         ` Vivek Goyal
2011-02-23 15:23           ` Vivek Goyal
2011-02-23 23:14           ` Andrea Righi
2011-02-23 23:14             ` Andrea Righi
2011-02-24  0:10             ` Vivek Goyal
2011-02-24  0:10               ` Vivek Goyal
2011-02-24  0:40               ` KAMEZAWA Hiroyuki
2011-02-24  0:40                 ` KAMEZAWA Hiroyuki
2011-02-24  2:01                 ` Greg Thelen
2011-02-24  2:01                   ` Greg Thelen
     [not found]                 ` <20110224094039.89c07bea.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2011-02-24  2:01                   ` Greg Thelen
2011-02-24 16:18                   ` Vivek Goyal
     [not found]                     ` <20110224161844.GD18494__23141.7772280567$1298564487$gmane$org-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-03-23 18:48                       ` Daniel Poelzleithner
2011-02-24 16:18                 ` Vivek Goyal
2011-02-24 16:18                   ` Vivek Goyal
     [not found]               ` <20110224001033.GF2526-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-02-24  0:40                 ` KAMEZAWA Hiroyuki
2011-02-25  0:54                 ` Andrea Righi
2011-02-25  0:54               ` Andrea Righi
2011-02-25  0:54                 ` Andrea Righi
     [not found]             ` <20110223231410.GB1744-fxUVXftIFDlZdMzt4l2sLQC/G2K4zDHf@public.gmane.org>
2011-02-24  0:10               ` Vivek Goyal
     [not found]           ` <20110223152354.GA2526-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-02-23 23:14             ` Andrea Righi
     [not found]         ` <20110223083206.GA2174-fxUVXftIFDlZdMzt4l2sLQC/G2K4zDHf@public.gmane.org>
2011-02-23 15:23           ` Vivek Goyal
     [not found]     ` <20110222224141.GA23723-fxUVXftIFDlZdMzt4l2sLQC/G2K4zDHf@public.gmane.org>
2011-02-23  0:03       ` Vivek Goyal
     [not found]   ` <20110222193403.GG28269-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-02-22 22:41     ` Andrea Righi
2011-02-24  6:08 ` Balbir Singh
2011-02-24  6:08   ` Balbir Singh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110225004805.GA3044@linux.develer.com \
    --to=arighi@develer.com \
    --cc=akpm@linux-foundation.org \
    --cc=axboe@kernel.dk \
    --cc=balbir@linux.vnet.ibm.com \
    --cc=containers@lists.linux-foundation.org \
    --cc=corbet@lwn.net \
    --cc=fengguang.wu@intel.com \
    --cc=gthelen@google.com \
    --cc=guijianfeng@cn.fujitsu.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=nishimura@mxp.nes.nec.co.jp \
    --cc=ryov@valinux.co.jp \
    --cc=taka@valinux.co.jp \
    --cc=vgoyal@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.