Lines Matching refs:cos
120 void (*write_msr)(unsigned int cos, uint32_t val, enum cbm_type type);
173 #define get_cdp_data(feat, cos) \ argument
174 ((feat)->cos_reg_val[(cos) * 2])
181 #define get_cdp_code(feat, cos) \ argument
182 ((feat)->cos_reg_val[(cos) * 2 + 1])
365 static void l3_cat_write_msr(unsigned int cos, uint32_t val, enum cbm_type type) in l3_cat_write_msr() argument
367 wrmsrl(MSR_IA32_PSR_L3_MASK(cos), val); in l3_cat_write_msr()
390 static void l3_cdp_write_msr(unsigned int cos, uint32_t val, enum cbm_type type) in l3_cdp_write_msr() argument
393 MSR_IA32_PSR_L3_MASK_DATA(cos) : in l3_cdp_write_msr()
394 MSR_IA32_PSR_L3_MASK_CODE(cos)), in l3_cdp_write_msr()
408 static void l2_cat_write_msr(unsigned int cos, uint32_t val, enum cbm_type type) in l2_cat_write_msr() argument
410 wrmsrl(MSR_IA32_PSR_L2_MASK(cos), val); in l2_cat_write_msr()
622 static uint64_t psr_assoc_cos(uint64_t reg, unsigned int cos, in psr_assoc_cos() argument
626 (((uint64_t)cos << ASSOC_REG_SHIFT) & cos_mask); in psr_assoc_cos()
648 unsigned int cos = 0; in psr_ctxt_switch_to() local
652 cos = d->arch.psr_cos_ids[socket]; in psr_ctxt_switch_to()
654 reg = psr_assoc_cos(reg, cos, psra->cos_mask); in psr_ctxt_switch_to()
716 unsigned int cos, i; in psr_get_val() local
741 cos = d->arch.psr_cos_ids[socket]; in psr_get_val()
752 if ( cos > feat->cos_max ) in psr_get_val()
753 cos = 0; in psr_get_val()
759 *val = feat->cos_reg_val[cos * feat_props[feat_type]->cos_num + i]; in psr_get_val()
793 unsigned int cos = old_cos, j; in gather_val_array() local
813 if ( cos > feat->cos_max ) in gather_val_array()
814 cos = 0; in gather_val_array()
818 val[j] = feat->cos_reg_val[cos * props->cos_num + j]; in gather_val_array()
912 unsigned int cos) in compare_val() argument
921 if ( cos > feat->cos_max ) in compare_val()
941 feat_val = feat->cos_reg_val[cos * props->cos_num + i]; in compare_val()
954 unsigned int cos, cos_max; in find_cos() local
965 for ( cos = 0; cos <= cos_max; cos++ ) in find_cos()
971 if ( cos && !ref[cos] ) in find_cos()
996 rc = compare_val(val_ptr, feat, props, cos); in find_cos()
1010 return cos; in find_cos()
1019 unsigned int cos) in fits_cos_max() argument
1040 if ( cos > feat->cos_max ) in fits_cos_max()
1066 unsigned int cos, cos_max = 0; in pick_avail_cos() local
1085 for ( cos = 1; cos <= cos_max; cos++ ) in pick_avail_cos()
1091 if ( !ref[cos] ) in pick_avail_cos()
1093 if ( !fits_cos_max(val, array_len, info, cos) ) in pick_avail_cos()
1096 return cos; in pick_avail_cos()
1113 unsigned int cos; member
1121 unsigned int i, index, cos = info->cos; in do_write_psr_msrs() local
1143 if ( feat->cos_reg_val[cos * cos_num + j] != info->val[index] ) in do_write_psr_msrs()
1145 feat->cos_reg_val[cos * cos_num + j] = info->val[index]; in do_write_psr_msrs()
1146 props->write_msr(cos, info->val[index], props->type[j]); in do_write_psr_msrs()
1152 static int write_psr_msrs(unsigned int socket, unsigned int cos, in write_psr_msrs() argument
1159 .cos = cos, in write_psr_msrs()
1164 if ( cos > info->features[feat_type]->cos_max ) in write_psr_msrs()
1185 int cos, ret; in psr_set_val() local
1251 cos = find_cos(val_array, array_len, feat_type, info); in psr_set_val()
1252 if ( cos == old_cos ) in psr_set_val()
1267 if ( cos < 0 ) in psr_set_val()
1269 cos = pick_avail_cos(info, val_array, array_len, old_cos, feat_type); in psr_set_val()
1270 if ( cos < 0 ) in psr_set_val()
1272 ret = cos; in psr_set_val()
1280 ret = write_psr_msrs(socket, cos, val_array, array_len, feat_type); in psr_set_val()
1290 ref[cos]++; in psr_set_val()
1291 ASSERT(!cos || ref[cos]); in psr_set_val()
1303 d->arch.psr_cos_ids[socket] = cos; in psr_set_val()
1318 unsigned int socket, cos; in psr_free_cos() local
1333 cos = d->arch.psr_cos_ids[socket]; in psr_free_cos()
1334 if ( cos == 0 ) in psr_free_cos()
1338 ASSERT(info->cos_ref[cos]); in psr_free_cos()
1339 info->cos_ref[cos]--; in psr_free_cos()