Configurando manualmente o valor do TSC da CPU

1

No meu sistema Ubuntu 16.04.1 com o Kernel 4.13.0-36 a seguinte frequência TSC é detectada:

dmesg | grep MHz:

[ 0.004000] tsc: Detected 1800.000 MHz processor

Tenho uma CPU Intel i5-8250U KabyLake com uma frequência base de 1,6 GHz:

link

O comando lscpu mostra:

Model name:            Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
Stepping:              10
CPU MHz:               1800.000
CPU max MHz:           1600,0000
CPU min MHz:           400,0000
BogoMIPS:              3600.00

Se eu corrigir a frequência da CPU para 1,6 GHz e executar

watch -n1 cat /sys/devices/system/cpu/cpufreq/policy*/scaling_cur_freq

Eu obtenho freqüências próximas a 1,6 GHz:

1600789
1600084
1599992
1600058

enquanto outra ferramenta cpufreq-aperf ao mesmo tempo mostra:

000 1408000         00 sec 006 ms   00 sec 993 ms   00
001 1408000         00 sec 003 ms   00 sec 996 ms   00
002 1408000         00 sec 005 ms   00 sec 994 ms   00
003 1408000         00 sec 005 ms   00 sec 994 ms   00

Na verdade, eu nem me importo, mas estou medindo o desempenho de alguns algoritmos e isso leva a valores errados:

  • o valor C / B dos algoritmos é sempre maior em 11-13% para os valores de referência conhecidos

  • O Intel vTune informa que minha taxa de frequência da CPU é de 0,886

  • a diferença percentual entre a saída de cpufreq-aperf e o conteúdo de scaling_cur_frequency também é ~ 88,6%

Então, acho que é devido ao valor errado do TSC.

Existe uma maneira de definir manualmente o valor detectado de TSC / CPU no Ubuntu?

BTW, eu acho que é um bug / erro causado pelo hardware ou pela Intel, já que o Windows também reporta a freqüência de base errada no TaskManager.

    
por Fabihahn 17.03.2018 / 23:20

0 respostas