/Linux-v6.6/kernel/cgroup/ |
D | freezer.c | 14 static void cgroup_propagate_frozen(struct cgroup *cgrp, bool frozen) in cgroup_propagate_frozen() argument 24 while ((cgrp = cgroup_parent(cgrp))) { in cgroup_propagate_frozen() 26 cgrp->freezer.nr_frozen_descendants += desc; in cgroup_propagate_frozen() 27 if (!test_bit(CGRP_FROZEN, &cgrp->flags) && in cgroup_propagate_frozen() 28 test_bit(CGRP_FREEZE, &cgrp->flags) && in cgroup_propagate_frozen() 29 cgrp->freezer.nr_frozen_descendants == in cgroup_propagate_frozen() 30 cgrp->nr_descendants) { in cgroup_propagate_frozen() 31 set_bit(CGRP_FROZEN, &cgrp->flags); in cgroup_propagate_frozen() 32 cgroup_file_notify(&cgrp->events_file); in cgroup_propagate_frozen() 33 TRACE_CGROUP_PATH(notify_frozen, cgrp, 1); in cgroup_propagate_frozen() [all …]
|
D | cgroup.c | 167 struct cgroup_root cgrp_dfl_root = { .cgrp.rstat_cpu = &cgrp_dfl_root_rstat_cpu }; 239 static int cgroup_apply_control(struct cgroup *cgrp); 240 static void cgroup_finalize_control(struct cgroup *cgrp, int ret); 243 static int cgroup_destroy_locked(struct cgroup *cgrp); 244 static struct cgroup_subsys_state *css_create(struct cgroup *cgrp, 249 struct cgroup *cgrp, struct cftype cfts[], 317 bool cgroup_on_dfl(const struct cgroup *cgrp) in cgroup_on_dfl() argument 319 return cgrp->root == &cgrp_dfl_root; in cgroup_on_dfl() 353 static bool cgroup_has_tasks(struct cgroup *cgrp) in cgroup_has_tasks() argument 355 return cgrp->nr_populated_csets; in cgroup_has_tasks() [all …]
|
D | rstat.c | 13 static void cgroup_base_stat_flush(struct cgroup *cgrp, int cpu); 15 static struct cgroup_rstat_cpu *cgroup_rstat_cpu(struct cgroup *cgrp, int cpu) in cgroup_rstat_cpu() argument 17 return per_cpu_ptr(cgrp->rstat_cpu, cpu); in cgroup_rstat_cpu() 29 __bpf_kfunc void cgroup_rstat_updated(struct cgroup *cgrp, int cpu) in cgroup_rstat_updated() argument 42 if (data_race(cgroup_rstat_cpu(cgrp, cpu)->updated_next)) in cgroup_rstat_updated() 49 struct cgroup_rstat_cpu *rstatc = cgroup_rstat_cpu(cgrp, cpu); in cgroup_rstat_updated() 50 struct cgroup *parent = cgroup_parent(cgrp); in cgroup_rstat_updated() 62 rstatc->updated_next = cgrp; in cgroup_rstat_updated() 68 prstatc->updated_children = cgrp; in cgroup_rstat_updated() 70 cgrp = parent; in cgroup_rstat_updated() [all …]
|
D | cgroup-v1.c | 196 void cgroup1_pidlist_destroy_all(struct cgroup *cgrp) in cgroup1_pidlist_destroy_all() argument 200 mutex_lock(&cgrp->pidlist_mutex); in cgroup1_pidlist_destroy_all() 201 list_for_each_entry_safe(l, tmp_l, &cgrp->pidlists, links) in cgroup1_pidlist_destroy_all() 203 mutex_unlock(&cgrp->pidlist_mutex); in cgroup1_pidlist_destroy_all() 206 BUG_ON(!list_empty(&cgrp->pidlists)); in cgroup1_pidlist_destroy_all() 277 static struct cgroup_pidlist *cgroup_pidlist_find(struct cgroup *cgrp, in cgroup_pidlist_find() argument 284 lockdep_assert_held(&cgrp->pidlist_mutex); in cgroup_pidlist_find() 286 list_for_each_entry(l, &cgrp->pidlists, links) in cgroup_pidlist_find() 298 static struct cgroup_pidlist *cgroup_pidlist_find_create(struct cgroup *cgrp, in cgroup_pidlist_find_create() argument 303 lockdep_assert_held(&cgrp->pidlist_mutex); in cgroup_pidlist_find_create() [all …]
|
D | cgroup-internal.h | 27 #define TRACE_CGROUP_PATH(type, cgrp, ...) \ argument 33 cgroup_path(cgrp, trace_cgroup_path, \ 35 trace_cgroup_##type(cgrp, trace_cgroup_path, \ 96 struct cgroup *cgrp; member 184 static inline bool cgroup_is_dead(const struct cgroup *cgrp) in cgroup_is_dead() argument 186 return !(cgrp->self.flags & CSS_ONLINE); in cgroup_is_dead() 189 static inline bool notify_on_release(const struct cgroup *cgrp) in notify_on_release() argument 191 return test_bit(CGRP_NOTIFY_ON_RELEASE, &cgrp->flags); in notify_on_release() 222 bool cgroup_on_dfl(const struct cgroup *cgrp); 229 int cgroup_path_ns_locked(struct cgroup *cgrp, char *buf, size_t buflen, [all …]
|
/Linux-v6.6/drivers/gpu/drm/nouveau/nvkm/engine/fifo/ |
D | cgrp.c | 32 nvkm_cgrp_ectx_put(struct nvkm_cgrp *cgrp, struct nvkm_ectx **pectx) in nvkm_cgrp_ectx_put() argument 40 CGRP_TRACE(cgrp, "dtor ectx %d[%s]", engn->id, engn->engine->subdev.name); in nvkm_cgrp_ectx_put() 51 nvkm_cgrp_ectx_get(struct nvkm_cgrp *cgrp, struct nvkm_engn *engn, struct nvkm_ectx **pectx, in nvkm_cgrp_ectx_get() argument 63 ectx = nvkm_list_find(ectx, &cgrp->ectxs, head, ectx->engn == engn); in nvkm_cgrp_ectx_get() 71 CGRP_TRACE(cgrp, "ctor ectx %d[%s]", engn->id, engn->engine->subdev.name); in nvkm_cgrp_ectx_get() 78 list_add_tail(&ectx->head, &cgrp->ectxs); in nvkm_cgrp_ectx_get() 87 nvkm_cgrp_ectx_put(cgrp, pectx); in nvkm_cgrp_ectx_get() 93 nvkm_cgrp_vctx_put(struct nvkm_cgrp *cgrp, struct nvkm_vctx **pvctx) in nvkm_cgrp_vctx_put() argument 101 CGRP_TRACE(cgrp, "dtor vctx %d[%s]", engn->id, engn->engine->subdev.name); in nvkm_cgrp_vctx_put() 105 nvkm_cgrp_ectx_put(cgrp, &vctx->ectx); in nvkm_cgrp_vctx_put() [all …]
|
D | chan.c | 44 struct nvkm_cgrp *cgrp = chan->cgrp; in nvkm_chan_cctx_bind() local 45 struct nvkm_runl *runl = cgrp->runl; in nvkm_chan_cctx_bind() 56 if (cgrp->hw) in nvkm_chan_cctx_bind() 66 if (cgrp->hw) in nvkm_chan_cctx_bind() 80 if (refcount_dec_and_mutex_lock(&cctx->refs, &chan->cgrp->mutex)) { in nvkm_chan_cctx_put() 82 nvkm_cgrp_vctx_put(chan->cgrp, &cctx->vctx); in nvkm_chan_cctx_put() 85 mutex_unlock(&chan->cgrp->mutex); in nvkm_chan_cctx_put() 96 struct nvkm_cgrp *cgrp = chan->cgrp; in nvkm_chan_cctx_get() local 102 mutex_lock(&cgrp->mutex); in nvkm_chan_cctx_get() 108 mutex_unlock(&chan->cgrp->mutex); in nvkm_chan_cctx_get() [all …]
|
D | gk110.c | 38 struct nvkm_cgrp *cgrp = chan->cgrp; in gk110_chan_preempt() local 40 if (cgrp->hw) { in gk110_chan_preempt() 41 cgrp->func->preempt(cgrp); in gk110_chan_preempt() 61 gk110_cgrp_preempt(struct nvkm_cgrp *cgrp) in gk110_cgrp_preempt() argument 63 nvkm_wr32(cgrp->runl->fifo->engine.subdev.device, 0x002634, 0x01000000 | cgrp->id); in gk110_cgrp_preempt() 72 gk110_runl_insert_cgrp(struct nvkm_cgrp *cgrp, struct nvkm_memory *memory, u64 offset) in gk110_runl_insert_cgrp() argument 74 nvkm_wo32(memory, offset + 0, (cgrp->chan_nr << 26) | (128 << 18) | in gk110_runl_insert_cgrp() 75 (3 << 14) | 0x00002000 | cgrp->id); in gk110_runl_insert_cgrp() 123 .cgrp = {{ 0, 0, KEPLER_CHANNEL_GROUP_A }, &gk110_cgrp },
|
D | runl.c | 36 struct nvkm_cgrp *cgrp = NULL; in nvkm_engn_cgrp_get() local 48 cgrp = chan->cgrp; in nvkm_engn_cgrp_get() 50 cgrp = nvkm_runl_cgrp_get_cgid(engn->runl, id, pirqflags); in nvkm_engn_cgrp_get() 53 WARN_ON(!cgrp); in nvkm_engn_cgrp_get() 54 return cgrp; in nvkm_engn_cgrp_get() 61 struct nvkm_cgrp *cgrp, *gtmp; in nvkm_runl_rc() local 75 nvkm_runl_foreach_cgrp_safe(cgrp, gtmp, runl) { in nvkm_runl_rc() 76 state = atomic_cmpxchg(&cgrp->rc, NVKM_CGRP_RC_PENDING, NVKM_CGRP_RC_RUNNING); in nvkm_runl_rc() 79 nvkm_cgrp_foreach_chan_safe(chan, ctmp, cgrp) { in nvkm_runl_rc() 102 cgrp = nvkm_engn_cgrp_get(engn, &flags); in nvkm_runl_rc() [all …]
|
D | ucgrp.c | 33 struct nvkm_cgrp *cgrp; member 40 struct nvkm_cgrp *cgrp = nvkm_ucgrp(oclass->parent)->cgrp; in nvkm_ucgrp_chan_new() local 42 return nvkm_uchan_new(cgrp->runl->fifo, cgrp, oclass, argv, argc, pobject); in nvkm_ucgrp_chan_new() 48 struct nvkm_cgrp *cgrp = nvkm_ucgrp(object)->cgrp; in nvkm_ucgrp_sclass() local 49 struct nvkm_fifo *fifo = cgrp->runl->fifo; in nvkm_ucgrp_sclass() 70 nvkm_cgrp_unref(&ucgrp->cgrp); in nvkm_ucgrp_dtor() 115 ret = nvkm_cgrp_new(runl, args->v0.name, vmm, true, &ucgrp->cgrp); in nvkm_ucgrp_new() 120 args->v0.cgid = ucgrp->cgrp->id; in nvkm_ucgrp_new()
|
/Linux-v6.6/tools/testing/selftests/bpf/progs/ |
D | cgrp_kfunc_failure.c | 20 static struct __cgrps_kfunc_map_value *insert_lookup_cgrp(struct cgroup *cgrp) in insert_lookup_cgrp() argument 24 status = cgrps_kfunc_map_insert(cgrp); in insert_lookup_cgrp() 28 return cgrps_kfunc_map_value_lookup(cgrp); in insert_lookup_cgrp() 33 int BPF_PROG(cgrp_kfunc_acquire_untrusted, struct cgroup *cgrp, const char *path) in BPF_PROG() argument 38 v = insert_lookup_cgrp(cgrp); in BPF_PROG() 43 acquired = bpf_cgroup_acquire(v->cgrp); in BPF_PROG() 52 int BPF_PROG(cgrp_kfunc_acquire_no_null_check, struct cgroup *cgrp, const char *path) in BPF_PROG() argument 56 acquired = bpf_cgroup_acquire(cgrp); in BPF_PROG() 68 int BPF_PROG(cgrp_kfunc_acquire_fp, struct cgroup *cgrp, const char *path) in BPF_PROG() argument 82 int BPF_PROG(cgrp_kfunc_acquire_unsafe_kretprobe, struct cgroup *cgrp) in BPF_PROG() argument [all …]
|
D | cgrp_kfunc_success.c | 33 int BPF_PROG(test_cgrp_acquire_release_argument, struct cgroup *cgrp, const char *path) in BPF_PROG() argument 40 acquired = bpf_cgroup_acquire(cgrp); in BPF_PROG() 50 int BPF_PROG(test_cgrp_acquire_leave_in_map, struct cgroup *cgrp, const char *path) in BPF_PROG() argument 57 status = cgrps_kfunc_map_insert(cgrp); in BPF_PROG() 65 int BPF_PROG(test_cgrp_xchg_release, struct cgroup *cgrp, const char *path) in BPF_PROG() argument 74 status = cgrps_kfunc_map_insert(cgrp); in BPF_PROG() 80 v = cgrps_kfunc_map_value_lookup(cgrp); in BPF_PROG() 86 kptr = v->cgrp; in BPF_PROG() 96 kptr = bpf_kptr_xchg(&v->cgrp, NULL); in BPF_PROG() 108 int BPF_PROG(test_cgrp_get_release, struct cgroup *cgrp, const char *path) in BPF_PROG() argument [all …]
|
D | cgrp_ls_sleepable.c | 27 struct cgroup *cgrp = ctx->cgroup; in cgroup_iter() local 30 if (cgrp == NULL) in cgroup_iter() 33 ptr = bpf_cgrp_storage_get(&map_a, cgrp, 0, in cgroup_iter() 36 cgroup_id = cgrp->kn->id; in cgroup_iter() 44 struct cgroup *cgrp; in no_rcu_lock() local 52 cgrp = task->cgroups->dfl_cgrp; in no_rcu_lock() 53 ptr = bpf_cgrp_storage_get(&map_a, cgrp, 0, in no_rcu_lock() 56 cgroup_id = cgrp->kn->id; in no_rcu_lock() 64 struct cgroup *cgrp; in yes_rcu_lock() local 72 cgrp = task->cgroups->dfl_cgrp; in yes_rcu_lock() [all …]
|
D | cgrp_kfunc_common.h | 13 struct cgroup __kptr * cgrp; member 25 struct cgroup *bpf_cgroup_ancestor(struct cgroup *cgrp, int level) __ksym; 30 static inline struct __cgrps_kfunc_map_value *cgrps_kfunc_map_value_lookup(struct cgroup *cgrp) in cgrps_kfunc_map_value_lookup() argument 35 status = bpf_probe_read_kernel(&id, sizeof(id), &cgrp->self.id); in cgrps_kfunc_map_value_lookup() 42 static inline int cgrps_kfunc_map_insert(struct cgroup *cgrp) in cgrps_kfunc_map_insert() argument 49 status = bpf_probe_read_kernel(&id, sizeof(id), &cgrp->self.id); in cgrps_kfunc_map_insert() 53 local.cgrp = NULL; in cgrps_kfunc_map_insert() 64 acquired = bpf_cgroup_acquire(cgrp); in cgrps_kfunc_map_insert() 70 old = bpf_kptr_xchg(&v->cgrp, acquired); in cgrps_kfunc_map_insert()
|
D | cgroup_hierarchical_stats.c | 40 extern void cgroup_rstat_updated(struct cgroup *cgrp, int cpu) __ksym; 41 extern void cgroup_rstat_flush(struct cgroup *cgrp) __ksym; 43 static uint64_t cgroup_id(struct cgroup *cgrp) in cgroup_id() argument 45 return cgrp->kn->id; in cgroup_id() 83 int BPF_PROG(flusher, struct cgroup *cgrp, struct cgroup *parent, int cpu) in BPF_PROG() argument 87 __u64 cg_id = cgroup_id(cgrp); in BPF_PROG() 133 int BPF_PROG(dumper, struct bpf_iter_meta *meta, struct cgroup *cgrp) in BPF_PROG() argument 137 __u64 cg_id = cgrp ? cgroup_id(cgrp) : 0; in BPF_PROG() 144 cgroup_rstat_flush(cgrp); in BPF_PROG()
|
D | cgroup_iter.c | 12 static inline u64 cgroup_id(struct cgroup *cgrp) in cgroup_id() argument 14 return cgrp->kn->id; in cgroup_id() 21 struct cgroup *cgrp = ctx->cgroup; in cgroup_id_printer() local 24 if (cgrp == NULL) { in cgroup_id_printer() 33 BPF_SEQ_PRINTF(seq, "%8llu\n", cgroup_id(cgrp)); in cgroup_id_printer() 35 if (terminal_cgroup == cgroup_id(cgrp)) in cgroup_id_printer()
|
D | test_task_under_cgroup.c | 23 struct cgroup *cgrp = NULL; in BPF_PROG() local 36 cgrp = bpf_cgroup_from_id(cgid); in BPF_PROG() 37 if (!cgrp) in BPF_PROG() 40 if (bpf_task_under_cgroup(acquired, cgrp)) in BPF_PROG() 44 if (cgrp) in BPF_PROG() 45 bpf_cgroup_release(cgrp); in BPF_PROG()
|
/Linux-v6.6/tools/perf/util/ |
D | cgroup.c | 51 int read_cgroup_id(struct cgroup *cgrp) in read_cgroup_id() argument 64 scnprintf(path, PATH_MAX, "%s/%s", mnt, cgrp->name); in read_cgroup_id() 70 cgrp->id = handle.cgroup_id; in read_cgroup_id() 100 if (!counter->cgrp) in evlist__find_cgroup() 102 if (!strcmp(counter->cgrp->name, str)) in evlist__find_cgroup() 103 return cgroup__get(counter->cgrp); in evlist__find_cgroup() 148 struct cgroup *cgrp = evlist__findnew_cgroup(evlist, str); in add_cgroup() local 151 if (!cgrp) in add_cgroup() 164 cgroup__put(cgrp); in add_cgroup() 167 counter->cgrp = cgrp; in add_cgroup() [all …]
|
D | bpf_counter_cgroup.c | 48 struct cgroup *cgrp, *leader_cgrp; in bperf_load_program() local 109 cgrp = NULL; in bperf_load_program() 113 if (cgrp == NULL || evsel->cgrp == leader_cgrp) { in bperf_load_program() 114 leader_cgrp = evsel->cgrp; in bperf_load_program() 115 evsel->cgrp = NULL; in bperf_load_program() 130 evsel->cgrp = leader_cgrp; in bperf_load_program() 133 if (evsel->cgrp == cgrp) in bperf_load_program() 136 cgrp = evsel->cgrp; in bperf_load_program() 138 if (read_cgroup_id(cgrp) < 0) { in bperf_load_program() 145 err = bpf_map_update_elem(map_fd, &cgrp->id, &i, BPF_ANY); in bperf_load_program() [all …]
|
/Linux-v6.6/include/linux/ |
D | cgroup.h | 325 static inline u64 cgroup_id(const struct cgroup *cgrp) in cgroup_id() argument 327 return cgrp->kn->id; in cgroup_id() 350 static inline void cgroup_get(struct cgroup *cgrp) in cgroup_get() argument 352 css_get(&cgrp->self); in cgroup_get() 355 static inline bool cgroup_tryget(struct cgroup *cgrp) in cgroup_tryget() argument 357 return css_tryget(&cgrp->self); in cgroup_tryget() 360 static inline void cgroup_put(struct cgroup *cgrp) in cgroup_put() argument 362 css_put(&cgrp->self); in cgroup_put() 495 static inline struct cgroup *cgroup_parent(struct cgroup *cgrp) in cgroup_parent() argument 497 struct cgroup_subsys_state *parent_css = cgrp->self.parent; in cgroup_parent() [all …]
|
D | psi.h | 35 static inline struct psi_group *cgroup_psi(struct cgroup *cgrp) in cgroup_psi() argument 37 return cgroup_ino(cgrp) == 1 ? &psi_system : cgrp->psi; in cgroup_psi() 40 int psi_cgroup_alloc(struct cgroup *cgrp); 41 void psi_cgroup_free(struct cgroup *cgrp); 54 static inline int psi_cgroup_alloc(struct cgroup *cgrp) in psi_cgroup_alloc() argument 58 static inline void psi_cgroup_free(struct cgroup *cgrp) in psi_cgroup_free() argument
|
/Linux-v6.6/include/trace/events/ |
D | cgroup.h | 56 TP_PROTO(struct cgroup *cgrp, const char *path), 58 TP_ARGS(cgrp, path), 68 __entry->root = cgrp->root->hierarchy_id; 69 __entry->id = cgroup_id(cgrp); 70 __entry->level = cgrp->level; 80 TP_PROTO(struct cgroup *cgrp, const char *path), 82 TP_ARGS(cgrp, path) 87 TP_PROTO(struct cgroup *cgrp, const char *path), 89 TP_ARGS(cgrp, path) 94 TP_PROTO(struct cgroup *cgrp, const char *path), [all …]
|
/Linux-v6.6/kernel/bpf/ |
D | cgroup.c | 31 bpf_prog_run_array_cg(const struct cgroup_bpf *cgrp, in bpf_prog_run_array_cg() argument 46 array = rcu_dereference(cgrp->effective[atype]); in bpf_prog_run_array_cg() 71 struct cgroup *cgrp; in __cgroup_bpf_run_lsm_sock() local 80 cgrp = sock_cgroup_ptr(&sk->sk_cgrp_data); in __cgroup_bpf_run_lsm_sock() 81 if (likely(cgrp)) in __cgroup_bpf_run_lsm_sock() 82 ret = bpf_prog_run_array_cg(&cgrp->bpf, in __cgroup_bpf_run_lsm_sock() 93 struct cgroup *cgrp; in __cgroup_bpf_run_lsm_socket() local 102 cgrp = sock_cgroup_ptr(&sock->sk->sk_cgrp_data); in __cgroup_bpf_run_lsm_socket() 103 if (likely(cgrp)) in __cgroup_bpf_run_lsm_socket() 104 ret = bpf_prog_run_array_cg(&cgrp->bpf, in __cgroup_bpf_run_lsm_socket() [all …]
|
/Linux-v6.6/tools/testing/selftests/bpf/ |
D | test_sockmap.c | 1376 static int __test_exec(int cgrp, int test, struct sockmap_options *opt) in __test_exec() argument 1400 err = run_options(opt, cgrp, test); in __test_exec() 1409 static void test_exec(int cgrp, struct sockmap_options *opt) in test_exec() argument 1416 err = __test_exec(cgrp, SENDMSG, opt); in test_exec() 1421 err = __test_exec(cgrp, SENDPAGE, opt); in test_exec() 1427 static void test_send_one(struct sockmap_options *opt, int cgrp) in test_send_one() argument 1432 test_exec(cgrp, opt); in test_send_one() 1437 test_exec(cgrp, opt); in test_send_one() 1442 test_exec(cgrp, opt); in test_send_one() 1446 static void test_send_many(struct sockmap_options *opt, int cgrp) in test_send_many() argument [all …]
|
/Linux-v6.6/block/ |
D | blk-cgroup-fc-appid.c | 13 struct cgroup *cgrp; in blkcg_set_fc_appid() local 21 cgrp = cgroup_get_from_id(cgrp_id); in blkcg_set_fc_appid() 22 if (IS_ERR(cgrp)) in blkcg_set_fc_appid() 23 return PTR_ERR(cgrp); in blkcg_set_fc_appid() 24 css = cgroup_get_e_css(cgrp, &io_cgrp_subsys); in blkcg_set_fc_appid() 40 cgroup_put(cgrp); in blkcg_set_fc_appid()
|