Я отправляю сетевые пакеты из одного потока и получаю ответы на второй поток, который работает на другом ядре ЦП. Мой процесс измеряет время между отправкой и получением каждого пакета (аналогично ping). Я использую rdtsc для получения времени с высоким разрешением и низким временем выполнения, которое необходимо для моей реализации.
Все измерения выглядят надежными. Тем не менее, меня беспокоит точность rdtsc по всем ядрам, поскольку я читал некоторые тексты, которые подразумевали, что tsc не синхронизирован между ядрами.
Я нашел следующую информацию о TSC в википедии
Постоянное поведение TSC гарантирует, что продолжительность каждого такта и поддерживает использование TSC в качестве таймера настенных часов, даже если процессорное ядро меняет частоту. Эта является перемещение архитектурного поведения для всех процессоров Intel.
Тем не менее, я беспокоюсь о accururacy по ядрам, и это мой вопрос
Дополнительная информация
- Я запускаю свой процесс на машине Intel nehalem.
- Операционная система - Linux.
- Флаг cpu constant_tsc установлен для всех ядер.