• Home
  • Raw
  • Download

Lines Matching +full:i +full:- +full:cache +full:- +full:sets

9 - Portions Copyright (c) 2004-2006 Silicon Graphics, Inc.
10 - Modified by Paul Jackson <pj@sgi.com>
11 - Modified by Christoph Lameter <cl@linux.com>
12 - Modified by Paul Menage <menage@google.com>
13 - Modified by Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
26 1.9 How do I use cpusets ?
39 ----------------------
43 an on-line node that contains memory.
52 Documentation/admin-guide/cgroup-v1/cgroups.rst.
71 ----------------------------
74 complex memory cache hierarchies and multiple Memory Nodes having
75 non-uniform access times (NUMA) presents additional challenges for
109 ---------------------------------
120 - Cpusets are sets of allowed CPUs and Memory Nodes, known to the
122 - Each task in the system is attached to a cpuset, via a pointer
124 - Calls to sched_setaffinity are filtered to just those CPUs
126 - Calls to mbind and set_mempolicy are filtered to just
128 - The root cpuset contains all the systems CPUs and Memory
130 - For any cpuset, one can define child cpusets containing a subset
132 - The hierarchy of cpusets can be mounted at /dev/cpuset, for
134 - A cpuset may be marked exclusive, which ensures that no other
137 - You can list all the tasks (by pid) attached to any cpuset.
142 - in init/main.c, to initialize the root cpuset at system boot.
143 - in fork and exit, to attach and detach a task from its cpuset.
144 - in sched_setaffinity, to mask the requested CPUs by what's
146 - in sched.c migrate_live_tasks(), to keep migrating tasks within
148 - in the mbind and set_mempolicy system calls, to mask the requested
150 - in page_alloc.c, to restrict memory to allowed nodes.
151 - in vmscan.c, to restrict page recovery to the current cpuset.
155 new system calls are added for cpusets - all support for querying and
164 Cpus_allowed_list: 0-127
166 Mems_allowed_list: 0-63
172 - cpuset.cpus: list of CPUs in that cpuset
173 - cpuset.mems: list of Memory Nodes in that cpuset
174 - cpuset.memory_migrate flag: if set, move pages to cpusets nodes
175 - cpuset.cpu_exclusive flag: is cpu placement exclusive?
176 - cpuset.mem_exclusive flag: is memory placement exclusive?
177 - cpuset.mem_hardwall flag: is memory allocation hardwalled
178 - cpuset.memory_pressure: measure of how much paging pressure in cpuset
179 - cpuset.memory_spread_page flag: if set, spread page cache evenly on allowed nodes
180 - cpuset.memory_spread_slab flag: if set, spread slab cache evenly on allowed nodes
181 - cpuset.sched_load_balance flag: if set, load balance within CPUs on that cpuset
182 - cpuset.sched_relax_domain_level: the searching range when migrating tasks
186 - cpuset.memory_pressure_enabled flag: compute memory_pressure?
194 a large system into nested, dynamically changeable, "soft-partitions".
198 on a system into related sets of tasks such that each set is constrained
200 may be re-attached to any other cpuset, if allowed by the permissions
209 - Its CPUs and Memory Nodes must be a subset of its parents.
210 - It can't be marked exclusive unless its parent is.
211 - If its cpu or memory is exclusive, they may not overlap any sibling.
221 read-only. The cpus file automatically tracks the value of
223 automatically tracks the value of node_states[N_MEMORY]--i.e.,
224 nodes with memory--using the cpuset_track_online_nodes() hook.
228 --------------------------------
235 i.e. it restricts kernel allocations for page, buffer and other data
242 construct child, non-mem_exclusive cpusets for each individual job.
249 -----------------------------
250 The memory_pressure of a cpuset provides a simple per-cpuset metric
260 submitted jobs, which may choose to terminate or re-prioritize jobs that
278 Why a per-cpuset, running average:
280 Because this meter is per-cpuset, rather than per-task or mm,
290 Because this meter is per-cpuset rather than per-task or mm,
296 A per-cpuset simple digital filter (requires a spinlock and 3 words
297 of data per-cpuset) is kept, and updated by any task attached to that
300 A per-cpuset file provides an integer number representing the recent
301 (half-life of 10 seconds) rate of direct page reclaims caused by
307 ---------------------------
313 If the per-cpuset boolean flag file 'cpuset.memory_spread_page' is set, then
314 the kernel will spread the file system buffers (page cache) evenly
318 If the per-cpuset boolean flag file 'cpuset.memory_spread_slab' is set,
350 Setting the flag 'cpuset.memory_spread_page' turns on a per-process flag
352 joins that cpuset. The page allocation calls for the page cache
362 value of a per-task rotor cpuset_mem_spread_rotor to select the next
366 round-robin or interleave.
370 to access large file system data sets that need to be spread across
377 --------------------------------
408 on separate sets of CPUs, full load balancing is unnecessary.
413 When the per-cpuset flag "cpuset.sched_load_balance" is enabled (the default
419 When the per-cpuset flag "cpuset.sched_load_balance" is disabled, then the
421 --except-- in so far as is necessary because some overlapping cpuset
434 the top cpuset that might use non-trivial amounts of CPU, as such tasks
450 across partially overlapping sets of CPUs would risk unstable dynamics
457 This mismatch is why there is not a simple one-to-one relation
469 don't leave tasks that might use non-trivial amounts of CPU in
479 ------------------------------------------------
481 The per-cpuset flag 'cpuset.sched_load_balance' defaults to enabled (contrary
509 - the 'cpuset.sched_load_balance' flag of a cpuset with non-empty CPUs changes,
510 - or CPUs come or go from a cpuset with this flag enabled,
511 - or 'cpuset.sched_relax_domain_level' value of a cpuset with non-empty CPUs
513 - or a cpuset with non-empty CPUs and with this flag enabled is removed,
514 - or a cpu is offlined/onlined.
517 setup - one sched domain for each element (struct cpumask) in the
528 --------------------------------------
559 otherwise initial value -1 that indicates the cpuset has no request.
562 -1 no request. use system default or follow request of others.
566 3 search cpus in a node [= system wide on non-NUMA system]
574 This file is per-cpuset and affect the sched domain where the cpuset
581 requests 0 and others are -1 then 0 is used.
589 - The migration costs between each cpu can be assumed considerably
591 special hardware support for CPU cache etc.
592 - The searching cost doesn't have impact(for you) or you can make
594 - The latency is required even it sacrifices cache hit rate etc.
598 1.9 How do I use cpusets ?
599 --------------------------
611 in the task's cpuset, and update its per-task memory placement to
658 with non-empty cpus. But the moving of some (or all) tasks might fail if
679 2) mount -t cgroup -ocpuset cpuset /sys/fs/cgroup/cpuset
691 mount -t cgroup -ocpuset cpuset /sys/fs/cgroup/cpuset
695 /bin/echo 2-3 > cpuset.cpus
705 - via the cpuset file system directly, using the various cd, mkdir, echo,
707 - via the C library libcpuset.
708 - via the C library libcgroup.
710 - via the python application cset.
722 ---------------
728 # mount -t cgroup -o cpuset cpuset /sys/fs/cgroup/cpuset
766 # /bin/echo 0-7 > cpuset.cpus
770 # /bin/echo 0-7 > cpuset.mems
793 mount -t cpuset X /sys/fs/cgroup/cpuset
797 mount -t cgroup -ocpuset,noprefix X /sys/fs/cgroup/cpuset
801 ------------------------
806 # /bin/echo 1-4 > cpuset.cpus -> set cpus list to cpus 1,2,3,4
807 # /bin/echo 1,2,3,4 > cpuset.cpus -> set cpus list to cpus 1,2,3,4
812 # /bin/echo 1-4,6 > cpuset.cpus -> set cpus list to cpus 1,2,3,4,6
819 # /bin/echo "" > cpuset.cpus -> clear cpus list
822 -----------------
826 # /bin/echo 1 > cpuset.cpu_exclusive -> set flag 'cpuset.cpu_exclusive'
827 # /bin/echo 0 > cpuset.cpu_exclusive -> unset flag 'cpuset.cpu_exclusive'
830 -----------------------
857 When I attach processes, only the first of the line gets really attached !