diff options
Diffstat (limited to 'Documentation/cpusets.txt')
-rw-r--r-- | Documentation/cpusets.txt | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/Documentation/cpusets.txt b/Documentation/cpusets.txt index a09a8eb80665..e2d9afc30d2d 100644 --- a/Documentation/cpusets.txt +++ b/Documentation/cpusets.txt | |||
@@ -192,6 +192,7 @@ containing the following files describing that cpuset: | |||
192 | 192 | ||
193 | - cpus: list of CPUs in that cpuset | 193 | - cpus: list of CPUs in that cpuset |
194 | - mems: list of Memory Nodes in that cpuset | 194 | - mems: list of Memory Nodes in that cpuset |
195 | - memory_migrate flag: if set, move pages to cpusets nodes | ||
195 | - cpu_exclusive flag: is cpu placement exclusive? | 196 | - cpu_exclusive flag: is cpu placement exclusive? |
196 | - mem_exclusive flag: is memory placement exclusive? | 197 | - mem_exclusive flag: is memory placement exclusive? |
197 | - tasks: list of tasks (by pid) attached to that cpuset | 198 | - tasks: list of tasks (by pid) attached to that cpuset |
@@ -277,6 +278,30 @@ rewritten to the 'tasks' file of its cpuset. This is done to avoid | |||
277 | impacting the scheduler code in the kernel with a check for changes | 278 | impacting the scheduler code in the kernel with a check for changes |
278 | in a tasks processor placement. | 279 | in a tasks processor placement. |
279 | 280 | ||
281 | Normally, once a page is allocated (given a physical page | ||
282 | of main memory) then that page stays on whatever node it | ||
283 | was allocated, so long as it remains allocated, even if the | ||
284 | cpusets memory placement policy 'mems' subsequently changes. | ||
285 | If the cpuset flag file 'memory_migrate' is set true, then when | ||
286 | tasks are attached to that cpuset, any pages that task had | ||
287 | allocated to it on nodes in its previous cpuset are migrated | ||
288 | to the tasks new cpuset. Depending on the implementation, | ||
289 | this migration may either be done by swapping the page out, | ||
290 | so that the next time the page is referenced, it will be paged | ||
291 | into the tasks new cpuset, usually on the node where it was | ||
292 | referenced, or this migration may be done by directly copying | ||
293 | the pages from the tasks previous cpuset to the new cpuset, | ||
294 | where possible to the same node, relative to the new cpuset, | ||
295 | as the node that held the page, relative to the old cpuset. | ||
296 | Also if 'memory_migrate' is set true, then if that cpusets | ||
297 | 'mems' file is modified, pages allocated to tasks in that | ||
298 | cpuset, that were on nodes in the previous setting of 'mems', | ||
299 | will be moved to nodes in the new setting of 'mems.' Again, | ||
300 | depending on the implementation, this might be done by swapping, | ||
301 | or by direct copying. In either case, pages that were not in | ||
302 | the tasks prior cpuset, or in the cpusets prior 'mems' setting, | ||
303 | will not be moved. | ||
304 | |||
280 | There is an exception to the above. If hotplug functionality is used | 305 | There is an exception to the above. If hotplug functionality is used |
281 | to remove all the CPUs that are currently assigned to a cpuset, | 306 | to remove all the CPUs that are currently assigned to a cpuset, |
282 | then the kernel will automatically update the cpus_allowed of all | 307 | then the kernel will automatically update the cpus_allowed of all |