Все прерывания делятся по следующим приоритетам: 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 минуты после загрузки системы. Не двигаем мышку и не используем клавиатуру в момент измерений. Потом остановка и скриншот.
OLD Hunter Вызывал сегодня мастера на дом, он тоже увидел эту задержку, сказал что дело точно не в железе компа, а что-то с монитором, посоветовал попробовать поменять кабель dp на самую последнюю версию, прошить монитор, если не поможет нести по гарантии в магаз. При этом все тесты что вы рекомендовали пройти, он прошел.
St@s1987 Ну мне он на даче пригодится, я видимо пропустил эти сообщения...
Member
Статус: Не в сети Регистрация: 14.06.2009 Откуда: Омск
helpme111 писал(а):
OLD Hunter Вызывал сегодня мастера на дом, он тоже увидел эту задержку
где именно он заметил задержку, раб стол, браузер, игры? Кабели, как и монитор конечно можно поменять, но не думаю что проблема в этом и оно поможет. Можете еще вот эту тему почитать https://forums.geforce.com/default/topi ... ng-me/320/ (можно у гугл транслейтом) из того что встречается в той теме и помогает некоторым(думаю вы это не пробовали) - разделение проводов от мыши клавы и видеокабеля моника(типо убирает помехи), и отключение звука.(тупо в микшере на 0) Там много чего обсуждается, некоторым "помогают" порой какие-то банальные или абсурдные вещи, ну а вдруг. В идеале бы конечно пк в другом месте проверить, но раз пока нет возможности, пробуйте то что есть.
Member
Статус: Не в сети Регистрация: 14.06.2009 Откуда: Омск
helpme111 ок. другими ПК есть возможность воспользоваться? Ну не знаю, на работе там, у друзей, знакомых, в каком-нибудь инет кафэ/клубе. Интересно там вы будете замечать задержку или нет.
Member
Статус: Не в сети Регистрация: 01.02.2010 Фото: 12
helpme111 кстати на счет задержки на рабочем столе, у меня такое было когда не хватало напряжения на проц или память, или даже когда много накидывал на память. Проц и память в разгоне или стоке? можно даже попробовать запустить память без хмп, в авто, и проверить, мало ли.
St@s1987 Cейчас проц в разгоне 4.5 напряжение 1.2, память 3000 напряж. 1.35 VCCIO 1.12, VCCSA 1.216 в XMP 1 вообщем, есть еще XMP 2 c частотой 3600, но на ней у меня синие экраны в играх. А вообще пробовал в стоке и процессор и память(все в авто), все тоже самое никак не влияет, что с разгоном, что без, все энергосберегайки выключены. Настройки для процессора брал из шапки по разгону на мат. платах asrock z370/z390. Проблема кстати появилась, как раз в то время когда часто лазил в биос и ковырялся со всеми этими настройками.
Member
Статус: Не в сети Регистрация: 01.02.2010 Фото: 12
helpme111 попробовать SA поставить к примеру 1,17-1,18 или SA-IO 1,15-1,15 и проверить. Или драм чуть поднять 1,36. Остальные напряжения в авто ? PLL voltage должен быть 1,2 В. Spread Spectrum выкл. ?
St@s1987 это ничего не даст, уже пробовал повышать - понижать, драм поднимал до 1.43 на пол часа. Остальные в авто, PLL 1.2, Spread Spectrum выкл., на неделе попробую по гарантии съездить с монитором в магазин где покупал.
Member
Статус: Не в сети Регистрация: 14.06.2009 Откуда: Омск
helpme111 может полностью тогда с пк и там самому поиграть/посмотреть? Я верю что проблема есть, но она не в мониторе(на 99.9999%) и не в пк как таковом. А вот в чем она - никто не знает. Если бы знали, форум нвидиа не был бы забит 320 страницами обсуждений.
Заблокирован Статус: Не в сети Регистрация: 24.12.2018 Откуда: г. Герой ТУЛА Фото: 1
А проблема в напруге на SA в 1.21v, деграднул процик то(контроллер памяти) скорей всего кто ж такие напруги на SA ставить советует то? руки ему выдрать бы
PS: глянул по ссылке на советчиков как говорится "флаг им в руки" с вольтажом в 1.3v один последователь уже есть(пострадавший)
Member
Статус: Не в сети Регистрация: 14.09.2012 Откуда: Москва Фото: 2
llLEXXXll писал(а):
А проблема в напруге на SA в 1.21v, деграднул процик то(контроллер памяти) скорей всего
Это вряд ли, на этих процах можно ставить напряжение SA вплоть до 1.4, все зависит какой разгон проца и памяти, поэтому 1.21v на sa это безопасное напряжение. И кстати за контролер памяти процессора отвечает IO, а не SA. Насколько знаю доски от asus жгли процы 2011-3 broadwell-e, а точнее их кп, при вкл. xmp или вкл io\sa в auto, также знаю лично человека у которого внезапно накрылся проц i7 5960 на плате asus x99 gaming strix, там точно не знаю какая проблема была, других подобных случаев не встречал.
_________________ i9-9900k 5ггц, asus z390 apex XI, g.skill 2х16gb 4000cl16, asus 3080Ti strix oc
Member
Статус: Не в сети Регистрация: 30.04.2011 Откуда: Краснодар Фото: 21
Всем доброго вечера, в общем после пере сборки компа, я все таки решил углубиться в решение моей проблемы с лагами в ведьмаке 3 Конфиг в профиле I7 3930K 4,6ГГц мать ASUS Rampage IV Extreme 16ГБ озу 1866mhz 2x 1070TI с небольшим разгоном, игры стоят на ССД винда на другом ССД, винда 10 про Версия 10.0.17763 Сборка 17763
Что сделал, отключил HPET и в биосе и в винде через командную строку. Харды переключил на сата 2 что работали от контроллера интел а не от стороннего. Пробовал оставить одну карту, к этим лагам добавились и простые снижения ФПС. ну т.е. небольшие просадки, когда просто видеокарта не справляется... Переустанавливал, дрова, винду и ничего, разве может они чуть реже появляются... Но вот проблема в том, что все то-же железо кроме карт (ранее стояли две 780) работало в этой игре абсолютно нормально, ну были просадки фпс скажем идет все норм 60 фпс и проседает до 58 без резкого падения, а после смены карт падения очень резкие 60 и тут бац 40-45 на секунду и бац опять 60, что за хрень?
Может кто-то победил эту заразу? Вот скрин латенси мон: Причем эти значения(красные) появляются сразу после запуска программы, т.е. даже просто в винде, что это может быть, куда копать? Вот записал видео дабы не быть голословным, за две с ни большим минуты игры, лагануло три 4 раза, это реально писец и играть в это не возможно...
Вложения:
Безымянный.jpg [ 305.87 КБ | Просмотров: 896 ]
Последний раз редактировалось Скаут 14.07.2019 21:58, всего редактировалось 1 раз.
Member
Статус: Не в сети Регистрация: 14.09.2012 Откуда: Москва Фото: 2
llLEXXXll писал(а):
Особливо с жвачкой под крышкой
В i7 9700к в качестве термоинтерфейса используется припой.
llLEXXXll писал(а):
Ну с дуру можно сами знаете что сломать
Это здесь абсолютно не причем. Косяк непосредственно в самих платах asus x99, у которых неправильный алгоритм подбора напряжений на проц. Подробней об этом здесь.
Добавлено спустя 6 минут 33 секунды:
Скаут писал(а):
Причем эти значения(красные) появляются сразу после запуска программы, т.е. даже просто в винде, что это может быть, куда копать?
Попробуйте поставить макс производительность в электропитании процессора и видеокарты потом прогнать тест.
_________________ i9-9900k 5ггц, asus z390 apex XI, g.skill 2х16gb 4000cl16, asus 3080Ti strix oc
Member
Статус: Не в сети Регистрация: 14.06.2009 Откуда: Омск
Скаут А у меня сложилось такое впечатление что это какая-то проблема со звуком или с дисковой подсистемой - на 1:02 и 1:28 фриз и просадки идут во время проигрыша фраз. И там еще по видео есть подобное. Так всегда или просто совпало? Звук пробовали полностью отключать, проверять на встройке и т.п?
Member
Статус: Не в сети Регистрация: 30.04.2011 Откуда: Краснодар Фото: 21
kiberman Профиль производительности на максимум, перезагружал, все энергосберегайки в виде вырублены. Насчёт патча безопасности и мелтдоун не знаю, как посмотреть? В стоке проверять как-то не хочется, ибо тот-же пк, те-же настройки, только блин сменил карты, и все... OLD Hunter Не, это зависит не от звука, ибо последний был когда рядом вообще никого не было, та и в других моментах, что я не записывал тоже были эти лаги, а там никто не говорил, без звука не пробовал... А может это быть из-за скажем кабеля или монитора, моник у меня dell3011 подключён по комплектом кабелю дисплей порта...
Скаут ну так у тебя все видно ж на скриншоте, сбоят дрова на усб и сетевуху ставь другие, подбирай. Я помню у меня на 3770к звук тррррррррррррррр делал, тогда еще ни про какие латенси моны и знать не знал, мб их и не было, но на одном форуме сказали, что дело в дровах на сетевуху и дали ссылку на версию дров где все ок, а никакие другие не помогали, так и просидел на старой версии без проблем
Сейчас этот форум просматривают: xelbrb и гости: 9
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения