Все прерывания делятся по следующим приоритетам: 1 место - работает на уровне кольцо -2 прерывания SMI (system management interrupt — прерывание системного управления), которое возникает: -по сигналу от чипсета или периферии на материнской плате -программный SMI, посланный системным ПО через порт ввода-вывода -запись по адресу ввода-вывода, для которого микропрограммно установлена необходимость активации SMM. 2 место - гипервизор, который работает в кольце -1 3 место - ядро операционной системы - работает в кольце 0 4 место - пользовательский уровень - работает в кольце 3
Позднее дополню каждый раздел. Все проблемы у нас связаны с тем, что windows относится к операционным системам с вытесняющей многозадачностью. Вытесняющая многозадачность требует обработки системного прерывания от аппаратного таймера. По истечении кванта времени, отведённого процессу, происходит прерывание и вызывается планировщик процессов. Частота вызова планировщика критична: слишком частый его вызов будет расходовать процессорное время впустую. Единственное, что мы можем изменить - это увеличить время кванта и поменять соотношение квантов времени на активную задачу и задачи в фоне, за это отвечает параметр в реестре Win32PrioritySeparation По умолчанию 0х26 квант 18:6 = Оптимальный вариант При этом само время кванта зависит от системного таймера. При системном таймера 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 мс. Внести в реестр для глобальной настройки системного таймера [spoiler=] [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Гц.[/spoiler]
Главные правила для таймеров: Таймеры используются для времени (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 минуты после загрузки системы. Не двигаем мышку и не используем клавиатуру в момент измерений. Потом остановка и скриншот.
Hdaudio.sys высокий. Да и текущая 100-ка-если такие значения без патча Meltdown и Микрокода+Bti-это не лучший текущий показатель на фоне других, да-же с учётом энергосберегающих-ищите софт. Что со звуком? свежие драйвера?- по hdmi ничего не передаётся?. Звук Realtek. С панелью?.
В 1709 билде точность таймеров изменили,или группировка тикрейтов косячит- значение функции другое. Query perfomance call счётчик в 3 раза медленнее на скриншотах под спойлером-может софт конечно стал считывать не правильно. Но сомневаюсь .
Можно попробовать вам -выключить динамическй тикрейт-(faq)-в надежде что какой-то драйвер в 1709 у вас косячит с энергосбережением. Что -на портах и сети-настройки питания?
Fastboot-включён?.-на 1709 с вашим набором драйверов и биосом - результат может быть другой.
Информации мало очень от вас и она выдаётся по желанию: Какой билд ос 16299.192-ой?, видеокарта разгон,заводской-что за софт к ней?- Какие Драйвера?. В версии 390.65 вернулся баг в nvapi- микростаттер при установленом msi afterburner-датчик power.
Скиньте пожалуйста мне рапорт Hwinfo о полном конфиге в html виде-хочу посмотреть драйвера и версию микрокода , сделайте если не трудно smart дисков из faq и скриншот установленных программ из панели управления. Так-же попробовать поработать с отключенным контролёром аудио- но это обычно решается обновлением драйверов на звук или настройкой таймеров.
CobrA_22 писал(а):
По поводу удаления всякого фирменного софта и Afterburner в частности могу пояснить так: ранее до того как винда обновилась всё работало и летело исправно, я бед не знал и был всем доволен и даже более.
Новый билд Ос-это новое ядро,драйвера и режимы работы -то что работало в 1703-не обязано работать сейчас.
В вашем случае- тут только обновлять весь прикладной софт,драйвера и прошивки- а возможно что-то выключать,тюнинговать настройки или деинсталировать По. Если искать не хочется и билд 1709 не нужен- то и ставьте тогда предыдущий 1703 или 1607 если на нём всё работало)).
Никто тут заставлять что-то удалять не в праве, и тем более выуживать информацию- что у вас установлено из софта и как работает- Прежде всего это вам надо
Member
Статус: Не в сети Регистрация: 09.02.2016 Откуда: Томск
Всем привет. Была у меня проблема с фризами. Кажется решилась. 1. Почистил с помощью DDU в безопасном режиме систему от ATI дровишек; 2. Выставил в настройках драйвера режим энергопотребления "Максимальная производительность" 3. Удалил Afterburner. Единственное что осталось от ATI это Vulkan.
Запустил игру. Пару боев прокатился - фризов пока нет... Раньше в Диспетчере устройств было видно что нагрузка с обрывами, резкими провалами. Сейчас все ровно, провалов нет вообще.
_________________ AMD Ryzen 5 5600 | Asus TUF B450M-Pro Gaming | Palit GeForce GTX 1660 DUAL | A-Data XPG SPECTRIX D50 2х8 ГБ | Samsung 970 Evo Plus 500 Gb
Member
Статус: Не в сети Регистрация: 11.05.2009 Откуда: Тольятти
Заметил одну особенность у NVIDIA может это связано с DPC. Во время майнинга сильно замедляется работа за компьютером. На эфире очень сильно на ZEC меньше. На АMD такого не было
_________________ Только этой зимой!RTX 3090 согреет сильнее, чем две девушки одновременно! Все это уже в прошлом 4090 согреет сильнее, чем три девушки
Member
Статус: Не в сети Регистрация: 28.10.2017 Фото: 3
Всем привет, столкнулся с такой проблемой. При игре Battlefield 1 все хорошо. но стоит поиграть после в какую нибудь другую игру и снова зайти в battlefield начинаются фризы. Решается перезагрузкой системы, и снова все отлично. Думаю что проблема с таймерами винды, но это не точно. Сталкивался кто нибудь с подобным?
_________________ INTEL Core i7 10700K + Mugen 5 + MSI MPG Z490 GAMING PLUS + KFA2 HoF 3600+ ASUS EVO DUAL RTX 2070SUPER 8GB
Member
Статус: Не в сети Регистрация: 28.10.2017 Фото: 3
kiberman писал(а):
Здравствуйте. На платформе райзен отдельный вопрос,вот тут читали? 1usmus применимо к амд -выложил свои практические наблюдения. Процессоры AMD Ryzen (Микроархитектура Zen) #15277291
Если вы считаете что платформа Амд у вас в порядке и отстроена. Попробуйте Faq в шапке темы.
Да, сделано как и в той теме про райзен, так и из вашей шапки, фризов нету на 100 процентов после перезагрузки, но после какой нибудь активности, и заходе и игру они изредка появляются, так конечно можно смириться и перезагружать перед тем как поиграть, но понимание что так быть не должно, не покидает меня, по латенсу мун, они не совсем шкалит но квадратиков 12-18 есть.
_________________ INTEL Core i7 10700K + Mugen 5 + MSI MPG Z490 GAMING PLUS + KFA2 HoF 3600+ ASUS EVO DUAL RTX 2070SUPER 8GB
Member
Статус: Не в сети Регистрация: 11.05.2009 Откуда: Тольятти
eightylvl писал(а):
Отключения HPET в bios достаточно,
Где его найти на ASUS Z97 PRO ? hardware prefetcher l2 cache не оно ?
_________________ Только этой зимой!RTX 3090 согреет сильнее, чем две девушки одновременно! Все это уже в прошлом 4090 согреет сильнее, чем три девушки
Member
Статус: Не в сети Регистрация: 28.10.2017 Фото: 3
OLD Hunter писал(а):
fexen файл подкачки выключен?
сегодня отключил, но разницы так и нету, с чистого запуска система все идеально, хоть несколько часов играй, только вышел, чем нибудь позанимался и заново зашел, появляются фризы, понимаю что стоило бы задать данный вопрос с теме Windows, но там проблемы не решаются.
_________________ INTEL Core i7 10700K + Mugen 5 + MSI MPG Z490 GAMING PLUS + KFA2 HoF 3600+ ASUS EVO DUAL RTX 2070SUPER 8GB
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
F@tality писал(а):
hardware prefetcher l2 cache не оно ?
Нет это не то. На 97-ом асусе опции Hpet нет в явном виде.
fexen писал(а):
но разницы так и нету, с чистого запуска система все идеально, хоть несколько часов играй, только вышел, чем нибудь позанимался и заново зашел, появляются фризы,
Файл подкачки не стоит отключать,софт,игры и ос, потеряют в стабильности-лучше вернуть. Не зависит от того сколько у вас озу-хоть 128 гб-он обязательно нужен-как минимум для служебки в ос, софта,особенно чутко реагирует видеоредакторы и композ, из игр gta5 и арма3,и многие другие. Никогда его не отключайте и не слушайте того кто советует обратное).
Fast boot выключен в ос?. В журнале виндовс во время фризов нет ничего подозрительного?, драйвер на чипсет последний?. ssd evo 850 прошивка последняя? используется как обычно или в rapid режиме?
Если снять разгон и все другие настройки в дефолт сбросом clr_cmos перемычкой -фризы остаются?. Какой план электропитания в Ос?
Member
Статус: Не в сети Регистрация: 28.10.2017 Фото: 3
фаст бут выключен, в журнале частенько появляется 10016 ошибка. с чем связано сколько не пытался, так и не выяснил.
Параметры разрешений для конкретного приложения не дают разрешения Локально Активация для приложения COM-сервера с CLSID {D63B10C5-BB46-4990-A94F-E40B9D520160} и APPID {9CA88EE3-ACB7-47C8-AFC4-AB702511C276} пользователю DESKTOP-G6ITBA8\Денис с ИД безопасности (S-1-5-21-3539021054-2202033567-2557028093-1001) и адресом LocalHost (с использованием LRPC), выполняемого в контейнере приложения Недоступно с ИД безопасности (Недоступно). Это разрешение безопасности можно изменить с помощью средства администрирования служб компонентов. Прошивка последняя, рапид мод отключен. План питания выставлен от дров чипсета, райзен баланс. (пробывал высокая производительность разницы нету)
UPD Кажется маловероятным, но сейчас заметил такую вещь, как обычно зашел в игру, но попал на карту с густым туманом и не было не одного фриза, как только туман рассеился, появились опять кратковременные просадки по фпс. Но снизив настройки графики они исчезли, хотя загрузка видеокарты на ультра была в районе 70-80 процентов ( играю с локом в 60 фпс). Спустя минут 10 вернул ультра и так и не дождался просадок. Завтра попытаюсь еще раз повторить.
Заранее извиняюсь за оффтоп, тема не батлфилд и не Windows.
_________________ INTEL Core i7 10700K + Mugen 5 + MSI MPG Z490 GAMING PLUS + KFA2 HoF 3600+ ASUS EVO DUAL RTX 2070SUPER 8GB
Member
Статус: Не в сети Регистрация: 22.03.2005 Откуда: Уфа Фото: 0
fexen писал(а):
Всем привет, столкнулся с такой проблемой. При игре Battlefield 1 все хорошо. но стоит поиграть после в какую нибудь другую игру и снова зайти в battlefield начинаются фризы.
Попробуйте локализовать виновника проблемы. После игры запустите что-то не нагружающее совсем ГПУ. Только ЦПУ. И поиграйте снова. Нужно понять, где (ГПУ или ЦПУ + ОЗУ) мусор копится и начинает "застревать" фризя в игре потом.
Добавлено спустя 4 минуты 28 секунд:
F@tality писал(а):
hardware prefetcher l2 cache?
Шо за зверь и для чего? (если тут оффтоп - просьба пояснить в лс. пасиб)
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
fexen писал(а):
С включенной вертикальной синхронизацией, включен в самой игре. Драйвер 395,65.
Пробуйте другую версию драйвера, чистите черз ddu пункт-3 faq, попробуйте очистить кэш нвидия и профилировать экзэшник Батлфилда-на макс питание. До конца месяца должны быть ещё драйвера. Тут 10-ки- билд имеет то-же значение на 1607/1703 - статтеров меньше.
Member
Статус: Не в сети Регистрация: 22.03.2005 Откуда: Уфа Фото: 0
Всех, кто со своими микрофризами, микро- и просто статтерами грешит на DPC latency, информирую, у нас появилась ещё одна интересная зацепка по этой проблеме - прошу глянуть сюда: Обсуждение "плавности" в играх, технологий *Sync и т.п. #15342068 Стоит разносторонне проверить эту гипотезу.
Member
Статус: Не в сети Регистрация: 09.06.2005 Фото: 32
Alex TOPMAN писал(а):
Всех, кто со своими микрофризами, микро- и просто статтерами грешит на DPC latency, информирую, у нас появилась ещё одна интересная зацепка по этой проблеме - прошу глянуть сюда: Обсуждение "плавности" в играх, технологий *Sync и т.п. #15342068 Стоит разносторонне проверить эту гипотезу.
нифига не зацепка. на одном и том же компе с одним и тем же моником на паскале 1060/1080ти микрофризы. меняем карту на любую другую, конкретно пробовал джифорс 570, 980, радеон 480 и все идеально.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения