diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/cpuset.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/kernel/cpuset.c b/kernel/cpuset.c index 61d6af7fa676..02b9611eadde 100644 --- a/kernel/cpuset.c +++ b/kernel/cpuset.c | |||
@@ -2469,7 +2469,8 @@ void cpuset_unlock(void) | |||
2469 | } | 2469 | } |
2470 | 2470 | ||
2471 | /** | 2471 | /** |
2472 | * cpuset_mem_spread_node() - On which node to begin search for a page | 2472 | * cpuset_mem_spread_node() - On which node to begin search for a file page |
2473 | * cpuset_slab_spread_node() - On which node to begin search for a slab page | ||
2473 | * | 2474 | * |
2474 | * If a task is marked PF_SPREAD_PAGE or PF_SPREAD_SLAB (as for | 2475 | * If a task is marked PF_SPREAD_PAGE or PF_SPREAD_SLAB (as for |
2475 | * tasks in a cpuset with is_spread_page or is_spread_slab set), | 2476 | * tasks in a cpuset with is_spread_page or is_spread_slab set), |
@@ -2494,16 +2495,27 @@ void cpuset_unlock(void) | |||
2494 | * See kmem_cache_alloc_node(). | 2495 | * See kmem_cache_alloc_node(). |
2495 | */ | 2496 | */ |
2496 | 2497 | ||
2497 | int cpuset_mem_spread_node(void) | 2498 | static int cpuset_spread_node(int *rotor) |
2498 | { | 2499 | { |
2499 | int node; | 2500 | int node; |
2500 | 2501 | ||
2501 | node = next_node(current->cpuset_mem_spread_rotor, current->mems_allowed); | 2502 | node = next_node(*rotor, current->mems_allowed); |
2502 | if (node == MAX_NUMNODES) | 2503 | if (node == MAX_NUMNODES) |
2503 | node = first_node(current->mems_allowed); | 2504 | node = first_node(current->mems_allowed); |
2504 | current->cpuset_mem_spread_rotor = node; | 2505 | *rotor = node; |
2505 | return node; | 2506 | return node; |
2506 | } | 2507 | } |
2508 | |||
2509 | int cpuset_mem_spread_node(void) | ||
2510 | { | ||
2511 | return cpuset_spread_node(¤t->cpuset_mem_spread_rotor); | ||
2512 | } | ||
2513 | |||
2514 | int cpuset_slab_spread_node(void) | ||
2515 | { | ||
2516 | return cpuset_spread_node(¤t->cpuset_slab_spread_rotor); | ||
2517 | } | ||
2518 | |||
2507 | EXPORT_SYMBOL_GPL(cpuset_mem_spread_node); | 2519 | EXPORT_SYMBOL_GPL(cpuset_mem_spread_node); |
2508 | 2520 | ||
2509 | /** | 2521 | /** |