Все прерывания делятся по следующим приоритетам: 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 минуты после загрузки системы. Не двигаем мышку и не используем клавиатуру в момент измерений. Потом остановка и скриншот.
aleksandr409, это так хуанг научил свои ВК/дрова работать с одновременной многопоточностю)) На интеле HT, на AMD SMT. Либо дрова удалять, либо жертвовать одновременной многопоточностью. Но опять же, это только максимальные цифры в латенсимон, по факту не все так просто.
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
Hellomn писал(а):
Что это за ошибки такие показывает latencymon? (Выделил красным на скриншоте)
Это не ошибки, счётчик обращений к страницам виртуальной памяти (файл подкачки). Какие процессы обращаются- на вкладке Processes.
Добавлено спустя 2 минуты 8 секунд:
iG0Lka писал(а):
и что в ней лучшего добавилось?
Это сервис релиз, нацеленный на улучшение совместимости с Windows 10.
Судя по результатам у людей на 6.70 и анализе у себя, dpc на ветке 398.xx подрос на 50-70 в режиме энергосберегающих . А на вкладке drivers- nvlddmkm.sys у нас теперь с наибольшем временем исполнением и количеством вызовов- за смешное время в 10-25 секунд работы монитора.
Майки опять "напилили" ядро патчами, или Нвидия- подняла планку "качественные" драйвера на новый уровень .
fps monitor: fps - красный; время кадра - фиолетовый; загрузка ядра gpu - желтый. На одной из картинок видно что загрузка ядра резко проваливается а время кадра подскакивает
Здравствуйте! Сегодня создал отдельную тему на конференции по поводу странных рывком в играх: https://forums.overclockers.ru/viewtopic.php?f=22&t=595535 Система: GTX 1080, I7 8700, HYPER X PREDATOR 16GB 3200, SSD SAMSUNG 850 PRO Кроме проблем указанных по ссылке - в играх слышны кратковременные щелчки. Позже наткнулся на данную тему. Боюсь, нет ли у меня такой же проблемы по теме High DPC Latency on Pascal GPUs. Друзья, очень прошу, гляньте, пожалуйтста, мои результаты Latency Mon. Я проделал по рекомендациям следующие действия: В панели управления Nvidia выставлен - Предпочтителен режим максимальной производительности Проверил целостность хранилища с помощью команды sfc/scannow - нарушений целостности не обнаружено Произвел тестирование Latency Mon. Большое спасибо за ответы!
Прошу прощения, что не спрятал изображения в спойлер, не нашел как это сделать.
Member
Статус: Не в сети Регистрация: 18.12.2016 Откуда: Московская обл. Фото: 0
aleksandr409 писал(а):
На одной из картинок видно что загрузка ядра резко проваливается а время кадра подскакивает
Пробуй прогнать тест стабильности Futuremark 3DMark с мониторингом через MSI Afterburner. Если будут провалы значит что-то с ВК. при условии работоспособности других комплектующих.
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
aleksandr409 писал(а):
На одной из картинок видно что загрузка ядра резко проваливается а время кадра подскакивает
Драйвер Нвидия - давным давно знает экзешник фурмарка, и в тесте сильно экономит лимиты и частоты- что-бы уменьшить токи на питальнике карты и сберечь её - то что там провалилось -может быть чем угодно. Не показатель.
Возьмите реальную тяжёлую игру с встроенным 3д-бенчмарком или 3дмарк стресс тест и зациклите прогонов на 20-25.
По графикам и картинкам-ничего криминального,кроме кривоватого драйвера от Нвидия,но тут вы не исправите-у всех так.
Посмотрите ещё версию биоса на плату,какой у вас микрокод, и какие патчи безопасности включены по умолчанию в ос.
На не которых Пк - патч спектр уязвимости - может довать микролаги и деградацию производительности. Msi afterburner и подобное по, при опросе датчиков, сам по себе может довать аномалии в работе при работе с nvapi, в Нвидия уже говорили об этом и фиксили в предыдущих ветках.
вот что выдала "проверка на защиты от уязвимостей"
В 3dmark могу сделал видео.
Добавлено спустя 53 минуты 14 секунд:
Kolizeum писал(а):
Пробуй прогнать тест стабильности Futuremark 3DMark с мониторингом через MSI Afterburner. Если будут провалы значит что-то с ВК. при условии работоспособности других комплектующих.
мониторинг fps monitor мне кажется более подробный добавлю msi afterburner. Тут видно, что например на *16:54* время кадра подскакивает.
Вот ещё Time spy extreme тут вначале видно, что все настройки nvidia сброшены на стандартные. до конца тест проводить не стал поскольку частота кадров очень низкая и загрузка gpu 100% провёл тест полностью, который выше.
Есть ещё старое видео Tom Clancy's Rainbow Six Siege На нём видно, что вовремя того как подскакивает время кадра проседает загрузка ядра gpu в 3dmark такого нет насколько я понял.
Bti патч сам по себе "сажает" ощутимо производительность I/0, + как результат может добавлять dpc и задумчивости Пк.
Не знаю как на I7-6900k, насколько будут выражены эффекты у вас, но для меня это существенно.
С точки зрения вашей безопасности для домашней машины- для реализации уязвимостей нужен административный локальный или удаленный доступ, рекомендую оставить только KVA- Если у вас не вэб сервер или любой другой))), а обычный домашний Пк с доступом в сеть через Нат роутера и Брасс провайдера.
Друзья, информация для всех - хочу вас "обрадовать",с новым апдейтом windows 10 17134.167 , при наличии обновленного микрокода для вашей системы или апдейта биоса с кодом- Патч BTI включён теперь по умолчанию на Интел системах .
Проверяйте негативный эффект от патча, это до 30% минус скорости операций i/0 ( ssd,hdd) в теории в худшем случае, и до 15-20% штраф - на Haswell+.
На более новых цпу или старых- выясняйте отрицательный эффект самостоятельно.
Друзья, информация для всех - хочу вас "обрадовать",с новым апдейтом windows 10 17134.167 , при наличии обновленного микрокода для вашей системы или апдейта биоса с кодом- Патч BTI включён теперь по умолчанию на Интел системах .
Microsoft медленно, но верно загоняет себя в могилу. Раньше, включил ПК, поиграл, поработал и все ок, а теперь, постоянно нужно что-то отключать, включать. Куда катится мир.
Уважаемый Kiberman, я вижу вы компетентны в этих вопросах, посмотрите, пожалуйста, несколько постов выше результаты моего ПК в LatencyMon. Буду очень благодарен;) Еще, хочу внести некоторые наблюдения по теме: Моя система: asus Z370-F GAMING, I7 8700K,GTX 1080. Имеются проблемы с щелчками в играх и странные подергивания. Читал в этой теме, что проблема только на Паскалях, но вчера я вместо 1080, поставил 770-ю карту и щелчки так и остались. И второе, тоже здесь читал, что проблема чаще встречается на более старых конфигурациях, но как видите, у меня довольно новая платформа и насколько я помню, на Z77 с этой же видяхой такого не было. ФПС вагон, а комфорта того нет((( Я в отчаянии уже. Пока не продал Z77 и 3770k уже серьезно подумываю вернуться на нее...
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
shakdog писал(а):
Уважаемый Kiberman, я вижу вы компетентны в этих вопросах, посмотрите, пожалуйста, несколько постов выше результаты моего ПК в LatencyMon. Буду очень благодарен;) Еще, хочу внести некоторые наблюдения по теме: Моя система: asus Z370-F GAMING, I7 8700K,GTX 1080. Имеются проблемы с щелчками в играх и странные подергивания. Читал в этой теме, что проблема только на Паскалях, но вчера я вместо 1080, поставил 770-ю карту и щелчки так и остались.
Здравствуйте, тут можно "не официально", в более простой манере общения, "мы" тут не работе
Проблема щелчков, может быть как в стороннем оборудовании- не совместимость с мп,кривой биос, так и софт и настройка таймеров, переразгон озу и его контроллёра.
В шапке темы есть информация как выложить отчёт hwinfo - что-бы я посмотрел что у вас за пк в деталях и версии frimware.
Выложите так-же пожалуйста скриншот pcclock- в шапке информация. Пункт 7- Контролируем тип таймера и скорость возврата функций с помощью утилиты PCClockTiming http://www.satsignal.eu/software/PCClockTiming.zip
По вашим скринам latency monitor- hd audio dpc высоковат. Но это может быть не связанно с вашей проблемой. Щелчки с момента сборки Пк,с самого начала?
По вашим скринам latency monitor- hd audio dpc высоковат. Но это может быть не связанно с вашей проблемой. Щелчки с момента сборки Пк,с самого начала?
Большое, спасибо за ответ! А, кроме аудио, все более-менее? Щелчки мне кажется я замечал давненько, но не обращал на них внимания, так как думал, что это могут глючить наушники, а вот когда уже наткнулся на эту тему и начал пытаться разбираться с подергиваниями в играх, то это меня ввело в ступор и комфорт во время игры полностью пропал, все внимание только на этом... Спасибо за совет, буду тестировать указанными программами и выложу результат сюда, скорее всего завтра. Надо наконец разобраться в чем же дело или предпринимать кардинальные меры, продать это все и вернуться на более раннюю платформу, но это уже крайние меры(( А, еще, я вчера обновил биос на материнской плате от Asus, и при разгоне оперативки при помощи XMP профиля до 3200, начало вылетать с критической ошибкой, хоть раньше такого не было... Эх, печаль...
Сейчас этот форум просматривают: Sealxo и гости: 7
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения