Все прерывания делятся по следующим приоритетам: 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 минуты после загрузки системы. Не двигаем мышку и не используем клавиатуру в момент измерений. Потом остановка и скриншот.
Member
Статус: Не в сети Регистрация: 13.08.2010 Откуда: Санкт-Петербург Фото: 2
На работе стоит 7ка, i5-2500K, интегрированная видеокарта. Всё тоже самое при запущенном тесте, при 100% загрузке проца задержек нет. А так при энергосбережении весомые задержки на usbstor.sys (видать всегда будет что-то давать задержки). Вообщем вприципе мне всё ясно.
Member
Статус: Не в сети Регистрация: 18.02.2008 Фото: 0
Заменил мать и проц, проверил. те же баги в GTA5, нагрузка на GPU падает до 20% в место стабильных 99% и FPS при этом естественно ни о чём. ну и как обычно проблема рандомная то есть то нет. Пожалуй буду избавляться от GTX 1070... но прежде возьму ещё 2шт (появилась возможность по тестировать) может банально дело в экземпляре, если окажется так тогда Nvidia суки!
Moderator
Статус: Не в сети Регистрация: 08.05.2015 Откуда: Москва Фото: 6
jjxaker писал(а):
в том скрине да
В gta v кривая вертикальная синхронизация, поэтому я форсировал адаптивную через дрова. Так же движок gta v при 100+ FPS себя некорректно ведет, может нагрузка на GPU падать.
_________________ По всем вопросам и предложениям пишите в телеграм olegdjus
Member
Статус: Не в сети Регистрация: 18.02.2008 Фото: 0
Olegdjus В процессе... нужно же найти истину. а то все эти танцы с бубном покрути там да покрути тут... ковыряние софта и винды это топтание на месте, всё должно работать в дефолте. собственно до Паскаля так оно и было.
всё должно работать в дефолте. собственно до Паскаля так оно и было.
Пока эта карта с фризами на руках надо было сносить к соседу, воткнуть посмотреть как у него на этой карте. А так ничего нового.. nVIDIA боится понести репутационные потери, не признают хардверного бага паскаля, ограничились формулировкой типа уровня софт бага
Member
Статус: Не в сети Регистрация: 18.02.2008 Фото: 0
Inego писал(а):
сносить к соседу
Не всё так легко, увы. есть конечно в моём окружение более менее приличные сборки, но там такие владельцы что легче себе второй комп собрать. Я проапгрейдил проц, мать, замена памяти едет, и замена для всех дисков едет на M.2(SATA контроллер вовсе выключу), БП у меня пара Seasonic SSR-750TD и SS-850KM и оба высокого класса их сразу можно исключить. по сути больше влиять то и нечему, своими силами справлюсь...
Inego писал(а):
nVIDIA боится понести репутационные потери, не признают хардверного бага паскаля
Вот и я к этому мнению склонен. тут же не прокатит как это было с GTX 970... да и подозрительно то что проблемы не массовые.
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
jjxaker писал(а):
Вот и я к этому мнению склонен. тут же не прокатит как это было с GTX 970... да и подозрительно то что проблемы не массовые.
У меня такое было,обсуждали уже,вылечилось само,аб вычистил и дду, если вы платформу сменили и не помогло-не думаю что баг нельзя побороть,на z97 он ушёл,но в системе ещё много чего исключал и настраивал под себя,потому-что это косячок с работой pciex у карты есть и энергосберегающими,говорили уже про лаги на старых платформах и с некоторыми драйверами не выходит из сна.
По своему анализу-и скромному опыту с железом чуть более 20 лет-пришёл для себя к выводу -проблема в связке: драйвер -биос карты(гпу-буст)-разогнанные частоты карты и вносимые помехи картой на шине pciex-увеличение джиттера,вследствие новой агрессивной схемы работы гпу буст. В пользу этой теории говорит косвенный факт-карта очень плохо переносит минимальный разгон шины,или её спред-падает драйвер при малейшем увеличении или начинается жуткий тиринг. Именно поэтому проблема не массовая-чувствительность к платформе,биосу и его настройкам.
Когда старенькие карты типа Кеплер спокойно это издевательство переносили. Чувствительна бывает на некоторых режимах к ручному выбору версии 2.0-3.0 или вобще не заводится на старых платах.
У себя что-бы минимизировать эффект хоть как-то.,-фапч шины в low blck,все частоты вручную и множители,без лишних контроллёров, портов и спредов на шинах.
В итоге: уже более 2-х месяцев этого эффекта нет,но надо учитывать такие бубны не всем нужны и устраивают-тем более не всем сток нужен. Просто так для информации.
А по Сисоникам так мнение личное и не более-они конечно ни причём)))- но будь они такие "илитарно-идеальными")-стояли бы в каждой второй машине))),но чо-то я вот "дурак" почему-то взял старую как "пень" голдовую модель энермакса,уже не выпускают -не знаю что на меня нашло - хотя 10 килорублей бюджет на Бп был по старому курсу.
Блок уже 2 Пк обслужил, и 1 в тяжелейших условиях по питанию- огромные скачки напряжения,аварии на подстанциях, замыкания, гроза, и пару лет назад разные импульсные безобразия,от всех феерверков которых в совокупности - "Слоник" бы уже "ласты склеил". - и думаю будет служить ещё очень долго).
Member
Статус: В сети Регистрация: 22.03.2005 Откуда: Уфа Фото: 0
kiberman писал(а):
Блок уже 2 Пк обслужил, и 1 в тяжелейших условиях по питанию- огромные скачки напряжения,аварии на подстанциях, замыкания, гроза, и пару лет назад разные импульсные безобразия,от всех феерверков которых в совокупности - "Слоник" бы уже "ласты склеил". - и думаю будет служить ещё очень долго).
Шо ж ты его мучаешь-то так, изверг? Подружи его с инвертором и будет вам обоим щастье. Проверено уже не с одним стабилизатором.
Добавлено спустя 6 минут 15 секунд:
kiberman писал(а):
По своему анализу-и скромному опыту с железом чуть более 20 лет-пришёл для себя к выводу -проблема в связке: драйвер -биос карты(гпу-буст)-разогнанные частоты карты и вносимые помехи картой на шине pciex-увеличение джиттера,вследствие новой агрессивной схемы работы гпу буст. В пользу этой теории говорит косвенный факт-карта очень плохо переносит минимальный разгон шины,или её спред-падает драйвер при малейшем увеличении или начинается жуткий тиринг. Именно поэтому проблема не массовая-чувствительность к платформе,биосу и его настройкам. Когда старенькие карты типа Кеплер спокойно это издевательство переносили. Чувствительна бывает на некоторых режимах к ручному выбору версии 2.0-3.0 или вобще не заводится на старых платах.
У меня и по шине разгон и страпом (иначе, как бы я ещё столько профита выжал) и вручную 3.0 указан... Вот, прямо, огорчаешь ты меня, что всё это стоит пробовать откатывать в дефолт.
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
Alex TOPMAN писал(а):
Шо ж ты его мучаешь-то так, изверг?
Проблемы питания в доме решены,да и предпочитаю я схему "честный" сетевой фильтр- и Олдовый проверенный Бп -старомоден
Alex TOPMAN писал(а):
У меня и по шине разгон и страпом (иначе, как бы я ещё столько профита выжал) и вручную 3.0 указан... Вот, прямо, огорчаешь ты меня, что всё это стоит пробовать откатывать в дефолт.
Это огорчает Нвидия)),и к тому-же это просто информация и моё мнение-не более, а не план к действию. Для себя нашёл решение-выводы сделал: не любит не точную синхронизацию,разгон pciex. А так как контроллёры памяти и шины в цпу-осторожнее с разгоном. Нужен ручной подбор настроек если есть негативные нюансы. Думаю с приходом веги от амд продам карту и возьму красных. Серия получилась посредственная конечно.
p.s у меня в ручном 3.0, иногда имеет смысл сделать банальный clr_cmos джампером,вместо возврата в дефолт вручную из меню -для очистки таблицы dmi,что бывает крайне необходимо при обновлениях биоса/и оборудования в системе.
Добрый день всем форумчанинам. У меня вообще проблемы начались с материнкой, когда приобрел Gigabyte GTX 1060 3GB Windforce OC. Биос прогружается через раз. Микрофризы присутствуют даже при просмотре видео. Это видео, где прогонял тест в Furmark https://youtu.be/LNSkBiRLjAs. Есть ли у кого идеи по этому поводу, или нужно смириться, так как новая архитектура и ждать хотфиксов или это "железная" проблема?
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
sergielebedev писал(а):
Есть ли у кого идеи по этому поводу, или нужно смириться, так как новая архитектура и ждать хотфиксов или это "железная" проблема?
День добрый. Ну фурмарк уже крутит и записать вы смогли,вряд ли карта не исправна, Несовместимость с Мп или хреновый Бп)
Биос F10С ? обесточивайте полностью дежурное питание и джампером clr_cmos -для очистки dmi таблицы. И заново запускайтесь. Если биос не обновлён-в сервис или сами если знаете как и что - ответственности не несу.
Потом делать выводы и смотреть дальше. Карту проверить можно на другом Пк для однозначности.
Пишите в саппорт Гигабита,тем более у вас и материнская плата и карта от них,могут рассмотреть это дело и выслать вам новый бета биос. Тут на форуме есть представитель. Пишите ему в личку или линк на тему.
kiberman Благодарю за ответ. Сейчас откатился на F8. Вроде ожила. Писал в тех поддержку, упорно рекомендуют проверить блок питания. Блок питания куплен две недели назад, стояла HD7850, вообще никаких проблем не было. Единственное, были проблемы при установленной 10 и 8, после выключения компа, он вдруг сам запускался снова... clr_cmos уже делал, попробую еще раз. Бэкап биос тоже прошивал на новую прошивку, еще хуже было: биос сбрасывался раз 7 и потом только запускалась система. Писал в техподдержке англоязычным ребятам, но может наш лучше поймет ситуацию..... В общем нашел его. Но, судя по тому, что он последний раз здесь появлялся в декабре, сомневаюсь, что он ответит. (GBT Support - его ник)
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
sergielebedev писал(а):
Писал в тех поддержку, упорно рекомендуют проверить блок питания. Блок питания куплен две недели назад, стояла HD7850, вообще никаких проблем не было. Единственное, были проблемы при установленной 10 и 8, после выключения компа, он вдруг сам запускался снова... clr_cmos уже делал, попробую еще раз. Бэкап биос тоже прошивал на новую прошивку, еще хуже было: биос сбрасывался раз 7 и потом только запускалась система.
Не за-что,про Бп вам правильно пишут,если самозапуск Пк то как вы описываете,лучше пожалейте комплектующие и купите хороший брендовый Бп на честных 550-650 вват. Этой мощности будет с запасом - топовые конфигурации с 1-ой видеокартой без сильного разгона-редко вылезают за 300 вват в пике + запас ещё 250-350 с головой. Huntkey -это не серьёзно. Если он всё оборудование утащит в могилу-затраты будут больше. И лучше не прошивать биос с таким Бп. потом уже выяснять с нормальным.
Согласен с вами. Кажется, что сообщения связаны просто с работой видюхи и материнки, но может именно они помогут решить проблему DPC latency. Вдруг именно моя проблема послужит ключом для устранения той проблемы: БП? Биос видюхи? Биос Материнки? Прошу прощения еще раз.
Advanced member
Статус: Не в сети Регистрация: 05.01.2006 Откуда: мск Фото: 5
sergielebedev писал(а):
но может именно они помогут решить проблему DPC latency.
а если не помогут? обсуждайте вопросы биос, работу БП и вюдихи в соответствующих темах. Если чтото из этого поможет решить проблему с сабжем, то ждем вашего радостного репорта в этой теме.
_________________ ✅ РЕМОНТ мышек! ✅ качественно и с гарантией ✅
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения