nodemask: use new node_to_cpumask_ptr function
* Use new node_to_cpumask_ptr. This creates a pointer to the cpumask for a given node. This definition is in mm patch: asm-generic-add-node_to_cpumask_ptr-macro.patch * Use new set_cpus_allowed_ptr function. Depends on: [mm-patch]: asm-generic-add-node_to_cpumask_ptr-macro.patch [sched-devel]: sched: add new set_cpus_allowed_ptr function [x86/latest]: x86: add cpus_scnprintf function Cc: Greg Kroah-Hartman <gregkh@suse.de> Cc: Greg Banks <gnb@melbourne.sgi.com> Cc: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Mike Travis <travis@sgi.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
18
mm/vmscan.c
18
mm/vmscan.c
@ -1647,11 +1647,10 @@ static int kswapd(void *p)
|
||||
struct reclaim_state reclaim_state = {
|
||||
.reclaimed_slab = 0,
|
||||
};
|
||||
cpumask_t cpumask;
|
||||
node_to_cpumask_ptr(cpumask, pgdat->node_id);
|
||||
|
||||
cpumask = node_to_cpumask(pgdat->node_id);
|
||||
if (!cpus_empty(cpumask))
|
||||
set_cpus_allowed(tsk, cpumask);
|
||||
if (!cpus_empty(*cpumask))
|
||||
set_cpus_allowed_ptr(tsk, cpumask);
|
||||
current->reclaim_state = &reclaim_state;
|
||||
|
||||
/*
|
||||
@ -1880,17 +1879,16 @@ out:
|
||||
static int __devinit cpu_callback(struct notifier_block *nfb,
|
||||
unsigned long action, void *hcpu)
|
||||
{
|
||||
pg_data_t *pgdat;
|
||||
cpumask_t mask;
|
||||
int nid;
|
||||
|
||||
if (action == CPU_ONLINE || action == CPU_ONLINE_FROZEN) {
|
||||
for_each_node_state(nid, N_HIGH_MEMORY) {
|
||||
pgdat = NODE_DATA(nid);
|
||||
mask = node_to_cpumask(pgdat->node_id);
|
||||
if (any_online_cpu(mask) != NR_CPUS)
|
||||
pg_data_t *pgdat = NODE_DATA(nid);
|
||||
node_to_cpumask_ptr(mask, pgdat->node_id);
|
||||
|
||||
if (any_online_cpu(*mask) < nr_cpu_ids)
|
||||
/* One of our CPUs online: restore mask */
|
||||
set_cpus_allowed(pgdat->kswapd, mask);
|
||||
set_cpus_allowed_ptr(pgdat->kswapd, mask);
|
||||
}
|
||||
}
|
||||
return NOTIFY_OK;
|
||||
|
Reference in New Issue
Block a user