All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] include/linux/khugepaged.h: Improve the code only
@ 2016-05-15 22:20 chengang
  0 siblings, 0 replies; only message in thread
From: chengang @ 2016-05-15 22:20 UTC (permalink / raw)
  To: akpm; +Cc: aarcange, rientjes, linux-kernel, Chen Gang, Chen Gang

From: Chen Gang <chengang@emindsoft.com.cn>

khugepaged_enabled() can be treated as khugepaged_always() or
khugepaged_req_madv(). The compiler will always treat it as "and 3".

khugepaged_enter() can return __khugepaged_enter() result directly,
since __khugepaged_enter() will return 0 or -ENOMEM.

Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
---
 include/linux/khugepaged.h | 22 +++++++++-------------
 1 file changed, 9 insertions(+), 13 deletions(-)

diff --git a/include/linux/khugepaged.h b/include/linux/khugepaged.h
index eeb3079..0df1c1d 100644
--- a/include/linux/khugepaged.h
+++ b/include/linux/khugepaged.h
@@ -9,19 +9,16 @@ extern void __khugepaged_exit(struct mm_struct *mm);
 extern int khugepaged_enter_vma_merge(struct vm_area_struct *vma,
 				      unsigned long vm_flags);
 
-#define khugepaged_enabled()					       \
-	(transparent_hugepage_flags &				       \
-	 ((1<<TRANSPARENT_HUGEPAGE_FLAG) |		       \
-	  (1<<TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG)))
 #define khugepaged_always()				\
 	(transparent_hugepage_flags &			\
-	 (1<<TRANSPARENT_HUGEPAGE_FLAG))
-#define khugepaged_req_madv()					\
-	(transparent_hugepage_flags &				\
-	 (1<<TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG))
-#define khugepaged_defrag()					\
-	(transparent_hugepage_flags &				\
-	 (1<<TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG))
+	 (1 << TRANSPARENT_HUGEPAGE_FLAG))
+#define khugepaged_req_madv()				\
+	(transparent_hugepage_flags &			\
+	 (1 << TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG))
+#define khugepaged_enabled()	(khugepaged_always() | khugepaged_req_madv())
+#define khugepaged_defrag()				\
+	(transparent_hugepage_flags &			\
+	 (1 << TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG))
 
 static inline int khugepaged_fork(struct mm_struct *mm, struct mm_struct *oldmm)
 {
@@ -43,8 +40,7 @@ static inline int khugepaged_enter(struct vm_area_struct *vma,
 		if ((khugepaged_always() ||
 		     (khugepaged_req_madv() && (vm_flags & VM_HUGEPAGE))) &&
 		    !(vm_flags & VM_NOHUGEPAGE))
-			if (__khugepaged_enter(vma->vm_mm))
-				return -ENOMEM;
+			return __khugepaged_enter(vma->vm_mm);
 	return 0;
 }
 #else /* CONFIG_TRANSPARENT_HUGEPAGE */
-- 
1.9.3

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2016-05-15 22:26 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-15 22:20 [PATCH] include/linux/khugepaged.h: Improve the code only chengang

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.