Lines Matching refs:d
361 if (!rdtgrp->plr->d) { in rdtgroup_cpus_show()
366 mask = &rdtgrp->plr->d->hdr.cpu_mask; in rdtgroup_cpus_show()
1298 static bool __rdtgroup_cbm_overlaps(struct rdt_resource *r, struct rdt_ctrl_domain *d, in __rdtgroup_cbm_overlaps() argument
1315 ctrl_b = resctrl_arch_get_config(r, d, i, type); in __rdtgroup_cbm_overlaps()
1353 bool rdtgroup_cbm_overlaps(struct resctrl_schema *s, struct rdt_ctrl_domain *d, in rdtgroup_cbm_overlaps() argument
1359 if (__rdtgroup_cbm_overlaps(r, d, cbm, closid, s->conf_type, in rdtgroup_cbm_overlaps()
1365 return __rdtgroup_cbm_overlaps(r, d, cbm, closid, peer_type, exclusive); in rdtgroup_cbm_overlaps()
1384 struct rdt_ctrl_domain *d; in rdtgroup_mode_test_exclusive() local
1398 list_for_each_entry(d, &r->ctrl_domains, hdr.list) { in rdtgroup_mode_test_exclusive()
1399 ctrl = resctrl_arch_get_config(r, d, closid, in rdtgroup_mode_test_exclusive()
1401 if (rdtgroup_cbm_overlaps(s, d, ctrl, closid, false)) { in rdtgroup_mode_test_exclusive()
1504 struct rdt_ctrl_domain *d, unsigned long cbm) in rdtgroup_cbm_to_size() argument
1514 ci = get_cpu_cacheinfo_level(cpumask_any(&d->hdr.cpu_mask), r->ctrl_scope); in rdtgroup_cbm_to_size()
1547 struct rdt_ctrl_domain *d; in rdtgroup_size_show() local
1563 if (!rdtgrp->plr->d) { in rdtgroup_size_show()
1571 rdtgrp->plr->d, in rdtgroup_size_show()
1573 seq_printf(s, "%d=%u\n", rdtgrp->plr->d->hdr.id, size); in rdtgroup_size_show()
1585 list_for_each_entry(d, &r->ctrl_domains, hdr.list) { in rdtgroup_size_show()
1592 ctrl = d->mbps_val[closid]; in rdtgroup_size_show()
1594 ctrl = resctrl_arch_get_config(r, d, in rdtgroup_size_show()
1601 size = rdtgroup_cbm_to_size(r, d, ctrl); in rdtgroup_size_show()
1603 seq_printf(s, "%d=%u", d->hdr.id, size); in rdtgroup_size_show()
1617 smp_call_function_any(&mon_info->d->hdr.cpu_mask, in mondata_config_read()
1636 mon_info.d = dom; in mbm_config_show()
1672 struct rdt_mon_domain *d, u32 evtid, u32 val) in mbm_config_write_domain() argument
1681 mon_info.d = d; in mbm_config_write_domain()
1695 smp_call_function_any(&d->hdr.cpu_mask, resctrl_arch_mon_event_config_write, in mbm_config_write_domain()
1707 resctrl_arch_reset_rmid_all(r, d); in mbm_config_write_domain()
1714 struct rdt_mon_domain *d; in mon_config_write() local
1744 list_for_each_entry(d, &r->mon_domains, hdr.list) { in mon_config_write()
1745 if (d->hdr.id == dom_id) { in mon_config_write()
1746 mbm_config_write_domain(r, d, evtid, val); in mon_config_write()
2287 static int mba_sc_domain_allocate(struct rdt_resource *r, struct rdt_ctrl_domain *d) in mba_sc_domain_allocate() argument
2290 int cpu = cpumask_any(&d->hdr.cpu_mask); in mba_sc_domain_allocate()
2293 d->mbps_val = kcalloc_node(num_closid, sizeof(*d->mbps_val), in mba_sc_domain_allocate()
2295 if (!d->mbps_val) in mba_sc_domain_allocate()
2299 d->mbps_val[i] = MBA_MAX_MBPS; in mba_sc_domain_allocate()
2305 struct rdt_ctrl_domain *d) in mba_sc_domain_destroy() argument
2307 kfree(d->mbps_val); in mba_sc_domain_destroy()
2308 d->mbps_val = NULL; in mba_sc_domain_destroy()
2335 struct rdt_ctrl_domain *d; in set_mba_sc() local
2346 list_for_each_entry(d, &r->ctrl_domains, hdr.list) { in set_mba_sc()
2348 d->mbps_val[i] = MBA_MAX_MBPS; in set_mba_sc()
3031 struct rdt_mon_domain *d) in rmdir_mondata_subdir_allrdtgrp() argument
3039 sprintf(name, "mon_%s_%02d", r->name, snc_mode ? d->ci_id : d->hdr.id); in rmdir_mondata_subdir_allrdtgrp()
3041 sprintf(subname, "mon_sub_%s_%02d", r->name, d->hdr.id); in rmdir_mondata_subdir_allrdtgrp()
3051 static int mon_add_all_files(struct kernfs_node *kn, struct rdt_mon_domain *d, in mon_add_all_files() argument
3064 domid = do_sum ? d->ci_id : d->hdr.id; in mon_add_all_files()
3074 mon_event_read(&rr, r, d, prgrp, &d->hdr.cpu_mask, mevt->evtid, true); in mon_add_all_files()
3081 struct rdt_mon_domain *d, in mkdir_mondata_subdir() argument
3092 sprintf(name, "mon_%s_%02d", r->name, snc_mode ? d->ci_id : d->hdr.id); in mkdir_mondata_subdir()
3108 ret = mon_add_all_files(kn, d, r, prgrp, snc_mode); in mkdir_mondata_subdir()
3114 sprintf(name, "mon_sub_%s_%02d", r->name, d->hdr.id); in mkdir_mondata_subdir()
3125 ret = mon_add_all_files(ckn, d, r, prgrp, false); in mkdir_mondata_subdir()
3143 struct rdt_mon_domain *d) in mkdir_mondata_subdir_allrdtgrp() argument
3151 mkdir_mondata_subdir(parent_kn, d, r, prgrp); in mkdir_mondata_subdir_allrdtgrp()
3156 mkdir_mondata_subdir(parent_kn, d, r, crgrp); in mkdir_mondata_subdir_allrdtgrp()
3270 static int __init_one_rdt_domain(struct rdt_ctrl_domain *d, struct resctrl_schema *s, in __init_one_rdt_domain() argument
3283 cfg = &d->staged_config[t]; in __init_one_rdt_domain()
3303 peer_ctl = resctrl_arch_get_config(r, d, i, in __init_one_rdt_domain()
3307 ctrl_val = resctrl_arch_get_config(r, d, i, in __init_one_rdt_domain()
3314 if (d->plr && d->plr->cbm > 0) in __init_one_rdt_domain()
3315 used_b |= d->plr->cbm; in __init_one_rdt_domain()
3330 rdt_last_cmd_printf("No space on %s:%d\n", s->name, d->hdr.id); in __init_one_rdt_domain()
3350 struct rdt_ctrl_domain *d; in rdtgroup_init_cat() local
3353 list_for_each_entry(d, &s->res->ctrl_domains, hdr.list) { in rdtgroup_init_cat()
3354 ret = __init_one_rdt_domain(d, s, closid); in rdtgroup_init_cat()
3366 struct rdt_ctrl_domain *d; in rdtgroup_init_mba() local
3368 list_for_each_entry(d, &r->ctrl_domains, hdr.list) { in rdtgroup_init_mba()
3370 d->mbps_val[closid] = MBA_MAX_MBPS; in rdtgroup_init_mba()
3374 cfg = &d->staged_config[CDP_NONE]; in rdtgroup_init_mba()
4023 static void domain_destroy_mon_state(struct rdt_mon_domain *d) in domain_destroy_mon_state() argument
4025 bitmap_free(d->rmid_busy_llc); in domain_destroy_mon_state()
4026 kfree(d->mbm_total); in domain_destroy_mon_state()
4027 kfree(d->mbm_local); in domain_destroy_mon_state()
4030 void resctrl_offline_ctrl_domain(struct rdt_resource *r, struct rdt_ctrl_domain *d) in resctrl_offline_ctrl_domain() argument
4035 mba_sc_domain_destroy(r, d); in resctrl_offline_ctrl_domain()
4040 void resctrl_offline_mon_domain(struct rdt_resource *r, struct rdt_mon_domain *d) in resctrl_offline_mon_domain() argument
4049 rmdir_mondata_subdir_allrdtgrp(r, d); in resctrl_offline_mon_domain()
4052 cancel_delayed_work(&d->mbm_over); in resctrl_offline_mon_domain()
4053 if (resctrl_arch_is_llc_occupancy_enabled() && has_busy_rmid(d)) { in resctrl_offline_mon_domain()
4062 __check_limbo(d, true); in resctrl_offline_mon_domain()
4063 cancel_delayed_work(&d->cqm_limbo); in resctrl_offline_mon_domain()
4066 domain_destroy_mon_state(d); in resctrl_offline_mon_domain()
4084 static int domain_setup_mon_state(struct rdt_resource *r, struct rdt_mon_domain *d) in domain_setup_mon_state() argument
4090 d->rmid_busy_llc = bitmap_zalloc(idx_limit, GFP_KERNEL); in domain_setup_mon_state()
4091 if (!d->rmid_busy_llc) in domain_setup_mon_state()
4095 tsize = sizeof(*d->mbm_total); in domain_setup_mon_state()
4096 d->mbm_total = kcalloc(idx_limit, tsize, GFP_KERNEL); in domain_setup_mon_state()
4097 if (!d->mbm_total) { in domain_setup_mon_state()
4098 bitmap_free(d->rmid_busy_llc); in domain_setup_mon_state()
4103 tsize = sizeof(*d->mbm_local); in domain_setup_mon_state()
4104 d->mbm_local = kcalloc(idx_limit, tsize, GFP_KERNEL); in domain_setup_mon_state()
4105 if (!d->mbm_local) { in domain_setup_mon_state()
4106 bitmap_free(d->rmid_busy_llc); in domain_setup_mon_state()
4107 kfree(d->mbm_total); in domain_setup_mon_state()
4115 int resctrl_online_ctrl_domain(struct rdt_resource *r, struct rdt_ctrl_domain *d) in resctrl_online_ctrl_domain() argument
4123 err = mba_sc_domain_allocate(r, d); in resctrl_online_ctrl_domain()
4131 int resctrl_online_mon_domain(struct rdt_resource *r, struct rdt_mon_domain *d) in resctrl_online_mon_domain() argument
4137 err = domain_setup_mon_state(r, d); in resctrl_online_mon_domain()
4142 INIT_DELAYED_WORK(&d->mbm_over, mbm_handle_overflow); in resctrl_online_mon_domain()
4143 mbm_setup_overflow_handler(d, MBM_OVERFLOW_INTERVAL, in resctrl_online_mon_domain()
4148 INIT_DELAYED_WORK(&d->cqm_limbo, cqm_handle_limbo); in resctrl_online_mon_domain()
4157 mkdir_mondata_subdir_allrdtgrp(r, d); in resctrl_online_mon_domain()
4186 struct rdt_mon_domain *d; in get_mon_domain_from_cpu() local
4190 list_for_each_entry(d, &r->mon_domains, hdr.list) { in get_mon_domain_from_cpu()
4192 if (cpumask_test_cpu(cpu, &d->hdr.cpu_mask)) in get_mon_domain_from_cpu()
4193 return d; in get_mon_domain_from_cpu()
4202 struct rdt_mon_domain *d; in resctrl_offline_cpu() local
4216 d = get_mon_domain_from_cpu(cpu, l3); in resctrl_offline_cpu()
4217 if (d) { in resctrl_offline_cpu()
4218 if (resctrl_is_mbm_enabled() && cpu == d->mbm_work_cpu) { in resctrl_offline_cpu()
4219 cancel_delayed_work(&d->mbm_over); in resctrl_offline_cpu()
4220 mbm_setup_overflow_handler(d, 0, cpu); in resctrl_offline_cpu()
4223 cpu == d->cqm_work_cpu && has_busy_rmid(d)) { in resctrl_offline_cpu()
4224 cancel_delayed_work(&d->cqm_limbo); in resctrl_offline_cpu()
4225 cqm_setup_limbo_handler(d, 0, cpu); in resctrl_offline_cpu()