Все прерывания делятся по следующим приоритетам: 1 место - работает на уровне кольцо -2 прерывания SMI (system management interrupt — прерывание системного управления), которое возникает: -по сигналу от чипсета или периферии на материнской плате -программный SMI, посланный системным ПО через порт ввода-вывода -запись по адресу ввода-вывода, для которого микропрограммно установлена необходимость активации SMM. 2 место - гипервизор, который работает в кольце -1 3 место - ядро операционной системы - работает в кольце 0 4 место - пользовательский уровень - работает в кольце 3
Позднее дополню каждый раздел. Все проблемы у нас связаны с тем, что windows относится к операционным системам с вытесняющей многозадачностью. Вытесняющая многозадачность требует обработки системного прерывания от аппаратного таймера. По истечении кванта времени, отведённого процессу, происходит прерывание и вызывается планировщик процессов. Частота вызова планировщика критична: слишком частый его вызов будет расходовать процессорное время впустую. Единственное, что мы можем изменить - это увеличить время кванта и поменять соотношение квантов времени на активную задачу и задачи в фоне, за это отвечает параметр в реестре Win32PrioritySeparation По умолчанию 0х26 кванты 18:6 = Оптимальный вариант. https://github.com/keoy7am/Win32PrioritySeparationTool При этом само время кванта зависит от системного таймера. При системном таймера 15.625 мс оно будет больше, чем при 1.0 мс. Высчитывается время системного таймера * тики. 1 тик= 3 кванта Для системного таймера 0.5 мс фону тогда буде даваться 0.5мс*6/3 = 1мс из каждых 4 мс. При 1 мс - 2мс из каждых 8мс. При 2 мс - 4мс из каждых 16мс. Для борьбы с фризами оптимально выставить системный таймер 0.5мс.
SMI-прерывания зависят от BIOS/UEFI и оборудования. Отключаем все лишнее, отключаем энергосохранение, скорость вентиляторов фиксируем, это все, что мы можем сделать. В нашем плане энергосохранения выбрать оценка для поднятия частоты вместо 15 мс максимум 5000 мс. Есть программа Intel SMI Latency Checker Для гипервизора - отключаем поддержку виртуальных машин в биосе.
Про прерывания на уровне ядра и пользователя в windows.
В Windows применяется: - для x86 - 32 уровня IRQL от 0 до 31 (в скобках указано числовое значение): High (31) Power fail (30) IPI (29) Clock (28) Profile (27) Диапазон аппаратных прерываний, называемых Devices IRQL, или DIRQL (от 26 до 3) или ISR DPC/DISPATCH (2) APC (1) PASSIVE (0) Это означает, например, что планировщик (работающий на уровне DPC/DISPATCH) может быть прерван аппаратными прерываниями, межпроцессорными прерываниями (IPI) и т. д., но не может быть прерван асинхронными процедурами (APC) и обычными потоками, работающими на уровне PASSIVE. Межпроцессорные прерывания IPI могут быть прерваны сбоем электропитания (прерывание на уровне Power fail), но не могут быть прерваны обычными аппаратными прерываниями от устройств и т. д. - для х64 16 уровней IRQL (от 0 до 15) High/Profile (15) Interprocessor interrupt/Power (14) Clock (13) Synch (12) Device n (11) ......... Device 1 (3) Dispatch/DPC (2) APC (1) Passive/Low (0)
При этом: hardware interrupts 3-15 (3-31) software interrupts 1-2 (1-2) normal thread execution 0 (0)
Наш пользовательский процесс может иметь следующие приоритеты: Idle - 4 Below Normal - 6 Normal -8 Above Normal -10 High -13 Real-Time -24 Внутри процесса мы можем задать приоритет для его потоков: Idle дает итоговый приоритет процесса с потоком 1, кроме real-time, там он его просто снизит до фиксированной 16 Lowest -2 Below Normal -1 Normal 0 Above Normal +1 Highest +2 Time Critical +7
Итоговый приоритет потока - это сумма приоритетов процесса и потока. 31 - максимум Real-Time - от 16 до 31. При этом даже максимальный 31 приоритет не лает нам возможности подняться выше уровня Passive/Low(0), поэтому любое прерывание на нашем ядре прервет нашу программу.
Борьба с прерываниями. Бороться надо двумя путями. Первый путь - уменьшить само количество прерываний=их частоту. Частота прерываний за 1 секунду до 10000 считается еще неплохой. Второй путь - уменьшить длительность прерываний. Есть еще третий путь - освободить от прерываний нужные нам ядра.
Первое и самое главное. Установка максимально облегченной и очищенной системы. Если хватит windows 10, то лучше ставить ее. 23H2 лучше, чем 24Н2. Отключить динамический таймер. Поднять, а не снизить время для системного таймера до 15,625 мс! Если снизим до 0.5 мс, то увеличим количество прерываний. Но тут вступает в действие многозадачность винды. 1/4 времени отдается фоновым процессам. Минимум - это 6 тиков=2 кванта Полностью вырубить все фоновые процессы на винде мы не сможем. Для 120 кадров нам нужно иметь перерыв не больше 1/120=8.(3) мс. Поэтому подходит время для системного таймера только 0.5 мс /1 мс и условно 2 мс , так как 2 мс*2=4 мс. Внести в реестр для глобальной настройки системного таймера (работает только для win 11) [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel] "GlobalTimerResolutionRequests"=dword:00000001"
Отключить VSYNC. Включить тройную буферизацию если процессор успевает рендерить, то компенсирует воемя двух кадров: 2*1000 мс / частоту кадров в Гц Краткий список исследований по психофизиологии: Watson (1986): Задержки <5 мс незаметны. Kelly (1979): Порог фликера <2 мс. Burr & Ross (1982): 10% кадра = 100мс/частоту кадров (при движении). Clayton (2018): 1–2% кадров= 1000мс*процент пропуска кадров (10–20 мс/с) незаметно. Carrasco (2011): <5–10 мс при внимании. Hoffman et al. (2017): <3 мс с размытием. Swafford et al. (2016): <4 мс, 2% (20 мс) при редких фризах (реже 1 раза в секунду). Digital Foundry (2025): 0.125 фриза/с=0.125*1000мс/частоту кадров Гц) заметно при частых повторениях.
Для 120 Гц: 1982-0.833мс 2025-1.042мс
Снизить частоту опроса мыши до 125Гц.
Главные правила для таймеров: Таймеры используются для времени (QPC) и для системных прерываний=тиков.
useplatformclock disables TSC and uses the platform source clock instead (HPET or PMT). PMT is used when HPET is disabled in BIOS. useplatformtick disables TSC tick and uses the platform source tick instead (RTC). Does disabledynamictick work when useplatformtick is used? No, it does not do anything since RTC is not a dynamic tick counter.
При этом возможны разные комбинации таймеров.
TSC + TSC without desync: bcdedit /deletevalue useplatformclock - bcdedit /deletevalue useplatformtick (make sure HPET is enabled in BIOS) TSC + RTC: bcdedit /deletevalue useplatformclock - bcdedit /set useplatformtick Yes HPET + RTC: bcdedit /set useplatformclock Yes - bcdedit /set useplatformtick Yes (make sure HPET is enabled in BIOS) PMT + RTC: bcdedit /set useplatformclock Yes - bcdedit /set useplatformtick Yes (make sure HPET is disabled in BIOS) Частота HPET 14.318180 MHz, в 4 раза выше частоты ACPI PM Timer. RTC устаревший тайминг с частотой от 2-х до 8192 Гц. Использует кварц 32.768 KHz HPET требует больше времени на вызов, чем TSC или PM Timer, но это важно только для системных прерываний. HPET и PM timer находятся в южном мосте. TSC в процессоре. Поэтому вполне допустима комбинация HPET (для времени QPC)+TSC (для тиков).
bcdedit /set useplatformtick no (отключаем RTC и включаем TSC для тиков) bcdedit /set useplatformclock no (отключаем HPET и включаем TSC для времени QPC) bcdedit /set disabledynamictick yes (отключаем динамическое изменение частоты системного таймера - влияет только на тики) bcdedit /set tscsyncpolicy Enhanced (включаем улучшенную синхронизацию TSC-таймера) HPET не следует отключать в биосе и в диспетчере устройств. Посмотреть текущую конфигурацию можно с помощью команды bcdedit /enum
Обсуждение проблем ОС и оборудования: задержка реакции системы (latency), микроcтаттер, инпутлаг, фризы.
Перед тем как задавать вопросы, просьба прочитать FAQ
Осуществлять мониторинг программойLatency Monitorнужно в течение 1 минуты, в состоянии простоя системы т.е. без дисковой, сетевой активности, и любой другой, с выключенным ав и приложениями в трее и автозагрузке, не раньше чем через 2 минуты после загрузки системы. Не двигаем мышку и не используем клавиатуру в момент измерений. Потом остановка и скриншот.
Я оффнул в биосе C-states и теперь точно фиксированные частоты стали 3.79гц не двигаются) У меня максималка у проца 3.9-4.0гц в бусте,получается из того что оффнул c-states уже частоты не будут больше 3.79гц? Добился стабильного dpc теперь 996-997 и даже до 5 падает,в общем в зеленой зоне а до этого было в желтой и около 1000-1100 держалось. Половина действий я давно делал и половина благодаря Вам сделал. И результат есть))
k2viper писал(а):
И в винде при помощи MSI_util_v2 (гуглим) перевести максимум устройств в MSI mode. Если какое-либо устройство после переключения работает некорректно, возвращаем его назад в IRQ режим снимая галочку.
Можете в двух словах написать если не сложно) в чем разница между msi и irq,для чего вообще используют эти переключения и обязательно это делать?
Добавлено спустя 3 минуты 2 секунды:
OLD Hunter писал(а):
поставить 1000Гц на мышке, купить 144-240Гц монитор (ну или как выше говорят хотя бы до 75 разогнать, если у вас 60) Про какие задержки речь так и не ясно, если про dpc то они у вас в норме.
Я ставил 1000гц тоже вижу сильный разброс по частотам. А так у меня моник на 144гц)) ну чувствительность мышки просто не понятная иногда бывает такое ощущение что она плавает...
rbk93 а что за мышь, название напишите? Фпс в игре сколько? Какая игра? У меня то же, после того как офнул Ц-стэйты в биосе частота зафиксировалась на 3.6, а раньше бустилась на 3.8 Но падения производительности я не заметил. Даже AIDA64 тебе баллы показывает.
Member
Статус: Не в сети Регистрация: 11.07.2007 Откуда: Москва
Доброго времени суток всем!! решил вставить и свои пять копеек в тему...
тоже давно мучали проблемы фризов в играх много читал форумы в том числе и забугорные и много чего перепробовал и винду переставлял и службы отключал и вообще проводил всякие оптимизации с системой,в том числе ставил и официальные образы также с железом,перепрошивка биос,снятие разгона,запуск ОЗУ на штатных частотах и тд и тп также игрался с HPET и системными таймерами,пробуя их в разных комбинациях моник у меня подключен через дисплей порт в общем что получилось из всех этих мытарств... мне помогло перевод железа в MSI режим ,а именно видяхи,креатива zxr ,hdmi портов и добавлением в загрузчик команды bcdedit / deletevalue useplatformclock ,хотя команда bcdedit /enum вообще не показывала этого параметра в системе ..так вот все стало идеально плавно и в винде и в играх, ни фризов ни дропов фпс не замечаю уже больше недели важный момент..HPET в биосе ВКЛЮЧЕН! с выключенным хуже..вот такие вот чудеса,возможно и поможет кому дрова на видео последние 419.67 но Creator Ready Driver с ним как то кажется получше,глазу приятнее
еще заметил такую вещь ,а именно разговор про напряжения vccio vccsa,многие вижу их любят задирать чуть выше стандартных значений в моем случае был так...решил попробовать в режиме авто ,что предлагает мать при частоте памяти 3200мгц ,так вот напругу она предложила 1.20 и 1.25 соответственно,так вот в игре словил такой зависон с зацикливанием звука,что даже ресет не помог,пришлось комп из розетки дергать,поставил пониже, 1.10 и 1.15 и подобного зависона больше не наблюдал в общем у меня память работает на частоте 3200мгц с таймингами 15-17-17-34-CR1 со стандартной напругой vccio 0.950 и vccsa 1.050 пробуйте!возможно кому то поможет или хотя бы натолкнет на мысли,возможно лучше вообще эту напругу не задирать и это как то влияет мой конфиг в профиле всем удачи!!
Member
Статус: Не в сети Регистрация: 14.06.2009 Откуда: Омск
rbk93 писал(а):
Я ставил 1000гц тоже вижу сильный разброс по частотам.
Если речь про тест выше то это абсолютная норма.
rbk93 писал(а):
ну чувствительность мышки просто не понятная иногда бывает такое ощущение что она плавает...
Если такое везде, включая раб. стол и оффлайн игры - возможно проблема в "грязном" электричестве, то что из розетки - к такому выводу недавно пришли на форуме нвидиа и фиксят это дорогими сетевыми фильтрами. Если же только в сетевых играх и периодически - тут сложнее, проблема встречается довольно часто. Природа и ее фикс не найдены. От вас надо больше подробностей - что, когда и как
про то что аксель надо оффать в винде это же дефолт и его все знают)
lampa писал(а):
а что за мышь, название напишите? Фпс в игре сколько? Какая игра? У меня то же, после того как офнул Ц-стэйты в биосе частота зафиксировалась на 3.6, а раньше бустилась на 3.8 Но падения производительности я не заметил. Даже AIDA64 тебе баллы показывает.
steelseries sensei 310 из новых) да с фпс в играх норм, я просто слышал что это от винды зависит плавность мыши... у кого старые версии там вроде лучше.
Добавлено спустя 7 минут 4 секунды:
OLD Hunter писал(а):
Если такое везде, включая раб. стол и оффлайн игры - возможно проблема в "грязном" электричестве, то что из розетки - к такому выводу недавно пришли на форуме нвидиа и фиксят это дорогими сетевыми фильтрами. Если же только в сетевых играх и периодически - тут сложнее, проблема встречается довольно часто. Природа и ее фикс не найдены. От вас надо больше подробностей - что, когда и как
Да тесты которые выше,Вы считаете не каких отклонений нет?) Я просто не знаю как оно может показывать. Вот про грязное элекетричество тоже читал давно на зарубежном форуме nvidia... там вроде как Сетевой фильтр нужно покупать (чтобы держать стабильную частоту 50гц что ле) поправьте если я не правильно написал. Еще не знаете как понять что с электричеством проблемки?! дом 1975 У меня до БП стоит стабилизатор напряжения дешевый, вроде напруга в доме стабильная скачков нету!
Добавлено спустя 3 минуты 10 секунд: Я страниц 20 прочел и все пишут про Msi mode utility Кто может простым языком сказать для чего ее вообще сделали и так ли она нужна нам? еще пишут что нужно в мси мод все устройства переводит! это что производительность дает сильную?)
ну чувствительность мышки просто не понятная иногда бывает такое ощущение что она плавает...
Мышь (сенсор) и ковёр чистить пробовали?
mendex55 писал(а):
важный момент..HPET в биосе ВКЛЮЧЕН! с выключенным хуже..вот такие вот чудеса,возможно и поможет кому
Винда какая? При отсутствующем параметре useplatformclock Windows 10 должна использовать TSC в сочетании с одним из легаси таймеров, а при отключении HPET в биосе использовала бы только TSC. Проверьте внимательнее, все таки при отключенном в биосе HPET должно быть лучше.
Добавлено спустя 1 минуту 42 секунды:
mendex55 писал(а):
так вот все стало идеально плавно и в винде и в играх, ни фризов ни дропов фпс не замечаю уже больше недели
А если ещё с умом почистите систему от ненужного резидентного софта, поотключаете драйвера устройств которых у вас нет через Autoruns, лишние службы винды, будет вообще песня а не система
Member
Статус: Не в сети Регистрация: 11.07.2007 Откуда: Москва
k2viper писал(а):
Винда какая? При отсутствующем параметре useplatformclock Windows 10 должна использовать TSC в сочетании с одним из легаси таймеров, а при отключении HPET в биосе использовала бы только TSC. Проверьте внимательнее, все таки при отключенном в биосе HPET должно быть лучше.
так вот в том то и дело,что должно,но на самом деле HPET в биос у меня именно включен ,а не наоборот,сам удивляюсь,но результат есть и своим глазам я верю винда 1607 LTSB за новыми сборками я не бегаю,не понравились как то,а 1809 так вообще чемпион по количеству багов на мегабайт кода
k2viper писал(а):
А если ещё с умом почистите систему от ненужного резидентного софта, поотключаете драйвера устройств которых у вас нет через Autoruns, лишние службы винды, будет вообще песня а не система
ну все лишнее я и так поотключал а паранойей в виде вырезанием телеметрии и прочей мишуры я как то не страдаю,система меня вполне устраивает
Все девайсы перевел в msi,через latency увидел что задержка по меньше стала Кто знает что значит если в столбике irq показывает "минус число" это плохо или хорошо?
Member
Статус: Не в сети Регистрация: 28.02.2008 Откуда: Калининград Фото: 99
rbk93 писал(а):
Кто знает что значит если в столбике irq показывает "минус число" это плохо или хорошо?
Ни то ни другое, эта колонка показывает текущее значение IRQ у устройства, а минус просто значит что драйвер устройства уже работает в MSI mode. Если вы откроете обычный виндовый диспетчер устройств и проверите там закладку "Ресурсы" у соответствующих устройств, увидите в строке IRQ те же цифры с минусом. Также, драйвер видеокарт Nvidia по умолчанию всегда использует Message-signalled interrupt mode вместо IRQ, несмотря на то что MSI_util_v2 отображает его доступным для переключения в MSI mode. Проверить это можно в диспетчере устройств (найти на закладке "Ресурсы" IRQ с отрицательным знаком) либо в "информации о системе" в Панели управления Nvidia, где любой даже никогда не запускавший MSI_util_v2 пользователь увидит строку IRQ: Not used
Ни то ни другое, эта колонка показывает текущее значение IRQ у устройства, а минус просто значит что драйвер устройства уже работает в MSI mode. Если вы откроете обычный виндовый диспетчер устройств и проверите там закладку "Ресурсы" у соответствующих устройств, увидите в строке IRQ те же цифры с минусом. Также, драйвер видеокарт Nvidia по умолчанию всегда использует Message-signalled interrupt mode вместо IRQ, несмотря на то что MSI_util_v2 отображает его доступным для переключения в MSI mode. Проверить это можно в диспетчере устройств (найти на закладке "Ресурсы" IRQ с отрицательным знаком) либо в "информации о системе" в Панели управления Nvidia, где любой даже никогда не запускавший MSI_util_v2 пользователь увидит строку IRQ: Not used
Member
Статус: Не в сети Регистрация: 11.01.2009 Откуда: Екатеринбург
Вопрос: на MSI B450 Carbon при отключенном в БИОСе HPET система просто не стартует с холодного запуска (это известный момент для этой серии), имеет ли смысл через диспетчер устройств высокочастотный таймер отключать? Спасибо.
Member
Статус: Не в сети Регистрация: 14.06.2009 Откуда: Омск
rbk93 писал(а):
Да тесты которые выше,Вы считаете не каких отклонений нет?)
Да, в них всё нормально. dpc можно сократить конечно, но ничего кроме красивых циферок не даст.
rbk93 писал(а):
Еще не знаете как понять что с электричеством проблемки?!
Вроде как только осцилографом и нужен очень толковый электрик.
Про "мышку" которая "плавает" снова не ответили. Она плавает где? Везде, включая раб стол и офлайн игры или только в сетевых стрелялках? Если только в сетевых - то все плохо Тут только менять провайдера, пробовать дорогой сет. фильтр(7-10к) или переезжать в другое место.
Вроде как только осцилографом и нужен очень толковый электрик.
Про "мышку" которая "плавает" снова не ответили. Она плавает где? Везде, включая раб стол и офлайн игры или только в сетевых стрелялках? Если только в сетевых - то все плохо Тут только менять провайдера, пробовать дорогой сет. фильтр(7-10к) или переезжать в другое место.
Сори не заметил,ну вроде как везде мышка так себя введет сложно однозначно сказать,может действительно сетевой фильтр нужен) а про dpc согласен,кроме разницы в цифрах я ничего не заметил при тестах
Member
Статус: Не в сети Регистрация: 22.03.2005 Откуда: Уфа Фото: 0
rbk93 писал(а):
там вроде как Сетевой фильтр нужно покупать (чтобы держать стабильную частоту 50гц что ле) поправьте если я не правильно написал. Еще не знаете как понять что с электричеством проблемки?!
Сетевой фильтр даёт только начальную защиту. Самый простой "лечит" только от overload и overvoltage. Для большего нужен стабилизатор. Он уже сгладит гуляния частоты в разных пределах. От цены будет зависеть насколько хорошо сгладит (с высокочастотными шумами справиться не так легко). Лучше всех с этой работой справляются дорогие инверторные (за подробностями почему - гуглите мат. часть, здесь это будет уже оффтоп). Очень многие наивно полагают, что стабилизацией напряжения занимаются и сами блоки питания ПК. Нет, от слова "совсем" (конкуренция - штука жестокая, а нужен стабилизатор далеко не всем домохозяйкам). Если грубо - БП только преобразуют 220в в 12в, 5в и 3.3в. Поэтому, часто, у кого разгон - ловят "непонятные" бсоды, фризы и пр. глюки. Я сам был из таких года до 2012. (а если хотите совсем уж полной защиты, то ваш выбор - инверторный smart UPS. Но, сразу предупрежу - батареи со временем умирают)
Member
Статус: Не в сети Регистрация: 14.06.2009 Откуда: Омск
rbk93 писал(а):
Сори не заметил,ну вроде как везде мышка так себя введет сложно однозначно сказать,может действительно сетевой фильтр нужен)
а когда так стало? Или это эпизодически или кажется что должно быть плавнее? Ведь вы с чем то сравниваете поведение мыши.
Можете почитать вот эту тему еще, последние 10 страниц думаю хватит https://forums.geforce.com/default/topi ... ng-me/294/ Все завсегдатаи фиксят свои инпут лаги и плавающие мыши вот этой штукой Furman M-10x E . Уж не знаю реально помогает или очередное плацебо. Вещь достаточно интересная, но дорогая, имхо. Где-то натыкался на фото в разборе, в ней вроде ничего особенного нет. Если кто разбирается и подскажет аналоги в районе 2к, я бы купил
а когда так стало? Или это эпизодически или кажется что должно быть плавнее? Ведь вы с чем то сравниваете поведение мыши.
Можете почитать вот эту тему еще, последние 10 страниц думаю хватит https://forums.geforce.com/default/topi ... ng-me/294/ Все завсегдатаи фиксят свои инпут лаги и плавающие мыши вот этой штукой Furman M-10x E . Уж не знаю реально помогает или очередное плацебо. Вещь достаточно интересная, но дорогая, имхо. Где-то натыкался на фото в разборе, в ней вроде ничего особенного нет. Если кто разбирается и подскажет аналоги в районе 2к, я бы купил
Да всегда так было,раньше просто значения не предавал... щас начал гуглить и выяснил что такие симптомы не есть хорошо) Это вроде как в старых домах наблюдается такой баг:D плохое заземление. В новых домах такого нету. Форум этот тоже видал и про штуку эту слышал) ну стоит оно конечно дороговато. У меня у самого стоит Стабилизатор напряжения недорогой он от скачков напряжения защищает, это хорошо бы у электриков спросить про аналоги)
Я так понял они на свой страх и риск покупают эту штуковину,для диагностики ведь электрик нужен Знать бы наверняка что проблема в элекричестве,то можно было бы на эту штуковину раскашелиться))
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения