Cálculo de tempo com TSC (Time Stamp Counter)

Eu estou tentando medir o tempo gasto por algum código dentro do kernel do Linux com muita precisão por um módulo do kernel do Linux.

Para este propósito, eu tenteirdtscl () que fornece o número de pulsos de clock usados ​​no código, conforme dado abaixo:

unsigned long ini, end;
rdtscl(ini);
//some code...
rdtscl(end);
printk("time taken=%lu ticks",end-ini);

Como me referihttp://en.wikipedia.org/wiki/Time_Stamp_Counter que diz queO TSC é um registrador de 64 bits presente em todos os processadores x86 desde que o Pentium. Então, se eu tiver processador dual core, este contador estará presente nos dois núcleos ou haverá apenas um, já que é apenas um processador, mas dual core?

A segunda pergunta é a seguinte: Eu tenho o processador Intel Xeon i3 que tem 4 processadores, cada um deles com 2 núcleos. Então, medindo os pulsos de clock, vai dar os ticks de processador único ou adição de todos os 4 processadores?

questionAnswers(4)

yourAnswerToTheQuestion