x86 Опубликовано 11 ноября, 2017 · Жалоба Прошу помощи у знатоков. Обновили сервер на 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 - толку никакого. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 11 ноября, 2017 · Жалоба Судя по описанию, это hw баг cpu, который лечится микрокодом, т.е. надо использовать ядры из последних, в которые он включен Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
x86 Опубликовано 11 ноября, 2017 (изменено) · Жалоба Да, я тоже склоняюсь к мнению, что это аппаратная проблема. Microcode, насколько мне известно обновляется на уровне BIOS и его я обновил до версии F4 от 20.09.17, но проблему это не решило. Изменено 11 ноября, 2017 пользователем x86 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
NiTr0 Опубликовано 11 ноября, 2017 · Жалоба 50 минут назад, x86 сказал: Microcode, насколько мне известно обновляется на уровне BIOS не только. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 11 ноября, 2017 · Жалоба Да просто возьмите любой livecd с актуальным ядром и проверьте Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
x86 Опубликовано 11 ноября, 2017 · Жалоба Да, придется пробовать свежее ядро. Но там могут быть свои проблемы - вот 4.4 дико тормозило при загрузке правил iptables/шейперов, в 4.9 периодически пропадали локальные сессии по TCP. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vop Опубликовано 11 ноября, 2017 · Жалоба 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) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
x86 Опубликовано 12 ноября, 2017 · Жалоба Поставил 4.13.12 - осталось в available_clocksource только tsc - т.е. проблема решилась. Правда в опциях загрузки оставил tsc=reliable clocksource=tsc В BIOS выключил Intel Speed Shift - иначе выдавало дампы. Попутно пришлось собрать iproute2-4.13.0 c мелкой правкой исходников( иначе не собиралось ) - со старым тоже были дампы. Теперь остается посмотреть на стабильность работы нового ядра. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
x86 Опубликовано 12 ноября, 2017 · Жалоба Вот и первая проблема - отстают часы. Т.е. tsc все-таки не reliable и как с этим бороться пока не понятно. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 12 ноября, 2017 · Жалоба Добавьте еще acpi=off Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
x86 Опубликовано 12 ноября, 2017 · Жалоба 5 часов назад, s.lobanov сказал: Добавьте еще acpi=off Спасибо за совет. Ну, а по теме ничего хорошего. Под нагрузкой одно ядро уперлось в 100%( при этом прерывания были распределены равномерно по ядрам ), а потом пошли и дампы. В общем вернулся на 4.1.44 и полностью исключил использование tc( оно использовалось для QoS и шейпинга входящего трафика ). Пока работает, больше желания его мучить нет. В чем проблема c tsc - непонятно, но скорее всего что-то с самим процессором( в процессе поиска встречал сообщения на немецких форумах, что включенный HPET сильно влияет на производительность Windows в играх ). Мораль сей басни такова - не нужно спешить покупать сильно новое - в нем может быть полно глюков( увы, уровень образования упал не только у нас, но и на западе тоже ). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 12 ноября, 2017 · Жалоба 14 часов назад, x86 сказал: Вот и первая проблема - отстают часы. А чего ты вообще взял что проблема с часами имеет отношение к таймеру!? Если ты не в курсе, то часы как бы там независимые, у них своё питание, свой кварц, свои счётчики, срать им на твои таймеры и окружающий мир. 14 часов назад, x86 сказал: Т.е. tsc все-таки не reliable и как с этим бороться пока не понятно. Перепаять кварц/допаять кондёры/настроить ntpd/сдать по гарантии. 8 часов назад, x86 сказал: В чем проблема c tsc - непонятно, но скорее всего что-то с самим процессором( в процессе поиска встречал сообщения на немецких форумах, что включенный HPET сильно влияет на производительность Windows в играх ). Мораль сей басни такова - не нужно спешить покупать сильно новое - в нем может быть полно глюков( увы, уровень образования упал не только у нас, но и на западе тоже ). Я тебе на это вообще ничего доброго сказать не могу. HPET появился уже лет 10 как минимум, можешь откатится на пень3, там этого точно не было %) Каким образом проблемы дебилов виндо геймеров связаны с тобой тоже не понятно. HPET это вообще радость в чистом виде. Вместо того чтобы задрачивать систему прерываниями, как койнить tsc и прочий старый шлак, HPET позволяет с высокой точность задать интервал через который он должен будет сгенерировать прерывание один раз или постоянно с таким интервалом их генерировать. На системном уровне это означает меньше ненужных прерываний и намного проще работу вообще всех таймеров в системе и системы шедулинга потоков. ОС просто перенастраивает HPET таймер на время когда должен сработать следующий таймер и засыпает/занимается своими делами. В системе как правило не один а несколько таких таймеров, один уходит монопольно планировщику потоков, а второй под все таймеры. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
x86 Опубликовано 13 ноября, 2017 · Жалоба 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 все было нормально. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 13 ноября, 2017 · Жалоба Так я не культурный, можешь забанить меня. 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 не срастается, может выкинуть его? :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
x86 Опубликовано 13 ноября, 2017 · Жалоба 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, как я сейчас и делаю. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 13 ноября, 2017 · Жалоба 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. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
x86 Опубликовано 1 марта, 2018 · Жалоба Проблема решилась - поставил ядро 4.14.22 и tsc заработал. Попутно ускорил работу iptables в 7(!) раз по сравнению с 4.9 и на 13% по сравнению с 4.1 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
snoof Опубликовано 6 марта, 2018 · Жалоба Ускорение установкой нового ядра или ещё попутная оптимизация была? Если была оптимизация, пожалуйста поделитесь :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
x86 Опубликовано 29 марта, 2018 · Жалоба Измерения производились синтетическими тестами iptables на разных ядрах. Что касается оптимизации - используется ipset + бинарный поиск по цепочкам ( с автогенерацией оных ) а иначе для одного из BRAS с iptables -S | wc -l 199918 оно бы просто тормозило. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...