Lines Matching refs:rdtgrp

51 	const struct rdtgroup *rdtgrp;
53 rdtgrp = dev_get_drvdata(dev);
56 return kasprintf(GFP_KERNEL, "pseudo_lock/%s", rdtgrp->kn->name);
168 struct rdtgroup *rdtgrp, *rdtgrp_match = NULL;
170 list_for_each_entry(rdtgrp, &rdt_all_groups, rdtgroup_list) {
171 if (rdtgrp->plr && rdtgrp->plr->minor == minor) {
172 rdtgrp_match = rdtgrp;
329 * @rdtgrp: resource group to which new pseudo-locked region will belong
338 static int pseudo_lock_init(struct rdtgroup *rdtgrp)
348 rdtgrp->plr = plr;
397 * @rdtgrp: resource group to which pseudo-locked region belonged
405 static void pseudo_lock_free(struct rdtgroup *rdtgrp)
407 pseudo_lock_region_clear(rdtgrp->plr);
408 kfree(rdtgrp->plr);
409 rdtgrp->plr = NULL;
433 struct rdtgroup *rdtgrp = _rdtgrp;
434 struct pseudo_lock_region *plr = rdtgrp->plr;
494 __wrmsr(MSR_IA32_PQR_ASSOC, rmid_p, rdtgrp->closid);
543 * @rdtgrp: resource group being queried
548 static int rdtgroup_monitor_in_progress(struct rdtgroup *rdtgrp)
550 return !list_empty(&rdtgrp->mon.crdtgrp_list);
555 * @rdtgrp: resource group needing access restricted
568 static int rdtgroup_locksetup_user_restrict(struct rdtgroup *rdtgrp)
572 ret = rdtgroup_kn_mode_restrict(rdtgrp, "tasks");
576 ret = rdtgroup_kn_mode_restrict(rdtgrp, "cpus");
580 ret = rdtgroup_kn_mode_restrict(rdtgrp, "cpus_list");
585 ret = rdtgroup_kn_mode_restrict(rdtgrp, "mon_groups");
594 rdtgroup_kn_mode_restore(rdtgrp, "cpus_list", 0777);
596 rdtgroup_kn_mode_restore(rdtgrp, "cpus", 0777);
598 rdtgroup_kn_mode_restore(rdtgrp, "tasks", 0777);
605 * @rdtgrp: resource group needing access restored
615 static int rdtgroup_locksetup_user_restore(struct rdtgroup *rdtgrp)
619 ret = rdtgroup_kn_mode_restore(rdtgrp, "tasks", 0777);
623 ret = rdtgroup_kn_mode_restore(rdtgrp, "cpus", 0777);
627 ret = rdtgroup_kn_mode_restore(rdtgrp, "cpus_list", 0777);
632 ret = rdtgroup_kn_mode_restore(rdtgrp, "mon_groups", 0777);
641 rdtgroup_kn_mode_restrict(rdtgrp, "cpus_list");
643 rdtgroup_kn_mode_restrict(rdtgrp, "cpus");
645 rdtgroup_kn_mode_restrict(rdtgrp, "tasks");
652 * @rdtgrp: resource group requested to enter locksetup mode
668 int rdtgroup_locksetup_enter(struct rdtgroup *rdtgrp)
676 if (rdtgrp == &rdtgroup_default) {
723 if (rdtgroup_monitor_in_progress(rdtgrp)) {
728 if (rdtgroup_tasks_assigned(rdtgrp)) {
733 if (!cpumask_empty(&rdtgrp->cpu_mask)) {
738 if (rdtgroup_locksetup_user_restrict(rdtgrp)) {
743 ret = pseudo_lock_init(rdtgrp);
755 free_rmid(rdtgrp->closid, rdtgrp->mon.rmid);
761 rdtgroup_locksetup_user_restore(rdtgrp);
768 * @rdtgrp: resource group
775 int rdtgroup_locksetup_exit(struct rdtgroup *rdtgrp)
780 ret = alloc_rmid(rdtgrp->closid);
785 rdtgrp->mon.rmid = ret;
788 ret = rdtgroup_locksetup_user_restore(rdtgrp);
790 free_rmid(rdtgrp->closid, rdtgrp->mon.rmid);
794 pseudo_lock_free(rdtgrp);
1170 * @rdtgrp: Resource group to which the pseudo-locked region belongs.
1180 static int pseudo_lock_measure_cycles(struct rdtgroup *rdtgrp, int sel)
1182 struct pseudo_lock_region *plr = rdtgrp->plr;
1190 if (rdtgrp->flags & RDT_DELETED) {
1251 struct rdtgroup *rdtgrp = file->private_data;
1269 ret = pseudo_lock_measure_cycles(rdtgrp, sel);
1286 * @rdtgrp: resource group to which pseudo-lock region belongs
1300 int rdtgroup_pseudo_lock_create(struct rdtgroup *rdtgrp)
1302 struct pseudo_lock_region *plr = rdtgrp->plr;
1320 thread = kthread_create_on_node(pseudo_lock_fn, rdtgrp,
1365 plr->debugfs_dir = debugfs_create_dir(rdtgrp->kn->name,
1369 plr->debugfs_dir, rdtgrp,
1375 rdtgrp, "%s", rdtgrp->kn->name);
1387 if (rdtgrp->flags & RDT_DELETED) {
1394 rdtgrp->mode = RDT_MODE_PSEUDO_LOCKED;
1395 closid_free(rdtgrp->closid);
1396 rdtgroup_kn_mode_restore(rdtgrp, "cpus", 0444);
1397 rdtgroup_kn_mode_restore(rdtgrp, "cpus_list", 0444);
1417 * @rdtgrp: resource group to which the pseudo-locked region belongs
1429 void rdtgroup_pseudo_lock_remove(struct rdtgroup *rdtgrp)
1431 struct pseudo_lock_region *plr = rdtgrp->plr;
1433 if (rdtgrp->mode == RDT_MODE_PSEUDO_LOCKSETUP) {
1438 closid_free(rdtgrp->closid);
1443 debugfs_remove_recursive(rdtgrp->plr->debugfs_dir);
1448 pseudo_lock_free(rdtgrp);
1453 struct rdtgroup *rdtgrp;
1457 rdtgrp = region_find_by_minor(iminor(inode));
1458 if (!rdtgrp) {
1463 filp->private_data = rdtgrp;
1464 atomic_inc(&rdtgrp->waitcount);
1475 struct rdtgroup *rdtgrp;
1478 rdtgrp = filp->private_data;
1479 WARN_ON(!rdtgrp);
1480 if (!rdtgrp) {
1485 atomic_dec(&rdtgrp->waitcount);
1505 struct rdtgroup *rdtgrp;
1511 rdtgrp = filp->private_data;
1512 WARN_ON(!rdtgrp);
1513 if (!rdtgrp) {
1518 plr = rdtgrp->plr;