Lines Matching refs:pgdat

435 void reset_isolation_suitable(pg_data_t *pgdat)  in reset_isolation_suitable()  argument
440 struct zone *zone = &pgdat->node_zones[zoneid]; in reset_isolation_suitable()
796 pg_data_t *pgdat = cc->zone->zone_pgdat; in too_many_isolated() local
801 inactive = node_page_state(pgdat, NR_INACTIVE_FILE) + in too_many_isolated()
802 node_page_state(pgdat, NR_INACTIVE_ANON); in too_many_isolated()
803 active = node_page_state(pgdat, NR_ACTIVE_FILE) + in too_many_isolated()
804 node_page_state(pgdat, NR_ACTIVE_ANON); in too_many_isolated()
805 isolated = node_page_state(pgdat, NR_ISOLATED_FILE) + in too_many_isolated()
806 node_page_state(pgdat, NR_ISOLATED_ANON); in too_many_isolated()
821 wake_throttle_isolated(pgdat); in too_many_isolated()
873 pg_data_t *pgdat = cc->zone->zone_pgdat; in isolate_migratepages_block() local
903 reclaim_throttle(pgdat, VMSCAN_THROTTLE_ISOLATED); in isolate_migratepages_block()
2188 static bool kswapd_is_running(pg_data_t *pgdat) in kswapd_is_running() argument
2192 pgdat_kswapd_lock(pgdat); in kswapd_is_running()
2193 running = pgdat->kswapd && task_is_running(pgdat->kswapd); in kswapd_is_running()
2194 pgdat_kswapd_unlock(pgdat); in kswapd_is_running()
2233 static unsigned int fragmentation_score_node(pg_data_t *pgdat) in fragmentation_score_node() argument
2241 zone = &pgdat->node_zones[zoneid]; in fragmentation_score_node()
2263 static bool should_proactive_compact_node(pg_data_t *pgdat) in should_proactive_compact_node() argument
2267 if (!sysctl_compaction_proactiveness || kswapd_is_running(pgdat)) in should_proactive_compact_node()
2271 return fragmentation_score_node(pgdat) > wmark_high; in should_proactive_compact_node()
2302 pg_data_t *pgdat; in __compact_finished() local
2304 pgdat = cc->zone->zone_pgdat; in __compact_finished()
2305 if (kswapd_is_running(pgdat)) in __compact_finished()
2935 static int compact_node(pg_data_t *pgdat, bool proactive) in compact_node() argument
2949 zone = &pgdat->node_zones[zoneid]; in compact_node()
2999 pg_data_t *pgdat = NODE_DATA(nid); in compaction_proactiveness_sysctl_handler() local
3001 if (pgdat->proactive_compact_trigger) in compaction_proactiveness_sysctl_handler()
3004 pgdat->proactive_compact_trigger = true; in compaction_proactiveness_sysctl_handler()
3005 trace_mm_compaction_wakeup_kcompactd(pgdat->node_id, -1, in compaction_proactiveness_sysctl_handler()
3006 pgdat->nr_zones - 1); in compaction_proactiveness_sysctl_handler()
3007 wake_up_interruptible(&pgdat->kcompactd_wait); in compaction_proactiveness_sysctl_handler()
3065 static inline bool kcompactd_work_requested(pg_data_t *pgdat) in kcompactd_work_requested() argument
3067 return pgdat->kcompactd_max_order > 0 || kthread_should_stop() || in kcompactd_work_requested()
3068 pgdat->proactive_compact_trigger; in kcompactd_work_requested()
3071 static bool kcompactd_node_suitable(pg_data_t *pgdat) in kcompactd_node_suitable() argument
3075 enum zone_type highest_zoneidx = pgdat->kcompactd_highest_zoneidx; in kcompactd_node_suitable()
3081 zone = &pgdat->node_zones[zoneid]; in kcompactd_node_suitable()
3087 pgdat->kcompactd_max_order, in kcompactd_node_suitable()
3097 static void kcompactd_do_work(pg_data_t *pgdat) in kcompactd_do_work() argument
3106 .order = pgdat->kcompactd_max_order, in kcompactd_do_work()
3107 .search_order = pgdat->kcompactd_max_order, in kcompactd_do_work()
3108 .highest_zoneidx = pgdat->kcompactd_highest_zoneidx, in kcompactd_do_work()
3116 trace_mm_compaction_kcompactd_wake(pgdat->node_id, cc.order, in kcompactd_do_work()
3123 zone = &pgdat->node_zones[zoneid]; in kcompactd_do_work()
3171 if (pgdat->kcompactd_max_order <= cc.order) in kcompactd_do_work()
3172 pgdat->kcompactd_max_order = 0; in kcompactd_do_work()
3173 if (pgdat->kcompactd_highest_zoneidx >= cc.highest_zoneidx) in kcompactd_do_work()
3174 pgdat->kcompactd_highest_zoneidx = pgdat->nr_zones - 1; in kcompactd_do_work()
3177 void wakeup_kcompactd(pg_data_t *pgdat, int order, int highest_zoneidx) in wakeup_kcompactd() argument
3182 if (pgdat->kcompactd_max_order < order) in wakeup_kcompactd()
3183 pgdat->kcompactd_max_order = order; in wakeup_kcompactd()
3185 if (pgdat->kcompactd_highest_zoneidx > highest_zoneidx) in wakeup_kcompactd()
3186 pgdat->kcompactd_highest_zoneidx = highest_zoneidx; in wakeup_kcompactd()
3192 if (!wq_has_sleeper(&pgdat->kcompactd_wait)) in wakeup_kcompactd()
3195 if (!kcompactd_node_suitable(pgdat)) in wakeup_kcompactd()
3198 trace_mm_compaction_wakeup_kcompactd(pgdat->node_id, order, in wakeup_kcompactd()
3200 wake_up_interruptible(&pgdat->kcompactd_wait); in wakeup_kcompactd()
3209 pg_data_t *pgdat = (pg_data_t *)p; in kcompactd() local
3216 pgdat->kcompactd_max_order = 0; in kcompactd()
3217 pgdat->kcompactd_highest_zoneidx = pgdat->nr_zones - 1; in kcompactd()
3228 trace_mm_compaction_kcompactd_sleep(pgdat->node_id); in kcompactd()
3229 if (wait_event_freezable_timeout(pgdat->kcompactd_wait, in kcompactd()
3230 kcompactd_work_requested(pgdat), timeout) && in kcompactd()
3231 !pgdat->proactive_compact_trigger) { in kcompactd()
3234 kcompactd_do_work(pgdat); in kcompactd()
3252 if (should_proactive_compact_node(pgdat)) { in kcompactd()
3255 prev_score = fragmentation_score_node(pgdat); in kcompactd()
3256 compact_node(pgdat, true); in kcompactd()
3257 score = fragmentation_score_node(pgdat); in kcompactd()
3266 if (unlikely(pgdat->proactive_compact_trigger)) in kcompactd()
3267 pgdat->proactive_compact_trigger = false; in kcompactd()
3281 pg_data_t *pgdat = NODE_DATA(nid); in kcompactd_run() local
3283 if (pgdat->kcompactd) in kcompactd_run()
3286 pgdat->kcompactd = kthread_create_on_node(kcompactd, pgdat, nid, "kcompactd%d", nid); in kcompactd_run()
3287 if (IS_ERR(pgdat->kcompactd)) { in kcompactd_run()
3289 pgdat->kcompactd = NULL; in kcompactd_run()
3291 wake_up_process(pgdat->kcompactd); in kcompactd_run()