Lines Matching refs:ss
469 staging_state_t* ss, in pmu_stage_fixed_config() argument
479 counter >= ss->max_num_fixed) { in pmu_stage_fixed_config()
483 if (ss->have_fixed[counter]) { in pmu_stage_fixed_config()
488 ss->have_fixed[counter] = true; in pmu_stage_fixed_config()
489 ocfg->fixed_ids[ss->num_fixed] = id; in pmu_stage_fixed_config()
491 ocfg->fixed_initial_value[ss->num_fixed] = 0; in pmu_stage_fixed_config()
493 if (icfg->rate[ii] > ss->max_fixed_value) { in pmu_stage_fixed_config()
497 ocfg->fixed_initial_value[ss->num_fixed] = in pmu_stage_fixed_config()
498 ss->max_fixed_value - icfg->rate[ii] + 1; in pmu_stage_fixed_config()
512 ocfg->fixed_flags[ss->num_fixed] |= IPM_CONFIG_FLAG_TIMEBASE; in pmu_stage_fixed_config()
514 ocfg->fixed_flags[ss->num_fixed] |= IPM_CONFIG_FLAG_PC; in pmu_stage_fixed_config()
528 ocfg->fixed_flags[ss->num_fixed] |= IPM_CONFIG_FLAG_LBR; in pmu_stage_fixed_config()
532 ++ss->num_fixed; in pmu_stage_fixed_config()
537 staging_state_t* ss, in pmu_stage_programmable_config() argument
547 if (ss->num_programmable == ss->max_num_programmable) { in pmu_stage_programmable_config()
552 ocfg->programmable_ids[ss->num_programmable] = id; in pmu_stage_programmable_config()
554 ocfg->programmable_initial_value[ss->num_programmable] = 0; in pmu_stage_programmable_config()
556 if (icfg->rate[ii] > ss->max_programmable_value) { in pmu_stage_programmable_config()
560 ocfg->programmable_initial_value[ss->num_programmable] = in pmu_stage_programmable_config()
561 ss->max_programmable_value - icfg->rate[ii] + 1; in pmu_stage_programmable_config()
607 ocfg->programmable_events[ss->num_programmable] = evtsel; in pmu_stage_programmable_config()
608 ocfg->global_ctrl |= IA32_PERF_GLOBAL_CTRL_PMC_EN_MASK(ss->num_programmable); in pmu_stage_programmable_config()
610 ocfg->programmable_flags[ss->num_programmable] |= IPM_CONFIG_FLAG_TIMEBASE; in pmu_stage_programmable_config()
612 ocfg->programmable_flags[ss->num_programmable] |= IPM_CONFIG_FLAG_PC; in pmu_stage_programmable_config()
626 ocfg->programmable_flags[ss->num_programmable] |= IPM_CONFIG_FLAG_LBR; in pmu_stage_programmable_config()
630 ++ss->num_programmable; in pmu_stage_programmable_config()
635 staging_state_t* ss, in pmu_stage_misc_config() argument
646 if (ss->num_misc == ss->max_num_misc) { in pmu_stage_misc_config()
651 if (ss->have_misc[event / 64] & (1ul << (event % 64))) { in pmu_stage_misc_config()
656 ss->have_misc[event / 64] |= 1ul << (event % 64); in pmu_stage_misc_config()
657 ocfg->misc_ids[ss->num_misc] = id; in pmu_stage_misc_config()
659 ocfg->misc_flags[ss->num_misc] |= IPM_CONFIG_FLAG_TIMEBASE; in pmu_stage_misc_config()
668 ++ss->num_misc; in pmu_stage_misc_config()
699 staging_state_t* ss = &staging_state; in pmu_stage_config() local
700 ss->max_num_fixed = pmu_properties.num_fixed_events; in pmu_stage_config()
701 ss->max_num_programmable = pmu_properties.num_programmable_events; in pmu_stage_config()
702 ss->max_num_misc = pmu_properties.num_misc_events; in pmu_stage_config()
703 ss->num_fixed = 0; in pmu_stage_config()
704 ss->num_programmable = 0; in pmu_stage_config()
705 ss->num_misc = 0; in pmu_stage_config()
706 ss->max_fixed_value = in pmu_stage_config()
710 ss->max_programmable_value = in pmu_stage_config()
714 for (unsigned i = 0; i < countof(ss->have_fixed); ++i) in pmu_stage_config()
715 ss->have_fixed[i] = false; in pmu_stage_config()
716 for (unsigned i = 0; i < countof(ss->have_misc); ++i) in pmu_stage_config()
717 ss->have_misc[i] = false; in pmu_stage_config()
718 ss->have_timebase0_user = false; in pmu_stage_config()
736 status = pmu_stage_fixed_config(icfg, ss, ii, ocfg); in pmu_stage_config()
742 status = pmu_stage_programmable_config(icfg, ss, ii, ocfg); in pmu_stage_config()
747 status = pmu_stage_misc_config(icfg, ss, ii, ocfg); in pmu_stage_config()
758 ss->have_timebase0_user = true; in pmu_stage_config()
773 if (ss->have_timebase0_user) { in pmu_stage_config()