Chameleon

Chameleon Commit Details

Date:2011-07-20 17:16:47 (12 years 9 months ago)
Author:Evan Lojewski
Commit:1197
Parents: 1196
Message:Add check for EffFreq in K10 cpus before using it.
Changes:
M/trunk/i386/libsaio/cpu.c
M/trunk/i386/libsaio/platform.h

File differences

trunk/i386/libsaio/cpu.c
463463
464464
465465
466
467
466
467
468
469
470
471
472
468473
469474
470475
471476
472477
473478
474
475479
476480
477481
case 0x01: /* K10 */
msr = rdmsr64(K10_COFVID_STATUS);
//uint64_t mperf = measure_mperf_frequency();
uint64_t aperf = measure_aperf_frequency();
do_cpuid2(0x00000006, 0, p->CPU.CPUID[CPUID_6]);
if(bitfield(p->CPU.CPUID[CPUID_6][2], 0, 0) == 1) // EffFreq: effective frequency interface
{
//uint64_t mperf = measure_mperf_frequency();
uint64_t aperf = measure_aperf_frequency();
cpuFrequency = aperf;
}
// NOTE: tsc runs at the maccoeff (non turbo)
// *not* at the turbo frequency.
maxcoef = bitfield(msr, 54, 49) / 2 + 4;
currcoef = bitfield(msr, 5, 0) + 0x10;
currdiv = 2 << bitfield(msr, 8, 6);
cpuFrequency = aperf;
break;
case 0x05: /* K14 */
trunk/i386/libsaio/platform.h
2323
2424
2525
26
27
28
29
26
27
28
29
30
3031
3132
3233
#define CPUID_22
#define CPUID_33
#define CPUID_44
#define CPUID_805
#define CPUID_816
#define CPUID_887
#define CPUID_MAX8
#define CPUID_65
#define CPUID_806
#define CPUID_817
#define CPUID_888
#define CPUID_MAX9
#define CPU_MODEL_YONAH0x0E// Sossaman, Yonah
#define CPU_MODEL_MEROM0x0F// Allendale, Conroe, Kentsfield, Woodcrest, Clovertown, Tigerton, Merom

Archive Download the corresponding diff file

Revision: 1197