Lines Matching refs:comp

342 	struct mpam_component *comp;  in mpam_component_alloc()  local
346 comp = kzalloc_obj(*comp); in mpam_component_alloc()
347 if (!comp) in mpam_component_alloc()
349 init_garbage(&comp->garbage); in mpam_component_alloc()
351 comp->comp_id = id; in mpam_component_alloc()
352 INIT_LIST_HEAD_RCU(&comp->vmsc); in mpam_component_alloc()
354 INIT_LIST_HEAD_RCU(&comp->class_list); in mpam_component_alloc()
355 comp->class = class; in mpam_component_alloc()
357 list_add_rcu(&comp->class_list, &class->components); in mpam_component_alloc()
359 return comp; in mpam_component_alloc()
362 static void __destroy_component_cfg(struct mpam_component *comp);
364 static void mpam_component_destroy(struct mpam_component *comp) in mpam_component_destroy() argument
366 struct mpam_class *class = comp->class; in mpam_component_destroy()
370 __destroy_component_cfg(comp); in mpam_component_destroy()
372 list_del_rcu(&comp->class_list); in mpam_component_destroy()
373 add_to_garbage(comp); in mpam_component_destroy()
382 struct mpam_component *comp; in mpam_component_find() local
386 list_for_each_entry(comp, &class->components, class_list) { in mpam_component_find()
387 if (comp->comp_id == id) in mpam_component_find()
388 return comp; in mpam_component_find()
395 mpam_vmsc_alloc(struct mpam_component *comp, struct mpam_msc *msc) in mpam_vmsc_alloc() argument
408 vmsc->comp = comp; in mpam_vmsc_alloc()
411 list_add_rcu(&vmsc->comp_list, &comp->vmsc); in mpam_vmsc_alloc()
418 struct mpam_component *comp = vmsc->comp; in mpam_vmsc_destroy() local
425 if (list_empty(&comp->vmsc)) in mpam_vmsc_destroy()
426 mpam_component_destroy(comp); in mpam_vmsc_destroy()
430 mpam_vmsc_find(struct mpam_component *comp, struct mpam_msc *msc) in mpam_vmsc_find() argument
436 list_for_each_entry(vmsc, &comp->vmsc, comp_list) { in mpam_vmsc_find()
441 return mpam_vmsc_alloc(comp, msc); in mpam_vmsc_find()
471 struct mpam_component *comp) in mpam_ris_get_affinity() argument
477 err = mpam_get_cpumask_from_cache_id(comp->comp_id, class->level, in mpam_ris_get_affinity()
490 get_cpumask_from_node_id(comp->comp_id, affinity); in mpam_ris_get_affinity()
510 struct mpam_component *comp; in mpam_ris_create_locked() local
531 comp = mpam_component_find(class, component_id); in mpam_ris_create_locked()
532 if (IS_ERR(comp)) { in mpam_ris_create_locked()
535 return PTR_ERR(comp); in mpam_ris_create_locked()
538 vmsc = mpam_vmsc_find(comp, msc); in mpam_ris_create_locked()
540 if (list_empty(&comp->vmsc)) in mpam_ris_create_locked()
541 mpam_component_destroy(comp); in mpam_ris_create_locked()
545 err = mpam_ris_get_affinity(msc, &ris->affinity, type, class, comp); in mpam_ris_create_locked()
557 cpumask_or(&comp->affinity, &comp->affinity, &ris->affinity); in mpam_ris_create_locked()
569 struct mpam_component *comp = vmsc->comp; in mpam_ris_destroy() local
570 struct mpam_class *class = comp->class; in mpam_ris_destroy()
579 cpumask_andnot(&comp->affinity, &comp->affinity, &ris->affinity); in mpam_ris_destroy()
670 struct mpam_class *class = ris->vmsc->comp->class; in mpam_ris_hw_probe()
1188 static int _msmon_read(struct mpam_component *comp, struct mon_read *arg) in _msmon_read() argument
1194 list_for_each_entry_srcu(vmsc, &comp->vmsc, comp_list, in _msmon_read()
1234 int mpam_msmon_read(struct mpam_component *comp, struct mon_cfg *ctx, in mpam_msmon_read() argument
1240 struct mpam_class *class = comp->class; in mpam_msmon_read()
1261 err = _msmon_read(comp, &arg); in mpam_msmon_read()
1276 err = _msmon_read(comp, &arg); in mpam_msmon_read()
1282 void mpam_msmon_reset_mbwu(struct mpam_component *comp, struct mon_cfg *ctx) in mpam_msmon_reset_mbwu() argument
1292 list_for_each_entry_srcu(vmsc, &comp->vmsc, comp_list, in mpam_msmon_reset_mbwu()
1433 struct mpam_class *class = ris->vmsc->comp->class; in mpam_restore_mbwu_state()
1554 struct mpam_component *comp; member
1562 mpam_reprogram_ris_partid(c->ris, c->partid, &c->comp->cfg[c->partid]); in __write_config()
1590 arg.comp = ris->vmsc->comp; in mpam_reprogram_msc()
1594 cfg = &ris->vmsc->comp->cfg[partid]; in mpam_reprogram_msc()
2136 struct mpam_component *comp; in mpam_enable_init_class_features() local
2138 comp = list_first_entry(&class->components, in mpam_enable_init_class_features()
2140 vmsc = list_first_entry(&comp->vmsc, in mpam_enable_init_class_features()
2146 static void mpam_enable_merge_vmsc_features(struct mpam_component *comp) in mpam_enable_merge_vmsc_features() argument
2150 struct mpam_class *class = comp->class; in mpam_enable_merge_vmsc_features()
2152 list_for_each_entry(vmsc, &comp->vmsc, comp_list) { in mpam_enable_merge_vmsc_features()
2161 static void mpam_enable_merge_class_features(struct mpam_component *comp) in mpam_enable_merge_class_features() argument
2164 struct mpam_class *class = comp->class; in mpam_enable_merge_class_features()
2166 list_for_each_entry(vmsc, &comp->vmsc, comp_list) in mpam_enable_merge_class_features()
2186 struct mpam_component *comp; in mpam_enable_merge_features() local
2191 list_for_each_entry(comp, &class->components, class_list) in mpam_enable_merge_features()
2192 mpam_enable_merge_vmsc_features(comp); in mpam_enable_merge_features()
2196 list_for_each_entry(comp, &class->components, class_list) in mpam_enable_merge_features()
2197 mpam_enable_merge_class_features(comp); in mpam_enable_merge_features()
2372 static void __destroy_component_cfg(struct mpam_component *comp) in __destroy_component_cfg() argument
2380 add_to_garbage(comp->cfg); in __destroy_component_cfg()
2381 list_for_each_entry(vmsc, &comp->vmsc, comp_list) { in __destroy_component_cfg()
2392 static void mpam_reset_component_cfg(struct mpam_component *comp) in mpam_reset_component_cfg() argument
2395 struct mpam_props *cprops = &comp->class->props; in mpam_reset_component_cfg()
2399 if (!comp->cfg) in mpam_reset_component_cfg()
2403 comp->cfg[i] = (struct mpam_config) {}; in mpam_reset_component_cfg()
2405 comp->cfg[i].cpbm = GENMASK(cprops->cpbm_wd - 1, 0); in mpam_reset_component_cfg()
2407 comp->cfg[i].mbw_pbm = GENMASK(cprops->mbw_pbm_bits - 1, 0); in mpam_reset_component_cfg()
2409 comp->cfg[i].mbw_max = GENMASK(15, 16 - cprops->bwa_wd); in mpam_reset_component_cfg()
2413 static int __allocate_component_cfg(struct mpam_component *comp) in __allocate_component_cfg() argument
2419 if (comp->cfg) in __allocate_component_cfg()
2422 comp->cfg = kzalloc_objs(*comp->cfg, mpam_partid_max + 1); in __allocate_component_cfg()
2423 if (!comp->cfg) in __allocate_component_cfg()
2430 init_garbage(&comp->cfg[0].garbage); in __allocate_component_cfg()
2432 mpam_reset_component_cfg(comp); in __allocate_component_cfg()
2434 list_for_each_entry(vmsc, &comp->vmsc, comp_list) { in __allocate_component_cfg()
2450 __destroy_component_cfg(comp); in __allocate_component_cfg()
2469 struct mpam_component *comp; in mpam_allocate_config() local
2474 list_for_each_entry(comp, &class->components, class_list) { in mpam_allocate_config()
2475 int err = __allocate_component_cfg(comp); in mpam_allocate_config()
2536 static void mpam_reset_component_locked(struct mpam_component *comp) in mpam_reset_component_locked() argument
2543 mpam_reset_component_cfg(comp); in mpam_reset_component_locked()
2546 list_for_each_entry_srcu(vmsc, &comp->vmsc, comp_list, in mpam_reset_component_locked()
2562 struct mpam_component *comp; in mpam_reset_class_locked() local
2567 list_for_each_entry_srcu(comp, &class->components, class_list, in mpam_reset_class_locked()
2569 mpam_reset_component_locked(comp); in mpam_reset_class_locked()
2666 int mpam_apply_config(struct mpam_component *comp, u16 partid, in mpam_apply_config() argument
2677 WARN_ON_ONCE(&comp->cfg[partid] == cfg); in mpam_apply_config()
2679 if (!mpam_update_config(&comp->cfg[partid], cfg)) in mpam_apply_config()
2682 arg.comp = comp; in mpam_apply_config()
2686 list_for_each_entry_srcu(vmsc, &comp->vmsc, comp_list, in mpam_apply_config()