Home
last modified time | relevance | path

Searched refs:cpuset (Results 1 – 25 of 70) sorted by relevance

123

/linux/kernel/cgroup/
H A Dcpuset-internal.h74 struct cpuset { struct
186 static inline struct cpuset *css_cs(struct cgroup_subsys_state *css) in css_cs() argument
188 return css ? container_of(css, struct cpuset, css) : NULL; in css_cs()
192 static inline struct cpuset *task_cs(struct task_struct *task) in task_cs()
197 static inline struct cpuset *parent_cs(struct cpuset *cs) in parent_cs()
203 static inline bool is_cpuset_online(struct cpuset *cs) in is_cpuset_online()
208 static inline int is_cpu_exclusive(const struct cpuset *cs) in is_cpu_exclusive()
213 static inline int is_mem_exclusive(const struct cpuset *cs) in is_mem_exclusive()
218 static inline int is_mem_hardwall(const struct cpuset *cs) in is_mem_hardwall()
223 static inline int is_sched_load_balance(const struct cpuset *cs) in is_sched_load_balance()
[all …]
H A Dcpuset.c150 struct cpuset *cs = task_cs(p); in inc_dl_tasks_cs()
157 struct cpuset *cs = task_cs(p); in dec_dl_tasks_cs()
162 static inline bool is_partition_valid(const struct cpuset *cs) in is_partition_valid()
167 static inline bool is_partition_invalid(const struct cpuset *cs) in is_partition_invalid()
172 static inline bool cs_is_member(const struct cpuset *cs) in cs_is_member()
180 static inline void make_partition_invalid(struct cpuset *cs) in make_partition_invalid()
189 static inline void notify_partition_change(struct cpuset *cs, int old_prs) in notify_partition_change()
214 static struct cpuset top_cpuset = {
323 static inline void dec_attach_in_progress_locked(struct cpuset *cs) in dec_attach_in_progress_locked()
332 static inline void dec_attach_in_progress(struct cpuset *cs) in dec_attach_in_progress()
[all …]
H A Dcpuset-v1.c11 struct cpuset *cs;
148 static int update_relax_domain_level(struct cpuset *cs, s64 val) in update_relax_domain_level()
168 struct cpuset *cs = css_cs(css); in cpuset_write_s64()
192 struct cpuset *cs = css_cs(css); in cpuset_read_s64()
212 void cpuset1_update_task_spread_flags(struct cpuset *cs, in cpuset1_update_task_spread_flags()
237 void cpuset1_update_tasks_flags(struct cpuset *cs) in cpuset1_update_tasks_flags()
255 static void remove_tasks_in_empty_cpuset(struct cpuset *cs) in remove_tasks_in_empty_cpuset()
257 struct cpuset *parent; in remove_tasks_in_empty_cpuset()
285 void cpuset1_hotplug_update_tasks(struct cpuset *cs, in cpuset1_hotplug_update_tasks()
339 static int is_cpuset_subset(const struct cpuset *p, const struct cpuset *q) in is_cpuset_subset()
[all …]
/linux/Documentation/admin-guide/cgroup-v1/
H A Dcpusets.rst48 the resources within a task's current cpuset. They form a nested
59 policy, are both filtered through that task's cpuset, filtering out any
60 CPUs or Memory Nodes not in that cpuset. The scheduler will not
67 cpusets and which CPUs and Memory Nodes are assigned to each cpuset,
68 specify and query to which cpuset a task is assigned, and list the
69 task pids assigned to a cpuset.
103 The kernel cpuset patch provides the minimum essential kernel
124 - Each task in the system is attached to a cpuset, via a pointer
127 allowed in that task's cpuset.
129 those Memory Nodes allowed in that task's cpuset.
[all …]
H A Dmemcg_test.rst165 For NUMA, migration is an another special case. To do easy test, cpuset
168 mount -t cgroup -o cpuset none /opt/cpuset
170 mkdir /opt/cpuset/01
171 echo 1 > /opt/cpuset/01/cpuset.cpus
172 echo 0 > /opt/cpuset/01/cpuset.mems
173 echo 1 > /opt/cpuset/01/cpuset.memory_migrate
174 mkdir /opt/cpuset/02
175 echo 1 > /opt/cpuset/02/cpuset.cpus
176 echo 1 > /opt/cpuset/02/cpuset.mems
177 echo 1 > /opt/cpuset/02/cpuset.memory_migrate
[all …]
/linux/tools/testing/selftests/cgroup/
H A Dtest_cpuset_prs.sh25 SUBPARTS_CPUS=$CGROUP2/.__DEBUG__.cpuset.cpus.subpartitions
26 CPULIST=$(cat $CGROUP2/cpuset.cpus.effective)
71 echo +cpuset > cgroup.subtree_control
79 echo 0-6 > test/cpuset.cpus
80 echo root > test/cpuset.cpus.partition
81 cat test/cpuset.cpus.partition | grep -q invalid
83 echo member > test/cpuset.cpus.partition
84 echo "" > test/cpuset.cpus
98 BOOT_ISOLCPUS=$(cat $CGROUP2/cpuset.cpus.isolated)
101 BOOT_ISOLCPUS=$(cat $CGROUP2/cpuset.cpus.isolated)
[all …]
H A Dtest_cpuset_v1_hp.sh17 CPUSET=$(mount -t cgroup | grep cpuset | head -1 | awk -e '{print $3}')
25 echo 1 > $CPUSET/$TDIR/cpuset.cpus
26 echo 0 > $CPUSET/$TDIR/cpuset.mems
30 NEWCS=$(cat /proc/$TASK/cpuset)
39 NEWCS=$(cat /proc/$TASK/cpuset)
/linux/tools/testing/selftests/bpf/prog_tests/
H A Dfree_timer.c43 cpu_set_t cpuset; in overwrite_timer_fn() local
47 CPU_ZERO(&cpuset); in overwrite_timer_fn()
48 CPU_SET(0, &cpuset); in overwrite_timer_fn()
49 pthread_setaffinity_np(pthread_self(), sizeof(cpuset), &cpuset); in overwrite_timer_fn()
82 cpu_set_t cpuset; in start_timer_fn() local
86 CPU_ZERO(&cpuset); in start_timer_fn()
87 CPU_SET(1, &cpuset); in start_timer_fn()
88 pthread_setaffinity_np(pthread_self(), sizeof(cpuset), &cpuset); in start_timer_fn()
H A Dtimer_lockup.c27 cpu_set_t cpuset; in timer_lockup_thread() local
29 CPU_ZERO(&cpuset); in timer_lockup_thread()
30 CPU_SET(__sync_fetch_and_add(&cpu, 1), &cpuset); in timer_lockup_thread()
31 ASSERT_OK(pthread_setaffinity_np(pthread_self(), sizeof(cpuset), in timer_lockup_thread()
32 &cpuset), in timer_lockup_thread()
H A Dtest_overhead.c49 cpu_set_t cpuset; in setaffinity() local
52 CPU_ZERO(&cpuset); in setaffinity()
53 CPU_SET(cpu, &cpuset); in setaffinity()
54 sched_setaffinity(0, sizeof(cpuset), &cpuset); in setaffinity()
/linux/Documentation/translations/zh_CN/scheduler/
H A Dsched-capacity.rst259 是,这个键是系统范围可见的。想象下面使用了cpuset的步骤::
272 mkdir /sys/fs/cgroup/cpuset/cs0
273 echo 0-1 > /sys/fs/cgroup/cpuset/cs0/cpuset.cpus
274 echo 0 > /sys/fs/cgroup/cpuset/cs0/cpuset.mems
276 mkdir /sys/fs/cgroup/cpuset/cs1
277 echo 2-7 > /sys/fs/cgroup/cpuset/cs1/cpuset.cpus
278 echo 0 > /sys/fs/cgroup/cpuset/cs1/cpuset.mems
280 echo 0 > /sys/fs/cgroup/cpuset/cpuset.sched_load_balance
/linux/tools/sched_ext/
H A Dscx_central.c52 cpu_set_t *cpuset; in main() local
107 cpuset = CPU_ALLOC(skel->rodata->nr_cpu_ids); in main()
108 SCX_BUG_ON(!cpuset, "Failed to allocate cpuset"); in main()
109 CPU_ZERO_S(CPU_ALLOC_SIZE(skel->rodata->nr_cpu_ids), cpuset); in main()
110 CPU_SET(skel->rodata->central_cpu, cpuset); in main()
111 SCX_BUG_ON(sched_setaffinity(0, sizeof(*cpuset), cpuset), in main()
114 CPU_FREE(cpuset); in main()
/linux/tools/testing/selftests/powerpc/benchmarks/
H A Dfork.c32 cpu_set_t cpuset; in set_cpu() local
37 CPU_ZERO(&cpuset); in set_cpu()
38 CPU_SET(cpu, &cpuset); in set_cpu()
40 if (sched_setaffinity(0, sizeof(cpuset), &cpuset)) { in set_cpu()
137 cpu_set_t cpuset; in bench_thread() local
149 CPU_ZERO(&cpuset); in bench_thread()
150 CPU_SET(cpu, &cpuset); in bench_thread()
152 rc = pthread_attr_setaffinity_np(&attr, sizeof(cpu_set_t), &cpuset); in bench_thread()
H A Dcontext_switch.c78 cpu_set_t cpuset; in start_thread_on() local
81 CPU_ZERO(&cpuset); in start_thread_on()
82 CPU_SET(cpu, &cpuset); in start_thread_on()
91 rc = pthread_attr_setaffinity_np(&attr, sizeof(cpu_set_t), &cpuset); in start_thread_on()
109 cpu_set_t *cpuset; in start_process_on() local
123 cpuset = CPU_ALLOC(ncpus); in start_process_on()
124 if (!cpuset) { in start_process_on()
128 CPU_ZERO_S(size, cpuset); in start_process_on()
129 CPU_SET_S(cpu, size, cpuset); in start_process_on()
131 if (sched_setaffinity(0, size, cpuset)) { in start_process_on()
[all …]
/linux/tools/testing/selftests/x86/
H A Dsysret_ss_attrs.c55 cpu_set_t cpuset; in main() local
56 CPU_ZERO(&cpuset); in main()
57 CPU_SET(0, &cpuset); in main()
58 if (sched_setaffinity(0, sizeof(cpuset), &cpuset) != 0) in main()
/linux/tools/perf/bench/
H A Dfutex-wake.c103 cpu_set_t *cpuset; in block_threads() local
109 cpuset = CPU_ALLOC(nrcpus); in block_threads()
110 BUG_ON(!cpuset); in block_threads()
118 CPU_ZERO_S(size, cpuset); in block_threads()
119 CPU_SET_S(perf_cpu_map__cpu(cpu, i % perf_cpu_map__nr(cpu)).cpu, size, cpuset); in block_threads()
121 if (pthread_attr_setaffinity_np(&thread_attr, size, cpuset)) { in block_threads()
122 CPU_FREE(cpuset); in block_threads()
127 CPU_FREE(cpuset); in block_threads()
132 CPU_FREE(cpuset); in block_threads()
H A Dfutex-lock-pi.c126 cpu_set_t *cpuset; in create_threads() local
133 cpuset = CPU_ALLOC(nrcpus); in create_threads()
134 BUG_ON(!cpuset); in create_threads()
150 CPU_ZERO_S(size, cpuset); in create_threads()
151 CPU_SET_S(perf_cpu_map__cpu(cpu, i % perf_cpu_map__nr(cpu)).cpu, size, cpuset); in create_threads()
153 if (pthread_attr_setaffinity_np(&thread_attr, size, cpuset)) { in create_threads()
154 CPU_FREE(cpuset); in create_threads()
159 CPU_FREE(cpuset); in create_threads()
164 CPU_FREE(cpuset); in create_threads()
H A Dfutex-hash.c130 cpu_set_t *cpuset; in bench_futex_hash() local
183 cpuset = CPU_ALLOC(nrcpus); in bench_futex_hash()
184 BUG_ON(!cpuset); in bench_futex_hash()
193 CPU_ZERO_S(size, cpuset); in bench_futex_hash()
195 CPU_SET_S(perf_cpu_map__cpu(cpu, i % perf_cpu_map__nr(cpu)).cpu, size, cpuset); in bench_futex_hash()
196 ret = pthread_attr_setaffinity_np(&thread_attr, size, cpuset); in bench_futex_hash()
198 CPU_FREE(cpuset); in bench_futex_hash()
204 CPU_FREE(cpuset); in bench_futex_hash()
209 CPU_FREE(cpuset); in bench_futex_hash()
H A Dfutex-requeue.c129 cpu_set_t *cpuset; in block_threads() local
136 cpuset = CPU_ALLOC(nrcpus); in block_threads()
137 BUG_ON(!cpuset); in block_threads()
145 CPU_ZERO_S(size, cpuset); in block_threads()
146 CPU_SET_S(perf_cpu_map__cpu(cpu, i % perf_cpu_map__nr(cpu)).cpu, size, cpuset); in block_threads()
148 if (pthread_attr_setaffinity_np(&thread_attr, size, cpuset)) { in block_threads()
149 CPU_FREE(cpuset); in block_threads()
154 CPU_FREE(cpuset); in block_threads()
159 CPU_FREE(cpuset); in block_threads()
H A Dfutex-wake-parallel.c153 cpu_set_t *cpuset; in block_threads() local
160 cpuset = CPU_ALLOC(nrcpus); in block_threads()
161 BUG_ON(!cpuset); in block_threads()
169 CPU_ZERO_S(size, cpuset); in block_threads()
170 CPU_SET_S(perf_cpu_map__cpu(cpu, i % perf_cpu_map__nr(cpu)).cpu, size, cpuset); in block_threads()
172 if (pthread_attr_setaffinity_np(&thread_attr, size, cpuset)) { in block_threads()
173 CPU_FREE(cpuset); in block_threads()
178 CPU_FREE(cpuset); in block_threads()
183 CPU_FREE(cpuset); in block_threads()
H A Depoll-ctl.c226 cpu_set_t *cpuset; in do_threads() local
236 cpuset = CPU_ALLOC(nrcpus); in do_threads()
237 BUG_ON(!cpuset); in do_threads()
263 CPU_ZERO_S(size, cpuset); in do_threads()
265 size, cpuset); in do_threads()
267 ret = pthread_attr_setaffinity_np(&thread_attr, size, cpuset); in do_threads()
269 CPU_FREE(cpuset); in do_threads()
279 CPU_FREE(cpuset); in do_threads()
284 CPU_FREE(cpuset); in do_threads()
/linux/tools/testing/selftests/powerpc/tm/
H A Dtm-poison.c29 cpu_set_t cpuset; in tm_poison_test() local
42 CPU_ZERO(&cpuset); in tm_poison_test()
43 CPU_SET(cpu, &cpuset); in tm_poison_test()
44 FAIL_IF(sched_setaffinity(0, sizeof(cpuset), &cpuset) != 0); in tm_poison_test()
/linux/tools/perf/util/
H A Daffinity.c91 unsigned long *cpuset = bitmap_zalloc(cpu_set_size * 8); in cpu_map__set_affinity() local
95 if (!cpuset) in cpu_map__set_affinity()
99 __set_bit(cpu.cpu, cpuset); in cpu_map__set_affinity()
101 sched_setaffinity(0, cpu_set_size, (cpu_set_t *)cpuset); in cpu_map__set_affinity()
102 zfree(&cpuset); in cpu_map__set_affinity()
/linux/Documentation/translations/zh_CN/mm/
H A Dhugetlbfs_reserv.rst416 * 当cpuset被配置时,它打破了严格的hugetlb页面预留,因为计数是在一个全局变量上完
417 * 成的。在有cpuset的情况下,这样的预留完全是垃圾,因为预留没有根据当前cpuset
418 * 页面可用性来检查。在任务所在的cpuset中缺乏空闲的htlb页面时,应用程序仍然有可能
419 * 被内核OOM'ed。试图用cpuset来执行严格的计数几乎是不可能的(或者说太难看了),因
420 * 为cpuset太不稳定了,任务或内存节点可以在cpuset之间动态移动。与cpuset共享
422 * 页的可用性,作为一种最好的尝试,希望能将cpuset改变语义的影响降到最低。
/linux/tools/power/cpupower/bench/
H A Dsystem.c77 cpu_set_t cpuset; in set_cpu_affinity() local
79 CPU_ZERO(&cpuset); in set_cpu_affinity()
80 CPU_SET(cpu, &cpuset); in set_cpu_affinity()
84 if (sched_setaffinity(getpid(), sizeof(cpu_set_t), &cpuset) < 0) { in set_cpu_affinity()

123