Все прерывания делятся по следующим приоритетам: 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
Статус: Не в сети Регистрация: 09.06.2005 Фото: 45
COЛb в 90% игр 1060 позволяет ставить ультра настройки, на них и играл, разрешение 1680х1050, вин10-64 1703. раньше было 8гигов+файл подкачки, стало 24 и выключенный фп, ни каких предупреждений о нехватки памяти и тем более вылетов за полгода не встретились ни разу. та же лара на максималках около 14гигов жрет и это с макс текстурами, которые весят около 7-8 гигов, на 3х гиговой карте все не впихиваются и лезут в оперативку - https://youtu.be/th6UZr2FIsE самая прожорливая до оперативки игра пока была массэфект, тож в районе 14 кушала, при 24 это фигня, 16 гигов подозреваю мало, часто играю с включенным мониторингом, из всех игр 8 гигов мало было бетману при езде по городу, андромеде и где то еще. UPD. обзавелся тишкой ииииии барабанная дробь, щелчки звука никуда не исчезли вообщем по крайней мере в моем сочетании железа паскаль не уживается, уходишь на встройку, ставишь не паскаль - все ок, теперь уже наверное до нг и смены платформы на кофе\райзен посижу с дефектами а хотел ведь вегу брать, если б не подвела
Member
Статус: Не в сети Регистрация: 09.06.2005 Фото: 45
Agiliter и мсий и таймер HPET вкл. и выкл. с разными настройками. и винду менял, все, что в этой теме было, все опробовал, и встроенная звуковая и X-Fi, и откл. и удаление всех карт типа сетевых и Wi-Fi, встроенных контроллеров и т.д. ОЗУ пробовал и на 2х4 и докупил другой фирмы 2х8 ничего не помогает, я уже смирился и забил, надоело, капризный паскаль вышел, надеюсь в вольте учтут этот косяк и не повторят.
Заблокирован Статус: Не в сети Регистрация: 06.05.2016
SINgle84 писал(а):
COЛb в 90% игр 1060 позволяет ставить ультра настройки, на них и играл, разрешение 1680х1050
Ясно всё с вами Профессор) В каких 90% играх? Дота? Кс? Танки? Вов?) Ни о какой ультре на 1060-ом обрезке и не приходится говорить, дно карта бичёвская с производительностью на уровне с древними 970-980 обрезками 2014 года. Ну если только в 1680х1050 и с консольным фпс. Ошибок никаких не вылетало, потому что память вся не используется
_________________ синтетические соли помогают нам при боли 😈
Member
Статус: Не в сети Регистрация: 05.06.2009 Откуда: Чeбoксaры
Товарищи поставьте дефолтные настройки файла подкачки (по выбору системы), и не мучайтесь На 970 GTX в ведьмаке творились фризы непонятные даже с Vsync, помогло поиграться в настройках драйвера с "Заранее подготовленное кол-во кадров: 1" Если ничего не помогает советую попробовать с HPET поиграться bcdedit /set useplatformclock true либо bcdedit /deletevalue useplatformclock (писать в cmd с перезагрузкой)
_________________ 2x13950HX(Q1LP) P@5.8 E@4.6 HT off(Direct die+ЖМ) MSI Pro Z790-A WiFi DDR4@4100(BIOS cfg)https://imgur.com/a/IUInyIX Z690 Asr Extreme 4070super@3050
Капец !! Купил 1080 Ti за 24000 грн и охренел, попал в число тех у кого эта проблема с DPC Latency, фпс за 200 а карта нагружена на 30-50 % в 1080р (при DSR 4x карта полностью нагружается, но симптомы остаются теми же), проц тоже нагружен ~ на 40% фризов вроде не наблюдаю, а вот отзывчивость управления никакая, просто вата какая-то, скачал LatencyMon и DPC Latency Checker и все подтвердилось постоянные скачки до 2000-4000мс, уже локти себе кусаю что купил этот гавноПаскаль, Ну проявляется конечно не во всех играх, но в старых точно !!! Пока заметил такую хрень в Crysis, Crysis Warhead, Crysis 2 при любых настройках графики !!! В Abzu и Dreamfall - The Chapters вроде всё ок !!! Вот такая вот какаха !!! А ну зелёные адепты, коих тут тьма кто знает как бороться с DPC Latency ?? Буду рад любой помощи !!! P.S. Больше пока ни во что другое не играл !!! Следующим будет Crysis 3, если и там будет такая фигня, то вообще печаль
Добавлено спустя 2 минуты 16 секунд: И что самое печальное для всего кроме Тишки, хоть Драйвер с хотфиксом был, а для Тишки нету
bcdedit /set useplatformclock true либо bcdedit /deletevalue useplatformclock (писать в cmd с перезагрузкой) Пробовал не помогает !!
P.S.S Вообщем почитав ветку, понял что нужно отключить HPET в биос, переустановить с нуля MSI AB и HWInfo64, потому как наблюдается именно проблема с недогрузом видеокарты (хотя у меня немного странно частота карты не проседает или изредка проседает с бустовой до обычной, а загрузка только в некоторых играх на 99%, а так в основном сильно плавающая от 0 до 99% !!!)
Advanced member
Статус: Не в сети Регистрация: 29.03.2017
Да там может быть дофига возможных причин, причём если проблема аппаратная то она может вообще никак не решаться. Я бы для начала сделал бэкап, так когда начинаешь ковырять лишком глубоко можно что-то испортить. Проверил есть ли проблема в Linux, на другой ОС. Затем методом научного тыка пробовал все стандартные способы вроде переставить винду, не ставить ничего кроме драйвера, обновить остальные драйвера, Dx, .net framework, vcredist, отключение защиты и всего что можно отключить. Естественно удаление всего, что можно связанное с мониторингом и разгоном и снос остатков любых драйверов через DDU. Перевёл всё железо из IRQ в MSI. Проверил память, диск на ошибки. Попробовал локализовать проблему в xperf Дальше полез бы глубже пробуя оставить минимум подключенного (физически) железа и периферии. Отключал в биосе энергосбережение и неиспользуемое оборудование вроде последовательного и параллельного порта, встроенный звук, сеть, короче всё что можно отключить. Попробовал бы все возможные переключатели в биос... Отключал в диспетчере устройств всё подряд по списку, пока не сломается, вроде PCI мостов, контроллеров звука на каждое устройство, короче всё что можно отключить и при этом система всё ещё работает. Тоже самое со службами. Попробовал поменять настройки квантования системы (интервал с которым система переключается между задачами, это не про звук). Отключил UAC и драйвер виртуализации. Поковырялся как следует в реестре. Наверняка что-то ещё сделал, что сейчас в голову не пришло. Короче я бы наверно перепробовал всё в результате так ничего и не добился и продал видеокарту или остальную систему xD
Куратор темы Статус: Не в сети Регистрация: 22.12.2005 Откуда: Киров
123GooDy321 писал(а):
Капец !! Купил 1080 Ti за 24000 грн и охренел, попал в число тех у кого эта проблема с DPC Latency
Добро пожаловать в клуб. Для начала если кротко откуда ноги растут: Старые чипсеты(67-77),несовместимость с Мп, старый биос. Переразгон Озу, контроллёра и других комплектующих. Биос и его настройки. На некоторых машинах - подсветка видеокарт, рекомендуют выключать. Лишние оборудование не нужное вам вырубайте,usb контроллёры в 2.0 если не критично,порты только те что нужны,Sata -то-же самое,хот свап если есть опция то-же выключить. В ос паразитное увеличение добавляет софт привелегий ядра-сторонние Антивирусы,различные Хипсы или Фаерволлы и тд. -всё что вмешивается серьёзно в работу Ос. Лучше без сторонних- дэфэндера достаточно+стандартного фаерволла. Старайтесь не использовать Rst сата драйвер если у вас нет raid массива. Скорости не получите,у майков да-же сейчас драйвер пошустрее. Другие драйвера (usb,сетевой контролёр,видео и тд),на юсб энергосбережение выключить +сеть Если не помогло, далее конкретнее: Сторонний софт в ос Msi Ab, оверлеи и мониторинг нужно не переустанавливать, а удалять полностью с чисткой веток реестра. ASUS XONAR ставим uni дрова в low dpc mode. DVD-RAM LG пробуем отключать. После каждой манипуляции учитывая, что у всех системы разные и нужно выполнять разные задачи (монтажка видео, работа с графикой, игры и тд...), нужно все настройки подбирать индивидуально и пробовать самому, все опции пробовать включать выключать и проводить тесты конкретно на своей системе, в dpc latency checker и в LatencyMon чтобы сравнить результат. Далее внимательно изучаем пост роача: http://www.overclock.net/t/1433882/gami ... c-hardware Кратенько все советы сюда скидал, если будут результаты пишите.. Удачи
Member
Статус: Не в сети Регистрация: 22.03.2005 Откуда: Уфа Фото: 0
Astartis писал(а):
Господа, а есть ли внутреннее ощущение, что DPC Latency проявляется у какого-то конкретного производителя стабильно чаще?
У меня два паскаля FE в SLI и одиночная Ti в разных ПК. Проблема везде. Так что, конкретный производитель тут ни при чём. Вылечит он вряд ли, а вот добавить ещё и своих граблей - это запросто.
Стал несчастным обладателем GT1030 от MSI. Начались подлагивания звука (заикания) и повысились задержки DPC. Прочитав тему, понял что единственное решение это включить режим максимальной производительности в панели Nvidia. Частично это помогло, задержки стали чуть меньше и подлагивания звука почти исчезли, но не полностью. Заметил, что при проигрывании видео через flash, задержки очень сильно увеличиваются. Особенно заметно в программе RusTV Player в полноэкранном режиме. Подлагивания звука и всё еще проскакивают. Обратите внимание на скрине зеленые столбики - приложение открыто в оконном режиме, красные - в полноэкранном. Соответственно заикания звука происходят только в полноэкранном режиме. Пробовал разные версии и редакции Windows, а так же разные версии флеш плеера. Если удалить драйвер nvidia то проблема решается, но без драйверов пользоваться видеокартой невозможно. Со всеми другими более старыми видеокартами такой проблемы нет, столбики не повышаются даже до желтых что бы я не делал, и никаких заиканий звука нет абсолютно. Очевидно, что проблема в видеокарте, а если точнее то в ее драйвере. Почему nVidia не решает проблему? Неужели нет никаких решений? Драйвера с хотфиксом, которые вышли в 2016 году не поддерживают 1030. Если у кого-то есть решение этой проблемы буду рад. #77
Advanced member
Статус: Не в сети Регистрация: 05.01.2006 Откуда: мск Фото: 5
premial писал(а):
Очевидно, что проблема в видеокарте, а если точнее то в ее драйвере
видимо проблема в слабости видеокарты и слабости процессора. проигрывание видео на полный экран (кстати какое разрешение экрана?) так нагружает Вашу систему, что сильно возрастает время обработки информации. имхо
зы хотя ради проверки запустил сейчас видео 1920x1080 на весь экран и получил такую картинку
#77
система I7 2700@4300 и 1070 так что надо разбираться...
_________________ ✅ РЕМОНТ мышек! ✅ качественно и с гарантией ✅
Advanced member
Статус: Не в сети Регистрация: 29.03.2017
i5-3470 и 1050ti такой проблемы нет. Правда при переходе в полноэкранный режим у меня ещё частота обновления монитора подгоняется и в этот момент есть повышение латенси, но это нормальное явление, так как затем всё нормализуется.
видимо проблема в слабости видеокарты и слабости процессора.
Нет. Проблема именно в видеокарте. Читайте внимательнее. На другой видеокарте, причем более слабой (x1300, 8800GTS) такой проблемы даже близко нет, столбики даже до желтых не доходят в полноэкранном RusTV Player. Так что фиксить надо драйвер.
Да никто не будет ЭТО фиксить, Хуанг положил походу на эту проблему, потому что в общей массе всё хорошо и всё зависит от конкретных комплектующих !!! А проблемы меньшенства никого не волнуют, при такой армии упоротых фанатов, которые берут всегда только зелень (80% рынка), так что тут мы предоставлены сами себе, как говорится проблемы рабов хозяина не колышут !!! Сам думал взять Вегу, но судя по обзорам слишком горячая и шумная, при посредственном выхлопе, взял 1080 Ti и обломался ибо тоже вляпался по полной с этим DPC Latency (а именно ватным прицелом в некоторых играх при любом фпс) !!! Вообщем печаль !!
HPET в Биосе отключил, в консоли указанные выше команды прописал, вроде бы немножко лучше стало, теперь скачки в DPC Latency Checker стали гораздо меньше до ~1мс (раньше переваливало даже за 4мс), но проблему с ватным прицелом так и не решило, вроде по ощущением чуть лучше, но до идеала далеко !!!
Интересно а может быть проблема в том что и видюха и USB контроллер (может быть как раз тот в который воткнута мыша) находятся на одном прерывании IRQ 16 и из-за этого вся хрень ???
Member
Статус: Не в сети Регистрация: 10.04.2014 Фото: 0
123GooDy321 писал(а):
Интересно а может быть проблема в том что и видюха и USB контроллер (может быть как раз тот в который воткнута мыша) находятся на одном прерывании IRQ 16 и из-за этого вся хрень ?
согласен. А драйвер чистый стоит или со всей лабудой?
Драйвера пробовал разные. И те, что на диске идут и новые и старые. И с лабудой и без. Разницы никакой. А те дрова, которые с хотфиксом вышли в 2016 году и не поддерживают 1030. Интересно почему именно в этой программе (RusTV Player) и именно в полноэкранном режиме такие огромные задержки становятся? Ведь на других видеокартах задержки вообще не поднимаются что в полноэкранном режиме что в оконном.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения