From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758464Ab2FZHZu (ORCPT ); Tue, 26 Jun 2012 03:25:50 -0400 Received: from mx2.parallels.com ([64.131.90.16]:54298 "EHLO mx2.parallels.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758360Ab2FZHZt (ORCPT ); Tue, 26 Jun 2012 03:25:49 -0400 Message-ID: <4FE96358.6080601@parallels.com> Date: Tue, 26 Jun 2012 11:23:04 +0400 From: Glauber Costa User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20120605 Thunderbird/13.0 MIME-Version: 1.0 To: David Rientjes CC: , , Andrew Morton , , Frederic Weisbecker , Pekka Enberg , Michal Hocko , Johannes Weiner , Christoph Lameter , , , Tejun Heo , Pekka Enberg , Suleiman Souhlal , Frederic Weisbecker Subject: Re: [PATCH 11/11] protect architectures where THREAD_SIZE >= PAGE_SIZE against fork bombs References: <1340633728-12785-1-git-send-email-glommer@parallels.com> <1340633728-12785-12-git-send-email-glommer@parallels.com> In-Reply-To: Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [109.173.9.3] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 06/26/2012 08:57 AM, David Rientjes wrote: > On Mon, 25 Jun 2012, Glauber Costa wrote: > >> diff --git a/include/linux/thread_info.h b/include/linux/thread_info.h >> index ccc1899..914ec07 100644 >> --- a/include/linux/thread_info.h >> +++ b/include/linux/thread_info.h >> @@ -61,6 +61,12 @@ extern long do_no_restart_syscall(struct restart_block *parm); >> # define THREADINFO_GFP (GFP_KERNEL | __GFP_NOTRACK) >> #endif >> >> +#ifdef CONFIG_CGROUP_MEM_RES_CTLR_KMEM >> +# define THREADINFO_GFP_ACCOUNTED (THREADINFO_GFP | __GFP_KMEMCG) >> +#else >> +# define THREADINFO_GFP_ACCOUNTED (THREADINFO_GFP) >> +#endif >> + > > This type of requirement is going to become nasty very quickly if nobody > can use __GFP_KMEMCG without testing for CONFIG_CGROUP_MEM_RES_CTLR_KMEM. > Perhaps define __GFP_KMEMCG to be 0x0 if it's not enabled, similar to how > kmemcheck does? > That is what I've done in my first version of this patch. At that time, Christoph wanted it to be this way so we would make sure it would never be used with #CONFIG_CGROUP_MEM_RES_CTLR_KMEM defined. A value of zero will generate no errors. Undefined value will. Now, if you ask me, I personally prefer following what kmemcheck does here... From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from psmtp.com (na3sys010amx139.postini.com [74.125.245.139]) by kanga.kvack.org (Postfix) with SMTP id B7A456B0151 for ; Tue, 26 Jun 2012 03:25:48 -0400 (EDT) Message-ID: <4FE96358.6080601@parallels.com> Date: Tue, 26 Jun 2012 11:23:04 +0400 From: Glauber Costa MIME-Version: 1.0 Subject: Re: [PATCH 11/11] protect architectures where THREAD_SIZE >= PAGE_SIZE against fork bombs References: <1340633728-12785-1-git-send-email-glommer@parallels.com> <1340633728-12785-12-git-send-email-glommer@parallels.com> In-Reply-To: Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit Sender: owner-linux-mm@kvack.org List-ID: To: David Rientjes Cc: cgroups@vger.kernel.org, linux-mm@kvack.org, Andrew Morton , linux-kernel@vger.kernel.org, Frederic Weisbecker , Pekka Enberg , Michal Hocko , Johannes Weiner , Christoph Lameter , devel@openvz.org, kamezawa.hiroyu@jp.fujitsu.com, Tejun Heo , Pekka Enberg , Suleiman Souhlal , Frederic Weisbecker On 06/26/2012 08:57 AM, David Rientjes wrote: > On Mon, 25 Jun 2012, Glauber Costa wrote: > >> diff --git a/include/linux/thread_info.h b/include/linux/thread_info.h >> index ccc1899..914ec07 100644 >> --- a/include/linux/thread_info.h >> +++ b/include/linux/thread_info.h >> @@ -61,6 +61,12 @@ extern long do_no_restart_syscall(struct restart_block *parm); >> # define THREADINFO_GFP (GFP_KERNEL | __GFP_NOTRACK) >> #endif >> >> +#ifdef CONFIG_CGROUP_MEM_RES_CTLR_KMEM >> +# define THREADINFO_GFP_ACCOUNTED (THREADINFO_GFP | __GFP_KMEMCG) >> +#else >> +# define THREADINFO_GFP_ACCOUNTED (THREADINFO_GFP) >> +#endif >> + > > This type of requirement is going to become nasty very quickly if nobody > can use __GFP_KMEMCG without testing for CONFIG_CGROUP_MEM_RES_CTLR_KMEM. > Perhaps define __GFP_KMEMCG to be 0x0 if it's not enabled, similar to how > kmemcheck does? > That is what I've done in my first version of this patch. At that time, Christoph wanted it to be this way so we would make sure it would never be used with #CONFIG_CGROUP_MEM_RES_CTLR_KMEM defined. A value of zero will generate no errors. Undefined value will. Now, if you ask me, I personally prefer following what kmemcheck does here... -- 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 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Glauber Costa Subject: Re: [PATCH 11/11] protect architectures where THREAD_SIZE >= PAGE_SIZE against fork bombs Date: Tue, 26 Jun 2012 11:23:04 +0400 Message-ID: <4FE96358.6080601@parallels.com> References: <1340633728-12785-1-git-send-email-glommer@parallels.com> <1340633728-12785-12-git-send-email-glommer@parallels.com> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: Sender: cgroups-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-ID: Content-Type: text/plain; charset="us-ascii"; format="flowed" To: David Rientjes Cc: cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org, Andrew Morton , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Frederic Weisbecker , Pekka Enberg , Michal Hocko , Johannes Weiner , Christoph Lameter , devel-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org, kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org, Tejun Heo , Pekka Enberg , Suleiman Souhlal , Frederic Weisbecker On 06/26/2012 08:57 AM, David Rientjes wrote: > On Mon, 25 Jun 2012, Glauber Costa wrote: > >> diff --git a/include/linux/thread_info.h b/include/linux/thread_info.h >> index ccc1899..914ec07 100644 >> --- a/include/linux/thread_info.h >> +++ b/include/linux/thread_info.h >> @@ -61,6 +61,12 @@ extern long do_no_restart_syscall(struct restart_block *parm); >> # define THREADINFO_GFP (GFP_KERNEL | __GFP_NOTRACK) >> #endif >> >> +#ifdef CONFIG_CGROUP_MEM_RES_CTLR_KMEM >> +# define THREADINFO_GFP_ACCOUNTED (THREADINFO_GFP | __GFP_KMEMCG) >> +#else >> +# define THREADINFO_GFP_ACCOUNTED (THREADINFO_GFP) >> +#endif >> + > > This type of requirement is going to become nasty very quickly if nobody > can use __GFP_KMEMCG without testing for CONFIG_CGROUP_MEM_RES_CTLR_KMEM. > Perhaps define __GFP_KMEMCG to be 0x0 if it's not enabled, similar to how > kmemcheck does? > That is what I've done in my first version of this patch. At that time, Christoph wanted it to be this way so we would make sure it would never be used with #CONFIG_CGROUP_MEM_RES_CTLR_KMEM defined. A value of zero will generate no errors. Undefined value will. Now, if you ask me, I personally prefer following what kmemcheck does here...