From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from psmtp.com (na3sys010amx151.postini.com [74.125.245.151]) by kanga.kvack.org (Postfix) with SMTP id C482E6B005C for ; Wed, 13 Jun 2012 22:27:12 -0400 (EDT) Received: from m3.gw.fujitsu.co.jp (unknown [10.0.50.73]) by fgwmail6.fujitsu.co.jp (Postfix) with ESMTP id E0E493EE0BB for ; Thu, 14 Jun 2012 11:27:10 +0900 (JST) Received: from smail (m3 [127.0.0.1]) by outgoing.m3.gw.fujitsu.co.jp (Postfix) with ESMTP id C876945DEAD for ; Thu, 14 Jun 2012 11:27:10 +0900 (JST) Received: from s3.gw.fujitsu.co.jp (s3.gw.fujitsu.co.jp [10.0.50.93]) by m3.gw.fujitsu.co.jp (Postfix) with ESMTP id A752845DEA6 for ; Thu, 14 Jun 2012 11:27:10 +0900 (JST) Received: from s3.gw.fujitsu.co.jp (localhost.localdomain [127.0.0.1]) by s3.gw.fujitsu.co.jp (Postfix) with ESMTP id 95D7A1DB803B for ; Thu, 14 Jun 2012 11:27:10 +0900 (JST) Received: from m106.s.css.fujitsu.com (m106.s.css.fujitsu.com [10.240.81.146]) by s3.gw.fujitsu.co.jp (Postfix) with ESMTP id 418AE1DB8038 for ; Thu, 14 Jun 2012 11:27:10 +0900 (JST) Message-ID: <4FD94B75.6080401@jp.fujitsu.com> Date: Thu, 14 Jun 2012 11:24:53 +0900 From: Kamezawa Hiroyuki MIME-Version: 1.0 Subject: Re: [PATCH v3 00/28] kmem limitation for memcg References: <1337951028-3427-1-git-send-email-glommer@parallels.com> <20120607102604.GE19842@somewhere.redhat.com> <4FD08813.9070307@parallels.com> <20120607140037.GG19842@somewhere.redhat.com> In-Reply-To: <20120607140037.GG19842@somewhere.redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Sender: owner-linux-mm@kvack.org List-ID: To: Frederic Weisbecker Cc: Glauber Costa , linux-kernel@vger.kernel.org, cgroups@vger.kernel.org, linux-mm@kvack.org, Tejun Heo , Li Zefan , Greg Thelen , Suleiman Souhlal , Michal Hocko , Johannes Weiner , devel@openvz.org, David Rientjes (2012/06/07 23:00), Frederic Weisbecker wrote: > On Thu, Jun 07, 2012 at 02:53:07PM +0400, Glauber Costa wrote: >> On 06/07/2012 02:26 PM, Frederic Weisbecker wrote: >>> On Fri, May 25, 2012 at 05:03:20PM +0400, Glauber Costa wrote: >>>> Hello All, >>>> >>>> This is my new take for the memcg kmem accounting. This should merge >>>> all of the previous comments from you, plus fix a bunch of bugs. >>>> >>>> At this point, I consider the series pretty mature. Since last submission >>>> 2 weeks ago, I focused on broadening the testing coverage. Some bugs were >>>> fixed, but that of course doesn't mean no bugs exist. >>>> >>>> I believe some of the early patches here are already in some trees around. >>>> I don't know who should pick this, so if everyone agrees with what's in here, >>>> please just ack them and tell me which tree I should aim for (-mm? Hocko's?) >>>> and I'll rebase it. >>>> >>>> I should point out again that most, if not all, of the code in the caches >>>> are wrapped in static_key areas, meaning they will be completely patched out >>>> until the first limit is set. Enabling and disabling of static_keys incorporate >>>> the last fixes for sock memcg, and should be pretty robust. >>>> >>>> I also put a lot of effort, as you will all see, in the proper separation >>>> of the patches, so the review process is made as easy as the complexity of >>>> the work allows to. >>> >>> So I believe that if I want to implement a per kernel stack accounting/limitation, >>> I need to work on top of your patchset. >>> >>> What do you think about having some sub kmem accounting based on the caches? >>> For example there could be a specific accounting per kmem cache. >>> >>> Like if we use a specific kmem cache to allocate the kernel stack >>> (as is done by some archs but I can generalize that for those who want >>> kernel stack accounting), allocations are accounted globally in the memcg as >>> done in your patchset but also on a seperate counter only for this kmem cache >>> on the memcg, resulting in a kmem.stack.usage somewhere. >>> >>> The concept of per kmem cache accounting can be expanded more for any >>> kind of finegrained kmem accounting. >>> >>> Thoughts? >> >> I believe a general separation is too much, and will lead to knob >> explosion. So I don't think it is a good idea. > > Right. This could be an option in kmem_cache_create() or something. > >> >> Now, for the stack itself, it can be justified. The question that >> remains to be answered is: >> >> Why do you need to set the stack value separately? Isn't accounting >> the stack value, and limiting against the global kmem limit enough? > > Well, I may want to let my container have a full access to some kmem > resources (net, file, etc...) but defend against fork bombs or NR_PROC > rlimit exhaustion of other containers. > > So I need to be able to set my limit precisely on kstack. You explained that the limitation is necessary for fork-bomb, and the bad point of fork-bomb is that it can cause OOM. So, the problem is OOM not fork-bomb. If the problem is OOM, IIUC, generic kernel memory limiting will work better than kernel stack limiting. Thanks, -Kame -- 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: email@kvack.org