Obliczanie czasu za pomocą TSC (Time Stamp Counter)

Próbuję zmierzyć czas, jaki zajmuje jakiś kod wewnątrz jądra Linuksa z bardzo dużą dokładnością przez moduł jądra Linuksa.

W tym celu próbowałemrdtscl () która podaje liczbę taktów zegara użytych w kodzie podanym poniżej:

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

Jak już mówiłemhttp://en.wikipedia.org/wiki/Time_Stamp_Counter co mówi takTSC to 64-bitowy rejestr obecny na wszystkich procesorach x86 od czasów Pentium. Jeśli więc mam dwurdzeniowy procesor, czy ten licznik będzie obecny w obu rdzeniach, czy będzie tylko jeden, ponieważ jest to tylko jeden procesor, ale dwurdzeniowy?

Drugie pytanie brzmi: mam procesor Intel Xeon i3, który ma 4 procesory, z których każdy ma 2 rdzenie. Następnie, mierząc tykanie zegara, dadzą ci tyknięcia pojedynczego procesora lub dodanie wszystkich 4 procesorów?

questionAnswers(4)

yourAnswerToTheQuestion