Lines Matching refs:rdtgrp
37 const struct rdtgroup *rdtgrp; in pseudo_lock_devnode() local
39 rdtgrp = dev_get_drvdata(dev); in pseudo_lock_devnode()
43 return kasprintf(GFP_KERNEL, "pseudo_lock/%s", rdt_kn_name(rdtgrp->kn)); in pseudo_lock_devnode()
100 struct rdtgroup *rdtgrp, *rdtgrp_match = NULL; in region_find_by_minor() local
102 list_for_each_entry(rdtgrp, &rdt_all_groups, rdtgroup_list) { in region_find_by_minor()
103 if (rdtgrp->plr && rdtgrp->plr->minor == minor) { in region_find_by_minor()
104 rdtgrp_match = rdtgrp; in region_find_by_minor()
269 static int pseudo_lock_init(struct rdtgroup *rdtgrp) in pseudo_lock_init() argument
279 rdtgrp->plr = plr; in pseudo_lock_init()
336 static void pseudo_lock_free(struct rdtgroup *rdtgrp) in pseudo_lock_free() argument
338 pseudo_lock_region_clear(rdtgrp->plr); in pseudo_lock_free()
339 kfree(rdtgrp->plr); in pseudo_lock_free()
340 rdtgrp->plr = NULL; in pseudo_lock_free()
350 static int rdtgroup_monitor_in_progress(struct rdtgroup *rdtgrp) in rdtgroup_monitor_in_progress() argument
352 return !list_empty(&rdtgrp->mon.crdtgrp_list); in rdtgroup_monitor_in_progress()
370 static int rdtgroup_locksetup_user_restrict(struct rdtgroup *rdtgrp) in rdtgroup_locksetup_user_restrict() argument
374 ret = rdtgroup_kn_mode_restrict(rdtgrp, "tasks"); in rdtgroup_locksetup_user_restrict()
378 ret = rdtgroup_kn_mode_restrict(rdtgrp, "cpus"); in rdtgroup_locksetup_user_restrict()
382 ret = rdtgroup_kn_mode_restrict(rdtgrp, "cpus_list"); in rdtgroup_locksetup_user_restrict()
387 ret = rdtgroup_kn_mode_restrict(rdtgrp, "mon_groups"); in rdtgroup_locksetup_user_restrict()
396 rdtgroup_kn_mode_restore(rdtgrp, "cpus_list", 0777); in rdtgroup_locksetup_user_restrict()
398 rdtgroup_kn_mode_restore(rdtgrp, "cpus", 0777); in rdtgroup_locksetup_user_restrict()
400 rdtgroup_kn_mode_restore(rdtgrp, "tasks", 0777); in rdtgroup_locksetup_user_restrict()
417 static int rdtgroup_locksetup_user_restore(struct rdtgroup *rdtgrp) in rdtgroup_locksetup_user_restore() argument
421 ret = rdtgroup_kn_mode_restore(rdtgrp, "tasks", 0777); in rdtgroup_locksetup_user_restore()
425 ret = rdtgroup_kn_mode_restore(rdtgrp, "cpus", 0777); in rdtgroup_locksetup_user_restore()
429 ret = rdtgroup_kn_mode_restore(rdtgrp, "cpus_list", 0777); in rdtgroup_locksetup_user_restore()
434 ret = rdtgroup_kn_mode_restore(rdtgrp, "mon_groups", 0777); in rdtgroup_locksetup_user_restore()
443 rdtgroup_kn_mode_restrict(rdtgrp, "cpus_list"); in rdtgroup_locksetup_user_restore()
445 rdtgroup_kn_mode_restrict(rdtgrp, "cpus"); in rdtgroup_locksetup_user_restore()
447 rdtgroup_kn_mode_restrict(rdtgrp, "tasks"); in rdtgroup_locksetup_user_restore()
470 int rdtgroup_locksetup_enter(struct rdtgroup *rdtgrp) in rdtgroup_locksetup_enter() argument
478 if (rdtgrp == &rdtgroup_default) { in rdtgroup_locksetup_enter()
524 if (rdtgroup_monitor_in_progress(rdtgrp)) { in rdtgroup_locksetup_enter()
529 if (rdtgroup_tasks_assigned(rdtgrp)) { in rdtgroup_locksetup_enter()
534 if (!cpumask_empty(&rdtgrp->cpu_mask)) { in rdtgroup_locksetup_enter()
539 if (rdtgroup_locksetup_user_restrict(rdtgrp)) { in rdtgroup_locksetup_enter()
544 ret = pseudo_lock_init(rdtgrp); in rdtgroup_locksetup_enter()
556 free_rmid(rdtgrp->closid, rdtgrp->mon.rmid); in rdtgroup_locksetup_enter()
562 rdtgroup_locksetup_user_restore(rdtgrp); in rdtgroup_locksetup_enter()
576 int rdtgroup_locksetup_exit(struct rdtgroup *rdtgrp) in rdtgroup_locksetup_exit() argument
581 ret = alloc_rmid(rdtgrp->closid); in rdtgroup_locksetup_exit()
586 rdtgrp->mon.rmid = ret; in rdtgroup_locksetup_exit()
589 ret = rdtgroup_locksetup_user_restore(rdtgrp); in rdtgroup_locksetup_exit()
591 free_rmid(rdtgrp->closid, rdtgrp->mon.rmid); in rdtgroup_locksetup_exit()
595 pseudo_lock_free(rdtgrp); in rdtgroup_locksetup_exit()
689 static int pseudo_lock_measure_cycles(struct rdtgroup *rdtgrp, int sel) in pseudo_lock_measure_cycles() argument
691 struct pseudo_lock_region *plr = rdtgrp->plr; in pseudo_lock_measure_cycles()
699 if (rdtgrp->flags & RDT_DELETED) { in pseudo_lock_measure_cycles()
752 struct rdtgroup *rdtgrp = file->private_data; in pseudo_lock_measure_trigger() local
767 ret = pseudo_lock_measure_cycles(rdtgrp, sel); in pseudo_lock_measure_trigger()
797 int rdtgroup_pseudo_lock_create(struct rdtgroup *rdtgrp) in rdtgroup_pseudo_lock_create() argument
799 struct pseudo_lock_region *plr = rdtgrp->plr; in rdtgroup_pseudo_lock_create()
815 kn_name = kstrdup(rdt_kn_name(rdtgrp->kn), GFP_KERNEL); in rdtgroup_pseudo_lock_create()
867 plr->debugfs_dir, rdtgrp, in rdtgroup_pseudo_lock_create()
873 rdtgrp, "%s", kn_name); in rdtgroup_pseudo_lock_create()
885 if (rdtgrp->flags & RDT_DELETED) { in rdtgroup_pseudo_lock_create()
892 rdtgrp->mode = RDT_MODE_PSEUDO_LOCKED; in rdtgroup_pseudo_lock_create()
893 closid_free(rdtgrp->closid); in rdtgroup_pseudo_lock_create()
894 rdtgroup_kn_mode_restore(rdtgrp, "cpus", 0444); in rdtgroup_pseudo_lock_create()
895 rdtgroup_kn_mode_restore(rdtgrp, "cpus_list", 0444); in rdtgroup_pseudo_lock_create()
927 void rdtgroup_pseudo_lock_remove(struct rdtgroup *rdtgrp) in rdtgroup_pseudo_lock_remove() argument
929 struct pseudo_lock_region *plr = rdtgrp->plr; in rdtgroup_pseudo_lock_remove()
931 if (rdtgrp->mode == RDT_MODE_PSEUDO_LOCKSETUP) { in rdtgroup_pseudo_lock_remove()
936 closid_free(rdtgrp->closid); in rdtgroup_pseudo_lock_remove()
941 debugfs_remove_recursive(rdtgrp->plr->debugfs_dir); in rdtgroup_pseudo_lock_remove()
946 pseudo_lock_free(rdtgrp); in rdtgroup_pseudo_lock_remove()
951 struct rdtgroup *rdtgrp; in pseudo_lock_dev_open() local
955 rdtgrp = region_find_by_minor(iminor(inode)); in pseudo_lock_dev_open()
956 if (!rdtgrp) { in pseudo_lock_dev_open()
961 filp->private_data = rdtgrp; in pseudo_lock_dev_open()
962 atomic_inc(&rdtgrp->waitcount); in pseudo_lock_dev_open()
973 struct rdtgroup *rdtgrp; in pseudo_lock_dev_release() local
976 rdtgrp = filp->private_data; in pseudo_lock_dev_release()
977 WARN_ON(!rdtgrp); in pseudo_lock_dev_release()
978 if (!rdtgrp) { in pseudo_lock_dev_release()
983 atomic_dec(&rdtgrp->waitcount); in pseudo_lock_dev_release()
1003 struct rdtgroup *rdtgrp; in pseudo_lock_dev_mmap() local
1009 rdtgrp = filp->private_data; in pseudo_lock_dev_mmap()
1010 WARN_ON(!rdtgrp); in pseudo_lock_dev_mmap()
1011 if (!rdtgrp) { in pseudo_lock_dev_mmap()
1016 plr = rdtgrp->plr; in pseudo_lock_dev_mmap()