Lines Matching defs:cai

2511 int add_rapl_msr_counter(int cpu, const struct rapl_counter_arch_info *cai)
2515 if (!(platform->rapl_msrs & cai->feature_mask))
2518 ret = add_msr_counter(cpu, cai->msr);
2522 switch (cai->rci_index) {
8322 int add_rapl_perf_counter(int cpu, struct rapl_counter_info_t *rci, const struct rapl_counter_arch_info *cai,
8330 if (!cai->perf_name)
8333 const double scale = read_perf_scale(cai->perf_subsys, cai->perf_name);
8338 const enum rapl_unit unit = read_perf_rapl_unit(cai->perf_subsys, cai->perf_name);
8343 const unsigned int rapl_type = read_perf_type(cai->perf_subsys);
8344 const unsigned int rapl_energy_pkg_config = read_perf_config(cai->perf_subsys, cai->perf_name);
8409 const struct rapl_counter_arch_info *const cai = &rapl_counter_arch_infos[i];
8415 if (!BIC_IS_ENABLED(cai->bic_number))
8435 if ((cai->flags & RAPL_COUNTER_FLAG_PLATFORM_COUNTER) && (cpu != base_cpu))
8452 if (rci->source[cai->rci_index] != COUNTER_SOURCE_NONE)
8456 if (add_rapl_perf_counter(cpu, rci, cai, &scale, &unit) != -1) {
8457 rci->source[cai->rci_index] = COUNTER_SOURCE_PERF;
8458 rci->scale[cai->rci_index] = scale * cai->compat_scale;
8459 rci->unit[cai->rci_index] = unit;
8460 rci->flags[cai->rci_index] = cai->flags;
8463 } else if (add_rapl_msr_counter(cpu, cai) >= 0) {
8464 rci->source[cai->rci_index] = COUNTER_SOURCE_MSR;
8465 rci->msr[cai->rci_index] = cai->msr;
8466 rci->msr_mask[cai->rci_index] = cai->msr_mask;
8467 rci->msr_shift[cai->rci_index] = cai->msr_shift;
8468 rci->unit[cai->rci_index] = RAPL_UNIT_JOULES;
8469 rci->scale[cai->rci_index] = *cai->platform_rapl_msr_scale * cai->compat_scale;
8470 rci->flags[cai->rci_index] = cai->flags;
8473 if (rci->source[cai->rci_index] != COUNTER_SOURCE_NONE)
8479 BIC_PRESENT(cai->bic_number);
8503 int add_cstate_perf_counter(int cpu, struct cstate_counter_info_t *cci, const struct cstate_counter_arch_info *cai)
8510 if (!cai->perf_name)
8513 int *pfd_group = get_cstate_perf_group_fd(cci, cai->perf_subsys);
8518 const unsigned int type = read_perf_type(cai->perf_subsys);
8519 const unsigned int config = read_perf_config(cai->perf_subsys, cai->perf_name);
8537 int add_msr_perf_counter(int cpu, struct msr_counter_info_t *cci, const struct msr_counter_arch_info *cai)
8544 if (!cai->perf_name)
8547 const unsigned int type = read_perf_type(cai->perf_subsys);
8548 const unsigned int config = read_perf_config(cai->perf_subsys, cai->perf_name);
8561 fprintf(stderr, "%s: %s/%s: %d (cpu: %d)\n", __func__, cai->perf_subsys, cai->perf_name, ret, cpu);
8580 struct msr_counter_arch_info *cai = &msr_counter_arch_infos[cidx];
8582 cai->present = false;
8591 if (cai->needed) {
8593 if (add_msr_perf_counter(cpu, cci, cai) != -1) {
8594 cci->source[cai->rci_index] = COUNTER_SOURCE_PERF;
8595 cai->present = true;
8598 } else if (add_msr_counter(cpu, cai->msr) >= 0) {
8599 cci->source[cai->rci_index] = COUNTER_SOURCE_MSR;
8600 cci->msr[cai->rci_index] = cai->msr;
8601 cci->msr_mask[cai->rci_index] = cai->msr_mask;
8602 cai->present = true;
8676 const struct cstate_counter_arch_info *cai = &ccstate_counter_arch_infos[cidx];
8691 const bool per_thread = cai->flags & CSTATE_COUNTER_FLAG_COLLECT_PER_THREAD;
8692 const bool per_core = cai->flags & CSTATE_COUNTER_FLAG_COLLECT_PER_CORE;
8700 const bool counter_needed = BIC_IS_ENABLED(cai->bic_number) ||
8701 (soft_c1 && (cai->flags & CSTATE_COUNTER_FLAG_SOFT_C1_DEPENDENCY));
8702 const bool counter_supported = (platform->supported_cstates & cai->feature_mask);
8706 if (add_cstate_perf_counter(cpu, cci, cai) != -1) {
8708 cci->source[cai->rci_index] = COUNTER_SOURCE_PERF;
8711 } else if (pkg_cstate_limit >= cai->pkg_cstate_limit
8712 && add_msr_counter(cpu, cai->msr) >= 0) {
8713 cci->source[cai->rci_index] = COUNTER_SOURCE_MSR;
8714 cci->msr[cai->rci_index] = cai->msr;
8718 if (cci->source[cai->rci_index] != COUNTER_SOURCE_NONE) {
8727 BIC_PRESENT(cai->bic_number);
9007 struct cstate_counter_arch_info *const cai = &ccstate_counter_arch_infos[i];
9009 if (platform->has_msr_knl_core_c6_residency && cai->msr == MSR_CORE_C6_RESIDENCY)
9010 cai->msr = MSR_KNL_CORE_C6_RESIDENCY;
9012 if (!platform->has_msr_core_c1_res && cai->msr == MSR_CORE_C1_RES)
9013 cai->msr = 0;
9015 if (platform->has_msr_atom_pkg_c6_residency && cai->msr == MSR_PKG_C6_RESIDENCY)
9016 cai->msr = MSR_ATOM_PKG_C6_RESIDENCY;