@@ -465,7 +465,7 @@ void khugepaged_enter_vma(struct vm_area_struct *vma,
465465 unsigned long vm_flags )
466466{
467467 if (!test_bit (MMF_VM_HUGEPAGE , & vma -> vm_mm -> flags ) &&
468- khugepaged_enabled ()) {
468+ hugepage_flags_enabled ()) {
469469 if (hugepage_vma_check (vma , vm_flags , false, false))
470470 __khugepaged_enter (vma -> vm_mm );
471471 }
@@ -761,6 +761,10 @@ static bool khugepaged_scan_abort(int nid)
761761 return false;
762762}
763763
764+ #define khugepaged_defrag () \
765+ (transparent_hugepage_flags & \
766+ (1<<TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG))
767+
764768/* Defrag for khugepaged will enter direct reclaim/compaction if necessary */
765769static inline gfp_t alloc_hugepage_khugepaged_gfpmask (void )
766770{
@@ -858,7 +862,7 @@ static struct page *khugepaged_alloc_hugepage(bool *wait)
858862 khugepaged_alloc_sleep ();
859863 } else
860864 count_vm_event (THP_COLLAPSE_ALLOC );
861- } while (unlikely (!hpage ) && likely (khugepaged_enabled ()));
865+ } while (unlikely (!hpage ) && likely (hugepage_flags_enabled ()));
862866
863867 return hpage ;
864868}
@@ -2172,7 +2176,7 @@ static unsigned int khugepaged_scan_mm_slot(unsigned int pages,
21722176static int khugepaged_has_work (void )
21732177{
21742178 return !list_empty (& khugepaged_scan .mm_head ) &&
2175- khugepaged_enabled ();
2179+ hugepage_flags_enabled ();
21762180}
21772181
21782182static int khugepaged_wait_event (void )
@@ -2237,7 +2241,7 @@ static void khugepaged_wait_work(void)
22372241 return ;
22382242 }
22392243
2240- if (khugepaged_enabled ())
2244+ if (hugepage_flags_enabled ())
22412245 wait_event_freezable (khugepaged_wait , khugepaged_wait_event ());
22422246}
22432247
@@ -2268,7 +2272,7 @@ static void set_recommended_min_free_kbytes(void)
22682272 int nr_zones = 0 ;
22692273 unsigned long recommended_min ;
22702274
2271- if (!khugepaged_enabled ()) {
2275+ if (!hugepage_flags_enabled ()) {
22722276 calculate_min_free_kbytes ();
22732277 goto update_wmarks ;
22742278 }
@@ -2318,7 +2322,7 @@ int start_stop_khugepaged(void)
23182322 int err = 0 ;
23192323
23202324 mutex_lock (& khugepaged_mutex );
2321- if (khugepaged_enabled ()) {
2325+ if (hugepage_flags_enabled ()) {
23222326 if (!khugepaged_thread )
23232327 khugepaged_thread = kthread_run (khugepaged , NULL ,
23242328 "khugepaged" );
@@ -2344,7 +2348,7 @@ int start_stop_khugepaged(void)
23442348void khugepaged_min_free_kbytes_update (void )
23452349{
23462350 mutex_lock (& khugepaged_mutex );
2347- if (khugepaged_enabled () && khugepaged_thread )
2351+ if (hugepage_flags_enabled () && khugepaged_thread )
23482352 set_recommended_min_free_kbytes ();
23492353 mutex_unlock (& khugepaged_mutex );
23502354}
0 commit comments