Я оценивал влияние недавно объявленной ошибки Intel на мое приложение для обработки пакетов, используя netmap< /а>. Пока я измерил, что обрабатываю около 50 пакетов на каждый сделанный poll()
системный вызов, но это число не включает gettimeofday()
вызовов. Я также измерил, что могу читать из несуществующего файлового дескриптора (это самое дешевое, что может сделать системный вызов) 16,5 миллионов раз в секунду. Моя скорость обработки пакетов составляет 1,76 миллиона пакетов в секунду, или, с точки зрения системных вызовов, 0,0352 миллиона системных вызовов в секунду. Это означает, что снижение производительности составит 0,0352 / 16,5 = 0,21333%, если штраф за системные вызовы удвоится, и вряд ли мне стоит беспокоиться.
Однако мое приложение может довольно часто использовать gettimeofday()
системные вызовы. Насколько я понимаю, это не настоящие системные вызовы, а реализованные как виртуальные системные вызовы, как описано в Что такое vdso и vsyscall?.
Теперь мой вопрос: замедляет ли исправление недавно объявленной ошибки Intel (которая также может повлиять на ARM и, вероятно, не затронет AMD) gettimeofday()
системные вызовы? Или gettimeofday()
это совершенно другое животное из-за того, что оно реализовано как виртуальный системный вызов другого типа?