Все прерывания делятся по следующим приоритетам: 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 минуты после загрузки системы. Не двигаем мышку и не используем клавиатуру в момент измерений. Потом остановка и скриншот.
Давно тут не был Ну что народ проблема решилась? Или все также в целом ? Решаеться ли проблема установкой новых процов Кофи лейк? Вроде там задержки ниже , или более быстрой памяти ? Или супер скоростных SSD M2? Есть тут кто уже пробовал ?
Лучшая производительность не означает лучшие задержки, тут нет прямой связи. Иногда наоборот приходится немного жертвовать производительностью в угоду более плавной картинке (парадокс, да? ) или более низкому инпут-лагу.
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
eightylvl писал(а):
Лучшая производительность не означает лучшие задержки, тут нет прямой связи. Иногда наоборот приходится немного жертвовать производительностью в угоду более плавной картинке (парадокс, да? ) или более низкому инпут-лагу.
Хорошо сказано ,всё верно.
Применимо к ключам загрузчика. На идеальной системе их крутить вобще нет необходимости. Да-же динамический тикрейт. "Накрутка таймера" в тестах кукуруза не более. К тому-же не всегда полезная. Если Пк ведет себя лучше или пропадают какие-то проблемы. Это изначально говорит об их наличии. Платформа/драйвер/Ос.
На мой взгляд надо отталкиваться от дефолтных настроек,и баланса в энергосберегающих настроек в биосе(с-уровни цпу)- если в этой ситуации хорошо всё. Тюнинг в ос не требуется. Эти ключи как дебаг- крутить их только если проблема существует с конкретным драйвером,ЕГО энергосбережением или новый билд ос и текущее по и железо-приводит к багу с тикрейтом.
Существенную роль играет на субъективное ощущение плавности так-же разгон. Особенно переразгон, не стабильный, или близкий к этой границе. Микростаттер и потеря плавности в данном случае- звонок,индикатор не оптимальной работы системы.
Особенно сильное влияние на плавность картинки имеет разгон контроллёра памяти до "конских" значений. Нет никакого практического смысла сильно "задирать" память и ставить выше спецификаций контроллёра интел на большие значения. Это чаще во вред для мягкой работы системы. Особенно если модули памяти плохие. Или совместимость с Мп оставляет желать лучшего.
Member
Статус: Не в сети Регистрация: 28.11.2015 Фото: 38
Поддержу kiberman. Лично у меняна пк максимальная плавность почти сходу, при установке 1709 сборки creators update. Прежде же слегка, приблизительно на то. что имею сейчас, достигалось подкруткой и тюнингом. В общем, из коробки всё отлично на 1709, ну лично у меня. Пусть и не с нвидеа я, но всё же. Отзывчивость отменная, хотя dpclat показывает время исполнения 1000 =))
Member
Статус: Не в сети Регистрация: 19.08.2010 Откуда: Прямо оттуда! Фото: 0
Плавность у меня пропадала при disabledynamictick yes на процессоре AMD, сейчас на интеле и изначально было норм, и с настройкой ОК, я страхуюсь для OW, ибо при такой настройке там точно всё щикарно) Душа спокойна иначе говоря.
Member
Статус: Не в сети Регистрация: 12.06.2009 Откуда: хз не помню
Eddisson178 писал(а):
Dpc Latenci и фризы ! Я так и не смог убрать фризы
скачай себе MSI utility v2 с guru3d, запусти от админа и посмотри какие irq используются, если минус везде то норм, а вот если видео карта сидит, на том же что сетевая карта, звуковая и особо achi, то либо поменяй слот видео карты, или попробуй галку поставить и нажать принять.
Member
Статус: Не в сети Регистрация: 16.11.2003 Откуда: Москва
XIMERA123 писал(а):
скачай себе MSI utility v2 с guru3d, запусти от админа и посмотри какие irq используются, если минус везде то норм, а вот если видео карта сидит, на том же что сетевая карта, звуковая и особо achi, то либо поменяй слот видео карты, или попробуй галку поставить и нажать принять.
разве важно чтобы минусы были? просто разные irq наверно решают
Advanced member
Статус: Не в сети Регистрация: 05.01.2006 Откуда: мск Фото: 5
это если используются общие IRQ, т.е. когда несколько устройств на одном прерывании. А если у каждого устройства свое отдельное апаратное прерывание то имхо старый режим более быстрый, т.к. не требуются телодвижения по записи в память и считывании её.
_________________ ✅ РЕМОНТ мышек! ✅ качественно и с гарантией ✅
Member
Статус: Не в сети Регистрация: 12.06.2009 Откуда: хз не помню
iG0Lka у винды свой обработчик прерываний у биос свой, у процессора набор инструкций, все это вносит задержки и создает по сути ддос атаку, в случаи если на irq навешано очень много устройств. MSI режим работает на аппаратном уровне по DMA и не требует прерывание процессора и обработки, особо это заметно если навешать с десяток жестких дисков и c десяток сетевых карт, потому сервера и перешли еще в двухтысячных на msi.
Цитата:
А если у каждого устройства свое отдельное апаратное прерывание то имхо старый режим более быстрый
только не забудь что прерывание не просто так назвали, прерывание именно прерывает работу цп, причем там еще и система приоритетов, которая не подходит для многоядерных систем, да еще и частотой в овер 3000.
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
XIMERA123 писал(а):
на irq навешано очень много устройств
На современном оборудовании не вижу проблем в конкурентном использовании irq. Сейчас не 95ый. Железо другое в Пк не видел стандарта pci старее 2.2, а все сата контроллёры современные это 3.0 pci-ex в том числе интегрированные- и ему до самой фени Какие там ключи Ос поставит. Решает драйвер pci.bus и Сата.
То-же самое касается видеокарты. Что мы там все переключаем)) Не знаю.
Динамически конфигурируется через pci.bus драйвер и драйвер устройства да и по другому и быть не может. Msi-x нативный для Pci-e. Да и уверен уровень привелегий ядра для видеодрайвера имеют больший приоритет чем какие-то ключи в реестре.
Друзья просто ставьте свежий биос на мп и не забывайте intel.inf и амд чипсет драйвера обновлять на ваших Пк, + обновлять ос
Member
Статус: Не в сети Регистрация: 12.06.2009 Откуда: хз не помню
Цитата:
На современном оборудовании не вижу проблем в конкурентном использовании irq. Сейчас не 95ый.
24 канальный аппаратный обработчик прерываний конечно избавил от большинства проблем, когда система не запускалась, а устройства не работали. только это компромисс для совместимости.
Цитата:
Да и уверен уровень привелегий ядра для видеодрайвера имеют больший приоритет чем какие-то ключи в реестре.
x86 как был так и остался, прерывания для процессора как были в приоритете 1-24 так и остались, видео карта идет только 16 в очереди, даже клавиатура важней попробуй поставить несколько сетевых карт и включить их в irq режим, микролаги будут нормой, потому как у них приоритет будет выше, а запросов они генерируют тысячи.
Последний раз редактировалось XIMERA123 10.11.2017 5:49, всего редактировалось 1 раз.
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
XIMERA123 писал(а):
только это компромисс для совместимости.
Это зелёные совсем времена))), более 20 лет. Применимо к тем годам у нас Пк то было сложно купить. По крайней мере в провинциальных городах с 94-95ого только местные сети стали появлятся. А так Москва только. И тогда это как раз не решало проблемы, а создавало. Сам помню какой секс был с оборудованием. Когда вышел 2.1 стандарт pci попозже-тогда стало получше.
Но помню S3 или Rendition видеокарты с багами и конфликтами прерываний -не редкость.
Добавлено спустя 12 минут 1 секунду:
XIMERA123 писал(а):
x86 как был так и остался, прерывания для процессора как были в приоритете 1-24 так и остались, видео карта идет только 16 в очереди, даже клавиатура важней
Тут исключение, всё-равно будет решать pci.bus драйвер.
Сейчас не лохматые годы. Контроллёр pci-ex давным давно в цпу. Спецификации 3.0 уже почти как 8 лет.
Видеокарта pci-ex оборудование и уверен,то что Ос диспетчер показывает в данном случае ниочем не говорит. Она по другому и не должна работать на этой шине. С какого-то момента времени родной менеджер нвидии перестал показывать irq -писали конечно баг. Но тут не думаю). В любом случае драйвер pci шины опросит оборудование посмотрит где оно висит и какая версия и откроет для видеодрайвера таблицу.
Всё это прозрачно работает на уровне мп и спецификаций.
Можно потвикать из спортивного интереса. Но я разницы не увидел. На некоторых версиях драйвера-тиринг сильный или микро мигания частей изображения, как при переразгоне видео озу.
Каждый решает сам. Лично я отказался от перевода видеокарты ключами реестра. Уверен- форсится какой-то- старый режим, или определенное количество линий. Отсюда баги. На z97 казалось бы проблем не должно быть. Ан нет.
Member
Статус: Не в сети Регистрация: 12.06.2009 Откуда: хз не помню
Цитата:
Тут исключение, всё-равно будет решать pci.bus драйвер.
инструкции вроде никто не трогал, поступает процессору прерывание 4 и 16, он сначала обработает 4, если запросов тысячи то видео карта подождет немного, MSI режим как раз обходит это и процессор может обработать все пакетом. но нвидии особо бежать не надо, сетевые карты уже давно работают в msi режиме, контролеры sata 19 номером обычно, usb 17. остается только клавиатура и некоторые звуковые карты, подумаешь у 0.1 процента людей проблемы.
Заблокирован Статус: Не в сети Регистрация: 16.01.2008 Откуда: модеры ПИДАРАСЫ Фото: 1
kiberman писал(а):
Каждый решает сам. Лично я отказался от перевода видеокарты ключами реестра. Уверен- форсится какой-то- старый режим, или определенное количество линий. Отсюда баги. На z97 казалось бы проблем не должно быть. Ан нет.
И тем не менее у NV в драйвере включен режим MSI по умолчанию для видеокарт Quadro
_________________ ___________ NVIDIA Graphics Driver Repack is underground
Member
Статус: Не в сети Регистрация: 16.05.2010 Откуда: Ленинград Фото: 545
XIMERA123 писал(а):
попробуй поставить несколько сетевых карт и включить их в irq режим, микролаги будут нормой, потому как у них приоритет будет выше, а запросов они генерируют тысячи.
Будут, только зачем на новом оборудовании моделировать старые проблемы? для чего?. Типа план к действию? надо переключить видеокарту?)- "о бо-же" она использует прерывание). Да и сетевые сейчас интегрированные на шине pci-ex(msi) , и внешних полно в этом формате. Pci стандарт вымирающий вид на новых мп. 25 сетевых карт это не десктоп платформа.
- ссылки приводил почему у меня сомнения на этот счёт, в том числе доки по wddm. Есть ещё документ от интел. И ясный комментарий сотрудника Нвидии.
Добавлено спустя 40 секунд:
DeniZZka писал(а):
И тем не менее у NV в драйвере включен режим MSI по умолчанию для видеокарт Quadro
Знаю об этом,но есть практика
Практический опыт: Долго у меня этот режим был месяца 4-5, но повторюсь отказался от него, в зависимости от версии драйвера и версии ос. Вёл он себя не предсказуемо абсолютно. Сразу этого не было видно. Дело личное каждого,но для меня абсолютно бесполезно.
Квадро с ним хорошо работают,это я в курсе. А десктопы нет. Притом не на древних чипсетах)). Выше ссылки довал. Комментарий сотрудника Нвидии. Откуда уверенность что мы не форсим Legacy режим какой-нибудь Msi вместо Msi-x ?
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения