Перейти к содержимому
Калькуляторы

i7-7820X и tsc

Прошу помощи у знатоков.

 

Обновили сервер на i7-7820X на Gigabyte X299 UD4.

Ядро 4.1.44 нормально работало на прежнем i5-3570.

 

Теперь при старте в dmesg получаю:

[    0.000000] tsc: Fast TSC calibration failed
[    0.000000] tsc: Unable to calibrate against PIT
[    0.000000] tsc: No reference (HPET/PMTIMER) available
[    0.000000] tsc: Marking TSC unstable due to could not calculate TSC khz

 

Соответственно в

cat /sys/devices/system/clocksource/clocksource0/available_clocksource
refined-jiffies jiffies


Даже hpet не включает ибо

[    0.241000] pci 0000:00:1f.0: RCBA disabled; cannot force enable HPET

 

BIOS последней версии ( F4 ), Hyper-Threading и всевозможное энергосбережение в Setup выключено .

 

В оциях загрузки ядра добавил

 intel_pstate=disable tsc=reliable clocksource=tsc processor.max_cstate=1 intel_idle.max_cstate=0

- толку никакого.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Судя по описанию, это hw баг cpu, который лечится микрокодом, т.е. надо использовать ядры из последних, в которые он включен

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, я тоже склоняюсь к мнению, что это аппаратная проблема.

Microcode, насколько мне известно обновляется на уровне BIOS и его я обновил до версии F4 от 20.09.17, но проблему это не решило.

Изменено пользователем x86

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

50 минут назад, x86 сказал:

Microcode, насколько мне известно обновляется на уровне BIOS

не только.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да просто возьмите любой livecd с актуальным ядром и проверьте

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, придется пробовать свежее ядро.

Но там могут быть свои проблемы - вот 4.4 дико тормозило при загрузке правил iptables/шейперов, в 4.9 периодически пропадали локальные сессии по TCP.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Debian

 

> aptitude search microcode
p   amd64-microcode                                             - Processor microcode firmware for AMD CPUs                            
i   intel-microcode                                             - Processor microcode firmware for Intel CPUs                          
p   microcode.ctl                                               - Intel IA32/IA64 CPU Microcode Utility (transitional package)         
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поставил 4.13.12 - осталось в available_clocksource только tsc - т.е. проблема решилась.

Правда в опциях загрузки оставил tsc=reliable clocksource=tsc

В BIOS выключил Intel Speed Shift - иначе выдавало дампы.

Попутно пришлось собрать iproute2-4.13.0 c мелкой правкой исходников( иначе не собиралось ) - со старым тоже были дампы.

Теперь остается посмотреть на стабильность работы нового ядра.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот и первая проблема - отстают часы.

Т.е. tsc все-таки не reliable и как с этим бороться пока не понятно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

5 часов назад, s.lobanov сказал:

Добавьте еще acpi=off

Спасибо за совет.

Ну, а по теме ничего хорошего.

 

Под нагрузкой одно ядро уперлось в 100%( при этом прерывания были распределены равномерно по ядрам ), а потом пошли и дампы.

В общем вернулся на 4.1.44 и полностью исключил использование tc( оно использовалось для QoS и шейпинга входящего трафика ).

Пока работает, больше желания его мучить нет.

В чем проблема c tsc - непонятно, но скорее всего что-то с самим процессором( в процессе поиска встречал сообщения на немецких форумах, что включенный HPET сильно влияет на производительность Windows в играх ).

Мораль сей басни такова - не нужно спешить покупать сильно новое - в нем может быть полно глюков( увы, уровень образования упал не только у нас, но и на западе тоже ).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

14 часов назад, x86 сказал:

Вот и первая проблема - отстают часы.

А чего ты вообще взял что проблема с часами имеет отношение к таймеру!?

Если ты не в курсе, то часы как бы там независимые, у них своё питание, свой кварц, свои счётчики, срать им на твои таймеры и окружающий мир.

 

14 часов назад, x86 сказал:

Т.е. tsc все-таки не reliable и как с этим бороться пока не понятно.

Перепаять кварц/допаять кондёры/настроить ntpd/сдать по гарантии.

 

8 часов назад, x86 сказал:

В чем проблема c tsc - непонятно, но скорее всего что-то с самим процессором( в процессе поиска встречал сообщения на немецких форумах, что включенный HPET сильно влияет на производительность Windows в играх ).

Мораль сей басни такова - не нужно спешить покупать сильно новое - в нем может быть полно глюков( увы, уровень образования упал не только у нас, но и на западе тоже ).

Я тебе на это вообще ничего доброго сказать не могу.

 

HPET появился уже лет 10 как минимум, можешь откатится на пень3, там этого точно не было %)

Каким образом проблемы дебилов виндо геймеров связаны с тобой тоже не понятно.

 

HPET это вообще радость в чистом виде.

Вместо того чтобы задрачивать систему прерываниями, как койнить tsc и прочий старый шлак, HPET позволяет с высокой точность задать интервал через который он должен будет сгенерировать прерывание один раз или постоянно с таким интервалом их генерировать.

На системном уровне это означает меньше ненужных прерываний и намного проще работу вообще всех таймеров в системе и системы шедулинга потоков. ОС просто перенастраивает HPET таймер на время когда должен сработать следующий таймер и засыпает/занимается своими делами.

В системе как правило не один а несколько таких таймеров, один уходит монопольно планировщику потоков, а второй под все таймеры.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

9 часов назад, Ivan_83 сказал:

А чего ты вообще взял что проблема с часами имеет отношение к таймеру!?

Если ты не в курсе, то часы как бы там независимые, у них своё питание, свой кварц, свои счётчики, срать им на твои таймеры и окружающий мир.

Вообще-то культурные незнакомые люди обращаются на вы.

 

Теперь по существу - clocksource он как-бы намекает своим названием откуда берется источник квантов для таймера.

Это и подтверждает тот факт, что при источнике refined_jiffies часы идут нормально, а при нестабильном tsc - нет.

 

 

9 часов назад, Ivan_83 сказал:

 

Перепаять кварц/допаять кондёры/настроить ntpd/сдать по гарантии.

 

Я тебе на это вообще ничего доброго сказать не могу.

 

HPET появился уже лет 10 как минимум, можешь откатится на пень3, там этого точно не было %)

Каким образом проблемы дебилов виндо геймеров связаны с тобой тоже не понятно.

 

HPET это вообще радость в чистом виде.

Вместо того чтобы задрачивать систему прерываниями, как койнить tsc и прочий старый шлак, HPET позволяет с высокой точность задать интервал через который он должен будет сгенерировать прерывание один раз или постоянно с таким интервалом их генерировать.

На системном уровне это означает меньше ненужных прерываний и намного проще работу вообще всех таймеров в системе и системы шедулинга потоков. ОС просто перенастраивает HPET таймер на время когда должен сработать следующий таймер и засыпает/занимается своими делами.

В системе как правило не один а несколько таких таймеров, один уходит монопольно планировщику потоков, а второй под все таймеры.

tsc как раз и позволяет обойтись без генерации прерываний, что делает работу со временем весьма дешевой с точки зрения расходов CPU.

C замечанием по HPET согласен, но суть вопроса в том что в available_clocksources его нет, в BIOS включить его возможности нет и соответственно нельзя его использовать для работы со временем.

Проблемы-же геймеров на винде с HPET на данном процессоре еще раз говорят о том, что что-то не так с этим процессором.

 

Еще раз повторю - на i5-3570 все было нормально.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Так я не культурный, можешь забанить меня.

 

 

2 часа назад, x86 сказал:

Теперь по существу - clocksource он как-бы намекает своим названием откуда берется источник квантов для таймера.

Это и подтверждает тот факт, что при источнике refined_jiffies часы идут нормально, а при нестабильном tsc - нет.

Почитай откуда берутся часы.

Какой может быть клоксорс когда у тебя комп выключен из розетки а часы тикают?

 

 

В 11/11/2017 в 20:03, vop сказал:

aptitude search microcode

Я так понимаю ты забил на обновления микрокода ручками?

 

 

2 часа назад, x86 сказал:

tsc как раз и позволяет обойтись без генерации прерываний, что делает работу со временем весьма дешевой с точки зрения расходов CPU.

https://en.wikipedia.org/wiki/Time_Stamp_Counter

Вероятно прерывания берутся от: https://en.wikipedia.org/wiki/Intel_8254

Ещё раз: прерывания нужны чтобы ОС могла быть многозадачной. Если у тебя нет прерываний то ОС тебе не может гарантировать что потоки будут переключатся тогда, когда надо планировщику а не как повезёт.

 

 

2 часа назад, x86 сказал:

Проблемы-же геймеров на винде с HPET на данном процессоре еще раз говорят о том, что что-то не так с этим процессором.

Геймеры жаловались на HPET и в райзене, я так понимаю у них HPET главный враг на любой платформе.

При их уровне часто там аргументации вообще нет, сплошь наблюдения натуралистов.

 

 

2 часа назад, x86 сказал:

Еще раз повторю - на i5-3570 все было нормально.

Если с i7-7820X не срастается, может выкинуть его? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 час назад, Ivan_83 сказал:

Почитай откуда берутся часы.

Какой может быть клоксорс когда у тебя комп выключен из розетки а часы тикают?

Ну да, расскажи мне про RTC как источник времени и особенно про его точность.

Еще раз, для тех кто в танке - объясни почему при clocksource refined-jiffies время не сбивается, а при нестабильном tsc - серъезно запаздывает.

 

1 час назад, Ivan_83 сказал:

 

Я так понимаю ты забил на обновления микрокода ручками?

Последнее обновление microcode на сайте Intel'a 0x2000022 от 07.07.17

cpuinfo у меня сейчас показывает версию 0x200002b ( и я так понимаю оно берет его из BIOS ).

 

1 час назад, Ivan_83 сказал:

 

 

https://en.wikipedia.org/wiki/Time_Stamp_Counter

Вероятно прерывания берутся от: https://en.wikipedia.org/wiki/Intel_8254

Ещё раз: прерывания нужны чтобы ОС могла быть многозадачной. Если у тебя нет прерываний то ОС тебе не может гарантировать что потоки будут переключатся тогда, когда надо планировщику а не как повезёт.

Ты путаешь понятие таймера и времени.

Бесспорно, таймер вещь совершенно необходимая и лучшее из всего, что на данный момент есть - это HPET( но кстати у меня он тоже недоступен почему-то )

А вот для работы со временем лучше всего обходится без прерываний вообще и tsc здесь совершенно незаменим так как у него минимальные накладные расходы.

Для задач Traffic Control нам как-раз нужно измерение интервала времени между двумя событиями.

 

1 час назад, Ivan_83 сказал:

 

Геймеры жаловались на HPET и в райзене, я так понимаю у них HPET главный враг на любой платформе.

При их уровне часто там аргументации вообще нет, сплошь наблюдения натуралистов.

Проверяется просто - берется более ранний процессор, и если там все работает, значит проблема в железе.

Ryzen и Broadwell X - это новые архитектуры, и вполне возможно, что внутри содержат много недоработок.

Вот ознакомился с Errata на Xeon - 92 проблемы со статусом No Fix за период с 07.2016 по 09.2017

1 час назад, Ivan_83 сказал:

 

Если с i7-7820X не срастается, может выкинуть его? :)

Можно использовать для других целей.

Или без Traffic Control, как я сейчас и делаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

3 минуты назад, x86 сказал:

Еще раз, для тех кто в танке - объясни почему при clocksource refined-jiffies время не сбивается, а при нестабильном tsc - серъезно запаздывает.

Я хз как там линух внутри устроен, см код :)

 

 

6 минут назад, x86 сказал:

cpuinfo у меня сейчас показывает версию 0x200002b ( и я так понимаю оно берет его из BIOS ).

Может посмотреть/поискать откуда оно берётся?

 

 

16 минут назад, x86 сказал:

Ты путаешь понятие таймера и времени.

Да, действительно.

kern.timecounter.choice: TSC-low(1000) ACPI-fast(900) i8254(0) HPET(950) dummy(-1000000)

kern.eventtimer.choice: HPET(550) HPET1(440) HPET2(440) HPET3(440) HPET4(440)

 

 

16 минут назад, x86 сказал:

А вот для работы со временем лучше всего обходится без прерываний вообще и tsc здесь совершенно незаменим так как у него минимальные накладные расходы.

Как видишь рейтинг HPET немного ниже TSC.

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

 

 

19 минут назад, x86 сказал:

Ryzen и Broadwell X - это новые архитектуры, и вполне возможно, что внутри содержат много недоработок.

Вот ознакомился с Errata на Xeon - 92 проблемы со статусом No Fix за период с 07.2016 по 09.2017

По райзену инфа закрытая, насколько я знаю, а я только сегодня тут накорябал свои впечатления:

По интелу - у каби ещё больше список был :)

Для роутеров и прочего жующего прерывания а не числа лучше всякие i5, нет переплаты за бесполезный/вредный HT.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Проблема решилась - поставил ядро 4.14.22 и tsc заработал.

Попутно ускорил работу iptables в 7(!) раз по сравнению с 4.9 и на 13% по сравнению с 4.1

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ускорение установкой нового ядра или ещё попутная оптимизация была? Если была оптимизация, пожалуйста поделитесь :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Измерения производились синтетическими тестами iptables на разных ядрах.

 

Что касается оптимизации - используется ipset + бинарный поиск по цепочкам ( с автогенерацией оных ) а иначе для одного из BRAS с

 iptables -S | wc -l
199918

оно бы просто тормозило.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.