162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci#ifndef _LINUX_SCHED_NUMA_BALANCING_H 362306a36Sopenharmony_ci#define _LINUX_SCHED_NUMA_BALANCING_H 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci/* 662306a36Sopenharmony_ci * This is the interface between the scheduler and the MM that 762306a36Sopenharmony_ci * implements memory access pattern based NUMA-balancing: 862306a36Sopenharmony_ci */ 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#include <linux/sched.h> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci#define TNF_MIGRATED 0x01 1362306a36Sopenharmony_ci#define TNF_NO_GROUP 0x02 1462306a36Sopenharmony_ci#define TNF_SHARED 0x04 1562306a36Sopenharmony_ci#define TNF_FAULT_LOCAL 0x08 1662306a36Sopenharmony_ci#define TNF_MIGRATE_FAIL 0x10 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci#ifdef CONFIG_NUMA_BALANCING 1962306a36Sopenharmony_ciextern void task_numa_fault(int last_node, int node, int pages, int flags); 2062306a36Sopenharmony_ciextern pid_t task_numa_group_id(struct task_struct *p); 2162306a36Sopenharmony_ciextern void set_numabalancing_state(bool enabled); 2262306a36Sopenharmony_ciextern void task_numa_free(struct task_struct *p, bool final); 2362306a36Sopenharmony_ciextern bool should_numa_migrate_memory(struct task_struct *p, struct page *page, 2462306a36Sopenharmony_ci int src_nid, int dst_cpu); 2562306a36Sopenharmony_ci#else 2662306a36Sopenharmony_cistatic inline void task_numa_fault(int last_node, int node, int pages, 2762306a36Sopenharmony_ci int flags) 2862306a36Sopenharmony_ci{ 2962306a36Sopenharmony_ci} 3062306a36Sopenharmony_cistatic inline pid_t task_numa_group_id(struct task_struct *p) 3162306a36Sopenharmony_ci{ 3262306a36Sopenharmony_ci return 0; 3362306a36Sopenharmony_ci} 3462306a36Sopenharmony_cistatic inline void set_numabalancing_state(bool enabled) 3562306a36Sopenharmony_ci{ 3662306a36Sopenharmony_ci} 3762306a36Sopenharmony_cistatic inline void task_numa_free(struct task_struct *p, bool final) 3862306a36Sopenharmony_ci{ 3962306a36Sopenharmony_ci} 4062306a36Sopenharmony_cistatic inline bool should_numa_migrate_memory(struct task_struct *p, 4162306a36Sopenharmony_ci struct page *page, int src_nid, int dst_cpu) 4262306a36Sopenharmony_ci{ 4362306a36Sopenharmony_ci return true; 4462306a36Sopenharmony_ci} 4562306a36Sopenharmony_ci#endif 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci#endif /* _LINUX_SCHED_NUMA_BALANCING_H */ 48