Все прерывания делятся по следующим приоритетам: 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 минуты после загрузки системы. Не двигаем мышку и не используем клавиатуру в момент измерений. Потом остановка и скриншот.
Куратор темы Статус: Не в сети Регистрация: 22.12.2005 Откуда: Киров
Reznov писал(а):
Проявляется это все в периодических фризах с зависанием звука на секунду, какой драйвер винить не знаю
С чего вы решили что причина вашей проблемы связанна с DPC latency? Причин фризов существует достаточно много и нужно уточнять каким образом и в каких ситуациях они проявляются. Последнее куда нужно копать это задержки, вообщем вы не по адресу обратились. Также в профиле не указана видеокарта, похоже вы сейчас на встроенной сидите, а тема называется "DPC latency на видеокартах Nvidia"
Member
Статус: Не в сети Регистрация: 17.04.2016 Откуда: Москва Фото: 0
Удивительно даже насколько тема развилась за полгода. Я приобрела свою карту почти сразу после ее выхода, на замену Radeon 380, где замечу никогда проблем с задержкой звука не было. А пользовалась ей почти год. Как только поставила nvidia проблемы преследуют по сей день. Я уже отчаялась даже надеяться что это как-то исправится с выходом новых драйверов или еще как (к слову у меня Windows 10). Если работать весь день за компьютером, слушать музыку или смотреть видео в браузере или плеере неважно, играть в игру - стабильно задержки, залипания, короткие трески какие-то. Я просто не понимаю почему такого не было с радеоном. Да, и еще какая-то особенность именно в браузерах (чего тоже не наблюдалось на предыдущей карте), видео дергается 4 или 5 раз. Это прям тоже стабильно и всегда одинаково происходит. И помимо задержек невозможно записывать тот же геймплей - на выходе получается очень плохой звук, слышны трески и щелчки.
Member
Статус: Не в сети Регистрация: 28.02.2008 Откуда: Калининград Фото: 99
Reznov писал(а):
Сложно сказать, заметил я после переустановок и обновлений Windows.
после отключения юсб легаси и переключения на юсб 3 вэбку и мышь
Мне таки кажется, проблема в PCI звуковой и её дровах. Очень много total execution time на её драйвере. У меня драйвер Creative и карта pci-express, цифра total execution на порядок меньше. Пробуйте отключать PCI звуковую, пользоваться интегрированной либо переходить на pci-express звуковую.
Гайс, подскажите. У вас встречается что камера/картинка во многих играх в оконном режиме идеально плавная при стабильных 60 fps с vsync, а в полном экране чуть дёрганная? Полный экран фиксится банальным локом 60 fps в RTSS - так становится плавно как и в окне, значит проблема софтовая. Сегодня проверил на Mass Efffect Andromeda и Overwatch. Раньше замечал и в некоторых других играх. NVIDIA в курсе этой проблемы, знает кто? Или у вас именно такого нет? Я так понимаю это только на 10 серии.
Member
Статус: Не в сети Регистрация: 28.02.2008 Откуда: Калининград Фото: 99
Pekalord Вы не путаете "дерганную" картинку и банальный tearing, который пропадает при включении вертикальной синхронизации? Overwatch прекрасен при 300fps без vsync. GPU 1070.
k2viper Не, сравнивал с vsync в окне и с vsync в полном экране. В полном экране как-будто vsync работает криво (при стабильных 60 fps). Тиринга нет, как без vsync, но объекты (забор, дом) при обзоре камерой подёргиваются - нет гладкости/плавности, как в окне с vsync. Микрофризов, звуковых щелчков, как описано в теме, нет. А именно проблема с гладкостью объектов при перемещении камеры в полном экране.
Вот страницей ранее камрад описывает что-то похожее:
leetSmithy писал(а):
Странное дело: каждое третье приложение дергается при стабильном фреймрейте, однако переключением в полноэкранный режим "без рамки" этот эффект обычно нивелируется. Щелчков, проблем со звуком или зависаний нет вообще. Да и показатели latmon'а более-менее в норме. У кого наблюдается подобный условно-положительный эффект от borderless-режима и почему Pascal столь недружелюбен к полноэкранному режиму? Спасибо
Уточню - проблема именно с полным экраном (полноэкранный режим). В окне/окне без рамки плавно.
Member
Статус: Не в сети Регистрация: 22.03.2005 Откуда: Уфа Фото: 0
Pekalord писал(а):
Полный экран фиксится банальным локом 60 fps в RTSS - так становится плавно как и в окне, значит проблема софтовая.
С какого это перепугу такой вывод? Фпс, который вы видите в мониторинге - это ЦПУшный фпс (от ЦПУ на ГПУ, а не после ГПУ, который ещё не факт, что выдаст на монитор столько же). Поэтому, лок, всего лишь заставляет ЦПУ отдыхать всё то время, которое ранее он тратил на "лишние" кадры. И пока ЦПУ писал эти "лишние" кадры" в буфер, ГПУ мог запросить очередной кадр, т.е. приходилось ждать конца записи в буфер от ЦПУ. При локе ЦПУ такое возникает редко, т.к. чаще всего, к моменту запроса от ГПУ, ЦПУ уже всё сделал и "ушёл покурить".
Добавлено спустя 7 минут 44 секунды:
Pekalord писал(а):
Уточню - проблема именно с полным экраном (полноэкранный режим). В окне/окне без рамки плавно.
В полноэкранном режиме у активного приложения монопольное право писать в кадровый буфер. Если в него лезет кто-то ещё (зачем??... хотя, могут быть и оверлеи от криворуких погромистов-игрочитеров?), то проблемы будут налицо. У оконного же режима - полная демократия (а не коммунизм, как стоило бы).
Member
Статус: Не в сети Регистрация: 22.03.2005 Откуда: Уфа Фото: 0
Имхо, вся эта муть из-за переходного wddm. Решили, видать, уходить от старых монопольных видеорежимов в угоду полной их мультизадачности, но "по соображениям совместимости со старым железом и софтом", решили старьё пока оставить, а новое уже пришить. Вот мы и имеем эдакого "франкенштейна". Наверное, опять "из-за ограниченных индусо-ресурсов"...
Добавлено спустя 11 минут 29 секунд:
Pekalord писал(а):
Alex TOPMAN какой тогда вывод? Для полноэкраного режима не хватает проца i5@4.7Ghz, как у камрада leetSmithy (у меня без разгона)? Только i7?
Дело не в мощности отдельных компонентов ПК, а в согласованности и ритмичности их совместной работы. Кто работал в промышленности (на заводе/производстве) прекрасно поймёт, о чём я. Отдельные стадии все очень разные и производительность из-за их сути и сложности часто тоже меряется в разных величинах (у кого-то главное количество ножек стола в час, а у кого-то не число собранных столов главное, а качество сборки). И проблема несогласованности как раз начинает всё сильнее проявляться с ростом производительности отдельных стадий, хотя, в нашем случае, высокие частоты, вроде бы наоборот, позволяют чаще синхронизироваться. Обычно, дёрганость связана с вопросами буферизации (представь, ты ещё прикручиваешь ножку стола, а тебе уже новые прямо в руки суют, ибо до увеличения мощности производства ножек, куда складывать тебе запас, не было предусмотрено - надобности такой не возникало).
Member
Статус: Не в сети Регистрация: 09.06.2005 Фото: 45
на выходных переустановил винду с 1607 на 1703 и вроде все стало со звуком отлично, щелчки бесявые пропали, за пару дней, конечно этот рандомный баг не отловить, но пока тьфу-тьфу-тьфу не встретился, может помог переход на модель драйверов WDDM 2.2 не зря ж его пилили. единственное, что огорчает на новой винде при запуске программ с кнопок клавы - у меня на доп клавиши настроен запуск браузера, почты и т.д., проги появляются запущеные на заднем окне - лишний клик делать, чтобы переключиться на них а так все стало круто, сегодня весь день проиграл+фильмы позырил+ ютуб и ни разу ни одного щелчка нигде не проскочило, может паскали вылечили, тогда если вега окажется не тортом можно будет на 1080 покоситься
Member
Статус: Не в сети Регистрация: 28.02.2008 Откуда: Калининград Фото: 99
Pekalord писал(а):
Не, сравнивал с vsync в окне и с vsync в полном экране. В полном экране как-будто vsync работает криво (при стабильных 60 fps). Тиринга нет, как без vsync, но объекты (забор, дом) при обзоре камерой подёргиваются - нет гладкости/плавности, как в окне с vsync. Микрофризов, звуковых щелчков, как описано в теме, нет. А именно проблема с гладкостью объектов при перемещении камеры в полном экране.
А другие режимы синхронизации попробовать? Fast sync например. Оконный режим - есть оконный режим. Впрочем, что я объясняю, раз вам overwatch с 60фпс и всинком нормально играется
Member
Статус: Не в сети Регистрация: 09.06.2005 Фото: 45
за неделю на 1703, можно констатировать, что щелчки полностью таки никуда не попали, но хотя бы уменьшилась их громкость и частота появления, все таки придется ждать выход веги
Member
Статус: Не в сети Регистрация: 09.06.2005 Фото: 45
k2viper писал(а):
У массы людей на 1155 + паскале всё хорошо.
а еще у массы людей судя по этой теме и на форуме нвидии не все хорошо, и раз уж моя система столкнулась с этой проблемой паскаля, купить еще один паскаль 1080\ти за овердофига и обнаружить то же самое не хочется, до вольты еще далеко, остается вега, хотя никогда красных карт не было начиная со 2 джифорса.
i7 3770K ходит в разгоне 4.6 по всем ядрам с фиксированным напряжением 1.26, HT включен Комп работает 24\7 БП Zalman ZM-850HP, старичок, уже отработал 24\7 больше 7 лет, тьфу-тьфу, до сих пор идеален по всем линиям
полный конфиг:
Operating System Windows 7 Профессиональная 64-bit SP1 CPU Intel Core i7 3770K @ 4.60GHz 36 °C Ivy Bridge 22nm Technology RAM 16,0ГБ Dual-Channel DDR3 @ 2133MHz (11-11-11-27) Motherboard MSI Z77A-GD65 (MS-7751) (SOCKET 1150) 41 °C Graphics Panasonic-TV (1920x1080@60Hz) Intel HD Graphics 4000 (MSI) 3071MB NVIDIA GeForce GTX 1060 3GB (NVIDIA) 47 °C ForceWare version: 382.05 SLI Disabled Storage 119GB TOSHIBA THNSNH128GCST ATA Device (SSD) 26 °C 2794GB Hitachi HDS723030BLE640 ATA Device (SATA) 30 °C 2794GB Hitachi HDS723030BLE640 ATA Device (SATA) 32 °C 1863GB TOSHIBA DT01ACA200 ATA Device (SATA) 30 °C 2794GB TOSHIBA DT01ACA300 ATA Device (SATA) 32 °C 2794GB Western Digital WDC WD30EZRX-00DC0B0 ATA Device (SATA) 28 °C 2794GB TOSHIBA DT01ACA300 ATA Device (SATA) 30 °C Optical Drives PIONEER DVD-RW DVR-219L ATA Device DTSOFT Virtual CdRom Device DTSOFT Virtual CdRom Device Audio Creative X-Fi Audio Processor (WDM)
Проблема DPC Latency решается очень забавно, диагностика LatencyMon ничего не дает, тычет на dxgkrnl.sys и ndis.sys
На матери есть 6 нативных SATA Intel портов и еще 2 висят на отдельном контроллере Asmedia. Как видите в конфиге, у меня используются все 8 портов.
Барабанная дробь... ВНИМАНИЕ! Решение:)
Если к одному из двух Asmedia SATA портов подключен DVD-дисковод, тогда наслаждаемся цыканьем звука и красными шкалами на графиках диагностического DPC Latency софта каждые 10-15 секунд, иногда с перерывами.
Просто подключен, даже не крутящий диск, а просто подключенный самый обычный дисковод. Если на Asmedia висят жд под жесткой загрузкой торрентами все ок. Обновления, переустановки и прочее шаманство с дровами Asmedia ничего не дает.
Вот такое нетривиальное решение проблемы DPC Latency в моем случае. Страждущим советую попробовать поперетыкать SATA и обратить внимание на ненативные (вендорские, не чипсетмейкера), сторонние контроллеры и различные устройства на материнских платах. Ну и повыкидывать свои ссаные железяки от вендора gigabyte до кучи
Последний раз редактировалось locobu 18.05.2017 1:22, всего редактировалось 2 раз(а).
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
SINgle84 писал(а):
до вольты еще далеко, остается вега, хотя никогда красных карт не было начиная со 2 джифорса.
Дело то в платформе и в вашей периферии, а то что Паскали просто чувствительны к качественной "пиле" на Pciex- просто эта особенность дополнительно предъявляет повышенные требования к совместимости-качеству биоса,драйверов,прошивок сторонних контроллёров на шине и их настройке.
Спору нет, топовая Вега обещает по всем утечкам быть в районе 1080ti -Titanxp -но что-бы прокачать такой аппарат- лично я смысла не вижу ставить такую карту- на старый чипсет и 2600 камень+ - да-же в разгоне. Если есть деньги на Вегу-вам на мой взгляд актуальнее и рациональнее платформу поменять до выхода карты- дабы обезопасить себя от подводных камней и узких мест в текущем и будущем времени. Для меня дико бы смотрелось P8Z68V-PRO, i7-2600k+ Vega топ или 1080ti. Но это только мои мысли и не моё дело, дело ваше
locobu Когда устанавливал линукс-подобные ОС, с DVD-приводами тоже были проблемы: система долго грузилась, так как долго определяла этот привод на контроллере. Как только отключил привод, все встало на свои места. К чему я клоню: не факт что именно asmedia или другие ненативные контроллеры являются причиной задержек. Видимо, само ПО dvd-приводов вызывает конфликт с контроллером.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения