Неожиданно высокие пики задержки, измеренные с помощью hwlat - PullRequest
2 голосов
/ 28 октября 2019

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

Для измерений используется Asus Zenbook ux331un. Я отключил состояние питания процессора с помощью параметра cmd-line ядра idle = poll, гиперпоточность отключена, турбо-буст отключен. Вот пример выходных данных hwlat tracer.

   <...>-4976  [002] d......  3258.677286: #81    inner/outer(us):   31/33    ts:1572267806.608681762
   <...>-4976  [003] dn.....  3276.085073: #82    inner/outer(us):   32/34    ts:1572267824.016656104
   <...>-4976  [000] d.L....  3277.113063: #83    inner/outer(us):   32/0     ts:1572267825.044656725
   <...>-4976  [003] dn.....  3280.181030: #84    inner/outer(us):   32/32    ts:1572267828.112657027
   <...>-4976  [000] dnL....  3281.205020: #85    inner/outer(us):   32/32    ts:1572267829.136657127
   <...>-4976  [002] dn.....  3283.252999: #86    inner/outer(us):  456/33    ts:1572267831.184659048
   <...>-4976  [003] dn.....  3284.276986: #87    inner/outer(us):   16/32    ts:1572267832.208656275
   <...>-4976  [000] dnL....  3285.300975: #88    inner/outer(us):   16/33    ts:1572267833.232656714
   <...>-4976  [002] dn.....  3287.348959: #89    inner/outer(us):   20/33    ts:1572267835.280662760
   <...>-4976  [003] dn.....  3288.372943: #90    inner/outer(us):   33/34    ts:1572267836.304657092
   <...>-4976  [000] dnL....  3289.396938: #91    inner/outer(us):   32/32    ts:1572267837.328663631
   <...>-4976  [002] dn.....  3291.444912: #92    inner/outer(us):   20/33    ts:1572267839.376659443

Как видно из вывода, задержка превышает 400 мкс. Я также получаю много задержек в диапазоне 30 мкс. Сначала я подумал, что задержки вызваны SMI, поэтому я начал читать регистр MSR 0x34, который подсчитывает количество SMI, которые произошли с момента загрузки системы. Он не увеличивается во время выполнения теста. Что еще может быть причиной такой задержки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...