Расчет времени с помощью TSC (Time Stamp Counter)

Я пытаюсь измерить время, затрачиваемое некоторым кодом внутри ядра Linux с очень высокой точностью модулем ядра Linux.

Для этого я постаралсяrdtscl () который дает количество тактов, используемых в коде, как указано ниже:

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

Как я уже говорилhttp://en.wikipedia.org/wiki/Time_Stamp_Counter что говорит о том, чтоTSC - это 64-битный регистр, присутствующий на всех процессорах x86, начиная с Pentium, Итак, если у меня двухъядерный процессор, будет ли этот счетчик присутствовать в обоих ядрах или будет только один, поскольку это только один процессор, но двухъядерный?

Второй вопрос таков: у меня процессор Intel Xeon i3, который имеет 4 процессора, каждый из которых имеет 2 ядра. Тогда, измеряя такты, дадут ли тики одного процессора или сложения всех 4 процессоров?

Ответы на вопрос(4)

Ваш ответ на вопрос