From: Dan Magenheimer <dan.magenheimer@oracle.com> To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, jeremy@goop.org, hughd@google.com, ngupta@vflare.org, Konrad Wilk <konrad.wilk@oracle.com>, JBeulich@novell.com, Kurt Hackel <kurt.hackel@oracle.com>, npiggin@kernel.dk, akpm@linux-foundation.org, riel@redhat.com, hannes@cmpxchg.org, matthew@wil.cx, Chris Mason <chris.mason@oracle.com>, sjenning@linux.vnet.ibm.com, jackdachef@gmail.com, cyclonusj@gmail.com Subject: RE: Subject: [PATCH V7 2/4] mm: frontswap: core code Date: Fri, 26 Aug 2011 07:28:05 -0700 (PDT) [thread overview] Message-ID: <a2fc3885-b98d-4918-afcc-5eac083c7eb0@default> (raw) In-Reply-To: <20110826091619.1ad27e9c.kamezawa.hiroyu@jp.fujitsu.com> > From: KAMEZAWA Hiroyuki [mailto:kamezawa.hiroyu@jp.fujitsu.com] > Subject: Re: Subject: [PATCH V7 2/4] mm: frontswap: core code > > On Thu, 25 Aug 2011 10:37:05 -0700 (PDT) > Dan Magenheimer <dan.magenheimer@oracle.com> wrote: > > > > From: KAMEZAWA Hiroyuki [mailto:kamezawa.hiroyu@jp.fujitsu.com] > > > Subject: Re: Subject: [PATCH V7 2/4] mm: frontswap: core code > > > > BTW, Do I have a chance to implement frontswap accounting per cgroup > > > (under memcg) ? Or Do I need to enable/disale switch for frontswap per memcg ? > > > Do you think it is worth to do ? > > > > I'm not very familiar with cgroups or memcg but I think it may be possible > > to implement transcendent memory with cgroup as the "guest" and the default > > cgroup as the "host" to allow for more memory elasticity for cgroups. > > (See http://lwn.net/Articles/454795/ for a good overview of all of > > transcendent memory.) > > > Ok, I'll see it. > > I just wonder following case. > > Assume 2 memcgs. > memcg X: memory limit = 300M. > memcg Y: memory limit = 300M. > > This limitation is done for performance isolation. > When using frontswap, X and Y can cause resource confliction in frontswap and > performance of X and Y cannot be predictable. > > These are informational statistics so do not need to be protected > > by a lock or an atomic-type. If an increment is lost due to a cpu > > race, it is not a problem. > > Hmm...Personally, I don't like incorrect counters. Could you add comments ? > Or How anout using percpu_counter ? (see lib/percpu_counter.c) Since the exact values of these counters is not required by any code (just information for userland), I think I will just add a comment. > > > What lock should be held to guard global variables ? swap_lock ? > > > > Which global variables do you mean and in what routines? I think the > > page lock is required for put/get (as documented in the comments) > > but not the swap_lock. > > My concern was race in counters. Even you allow race in frontswap_succ_puts++, > > Don't you need some lock for > sis->frontswap_pages++ > sis->frontswap_pages-- Hmmm... OK, you've convinced me. If this counter should be one and a race leaves it as zero, I think data corruption could result on a swapoff or partial swapoff. And after thinking about it, I think I also need to check for locking on frontswap_set/clear as I don't think these bitfield modifiers are atomic. Thanks for pointing this out. Good catch! I will need to play with this and test it so probably will not submit V8 until next week as today is a vacation day for me. Dan
WARNING: multiple messages have this Message-ID (diff)
From: Dan Magenheimer <dan.magenheimer@oracle.com> To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, jeremy@goop.org, hughd@google.com, ngupta@vflare.org, Konrad Wilk <konrad.wilk@oracle.com>, JBeulich@novell.com, Kurt Hackel <kurt.hackel@oracle.com>, npiggin@kernel.dk, akpm@linux-foundation.org, riel@redhat.com, hannes@cmpxchg.org, matthew@wil.cx, Chris Mason <chris.mason@oracle.com>, sjenning@linux.vnet.ibm.com, jackdachef@gmail.com, cyclonusj@gmail.com Subject: RE: Subject: [PATCH V7 2/4] mm: frontswap: core code Date: Fri, 26 Aug 2011 07:28:05 -0700 (PDT) [thread overview] Message-ID: <a2fc3885-b98d-4918-afcc-5eac083c7eb0@default> (raw) In-Reply-To: <20110826091619.1ad27e9c.kamezawa.hiroyu@jp.fujitsu.com> > From: KAMEZAWA Hiroyuki [mailto:kamezawa.hiroyu@jp.fujitsu.com] > Subject: Re: Subject: [PATCH V7 2/4] mm: frontswap: core code > > On Thu, 25 Aug 2011 10:37:05 -0700 (PDT) > Dan Magenheimer <dan.magenheimer@oracle.com> wrote: > > > > From: KAMEZAWA Hiroyuki [mailto:kamezawa.hiroyu@jp.fujitsu.com] > > > Subject: Re: Subject: [PATCH V7 2/4] mm: frontswap: core code > > > > BTW, Do I have a chance to implement frontswap accounting per cgroup > > > (under memcg) ? Or Do I need to enable/disale switch for frontswap per memcg ? > > > Do you think it is worth to do ? > > > > I'm not very familiar with cgroups or memcg but I think it may be possible > > to implement transcendent memory with cgroup as the "guest" and the default > > cgroup as the "host" to allow for more memory elasticity for cgroups. > > (See http://lwn.net/Articles/454795/ for a good overview of all of > > transcendent memory.) > > > Ok, I'll see it. > > I just wonder following case. > > Assume 2 memcgs. > memcg X: memory limit = 300M. > memcg Y: memory limit = 300M. > > This limitation is done for performance isolation. > When using frontswap, X and Y can cause resource confliction in frontswap and > performance of X and Y cannot be predictable. > > These are informational statistics so do not need to be protected > > by a lock or an atomic-type. If an increment is lost due to a cpu > > race, it is not a problem. > > Hmm...Personally, I don't like incorrect counters. Could you add comments ? > Or How anout using percpu_counter ? (see lib/percpu_counter.c) Since the exact values of these counters is not required by any code (just information for userland), I think I will just add a comment. > > > What lock should be held to guard global variables ? swap_lock ? > > > > Which global variables do you mean and in what routines? I think the > > page lock is required for put/get (as documented in the comments) > > but not the swap_lock. > > My concern was race in counters. Even you allow race in frontswap_succ_puts++, > > Don't you need some lock for > sis->frontswap_pages++ > sis->frontswap_pages-- Hmmm... OK, you've convinced me. If this counter should be one and a race leaves it as zero, I think data corruption could result on a swapoff or partial swapoff. And after thinking about it, I think I also need to check for locking on frontswap_set/clear as I don't think these bitfield modifiers are atomic. Thanks for pointing this out. Good catch! I will need to play with this and test it so probably will not submit V8 until next week as today is a vacation day for me. Dan -- 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>
next prev parent reply other threads:[~2011-08-26 14:29 UTC|newest] Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top 2011-08-23 14:58 Subject: [PATCH V7 2/4] mm: frontswap: core code Dan Magenheimer 2011-08-23 14:58 ` Dan Magenheimer 2011-08-25 6:05 ` KAMEZAWA Hiroyuki 2011-08-25 6:05 ` KAMEZAWA Hiroyuki 2011-08-25 13:29 ` Seth Jennings 2011-08-25 13:29 ` Seth Jennings 2011-08-25 17:52 ` Dan Magenheimer 2011-08-25 17:52 ` Dan Magenheimer 2011-08-25 17:37 ` Dan Magenheimer 2011-08-25 17:37 ` Dan Magenheimer 2011-08-26 0:16 ` KAMEZAWA Hiroyuki 2011-08-26 0:16 ` KAMEZAWA Hiroyuki 2011-08-26 14:28 ` Dan Magenheimer [this message] 2011-08-26 14:28 ` Dan Magenheimer 2011-08-29 15:47 ` Dan Magenheimer 2011-08-29 15:47 ` Dan Magenheimer 2011-08-26 14:53 ` Dan Magenheimer 2011-08-26 14:53 ` Dan Magenheimer
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=a2fc3885-b98d-4918-afcc-5eac083c7eb0@default \ --to=dan.magenheimer@oracle.com \ --cc=JBeulich@novell.com \ --cc=akpm@linux-foundation.org \ --cc=chris.mason@oracle.com \ --cc=cyclonusj@gmail.com \ --cc=hannes@cmpxchg.org \ --cc=hughd@google.com \ --cc=jackdachef@gmail.com \ --cc=jeremy@goop.org \ --cc=kamezawa.hiroyu@jp.fujitsu.com \ --cc=konrad.wilk@oracle.com \ --cc=kurt.hackel@oracle.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=matthew@wil.cx \ --cc=ngupta@vflare.org \ --cc=npiggin@kernel.dk \ --cc=riel@redhat.com \ --cc=sjenning@linux.vnet.ibm.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: linkBe 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.