mirror of
https://github.com/torvalds/linux.git
synced 2024-11-27 22:51:35 +00:00
sched/numa: Rename p->numa_faults to numa_faults_memory
In order to get a more consistent naming scheme, making it clear which fault statistics track memory locality, and which track CPU locality, rename the memory fault statistics. Suggested-by: Mel Gorman <mgorman@suse.de> Signed-off-by: Rik van Riel <riel@redhat.com> Acked-by: Mel Gorman <mgorman@suse.de> Signed-off-by: Peter Zijlstra <peterz@infradead.org> Cc: Chegu Vinod <chegu_vinod@hp.com> Link: http://lkml.kernel.org/r/1390860228-21539-3-git-send-email-riel@redhat.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
parent
52bf84aa20
commit
ff1df896ae
@ -1469,15 +1469,15 @@ struct task_struct {
|
||||
* Scheduling placement decisions are made based on the these counts.
|
||||
* The values remain static for the duration of a PTE scan
|
||||
*/
|
||||
unsigned long *numa_faults;
|
||||
unsigned long *numa_faults_memory;
|
||||
unsigned long total_numa_faults;
|
||||
|
||||
/*
|
||||
* numa_faults_buffer records faults per node during the current
|
||||
* scan window. When the scan completes, the counts in numa_faults
|
||||
* decay and these values are copied.
|
||||
* scan window. When the scan completes, the counts in
|
||||
* numa_faults_memory decay and these values are copied.
|
||||
*/
|
||||
unsigned long *numa_faults_buffer;
|
||||
unsigned long *numa_faults_buffer_memory;
|
||||
|
||||
/*
|
||||
* numa_faults_locality tracks if faults recorded during the last
|
||||
|
@ -1744,8 +1744,8 @@ static void __sched_fork(unsigned long clone_flags, struct task_struct *p)
|
||||
p->numa_scan_seq = p->mm ? p->mm->numa_scan_seq : 0;
|
||||
p->numa_scan_period = sysctl_numa_balancing_scan_delay;
|
||||
p->numa_work.next = &p->numa_work;
|
||||
p->numa_faults = NULL;
|
||||
p->numa_faults_buffer = NULL;
|
||||
p->numa_faults_memory = NULL;
|
||||
p->numa_faults_buffer_memory = NULL;
|
||||
|
||||
INIT_LIST_HEAD(&p->numa_entry);
|
||||
p->numa_group = NULL;
|
||||
|
@ -533,15 +533,15 @@ static void sched_show_numa(struct task_struct *p, struct seq_file *m)
|
||||
unsigned long nr_faults = -1;
|
||||
int cpu_current, home_node;
|
||||
|
||||
if (p->numa_faults)
|
||||
nr_faults = p->numa_faults[2*node + i];
|
||||
if (p->numa_faults_memory)
|
||||
nr_faults = p->numa_faults_memory[2*node + i];
|
||||
|
||||
cpu_current = !i ? (task_node(p) == node) :
|
||||
(pol && node_isset(node, pol->v.nodes));
|
||||
|
||||
home_node = (p->numa_preferred_nid == node);
|
||||
|
||||
SEQ_printf(m, "numa_faults, %d, %d, %d, %d, %ld\n",
|
||||
SEQ_printf(m, "numa_faults_memory, %d, %d, %d, %d, %ld\n",
|
||||
i, node, cpu_current, home_node, nr_faults);
|
||||
}
|
||||
}
|
||||
|
@ -901,11 +901,11 @@ static inline int task_faults_idx(int nid, int priv)
|
||||
|
||||
static inline unsigned long task_faults(struct task_struct *p, int nid)
|
||||
{
|
||||
if (!p->numa_faults)
|
||||
if (!p->numa_faults_memory)
|
||||
return 0;
|
||||
|
||||
return p->numa_faults[task_faults_idx(nid, 0)] +
|
||||
p->numa_faults[task_faults_idx(nid, 1)];
|
||||
return p->numa_faults_memory[task_faults_idx(nid, 0)] +
|
||||
p->numa_faults_memory[task_faults_idx(nid, 1)];
|
||||
}
|
||||
|
||||
static inline unsigned long group_faults(struct task_struct *p, int nid)
|
||||
@ -927,7 +927,7 @@ static inline unsigned long task_weight(struct task_struct *p, int nid)
|
||||
{
|
||||
unsigned long total_faults;
|
||||
|
||||
if (!p->numa_faults)
|
||||
if (!p->numa_faults_memory)
|
||||
return 0;
|
||||
|
||||
total_faults = p->total_numa_faults;
|
||||
@ -1255,7 +1255,7 @@ static int task_numa_migrate(struct task_struct *p)
|
||||
static void numa_migrate_preferred(struct task_struct *p)
|
||||
{
|
||||
/* This task has no NUMA fault statistics yet */
|
||||
if (unlikely(p->numa_preferred_nid == -1 || !p->numa_faults))
|
||||
if (unlikely(p->numa_preferred_nid == -1 || !p->numa_faults_memory))
|
||||
return;
|
||||
|
||||
/* Periodically retry migrating the task to the preferred node */
|
||||
@ -1371,16 +1371,16 @@ static void task_numa_placement(struct task_struct *p)
|
||||
long diff;
|
||||
|
||||
i = task_faults_idx(nid, priv);
|
||||
diff = -p->numa_faults[i];
|
||||
diff = -p->numa_faults_memory[i];
|
||||
|
||||
/* Decay existing window, copy faults since last scan */
|
||||
p->numa_faults[i] >>= 1;
|
||||
p->numa_faults[i] += p->numa_faults_buffer[i];
|
||||
fault_types[priv] += p->numa_faults_buffer[i];
|
||||
p->numa_faults_buffer[i] = 0;
|
||||
p->numa_faults_memory[i] >>= 1;
|
||||
p->numa_faults_memory[i] += p->numa_faults_buffer_memory[i];
|
||||
fault_types[priv] += p->numa_faults_buffer_memory[i];
|
||||
p->numa_faults_buffer_memory[i] = 0;
|
||||
|
||||
faults += p->numa_faults[i];
|
||||
diff += p->numa_faults[i];
|
||||
faults += p->numa_faults_memory[i];
|
||||
diff += p->numa_faults_memory[i];
|
||||
p->total_numa_faults += diff;
|
||||
if (p->numa_group) {
|
||||
/* safe because we can only change our own group */
|
||||
@ -1465,7 +1465,7 @@ static void task_numa_group(struct task_struct *p, int cpupid, int flags,
|
||||
grp->gid = p->pid;
|
||||
|
||||
for (i = 0; i < 2*nr_node_ids; i++)
|
||||
grp->faults[i] = p->numa_faults[i];
|
||||
grp->faults[i] = p->numa_faults_memory[i];
|
||||
|
||||
grp->total_faults = p->total_numa_faults;
|
||||
|
||||
@ -1523,8 +1523,8 @@ static void task_numa_group(struct task_struct *p, int cpupid, int flags,
|
||||
double_lock(&my_grp->lock, &grp->lock);
|
||||
|
||||
for (i = 0; i < 2*nr_node_ids; i++) {
|
||||
my_grp->faults[i] -= p->numa_faults[i];
|
||||
grp->faults[i] += p->numa_faults[i];
|
||||
my_grp->faults[i] -= p->numa_faults_memory[i];
|
||||
grp->faults[i] += p->numa_faults_memory[i];
|
||||
}
|
||||
my_grp->total_faults -= p->total_numa_faults;
|
||||
grp->total_faults += p->total_numa_faults;
|
||||
@ -1550,12 +1550,12 @@ void task_numa_free(struct task_struct *p)
|
||||
{
|
||||
struct numa_group *grp = p->numa_group;
|
||||
int i;
|
||||
void *numa_faults = p->numa_faults;
|
||||
void *numa_faults = p->numa_faults_memory;
|
||||
|
||||
if (grp) {
|
||||
spin_lock(&grp->lock);
|
||||
for (i = 0; i < 2*nr_node_ids; i++)
|
||||
grp->faults[i] -= p->numa_faults[i];
|
||||
grp->faults[i] -= p->numa_faults_memory[i];
|
||||
grp->total_faults -= p->total_numa_faults;
|
||||
|
||||
list_del(&p->numa_entry);
|
||||
@ -1565,8 +1565,8 @@ void task_numa_free(struct task_struct *p)
|
||||
put_numa_group(grp);
|
||||
}
|
||||
|
||||
p->numa_faults = NULL;
|
||||
p->numa_faults_buffer = NULL;
|
||||
p->numa_faults_memory = NULL;
|
||||
p->numa_faults_buffer_memory = NULL;
|
||||
kfree(numa_faults);
|
||||
}
|
||||
|
||||
@ -1591,16 +1591,16 @@ void task_numa_fault(int last_cpupid, int node, int pages, int flags)
|
||||
return;
|
||||
|
||||
/* Allocate buffer to track faults on a per-node basis */
|
||||
if (unlikely(!p->numa_faults)) {
|
||||
int size = sizeof(*p->numa_faults) * 2 * nr_node_ids;
|
||||
if (unlikely(!p->numa_faults_memory)) {
|
||||
int size = sizeof(*p->numa_faults_memory) * 2 * nr_node_ids;
|
||||
|
||||
/* numa_faults and numa_faults_buffer share the allocation */
|
||||
p->numa_faults = kzalloc(size * 2, GFP_KERNEL|__GFP_NOWARN);
|
||||
if (!p->numa_faults)
|
||||
p->numa_faults_memory = kzalloc(size * 2, GFP_KERNEL|__GFP_NOWARN);
|
||||
if (!p->numa_faults_memory)
|
||||
return;
|
||||
|
||||
BUG_ON(p->numa_faults_buffer);
|
||||
p->numa_faults_buffer = p->numa_faults + (2 * nr_node_ids);
|
||||
BUG_ON(p->numa_faults_buffer_memory);
|
||||
p->numa_faults_buffer_memory = p->numa_faults_memory + (2 * nr_node_ids);
|
||||
p->total_numa_faults = 0;
|
||||
memset(p->numa_faults_locality, 0, sizeof(p->numa_faults_locality));
|
||||
}
|
||||
@ -1629,7 +1629,7 @@ void task_numa_fault(int last_cpupid, int node, int pages, int flags)
|
||||
if (migrated)
|
||||
p->numa_pages_migrated += pages;
|
||||
|
||||
p->numa_faults_buffer[task_faults_idx(node, priv)] += pages;
|
||||
p->numa_faults_buffer_memory[task_faults_idx(node, priv)] += pages;
|
||||
p->numa_faults_locality[!!(flags & TNF_FAULT_LOCAL)] += pages;
|
||||
}
|
||||
|
||||
@ -4771,7 +4771,7 @@ static bool migrate_improves_locality(struct task_struct *p, struct lb_env *env)
|
||||
{
|
||||
int src_nid, dst_nid;
|
||||
|
||||
if (!sched_feat(NUMA_FAVOUR_HIGHER) || !p->numa_faults ||
|
||||
if (!sched_feat(NUMA_FAVOUR_HIGHER) || !p->numa_faults_memory ||
|
||||
!(env->sd->flags & SD_NUMA)) {
|
||||
return false;
|
||||
}
|
||||
@ -4802,7 +4802,7 @@ static bool migrate_degrades_locality(struct task_struct *p, struct lb_env *env)
|
||||
if (!sched_feat(NUMA) || !sched_feat(NUMA_RESIST_LOWER))
|
||||
return false;
|
||||
|
||||
if (!p->numa_faults || !(env->sd->flags & SD_NUMA))
|
||||
if (!p->numa_faults_memory || !(env->sd->flags & SD_NUMA))
|
||||
return false;
|
||||
|
||||
src_nid = cpu_to_node(env->src_cpu);
|
||||
|
Loading…
Reference in New Issue
Block a user