All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrea Righi <arighi@develer.com>
To: Vivek Goyal <vgoyal@redhat.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>,
	balbir@linux.vnet.ibm.com, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org,
	Trond Myklebust <trond.myklebust@fys.uio.no>,
	Suleiman Souhlal <suleiman@google.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	containers@lists.linux-foundation.org
Subject: Re: [PATCH mmotm 2.5/4] memcg: disable irq at page cgroup lock (Re: [PATCH -mmotm 3/4] memcg: dirty pages accounting and limiting infrastructure)
Date: Thu, 11 Mar 2010 23:34:46 +0100	[thread overview]
Message-ID: <20100311223445.GD2427@linux> (raw)
In-Reply-To: <20100311165413.GD29246@redhat.com>

On Thu, Mar 11, 2010 at 11:54:13AM -0500, Vivek Goyal wrote:
> On Thu, Mar 11, 2010 at 01:49:08PM +0900, KAMEZAWA Hiroyuki wrote:
> > On Thu, 11 Mar 2010 13:31:23 +0900
> > Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp> wrote:
> > 
> > > On Wed, 10 Mar 2010 09:26:24 +0530, Balbir Singh <balbir@linux.vnet.ibm.com> wrote:
> > > > * nishimura@mxp.nes.nec.co.jp <nishimura@mxp.nes.nec.co.jp> [2010-03-10 10:43:09]:
> > 
> > > I made a patch(attached) using both local_irq_disable/enable and local_irq_save/restore.
> > > local_irq_save/restore is used only in mem_cgroup_update_file_mapped.
> > > 
> > > And I attached a histogram graph of 30 times kernel build in root cgroup for each.
> > > 
> > >   before_root: no irq operation(original)
> > >   after_root: local_irq_disable/enable for all
> > >   after2_root: local_irq_save/restore for all
> > >   after3_root: mixed version(attached)
> > > 
> > > hmm, there seems to be a tendency that before < after < after3 < after2 ?
> > > Should I replace save/restore version to mixed version ?
> > > 
> > 
> > IMHO, starting from after2_root version is the easist.
> > If there is a chance to call lock/unlock page_cgroup can be called in
> > interrupt context, we _have to_ disable IRQ, anyway.
> > And if we have to do this, I prefer migration_lock rather than this mixture.
> > 
> > BTW, how big your system is ? Balbir-san's concern is for bigger machines.
> > But I'm not sure this change is affecte by the size of machines.
> > I'm sorry I have no big machine, now.
> 
> FWIW, I took andrea's patches (local_irq_save/restore solution) and
> compiled the kernel on 32 cores hyperthreaded (64 cpus) with make -j32
> in /dev/shm/. On this system, I can't see much difference.
> 
> I compiled the kernel 10 times and took average.
> 
> Without andrea's patches: 28.698 (seconds)
> With andrea's patches: 28.711 (seconds).
> Diff is .04%
> 
> This is all should be in root cgroup. Note, I have not mounted memory cgroup
> controller but it is compiled in. So I am assuming that root group
> accounting will still be taking place. Also assuming that it is not
> required to do actual IO to disk and /dev/shm is enough to see the results
> of local_irq_save()/restore.

cgroup disable is at boot time "cgroup_disable=...", so root cgroup
accounting should be enabled.

The same for the local_irq_save/restore() overhead, lock/unlock_page_cgroup()
is called during each charge.

Many thanks for testing!
-Andrea

WARNING: multiple messages have this Message-ID (diff)
From: Andrea Righi <arighi@develer.com>
To: Vivek Goyal <vgoyal@redhat.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>,
	balbir@linux.vnet.ibm.com, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org,
	Trond Myklebust <trond.myklebust@fys.uio.no>,
	Suleiman Souhlal <suleiman@google.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	containers@lists.linux-foundation.org
Subject: Re: [PATCH mmotm 2.5/4] memcg: disable irq at page cgroup lock (Re: [PATCH -mmotm 3/4] memcg: dirty pages accounting and limiting infrastructure)
Date: Thu, 11 Mar 2010 23:34:46 +0100	[thread overview]
Message-ID: <20100311223445.GD2427@linux> (raw)
In-Reply-To: <20100311165413.GD29246@redhat.com>

On Thu, Mar 11, 2010 at 11:54:13AM -0500, Vivek Goyal wrote:
> On Thu, Mar 11, 2010 at 01:49:08PM +0900, KAMEZAWA Hiroyuki wrote:
> > On Thu, 11 Mar 2010 13:31:23 +0900
> > Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp> wrote:
> > 
> > > On Wed, 10 Mar 2010 09:26:24 +0530, Balbir Singh <balbir@linux.vnet.ibm.com> wrote:
> > > > * nishimura@mxp.nes.nec.co.jp <nishimura@mxp.nes.nec.co.jp> [2010-03-10 10:43:09]:
> > 
> > > I made a patch(attached) using both local_irq_disable/enable and local_irq_save/restore.
> > > local_irq_save/restore is used only in mem_cgroup_update_file_mapped.
> > > 
> > > And I attached a histogram graph of 30 times kernel build in root cgroup for each.
> > > 
> > >   before_root: no irq operation(original)
> > >   after_root: local_irq_disable/enable for all
> > >   after2_root: local_irq_save/restore for all
> > >   after3_root: mixed version(attached)
> > > 
> > > hmm, there seems to be a tendency that before < after < after3 < after2 ?
> > > Should I replace save/restore version to mixed version ?
> > > 
> > 
> > IMHO, starting from after2_root version is the easist.
> > If there is a chance to call lock/unlock page_cgroup can be called in
> > interrupt context, we _have to_ disable IRQ, anyway.
> > And if we have to do this, I prefer migration_lock rather than this mixture.
> > 
> > BTW, how big your system is ? Balbir-san's concern is for bigger machines.
> > But I'm not sure this change is affecte by the size of machines.
> > I'm sorry I have no big machine, now.
> 
> FWIW, I took andrea's patches (local_irq_save/restore solution) and
> compiled the kernel on 32 cores hyperthreaded (64 cpus) with make -j32
> in /dev/shm/. On this system, I can't see much difference.
> 
> I compiled the kernel 10 times and took average.
> 
> Without andrea's patches: 28.698 (seconds)
> With andrea's patches: 28.711 (seconds).
> Diff is .04%
> 
> This is all should be in root cgroup. Note, I have not mounted memory cgroup
> controller but it is compiled in. So I am assuming that root group
> accounting will still be taking place. Also assuming that it is not
> required to do actual IO to disk and /dev/shm is enough to see the results
> of local_irq_save()/restore.

cgroup disable is at boot time "cgroup_disable=...", so root cgroup
accounting should be enabled.

The same for the local_irq_save/restore() overhead, lock/unlock_page_cgroup()
is called during each charge.

Many thanks for testing!
-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/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  parent reply	other threads:[~2010-03-11 22:34 UTC|newest]

Thread overview: 99+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-07 20:57 [PATCH -mmotm 0/4] memcg: per cgroup dirty limit (v5) Andrea Righi
2010-03-07 20:57 ` Andrea Righi
2010-03-07 20:57 ` [PATCH -mmotm 1/4] memcg: dirty memory documentation Andrea Righi
2010-03-07 20:57   ` Andrea Righi
2010-03-07 20:57 ` [PATCH -mmotm 2/4] page_cgroup: introduce file cache flags Andrea Righi
2010-03-07 20:57   ` Andrea Righi
2010-03-07 20:57 ` [PATCH -mmotm 3/4] memcg: dirty pages accounting and limiting infrastructure Andrea Righi
2010-03-07 20:57   ` Andrea Righi
2010-03-08  1:44   ` Daisuke Nishimura
2010-03-08  1:44     ` Daisuke Nishimura
     [not found]     ` <20100308104447.c124c1ff.nishimura-YQH0OdQVrdy45+QrQBaojngSJqDPrsil@public.gmane.org>
2010-03-08  1:56       ` KAMEZAWA Hiroyuki
2010-03-08  1:56     ` KAMEZAWA Hiroyuki
2010-03-08  1:56       ` KAMEZAWA Hiroyuki
2010-03-08  2:17       ` Daisuke Nishimura
2010-03-08  2:17         ` Daisuke Nishimura
2010-03-08  2:37         ` KAMEZAWA Hiroyuki
2010-03-08  2:37           ` KAMEZAWA Hiroyuki
     [not found]           ` <20100308113711.d7a249da.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2010-03-08  8:07             ` Daisuke Nishimura
2010-03-08  8:07           ` Daisuke Nishimura
2010-03-08  8:07             ` Daisuke Nishimura
2010-03-08  8:31             ` KAMEZAWA Hiroyuki
2010-03-08  8:31               ` KAMEZAWA Hiroyuki
2010-03-09  0:12               ` Andrea Righi
2010-03-09  0:12                 ` Andrea Righi
2010-03-09  0:19                 ` KAMEZAWA Hiroyuki
2010-03-09  0:19                 ` KAMEZAWA Hiroyuki
2010-03-09  0:19                   ` KAMEZAWA Hiroyuki
2010-03-09  1:29                   ` [PATCH mmotm 2.5/4] memcg: disable irq at page cgroup lock (Re: [PATCH -mmotm 3/4] memcg: dirty pages accounting and limiting infrastructure) Daisuke Nishimura
2010-03-09  1:29                     ` Daisuke Nishimura
2010-03-09  2:07                     ` KAMEZAWA Hiroyuki
2010-03-09  2:07                       ` KAMEZAWA Hiroyuki
2010-03-09  4:50                     ` Balbir Singh
2010-03-09  4:50                       ` Balbir Singh
2010-03-10  1:43                       ` Daisuke Nishimura
2010-03-10  1:43                         ` Daisuke Nishimura
     [not found]                         ` <20100310104309.c5f9c9a9.nishimura-YQH0OdQVrdy45+QrQBaojngSJqDPrsil@public.gmane.org>
2010-03-10  3:56                           ` Balbir Singh
2010-03-10  3:56                             ` Balbir Singh
2010-03-10  3:56                             ` Balbir Singh
     [not found]                             ` <20100310035624.GP3073-SINUvgVNF2CyUtPGxGje5AC/G2K4zDHf@public.gmane.org>
2010-03-11  4:31                               ` Daisuke Nishimura
2010-03-11  4:31                             ` Daisuke Nishimura
     [not found]                               ` <20100311133123.ab10183c.nishimura-YQH0OdQVrdy45+QrQBaojngSJqDPrsil@public.gmane.org>
2010-03-11  4:49                                 ` KAMEZAWA Hiroyuki
2010-03-11  4:49                               ` KAMEZAWA Hiroyuki
2010-03-11  4:49                                 ` KAMEZAWA Hiroyuki
     [not found]                                 ` <20100311134908.48d8b0fc.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2010-03-11  4:58                                   ` Daisuke Nishimura
2010-03-11 16:54                                   ` Vivek Goyal
2010-03-11  4:58                                 ` Daisuke Nishimura
2010-03-11  4:58                                   ` Daisuke Nishimura
     [not found]                                   ` <20100311135847.990eee62.nishimura-YQH0OdQVrdy45+QrQBaojngSJqDPrsil@public.gmane.org>
2010-03-11  5:13                                     ` KAMEZAWA Hiroyuki
2010-03-11  5:13                                   ` KAMEZAWA Hiroyuki
2010-03-11  5:13                                     ` KAMEZAWA Hiroyuki
     [not found]                                     ` <20100311141300.90b85391.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2010-03-11  6:15                                       ` KAMEZAWA Hiroyuki
2010-03-11  6:15                                     ` KAMEZAWA Hiroyuki
2010-03-11  6:15                                       ` KAMEZAWA Hiroyuki
2010-03-11  7:50                                       ` Daisuke Nishimura
2010-03-11  7:50                                         ` Daisuke Nishimura
     [not found]                                         ` <20100311165020.86ac904b.nishimura-YQH0OdQVrdy45+QrQBaojngSJqDPrsil@public.gmane.org>
2010-03-11  8:06                                           ` KAMEZAWA Hiroyuki
2010-03-11  8:06                                         ` KAMEZAWA Hiroyuki
2010-03-11  8:06                                           ` KAMEZAWA Hiroyuki
     [not found]                                       ` <20100311151511.579aa8d1.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2010-03-11  7:50                                         ` Daisuke Nishimura
2010-03-11 16:54                                 ` Vivek Goyal
2010-03-11 16:54                                   ` Vivek Goyal
     [not found]                                   ` <20100311165413.GD29246-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-03-11 22:34                                     ` Andrea Righi
2010-03-11 23:46                                     ` KAMEZAWA Hiroyuki
2010-03-11 22:34                                   ` Andrea Righi [this message]
2010-03-11 22:34                                     ` Andrea Righi
2010-03-11 23:46                                   ` KAMEZAWA Hiroyuki
2010-03-11 23:46                                     ` KAMEZAWA Hiroyuki
2010-03-09  9:07                     ` Andrea Righi
2010-03-09  9:07                       ` Andrea Righi
     [not found]                     ` <20100309102928.9f36d2bb.nishimura-YQH0OdQVrdy45+QrQBaojngSJqDPrsil@public.gmane.org>
2010-03-09  2:07                       ` KAMEZAWA Hiroyuki
2010-03-09  4:50                       ` Balbir Singh
2010-03-09  9:07                       ` Andrea Righi
     [not found]                   ` <20100309091914.4b5f6661.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2010-03-09  1:29                     ` Daisuke Nishimura
     [not found]               ` <20100308173100.b5997fd4.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2010-03-09  0:12                 ` [PATCH -mmotm 3/4] memcg: dirty pages accounting and limiting infrastructure Andrea Righi
2010-03-09  0:18                 ` Daisuke Nishimura
2010-03-09  0:18               ` Daisuke Nishimura
2010-03-09  0:18                 ` Daisuke Nishimura
     [not found]                 ` <20100309091845.d38b43ff.nishimura-YQH0OdQVrdy45+QrQBaojngSJqDPrsil@public.gmane.org>
2010-03-09  0:20                   ` KAMEZAWA Hiroyuki
2010-03-09  0:20                 ` KAMEZAWA Hiroyuki
2010-03-09  0:20                   ` KAMEZAWA Hiroyuki
2010-03-09  0:52                   ` Daisuke Nishimura
2010-03-09  0:52                     ` Daisuke Nishimura
     [not found]                   ` <20100309092054.b18a4ff2.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2010-03-09  0:52                     ` Daisuke Nishimura
     [not found]             ` <20100308170711.4d8b02f0.nishimura-YQH0OdQVrdy45+QrQBaojngSJqDPrsil@public.gmane.org>
2010-03-08  8:31               ` KAMEZAWA Hiroyuki
2010-03-09  0:03               ` Andrea Righi
2010-03-09  0:03             ` Andrea Righi
2010-03-09  0:03               ` Andrea Righi
     [not found]         ` <20100308111724.3e48aee3.nishimura-YQH0OdQVrdy45+QrQBaojngSJqDPrsil@public.gmane.org>
2010-03-08  2:37           ` KAMEZAWA Hiroyuki
     [not found]       ` <20100308105641.e2e714f4.kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2010-03-08  2:17         ` Daisuke Nishimura
     [not found]   ` <1267995474-9117-4-git-send-email-arighi-vWjgImWzx8FBDgjK7y7TUQ@public.gmane.org>
2010-03-08  1:44     ` Daisuke Nishimura
     [not found] ` <1267995474-9117-1-git-send-email-arighi-vWjgImWzx8FBDgjK7y7TUQ@public.gmane.org>
2010-03-07 20:57   ` [PATCH -mmotm 1/4] memcg: dirty memory documentation Andrea Righi
2010-03-07 20:57   ` [PATCH -mmotm 2/4] page_cgroup: introduce file cache flags Andrea Righi
2010-03-07 20:57   ` [PATCH -mmotm 3/4] memcg: dirty pages accounting and limiting infrastructure Andrea Righi
2010-03-07 20:57   ` [PATCH -mmotm 4/4] memcg: dirty pages instrumentation Andrea Righi
2010-03-07 20:57 ` Andrea Righi
2010-03-07 20:57   ` Andrea Righi
     [not found]   ` <1267995474-9117-5-git-send-email-arighi-vWjgImWzx8FBDgjK7y7TUQ@public.gmane.org>
2010-03-08  2:31     ` KAMEZAWA Hiroyuki
2010-03-08  2:31   ` KAMEZAWA Hiroyuki
2010-03-08  2:31     ` KAMEZAWA Hiroyuki

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=20100311223445.GD2427@linux \
    --to=arighi@develer.com \
    --cc=akpm@linux-foundation.org \
    --cc=balbir@linux.vnet.ibm.com \
    --cc=containers@lists.linux-foundation.org \
    --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=suleiman@google.com \
    --cc=trond.myklebust@fys.uio.no \
    --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.