diff options
Diffstat (limited to 'kernel/cpuset.c')
| -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 | /** |
