On Fri, 8 Apr 2016, Rudi Ludwig wrote: > >Description: > <On a Lenovo E325 dmesg reports a clock of 6.7 GHz for cpu0 whereas > cpu1 is reported with the correct 1.6 GHz (modulo rounding errors). > There are no user visible ill effects, all supported hardware works as > expacted, suspend/resume works. > However cpu load as reported in top seams unevenly split, cpu0 is > oftentimes shown as close to 100% idle.> ... > dmesg: > OpenBSD 5.9-current (GENERIC.MP) #1982: Sat Apr 2 11:43:48 MDT 2016 > dera...@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP ... > cpu0 at mainbus0: apid 0 (boot processor) > cpu0: AMD E-350 Processor, 6706.74 MHz > cpu0: > FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,MWAIT,SSSE3,CX16,POPCNT,NXE,MMXX,FFXSR,PAGE1GB,LONG,LAHF,CMPLEG,SVM,EAPICSP,AMCR8,ABM,SSE4A,MASSE,3DNOWP,IBS,SKINIT,ITSC
This doesn't show the 'PERF' flag, so this frequency measurement is from the rdtsc() bits in cpu_tsc_freq(). At this point in the startup, delay() should be using i8254_delay(). The second CPU will do its calculation using lapic_delay(); could there be an error in how we handle the i8254 stuff? Philip Guenther