Lines Matching refs:nid
916 static inline int task_faults_idx(enum numa_faults_stats s, int nid, int priv) in task_faults_idx() argument
918 return NR_NUMA_HINT_FAULT_TYPES * (s * nr_node_ids + nid) + priv; in task_faults_idx()
921 static inline unsigned long task_faults(struct task_struct *p, int nid) in task_faults() argument
926 return p->numa_faults[task_faults_idx(NUMA_MEM, nid, 0)] + in task_faults()
927 p->numa_faults[task_faults_idx(NUMA_MEM, nid, 1)]; in task_faults()
930 static inline unsigned long group_faults(struct task_struct *p, int nid) in group_faults() argument
935 return p->numa_group->faults[task_faults_idx(NUMA_MEM, nid, 0)] + in group_faults()
936 p->numa_group->faults[task_faults_idx(NUMA_MEM, nid, 1)]; in group_faults()
939 static inline unsigned long group_faults_cpu(struct numa_group *group, int nid) in group_faults_cpu() argument
941 return group->faults_cpu[task_faults_idx(NUMA_MEM, nid, 0)] + in group_faults_cpu()
942 group->faults_cpu[task_faults_idx(NUMA_MEM, nid, 1)]; in group_faults_cpu()
946 static unsigned long score_nearby_nodes(struct task_struct *p, int nid, in score_nearby_nodes() argument
965 int dist = node_distance(nid, node); in score_nearby_nodes()
971 if (dist == sched_max_numa_distance || node == nid) in score_nearby_nodes()
1016 static inline unsigned long task_weight(struct task_struct *p, int nid, in task_weight() argument
1029 faults = task_faults(p, nid); in task_weight()
1030 faults += score_nearby_nodes(p, nid, dist, true); in task_weight()
1035 static inline unsigned long group_weight(struct task_struct *p, int nid, in group_weight() argument
1048 faults = group_faults(p, nid); in group_weight()
1049 faults += score_nearby_nodes(p, nid, dist, false); in group_weight()
1139 static void update_numa_stats(struct numa_stats *ns, int nid) in update_numa_stats() argument
1145 for_each_cpu(cpu, cpumask_of_node(nid)) { in update_numa_stats()
1448 int nid, ret, dist; in task_numa_migrate() local
1498 for_each_online_node(nid) { in task_numa_migrate()
1499 if (nid == env.src_nid || nid == p->numa_preferred_nid) in task_numa_migrate()
1510 taskimp = task_weight(p, nid, dist) - taskweight; in task_numa_migrate()
1511 groupimp = group_weight(p, nid, dist) - groupweight; in task_numa_migrate()
1516 env.dst_nid = nid; in task_numa_migrate()
1533 nid = env.src_nid; in task_numa_migrate()
1535 nid = env.dst_nid; in task_numa_migrate()
1537 if (node_isset(nid, p->numa_group->active_nodes)) in task_numa_migrate()
1600 int nid; in update_numa_active_node_mask() local
1602 for_each_online_node(nid) { in update_numa_active_node_mask()
1603 faults = group_faults_cpu(numa_group, nid); in update_numa_active_node_mask()
1608 for_each_online_node(nid) { in update_numa_active_node_mask()
1609 faults = group_faults_cpu(numa_group, nid); in update_numa_active_node_mask()
1610 if (!node_isset(nid, numa_group->active_nodes)) { in update_numa_active_node_mask()
1612 node_set(nid, numa_group->active_nodes); in update_numa_active_node_mask()
1614 node_clear(nid, numa_group->active_nodes); in update_numa_active_node_mask()
1727 static int preferred_group_nid(struct task_struct *p, int nid) in preferred_group_nid() argument
1734 return nid; in preferred_group_nid()
1743 int node, max_node = nid; in preferred_group_nid()
1799 nid = a; in preferred_group_nid()
1807 return nid; in preferred_group_nid()
1812 int seq, nid, max_nid = -1, max_group_nid = -1; in task_numa_placement() local
1841 for_each_online_node(nid) { in task_numa_placement()
1850 mem_idx = task_faults_idx(NUMA_MEM, nid, priv); in task_numa_placement()
1851 membuf_idx = task_faults_idx(NUMA_MEMBUF, nid, priv); in task_numa_placement()
1852 cpu_idx = task_faults_idx(NUMA_CPU, nid, priv); in task_numa_placement()
1853 cpubuf_idx = task_faults_idx(NUMA_CPUBUF, nid, priv); in task_numa_placement()
1894 max_nid = nid; in task_numa_placement()
1899 max_group_nid = nid; in task_numa_placement()