linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andrea Arcangeli <aarcange@redhat.com>
To: Amerigo Wang <amwang@redhat.com>
Cc: linux-kernel@vger.kernel.org, akpm@linux-foundation.org,
	Rik van Riel <riel@redhat.com>,
	Johannes Weiner <jweiner@redhat.com>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	linux-mm@kvack.org
Subject: Re: [PATCH 1/3] mm: completely disable THP by transparent_hugepage=never
Date: Mon, 20 Jun 2011 18:50:35 +0200	[thread overview]
Message-ID: <20110620165035.GE20843@redhat.com> (raw)
In-Reply-To: <1308587683-2555-1-git-send-email-amwang@redhat.com>

On Tue, Jun 21, 2011 at 12:34:28AM +0800, Amerigo Wang wrote:
> transparent_hugepage=never should mean to disable THP completely,
> otherwise we don't have a way to disable THP completely.
> The design is broken.

We want to allow people to boot with transparent_hugepage=never but to
still allow people to enable it later at runtime. Not sure why you
find it broken... Your patch is just crippling down the feature with
no gain. There is absolutely no gain to disallow root to enable THP
later at runtime with sysfs, root can enable it anyway by writing into
/dev/mem.

Unless you're root and you enable it, it's completely disabled, so I
don't see what you mean it's not completely disabled. Not even
khugepaged is started, try to grep of khugepaged... (that wouldn't be
the same with ksm where ksm daemon runs even when it's off for no
gain, but I explicitly solved the locking so khugepaged will go away
when enabled=never and return when enabled=always).

> 
> Signed-off-by: WANG Cong <amwang@redhat.com>
> ---
>  mm/huge_memory.c |   11 +++++++++--
>  1 files changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/mm/huge_memory.c b/mm/huge_memory.c
> index 81532f2..9c63c90 100644
> --- a/mm/huge_memory.c
> +++ b/mm/huge_memory.c
> @@ -488,19 +488,26 @@ static struct attribute_group khugepaged_attr_group = {
>  };
>  #endif /* CONFIG_SYSFS */
>  
> +#define hugepage_enabled()	khugepaged_enabled()
> +
>  static int __init hugepage_init(void)
>  {
> -	int err;
> +	int err = 0;
>  #ifdef CONFIG_SYSFS
>  	static struct kobject *hugepage_kobj;
>  #endif
>  
> -	err = -EINVAL;
>  	if (!has_transparent_hugepage()) {
> +		err = -EINVAL;
>  		transparent_hugepage_flags = 0;
>  		goto out;

Original error setting was better IMHO.

>  	}
>  
> +	if (!hugepage_enabled()) {
> +		printk(KERN_INFO "hugepage: totally disabled\n");
> +		goto out;
> +	}
> +
>  #ifdef CONFIG_SYSFS
>  	err = -ENOMEM;
>  	hugepage_kobj = kobject_create_and_add("transparent_hugepage", mm_kobj);

Changing the initialization to "never" at boot, doesn't mean we must
never allow it to be enabled again during the runtime of the kernel
(by root with sysfs, which is certainly less error prone than doing
that with /dev/mem), and there is no gain in preventing that.

  parent reply	other threads:[~2011-06-20 16:51 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-20 16:34 [PATCH 1/3] mm: completely disable THP by transparent_hugepage=never Amerigo Wang
2011-06-20 16:34 ` [PATCH 2/3] mm: make the threshold of enabling THP configurable Amerigo Wang
2011-06-20 16:59   ` Dave Hansen
2011-06-20 17:23     ` Cong Wang
2011-06-20 16:59   ` Mel Gorman
2011-06-20 17:16     ` Cong Wang
2011-06-21  9:36       ` Mel Gorman
2011-06-22  2:41         ` Cong Wang
2011-06-22  9:16           ` Mel Gorman
2011-06-22 10:46             ` Cong Wang
2011-06-22 11:15               ` Mel Gorman
2011-06-22 12:34                 ` Cong Wang
2011-06-20 16:34 ` [PATCH 3/3] mm: print information when THP is disabled automatically Amerigo Wang
2011-06-20 16:54   ` Andrea Arcangeli
2011-06-20 17:25     ` Cong Wang
2011-06-20 17:01   ` Mel Gorman
2011-06-20 17:26     ` Cong Wang
2011-06-20 19:37       ` Andrea Arcangeli
2011-06-21  9:40       ` Mel Gorman
2011-06-20 16:50 ` Andrea Arcangeli [this message]
2011-06-20 16:55   ` [PATCH 1/3] mm: completely disable THP by transparent_hugepage=never Rik van Riel
2011-06-20 17:01   ` Cong Wang
2011-06-20 19:43     ` Andrea Arcangeli
2011-06-21  3:15       ` Cong Wang
2011-06-20 16:58 ` Mel Gorman
2011-06-20 17:07   ` Cong Wang
2011-06-20 17:10     ` Rik van Riel
2011-06-20 17:19       ` Cong Wang
2011-06-20 17:28         ` Rik van Riel
2011-06-20 17:34           ` Cong Wang
2011-06-20 17:50             ` Rik van Riel
2011-06-20 18:25               ` Vivek Goyal
2011-06-20 19:21                 ` Andrea Arcangeli
2011-06-21  4:08                   ` Cong Wang
2011-06-21 14:43                     ` Andrea Arcangeli
2011-06-22  2:56                       ` Cong Wang
2011-06-22 14:22                         ` Andrea Arcangeli
2011-06-21 20:01                     ` Rik van Riel
2011-06-21  3:28               ` Cong Wang
2011-06-20 17:58             ` Eric B Munson
2011-06-21  3:36               ` Cong Wang
2011-06-20 17:59           ` Vivek Goyal

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=20110620165035.GE20843@redhat.com \
    --to=aarcange@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=amwang@redhat.com \
    --cc=jweiner@redhat.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=riel@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).