Lines Matching refs:kn

278 static int rdtgroup_kn_set_ugid(struct kernfs_node *kn)  in rdtgroup_kn_set_ugid()  argument
288 return kernfs_setattr(kn, &iattr); in rdtgroup_kn_set_ugid()
293 struct kernfs_node *kn; in rdtgroup_add_file() local
296 kn = __kernfs_create_file(parent_kn, rft->name, rft->mode, in rdtgroup_add_file()
299 if (IS_ERR(kn)) in rdtgroup_add_file()
300 return PTR_ERR(kn); in rdtgroup_add_file()
302 ret = rdtgroup_kn_set_ugid(kn); in rdtgroup_add_file()
304 kernfs_remove(kn); in rdtgroup_add_file()
314 struct rftype *rft = of->kn->priv; in rdtgroup_seqfile_show()
324 struct rftype *rft = of->kn->priv; in rdtgroup_file_write()
345 struct rftype *rft = of->kn->priv; in is_cpu_list()
357 rdtgrp = rdtgroup_kn_lock_live(of->kn); in rdtgroup_cpus_show()
378 rdtgroup_kn_unlock(of->kn); in rdtgroup_cpus_show()
533 rdtgrp = rdtgroup_kn_lock_live(of->kn); in rdtgroup_cpus_write()
574 rdtgroup_kn_unlock(of->kn); in rdtgroup_cpus_write()
596 kernfs_put(rdtgrp->kn); in rdtgroup_remove()
777 rdtgrp = rdtgroup_kn_lock_live(of->kn); in rdtgroup_tasks_write()
779 rdtgroup_kn_unlock(of->kn); in rdtgroup_tasks_write()
814 rdtgroup_kn_unlock(of->kn); in rdtgroup_tasks_write()
841 rdtgrp = rdtgroup_kn_lock_live(of->kn); in rdtgroup_tasks_show()
846 rdtgroup_kn_unlock(of->kn); in rdtgroup_tasks_show()
857 rdtgrp = rdtgroup_kn_lock_live(of->kn); in rdtgroup_closid_show()
862 rdtgroup_kn_unlock(of->kn); in rdtgroup_closid_show()
873 rdtgrp = rdtgroup_kn_lock_live(of->kn); in rdtgroup_rmid_show()
878 rdtgroup_kn_unlock(of->kn); in rdtgroup_rmid_show()
944 rdt_kn_name(rdtg->kn)); in proc_resctrl_show()
951 seq_printf(s, "%s", rdt_kn_name(crg->kn)); in proc_resctrl_show()
984 void *rdt_kn_parent_priv(struct kernfs_node *kn) in rdt_kn_parent_priv() argument
991 return rcu_dereference(kn->__parent)->priv; in rdt_kn_parent_priv()
997 struct resctrl_schema *s = rdt_kn_parent_priv(of->kn); in rdt_num_closids_show()
1006 struct resctrl_schema *s = rdt_kn_parent_priv(of->kn); in rdt_default_ctrl_show()
1016 struct resctrl_schema *s = rdt_kn_parent_priv(of->kn); in rdt_min_cbm_bits_show()
1026 struct resctrl_schema *s = rdt_kn_parent_priv(of->kn); in rdt_shareable_bits_show()
1050 struct resctrl_schema *s = rdt_kn_parent_priv(of->kn); in rdt_bit_usage_show()
1149 struct resctrl_schema *s = rdt_kn_parent_priv(of->kn); in rdt_min_bw_show()
1159 struct rdt_resource *r = rdt_kn_parent_priv(of->kn); in rdt_num_rmids_show()
1169 struct rdt_resource *r = rdt_kn_parent_priv(of->kn); in rdt_mon_features_show()
1187 struct resctrl_schema *s = rdt_kn_parent_priv(of->kn); in rdt_bw_gran_show()
1197 struct resctrl_schema *s = rdt_kn_parent_priv(of->kn); in rdt_delay_linear_show()
1215 struct resctrl_schema *s = rdt_kn_parent_priv(of->kn); in rdt_thread_throttle_mode_show()
1261 rdtgrp = rdtgroup_kn_lock_live(of->kn); in rdtgroup_mode_show()
1263 rdtgroup_kn_unlock(of->kn); in rdtgroup_mode_show()
1269 rdtgroup_kn_unlock(of->kn); in rdtgroup_mode_show()
1289 struct resctrl_schema *s = rdt_kn_parent_priv(of->kn); in rdt_has_sparse_bitmasks_show()
1451 rdtgrp = rdtgroup_kn_lock_live(of->kn); in rdtgroup_mode_write()
1453 rdtgroup_kn_unlock(of->kn); in rdtgroup_mode_write()
1504 rdtgroup_kn_unlock(of->kn); in rdtgroup_mode_write()
1576 rdtgrp = rdtgroup_kn_lock_live(of->kn); in rdtgroup_size_show()
1578 rdtgroup_kn_unlock(of->kn); in rdtgroup_size_show()
1630 rdtgroup_kn_unlock(of->kn); in rdtgroup_size_show()
1674 struct rdt_resource *r = rdt_kn_parent_priv(of->kn); in mbm_total_bytes_config_show()
1684 struct rdt_resource *r = rdt_kn_parent_priv(of->kn); in mbm_local_bytes_config_show()
1778 struct rdt_resource *r = rdt_kn_parent_priv(of->kn); in mbm_total_bytes_config_write()
1804 struct rdt_resource *r = rdt_kn_parent_priv(of->kn); in mbm_local_bytes_config_write()
1870 return rdt_kn_name(rdtgrp->kn); in rdtgroup_name_by_closid()
2121 static int rdtgroup_add_files(struct kernfs_node *kn, unsigned long fflags) in rdtgroup_add_files() argument
2136 ret = rdtgroup_add_file(kn, rft); in rdtgroup_add_files()
2147 kernfs_remove_by_name(kn, rft->name); in rdtgroup_add_files()
2236 struct kernfs_node *kn; in rdtgroup_kn_mode_restrict() local
2239 kn = kernfs_find_and_get_ns(r->kn, name, NULL); in rdtgroup_kn_mode_restrict()
2240 if (!kn) in rdtgroup_kn_mode_restrict()
2243 switch (kernfs_type(kn)) { in rdtgroup_kn_mode_restrict()
2255 ret = kernfs_setattr(kn, &iattr); in rdtgroup_kn_mode_restrict()
2256 kernfs_put(kn); in rdtgroup_kn_mode_restrict()
2275 struct kernfs_node *kn, *parent; in rdtgroup_kn_mode_restore() local
2287 kn = kernfs_find_and_get_ns(r->kn, name, NULL); in rdtgroup_kn_mode_restore()
2288 if (!kn) in rdtgroup_kn_mode_restore()
2291 switch (kernfs_type(kn)) { in rdtgroup_kn_mode_restore()
2293 parent = kernfs_get_parent(kn); in rdtgroup_kn_mode_restore()
2308 ret = kernfs_setattr(kn, &iattr); in rdtgroup_kn_mode_restore()
2309 kernfs_put(kn); in rdtgroup_kn_mode_restore()
2457 struct kernfs_node *kn; in mongroup_create_dir() local
2461 kn = kernfs_create_dir(parent_kn, name, parent_kn->mode, prgrp); in mongroup_create_dir()
2462 if (IS_ERR(kn)) in mongroup_create_dir()
2463 return PTR_ERR(kn); in mongroup_create_dir()
2466 *dest_kn = kn; in mongroup_create_dir()
2468 ret = rdtgroup_kn_set_ugid(kn); in mongroup_create_dir()
2472 kernfs_activate(kn); in mongroup_create_dir()
2477 kernfs_remove(kn); in mongroup_create_dir()
2564 static struct rdtgroup *kernfs_to_rdtgroup(struct kernfs_node *kn) in kernfs_to_rdtgroup() argument
2566 if (kernfs_type(kn) == KERNFS_DIR) { in kernfs_to_rdtgroup()
2573 if (kn == kn_info || in kernfs_to_rdtgroup()
2574 rcu_access_pointer(kn->__parent) == kn_info) in kernfs_to_rdtgroup()
2577 return kn->priv; in kernfs_to_rdtgroup()
2579 return rdt_kn_parent_priv(kn); in kernfs_to_rdtgroup()
2583 static void rdtgroup_kn_get(struct rdtgroup *rdtgrp, struct kernfs_node *kn) in rdtgroup_kn_get() argument
2586 kernfs_break_active_protection(kn); in rdtgroup_kn_get()
2589 static void rdtgroup_kn_put(struct rdtgroup *rdtgrp, struct kernfs_node *kn) in rdtgroup_kn_put() argument
2596 kernfs_unbreak_active_protection(kn); in rdtgroup_kn_put()
2599 kernfs_unbreak_active_protection(kn); in rdtgroup_kn_put()
2603 struct rdtgroup *rdtgroup_kn_lock_live(struct kernfs_node *kn) in rdtgroup_kn_lock_live() argument
2605 struct rdtgroup *rdtgrp = kernfs_to_rdtgroup(kn); in rdtgroup_kn_lock_live()
2610 rdtgroup_kn_get(rdtgrp, kn); in rdtgroup_kn_lock_live()
2622 void rdtgroup_kn_unlock(struct kernfs_node *kn) in rdtgroup_kn_unlock() argument
2624 struct rdtgroup *rdtgrp = kernfs_to_rdtgroup(kn); in rdtgroup_kn_unlock()
2632 rdtgroup_kn_put(rdtgrp, kn); in rdtgroup_kn_unlock()
2826 ret = rdtgroup_add_files(rdtgroup_default.kn, flags); in rdt_get_tree()
2830 kernfs_activate(rdtgroup_default.kn); in rdt_get_tree()
2832 ret = rdtgroup_create_info_dir(rdtgroup_default.kn); in rdt_get_tree()
2837 ret = mongroup_create_dir(rdtgroup_default.kn, in rdt_get_tree()
2845 ret = mkdir_mondata_all(rdtgroup_default.kn, in rdt_get_tree()
3076 kernfs_remove(rdtgrp->kn); in rmdir_all_sub()
3155 if (!rdtgroup_default.kn) in resctrl_fs_teardown()
3202 struct kernfs_node *kn; in mon_addfile() local
3205 kn = __kernfs_create_file(parent_kn, name, 0444, in mon_addfile()
3208 if (IS_ERR(kn)) in mon_addfile()
3209 return PTR_ERR(kn); in mon_addfile()
3211 ret = rdtgroup_kn_set_ugid(kn); in mon_addfile()
3213 kernfs_remove(kn); in mon_addfile()
3222 struct kernfs_node *kn; in mon_rmdir_one_subdir() local
3224 kn = kernfs_find_and_get(pkn, name); in mon_rmdir_one_subdir()
3225 if (!kn) in mon_rmdir_one_subdir()
3227 kernfs_put(kn); in mon_rmdir_one_subdir()
3229 if (kn->dir.subdirs <= 1) in mon_rmdir_one_subdir()
3230 kernfs_remove(kn); in mon_rmdir_one_subdir()
3232 kernfs_remove_by_name(kn, subname); in mon_rmdir_one_subdir()
3297 struct kernfs_node *kn; in _mkdir_mondata_subdir() local
3302 kn = kernfs_create_dir(parent_kn, name, parent_kn->mode, prgrp); in _mkdir_mondata_subdir()
3303 if (IS_ERR(kn)) in _mkdir_mondata_subdir()
3304 return kn; in _mkdir_mondata_subdir()
3306 ret = rdtgroup_kn_set_ugid(kn); in _mkdir_mondata_subdir()
3319 ret = mon_addfile(kn, mevt->name, priv); in _mkdir_mondata_subdir()
3327 return kn; in _mkdir_mondata_subdir()
3329 kernfs_remove(kn); in _mkdir_mondata_subdir()
3337 struct kernfs_node *ckn, *kn; in mkdir_mondata_subdir_snc() local
3346 kn = kernfs_find_and_get(parent_kn, name); in mkdir_mondata_subdir_snc()
3347 if (kn) { in mkdir_mondata_subdir_snc()
3352 kernfs_put(kn); in mkdir_mondata_subdir_snc()
3354 kn = _mkdir_mondata_subdir(parent_kn, name, NULL, r, prgrp, d->ci_id); in mkdir_mondata_subdir_snc()
3355 if (IS_ERR(kn)) in mkdir_mondata_subdir_snc()
3356 return PTR_ERR(kn); in mkdir_mondata_subdir_snc()
3360 ckn = _mkdir_mondata_subdir(kn, name, hdr, r, prgrp, hdr->id); in mkdir_mondata_subdir_snc()
3362 kernfs_remove(kn); in mkdir_mondata_subdir_snc()
3366 kernfs_activate(kn); in mkdir_mondata_subdir_snc()
3374 struct kernfs_node *kn; in mkdir_mondata_subdir() local
3383 kn = _mkdir_mondata_subdir(parent_kn, name, hdr, r, prgrp, hdr->id); in mkdir_mondata_subdir()
3384 if (IS_ERR(kn)) in mkdir_mondata_subdir()
3385 return PTR_ERR(kn); in mkdir_mondata_subdir()
3387 kernfs_activate(kn); in mkdir_mondata_subdir()
3455 struct kernfs_node *kn; in mkdir_mondata_all() local
3461 ret = mongroup_create_dir(parent_kn, prgrp, "mon_data", &kn); in mkdir_mondata_all()
3466 *dest_kn = kn; in mkdir_mondata_all()
3473 ret = mkdir_mondata_subdir_alldom(kn, r, prgrp); in mkdir_mondata_all()
3481 kernfs_remove(kn); in mkdir_mondata_all()
3686 ret = mkdir_mondata_all(rdtgrp->kn, rdtgrp, &rdtgrp->mon.mon_data_kn); in mkdir_rdt_prepare_rmid_alloc()
3715 static bool is_mon_groups(struct kernfs_node *kn, const char *name) in is_mon_groups() argument
3717 return (!strcmp(rdt_kn_name(kn), "mon_groups") && in is_mon_groups()
3727 struct kernfs_node *kn; in mkdir_rdt_prepare() local
3768 kn = kernfs_create_dir(parent_kn, name, mode, rdtgrp); in mkdir_rdt_prepare()
3769 if (IS_ERR(kn)) { in mkdir_rdt_prepare()
3770 ret = PTR_ERR(kn); in mkdir_rdt_prepare()
3774 rdtgrp->kn = kn; in mkdir_rdt_prepare()
3782 kernfs_get(kn); in mkdir_rdt_prepare()
3784 ret = rdtgroup_kn_set_ugid(kn); in mkdir_rdt_prepare()
3798 ret = rdtgroup_add_files(kn, files); in mkdir_rdt_prepare()
3810 kernfs_put(rdtgrp->kn); in mkdir_rdt_prepare()
3811 kernfs_remove(rdtgrp->kn); in mkdir_rdt_prepare()
3821 kernfs_remove(rgrp->kn); in mkdir_rdt_prepare_clean()
3849 kernfs_activate(rdtgrp->kn); in rdtgroup_mkdir_mon()
3870 struct kernfs_node *kn; in rdtgroup_mkdir_ctrl_mon() local
3878 kn = rdtgrp->kn; in rdtgroup_mkdir_ctrl_mon()
3893 kernfs_activate(rdtgrp->kn); in rdtgroup_mkdir_ctrl_mon()
3906 ret = mongroup_create_dir(kn, rdtgrp, "mon_groups", NULL); in rdtgroup_mkdir_ctrl_mon()
3942 if (resctrl_arch_alloc_capable() && parent_kn == rdtgroup_default.kn) in rdtgroup_mkdir()
3989 kernfs_remove(rdtgrp->kn); in rdtgroup_rmdir_mon()
3999 kernfs_remove(rdtgrp->kn); in rdtgroup_ctrl_remove()
4043 static struct kernfs_node *rdt_kn_parent(struct kernfs_node *kn) in rdt_kn_parent() argument
4049 return rcu_dereference_check(kn->__parent, lockdep_is_held(&rdtgroup_mutex)); in rdt_kn_parent()
4052 static int rdtgroup_rmdir(struct kernfs_node *kn) in rdtgroup_rmdir() argument
4062 rdtgrp = rdtgroup_kn_lock_live(kn); in rdtgroup_rmdir()
4067 parent_kn = rdt_kn_parent(kn); in rdtgroup_rmdir()
4076 if (rdtgrp->type == RDTCTRL_GROUP && parent_kn == rdtgroup_default.kn && in rdtgroup_rmdir()
4085 is_mon_groups(parent_kn, rdt_kn_name(kn))) { in rdtgroup_rmdir()
4092 rdtgroup_kn_unlock(kn); in rdtgroup_rmdir()
4133 static int rdtgroup_rename(struct kernfs_node *kn, in rdtgroup_rename() argument
4142 rdtgrp = kernfs_to_rdtgroup(kn); in rdtgroup_rename()
4148 rdtgroup_kn_get(rdtgrp, kn); in rdtgroup_rename()
4159 if (kernfs_type(kn) != KERNFS_DIR || in rdtgroup_rename()
4171 kn_parent = rdt_kn_parent(kn); in rdtgroup_rename()
4173 !is_mon_groups(kn_parent, rdt_kn_name(kn))) { in rdtgroup_rename()
4213 ret = kernfs_rename(kn, new_parent, new_name); in rdtgroup_rename()
4221 rdtgroup_kn_put(rdtgrp, kn); in rdtgroup_rename()
4260 rdtgroup_default.kn = kernfs_root_to_node(rdt_root); in rdtgroup_setup_root()
4270 rdtgroup_default.kn = NULL; in rdtgroup_destroy_root()