mm/huge_memory: add TRANSPARENT_HUGEPAGE_NEVER for THP

Message ID 202211301651462590168@zte.com.cn
State New
Headers
Series mm/huge_memory: add TRANSPARENT_HUGEPAGE_NEVER for THP |

Commit Message

ye.xingchen@zte.com.cn Nov. 30, 2022, 8:51 a.m. UTC
  From: ye xingchen <ye.xingchen@zte.com.cn>

Sometimes we may need the /sys/kernel/mm/transparent_hugepage/enabled to
default as [never] at the first time.

Signed-off-by: ye xingchen <ye.xingchen@zte.com.cn>
---
 mm/Kconfig       | 5 +++++
 mm/huge_memory.c | 2 ++
 2 files changed, 7 insertions(+)
  

Comments

Matthew Wilcox Dec. 1, 2022, 8:26 p.m. UTC | #1
On Wed, Nov 30, 2022 at 04:51:46PM +0800, ye.xingchen@zte.com.cn wrote:
> From: ye xingchen <ye.xingchen@zte.com.cn>
> 
> Sometimes we may need the /sys/kernel/mm/transparent_hugepage/enabled to
> default as [never] at the first time.

What is going wrong with THP enabled that you need to disable it?
  
David Rientjes Dec. 2, 2022, 5:57 p.m. UTC | #2
On Thu, 1 Dec 2022, Matthew Wilcox wrote:

> On Wed, Nov 30, 2022 at 04:51:46PM +0800, ye.xingchen@zte.com.cn wrote:
> > From: ye xingchen <ye.xingchen@zte.com.cn>
> > 
> > Sometimes we may need the /sys/kernel/mm/transparent_hugepage/enabled to
> > default as [never] at the first time.
> 
> What is going wrong with THP enabled that you need to disable it?
> 

That would be useful to know in addition to why this needs to be part of 
.config and not simply using the kernel command line option.
  
Hugh Dickins Dec. 2, 2022, 7:27 p.m. UTC | #3
On Fri, 2 Dec 2022, David Rientjes wrote:
> On Thu, 1 Dec 2022, Matthew Wilcox wrote:
> > On Wed, Nov 30, 2022 at 04:51:46PM +0800, ye.xingchen@zte.com.cn wrote:
> > > From: ye xingchen <ye.xingchen@zte.com.cn>
> > > 
> > > Sometimes we may need the /sys/kernel/mm/transparent_hugepage/enabled to
> > > default as [never] at the first time.
> > 
> > What is going wrong with THP enabled that you need to disable it?
> > 
> 
> That would be useful to know in addition to why this needs to be part of 
> .config and not simply using the kernel command line option.

There is also the puzzle of what new feature gets added by

#ifdef CONFIG_TRANSPARENT_HUGEPAGE_NEVER
#endif

Hugh
  

Patch

diff --git a/mm/Kconfig b/mm/Kconfig
index ff7b209dec05..ded8c1da6267 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -797,6 +797,11 @@  choice
 	  madvise(MADV_HUGEPAGE) but it won't risk to increase the
 	  memory footprint of applications without a guaranteed
 	  benefit.
+
+	config TRANSPARENT_HUGEPAGE_NEVER
+		bool "never"
+	help
+	  Disabling Transparent Hugepage.
 endchoice

 config THP_SWAP
diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index c0c57828110d..3571417aa70a 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -60,6 +60,8 @@  unsigned long transparent_hugepage_flags __read_mostly =
 #endif
 #ifdef CONFIG_TRANSPARENT_HUGEPAGE_MADVISE
 	(1<<TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG)|
+#endif
+#ifdef CONFIG_TRANSPARENT_HUGEPAGE_NEVER
 #endif
 	(1<<TRANSPARENT_HUGEPAGE_DEFRAG_REQ_MADV_FLAG)|
 	(1<<TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG)|