mirror of
https://github.com/torvalds/linux.git
synced 2024-11-01 01:31:44 +00:00
ACPI x86: Cleanup acpi_cpufreq structures related to aperf/mperf
Change structure name to make the code cleaner and simpler. No functionality change in this patch. Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
parent
577c9c456f
commit
e4f6937222
@ -241,23 +241,23 @@ static u32 get_cur_val(const struct cpumask *mask)
|
|||||||
return cmd.val;
|
return cmd.val;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct perf_cur {
|
struct perf_pair {
|
||||||
union {
|
union {
|
||||||
struct {
|
struct {
|
||||||
u32 lo;
|
u32 lo;
|
||||||
u32 hi;
|
u32 hi;
|
||||||
} split;
|
} split;
|
||||||
u64 whole;
|
u64 whole;
|
||||||
} aperf_cur, mperf_cur;
|
} aperf, mperf;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
static long read_measured_perf_ctrs(void *_cur)
|
static long read_measured_perf_ctrs(void *_cur)
|
||||||
{
|
{
|
||||||
struct perf_cur *cur = _cur;
|
struct perf_pair *cur = _cur;
|
||||||
|
|
||||||
rdmsr(MSR_IA32_APERF, cur->aperf_cur.split.lo, cur->aperf_cur.split.hi);
|
rdmsr(MSR_IA32_APERF, cur->aperf.split.lo, cur->aperf.split.hi);
|
||||||
rdmsr(MSR_IA32_MPERF, cur->mperf_cur.split.lo, cur->mperf_cur.split.hi);
|
rdmsr(MSR_IA32_MPERF, cur->mperf.split.lo, cur->mperf.split.hi);
|
||||||
|
|
||||||
wrmsr(MSR_IA32_APERF, 0, 0);
|
wrmsr(MSR_IA32_APERF, 0, 0);
|
||||||
wrmsr(MSR_IA32_MPERF, 0, 0);
|
wrmsr(MSR_IA32_MPERF, 0, 0);
|
||||||
@ -281,7 +281,7 @@ static long read_measured_perf_ctrs(void *_cur)
|
|||||||
static unsigned int get_measured_perf(struct cpufreq_policy *policy,
|
static unsigned int get_measured_perf(struct cpufreq_policy *policy,
|
||||||
unsigned int cpu)
|
unsigned int cpu)
|
||||||
{
|
{
|
||||||
struct perf_cur cur;
|
struct perf_pair cur;
|
||||||
unsigned int perf_percent;
|
unsigned int perf_percent;
|
||||||
unsigned int retval;
|
unsigned int retval;
|
||||||
|
|
||||||
@ -294,39 +294,37 @@ static unsigned int get_measured_perf(struct cpufreq_policy *policy,
|
|||||||
* Get an approximate value. Return failure in case we cannot get
|
* Get an approximate value. Return failure in case we cannot get
|
||||||
* an approximate value.
|
* an approximate value.
|
||||||
*/
|
*/
|
||||||
if (unlikely(cur.aperf_cur.split.hi || cur.mperf_cur.split.hi)) {
|
if (unlikely(cur.aperf.split.hi || cur.mperf.split.hi)) {
|
||||||
int shift_count;
|
int shift_count;
|
||||||
u32 h;
|
u32 h;
|
||||||
|
|
||||||
h = max_t(u32, cur.aperf_cur.split.hi, cur.mperf_cur.split.hi);
|
h = max_t(u32, cur.aperf.split.hi, cur.mperf.split.hi);
|
||||||
shift_count = fls(h);
|
shift_count = fls(h);
|
||||||
|
|
||||||
cur.aperf_cur.whole >>= shift_count;
|
cur.aperf.whole >>= shift_count;
|
||||||
cur.mperf_cur.whole >>= shift_count;
|
cur.mperf.whole >>= shift_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (((unsigned long)(-1) / 100) < cur.aperf_cur.split.lo) {
|
if (((unsigned long)(-1) / 100) < cur.aperf.split.lo) {
|
||||||
int shift_count = 7;
|
int shift_count = 7;
|
||||||
cur.aperf_cur.split.lo >>= shift_count;
|
cur.aperf.split.lo >>= shift_count;
|
||||||
cur.mperf_cur.split.lo >>= shift_count;
|
cur.mperf.split.lo >>= shift_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cur.aperf_cur.split.lo && cur.mperf_cur.split.lo)
|
if (cur.aperf.split.lo && cur.mperf.split.lo)
|
||||||
perf_percent = (cur.aperf_cur.split.lo * 100) /
|
perf_percent = (cur.aperf.split.lo * 100) / cur.mperf.split.lo;
|
||||||
cur.mperf_cur.split.lo;
|
|
||||||
else
|
else
|
||||||
perf_percent = 0;
|
perf_percent = 0;
|
||||||
|
|
||||||
#else
|
#else
|
||||||
if (unlikely(((unsigned long)(-1) / 100) < cur.aperf_cur.whole)) {
|
if (unlikely(((unsigned long)(-1) / 100) < cur.aperf.whole)) {
|
||||||
int shift_count = 7;
|
int shift_count = 7;
|
||||||
cur.aperf_cur.whole >>= shift_count;
|
cur.aperf.whole >>= shift_count;
|
||||||
cur.mperf_cur.whole >>= shift_count;
|
cur.mperf.whole >>= shift_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cur.aperf_cur.whole && cur.mperf_cur.whole)
|
if (cur.aperf.whole && cur.mperf.whole)
|
||||||
perf_percent = (cur.aperf_cur.whole * 100) /
|
perf_percent = (cur.aperf.whole * 100) / cur.mperf.whole;
|
||||||
cur.mperf_cur.whole;
|
|
||||||
else
|
else
|
||||||
perf_percent = 0;
|
perf_percent = 0;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user