| /linux/kernel/cgroup/ |
| H A D | cpuset-internal.h | 75 struct cpuset { struct 194 extern struct cpuset top_cpuset; argument 196 static inline struct cpuset *css_cs(struct cgroup_subsys_state *css) in css_cs() 198 return css ? container_of(css, struct cpuset, css) : NULL; in css_cs() 202 static inline struct cpuset *task_cs(struct task_struct *task) in task_cs() 207 static inline struct cpuset *parent_cs(struct cpuset *cs) in parent_cs() 213 static inline bool is_cpuset_online(struct cpuset *cs) in is_cpuset_online() 218 static inline int is_cpu_exclusive(const struct cpuset *cs) in is_cpu_exclusive() 223 static inline int is_mem_exclusive(const struct cpuset *cs) in is_mem_exclusive() 228 static inline int is_mem_hardwall(const struct cpuset *cs) in is_mem_hardwall() [all …]
|
| H A D | cpuset-v1.c | 11 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() 232 void cpuset1_update_tasks_flags(struct cpuset *cs) in cpuset1_update_tasks_flags() 250 static void remove_tasks_in_empty_cpuset(struct cpuset *cs) in remove_tasks_in_empty_cpuset() 252 struct cpuset *parent; in remove_tasks_in_empty_cpuset() 280 void cpuset1_hotplug_update_tasks(struct cpuset *cs, in cpuset1_hotplug_update_tasks() 334 static int is_cpuset_subset(const struct cpuset *p, const struct cpuset *q) in is_cpuset_subset() [all …]
|
| /linux/tools/testing/selftests/cgroup/ |
| H A D | test_cpuset_prs.sh | 25 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 D | test_cpuset_v1_hp.sh | 17 CPUSET=$(mount -t cgroup | grep cpuset | head -1 | awk '{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 D | free_timer.c | 43 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 D | timer_lockup.c | 27 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 D | arena_spin_lock.c | 24 cpu_set_t cpuset; in spin_lock_thread() local 26 CPU_ZERO(&cpuset); in spin_lock_thread() 27 CPU_SET(__sync_fetch_and_add(&cpu, 1), &cpuset); in spin_lock_thread() 28 ASSERT_OK(pthread_setaffinity_np(pthread_self(), sizeof(cpuset), &cpuset), "cpu affinity"); in spin_lock_thread()
|
| H A D | test_overhead.c | 49 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 D | sched-capacity.rst | 259 是,这个键是系统范围可见的。想象下面使用了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/testing/selftests/x86/ |
| H A D | sysret_ss_attrs.c | 55 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/testing/selftests/powerpc/benchmarks/ |
| H A D | fork.c | 32 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 D | context_switch.c | 78 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/powerpc/tm/ |
| H A D | tm-poison.c | 29 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/bench/ |
| H A D | futex-wake.c | 103 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 D | futex-lock-pi.c | 126 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 D | futex-hash.c | 130 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 D | futex-requeue.c | 129 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 D | futex-wake-parallel.c | 153 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 D | epoll-ctl.c | 226 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/perf/util/ |
| H A D | affinity.c | 91 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/admin-guide/cgroup-v1/ |
| H A D | memcg_test.rst | 163 For NUMA, migration is an another special case. To do easy test, cpuset 166 mount -t cgroup -o cpuset none /opt/cpuset 168 mkdir /opt/cpuset/01 169 echo 1 > /opt/cpuset/01/cpuset.cpus 170 echo 0 > /opt/cpuset/01/cpuset.mems 171 echo 1 > /opt/cpuset/01/cpuset.memory_migrate 172 mkdir /opt/cpuset/02 173 echo 1 > /opt/cpuset/02/cpuset.cpus 174 echo 1 > /opt/cpuset/02/cpuset.mems 175 echo 1 > /opt/cpuset/02/cpuset.memory_migrate [all …]
|
| /linux/Documentation/translations/zh_CN/mm/ |
| H A D | hugetlbfs_reserv.rst | 416 * 当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 D | system.c | 77 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()
|
| /linux/tools/testing/selftests/intel_pstate/ |
| H A D | aperf.c | 31 cpu_set_t cpuset; in main() local 54 CPU_ZERO(&cpuset); in main() 55 CPU_SET(cpu, &cpuset); in main() 57 if (sched_setaffinity(0, sizeof(cpu_set_t), &cpuset)) { in main()
|
| /linux/tools/testing/selftests/mm/ |
| H A D | hugetlb_reparenting_test.sh | 131 echo 0 >$CGROUP_ROOT/a/cpuset.mems 132 echo 0 >$CGROUP_ROOT/a/cpuset.cpus 138 echo 0 >$CGROUP_ROOT/a/b/cpuset.mems 139 echo 0 >$CGROUP_ROOT/a/b/cpuset.cpus 154 echo 0 >$CGROUP_ROOT/$cgroup/cpuset.mems 155 echo 0 >$CGROUP_ROOT/$cgroup/cpuset.cpus
|