static void ppro_stop(struct op_msrs const * const msrs) { uint low, high; CTRL_READ(low, high, msrs, 0); CTRL_SET_INACTIVE(low); CTRL_WRITE(low, high, msrs, 0); }
static void athlon_stop(struct op_msrs const * const msrs) { uint low, high; int i; for (i = 0 ; i < NUM_COUNTERS ; ++i) { if (sysctl.ctr[i].enabled) { CTRL_READ(low, high, msrs, i); CTRL_SET_INACTIVE(low); CTRL_WRITE(low, high, msrs, i); } } }
static void athlon_stop(struct op_msrs const * const msrs) { unsigned int low,high; int i; /* Subtle: stop on all counters to avoid race with * setting our pm callback */ for (i = 0 ; i < NUM_COUNTERS ; ++i) { CTRL_READ(low, high, msrs, i); CTRL_SET_INACTIVE(low); CTRL_WRITE(low, high, msrs, i); } }
static void ppro_stop(struct op_msrs const * const msrs) { unsigned int low,high; int i; for (i = 0; i < NUM_COUNTERS; ++i) { if (!reset_value[i]) continue; CTRL_READ(low, high, msrs, i); CTRL_SET_INACTIVE(low); CTRL_WRITE(low, high, msrs, i); } }
static void ppro_stop(struct op_msrs const * const msrs) { unsigned int low, high; int i; if (!reset_value) return; for (i = 0; i < num_counters; ++i) { if (!reset_value[i]) continue; CTRL_READ(low, high, msrs, i); CTRL_SET_INACTIVE(low); CTRL_WRITE(low, high, msrs, i); } }
static void ppro_stop(struct op_msrs const * const msrs) { uint64_t msr_content; int i; for (i = 0; i < num_counters; ++i) { if (!reset_value[i]) continue; CTRL_READ(msr_content, msrs, i); CTRL_SET_INACTIVE(msr_content); CTRL_WRITE(msr_content, msrs, i); } if ( ppro_has_global_ctrl ) wrmsrl(MSR_CORE_PERF_GLOBAL_CTRL, 0x0ULL); }