Часовой пояс: UTC + 3 часа




Куратор(ы):   eLfiK   



Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 4379 • Страница 65 из 219<  1 ... 62  63  64  65  66  67  68 ... 219  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 
Прилепленное (важное) сообщение

Member
Статус: Не в сети
Регистрация: 12.10.2016
1. Ликбез по прерываниям.
Все прерывания делятся по следующим приоритетам:
1 место - работает на уровне кольцо -2
прерывания SMI (system management interrupt — прерывание системного управления), которое возникает:
-по сигналу от чипсета или периферии на материнской плате
-программный SMI, посланный системным ПО через порт ввода-вывода
-запись по адресу ввода-вывода, для которого микропрограммно установлена необходимость активации SMM.
2 место - гипервизор, который работает в кольце -1
3 место - ядро операционной системы - работает в кольце 0
4 место - пользовательский уровень - работает в кольце 3

2. Ссылки.

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), поэтому любое прерывание на нашем ядре прервет нашу программу.


Программы для оценки прерываний:
ETW xperf WPA - родной софт от microsoft
Latency monitor https://www.resplendence.com/latencymon
DPC latency https://www.wagnardsoft.com/forums/viewtopic.php?t=5265


Настройка прерываний


Борьба с прерываниями.
Бороться надо двумя путями.
Первый путь - уменьшить само количество прерываний=их частоту.
Частота прерываний за 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 минуты после загрузки системы.
Не двигаем мышку и не используем клавиатуру в момент измерений. Потом остановка и скриншот.


Презентация NVIDIA (на англ.) о проблемах статтеров, фризов и лагов (терминология, описание и причины возникновения)


Последний раз редактировалось anta777 16.07.2025 21:44, всего редактировалось 40 раз(а).
Начну редактировать первое сообщение и возьмусь за эту тему.



Партнер
 

Member
Статус: Не в сети
Регистрация: 10.02.2018
Фото: 35
У меня в таймингах, Command rate


 

Advanced member
Статус: Не в сети
Регистрация: 05.01.2006
Откуда: мск
Фото: 5
посмотрел у себя.
нашел такой параметр, только обозначается он не CR
#77

kiberman, я правильно понимаю что автоматом выбирается 2, или стоит конкретно указать?
может еще что поменять можно для улучшения отзывчивости? :D

_________________
✅ РЕМОНТ мышек! ✅ качественно и с гарантией ✅


 

Member
Статус: Не в сети
Регистрация: 02.10.2009
Откуда: Мск.Измайлово.
Фото: 3
iG0Lka писал(а):
iG0Lka


выставляй 2 там где Auto ,со скрина предпоследний пункт.

можно в cpu-z посмотреть текущее значение. , что оно показывает если в биосе стоит значение на авто-

#77


 

Advanced member
Статус: Не в сети
Регистрация: 05.01.2006
Откуда: мск
Фото: 5
krasnov77 , CPU-Z показывает 2Т
https://habrastorage.org/webt/os/xl/u2/ ... oe3ne.jpeg

счас попробую 1 поставить, вдруг чудо :D

_________________
✅ РЕМОНТ мышек! ✅ качественно и с гарантией ✅


 

Member
Статус: Не в сети
Регистрация: 29.06.2015
Откуда: Msk never sleep
Фото: 98
kiberman писал(а):
для cs go и pubg запретите создание кэша в панели видеодрайвера, и перед запуском игр,удалите в темпах Нвидия кэш

Про этот пункт вы говорите? #77
Для лучшей производительности говорят лучше включать или не так совсем?

_________________
Греется🔥значит работает.
Термопасту наносят ни как нутелу в гостях, а как черную икру теще на бутерброд 😎


 

Member
Статус: Не в сети
Регистрация: 16.05.2010
Откуда: Ленинград
Фото: 545
Утро доброе!

gadpaw писал(а):
Переключение CR в 2T значительно снизило фризы и latency (по ощущениям), правда есть момент, если перезагрузить комп и после паузы
запустить latencMon, то dxgkrnl.sys и nvidia kernel имеют низкие показатели irc и dpc, а после работы игрового приложения минут 10-15, при повтором запуске latencyMon показатели dxgkrnl.sys и nvidia kernel начинают показывать высокие значения irc и dpc. А hal.dll и ataport.sys постоянно имеют высокие показатели (hal - irc; ataport.sys - irc и dcp), а при запуске после старта windows - имеют наибольшие показатели (hal.dll, ataport.sys ).

ataport.sys amd-шный наверное не фиксится? А hal.dll что это может быть? Я отключил звук на материнке последовательный, параллельный порт - может быть еще что-то может лишние прерывания вызывать? (клавиатура ps/2, мышь и наушники ubs)

И вопрос по CR 2T - имеет эффект замедления работы памяти на 2-3% или еще какие-то накладные расходы? И память нужно менять?



Накладных расходов существенных никаких-это настройка из разряда safe defaults- безопасных по умолчанию, пару процентов на память штраф, и к общей производительности в пределах погрешности около 0.5-1% в минус. То-есть ничего.

То-что у вас от CR2 фризов меньше, говорит о том что контроллёру озу не комфортно работать в текущем режиме- причин может быть несколько:

1)Бюджетная память или просто плохой набор- не оптимальные первичные и вторичные тайминги (субтайминги) в вашем случае. То-есть м.п плата выставляет частоты и задержки по spd для конкретных частот работы - по данным записанным в озу. Но для режима 2400 и конкретно этих плашек озу- выставленные значения могут быть не оптимальны- грубо говоря микросхемы могут быть бюджет для которых и 2400 + cr-1 "это много"

2)Биос и платформа. Тут всё ясно- просто ждёте свежих апдейтов.

3)Ошибки сборки Пк- пережим перекос сво на цпу-сильный прогиб околосокетного пространства. И второй момент- при повреждении пинов(ножек) на цпу- загиб, надлом и другое.

Что бы я сделал на вашем месте,будь у меня Райзен и такая ситуация:
Сбросил бы настройки перемычкой,и посмотрел бы какие частоты и тайминги ставит система для озу, и как себя ведёт Пк.

Если это 2400+cr1 по умолчанию,сначала просто перевел бы в 2, а потом перебирал бы частоты в сторону уменьшения, режим 2133 или да-же медленнее - на мой взгляд хорошая отправная точка в этом случае.

Вручную бы немножко увеличил тайминги.

Если память не битая, и это просто на пределе частоты и задержки для этого "комплекта", есть шанс всё отстроить вручную, смотрите spd, используйте калькулятор памяти райзен - какие безопасные настройки он может предложить для каждых частот.

Если есть возможность- проверьте с другой озу, Вдвойне странно но ваш текущий комплект в qvl листе,конечно не гарантия всё-равно((.

http://download.gigabyte.ru/memory/mb_m ... ristol.pdf

BLS4G4D240FSB.8FADG


По ataport.sys и hal - вам надо выкачать последний комплект на чипсет,и распаковав его вручную, пройтись самостоятельно по диспетчеру, подсовывая inf на оборудование, возможно что-то не ставится, есть ещё отвал юсб у вас, по не понятной причине. Всё это надо смотреть. Пишите в тему. Попозже я гляну ещё раз ваш мануал к мп. Может что в голову здравое придёт. :-)

Добавлено спустя 1 час 50 минут 18 секунд:
iG0Lka писал(а):
я правильно понимаю что автоматом выбирается 2, или стоит конкретно указать?
может еще что поменять можно для улучшения отзывчивости?


Здорова!

Автоматом cr2. Не знаю сможет ли cr1 на 8-8-8-24 - Отзывчивость может быть лучше -только если озу+контроллёр БЕЗ проблем переварит это. Если что сбросишь перемычкой, если не загрузится :D
У меня сейчас дешёвый комплект кингстон на 1866-брал на замену 1333, так вот по spd он ставит 10-11-10-30 +CR1, что показательно, на 2000 уже заметен тиринг картинки, на 2133 аут-не грузится, но на cr2- без проблем без ошибок 2133, и 2400 если завысить тайминги. Прежде чем оставить "1" -сам "в хвост и гриву" мемтестом без кэша 2 прогона гонял,наблюдал.

Мысля у меня есть купить на новую платформу Интел- топ комплект на 3600-4000 на отборных чипах, и "юзать" его на паспортных частотах для контроллёра- (2400-2666).

Получив при этом очень низкие тайминги,прохладу,суперстабильность и плавность - не задрачивать контроллёр.


Добавлено спустя 23 минуты 6 секунд:
Enkvar писал(а):
Про этот пункт вы говорите?
Для лучшей производительности говорят лучше включать или не так совсем?

Да про этот
Для производительности лучше, Но некоторые игры просто могут - подфризивать-пока все шейдеры не скомпилируются,от движка зависит и где расположен кэш- на медленном проблемном hdd например или ssd.

Выключать параметр только для диагностики,а на хорошем ssd на мой вгляд и отключать не надо.

_________________
5950x\MSI MPG X570S MAX CARBON WIFI\7900xt Nitro+ Vapor\32GB 2x16-DDR4 Gskill 3200 (14-14-14-32-Cr2)\Pccooler YS1200W


 

Advanced member
Статус: Не в сети
Регистрация: 05.01.2006
Откуда: мск
Фото: 5
kiberman писал(а):
Не знаю сможет ли cr1 на 8-8-8-24 - Отзывчивость может быть лучше -только если озу+контроллёр БЕЗ проблем переварит это. Если что сбросишь перемычкой, если не загрузится
поставил 1. все работает, без проблем. ттт
счас поиграл в игре отзывчивость очень хорошая, вот только причиной может быть интернет :D

_________________
✅ РЕМОНТ мышек! ✅ качественно и с гарантией ✅


 

Member
Статус: Не в сети
Регистрация: 29.06.2015
Откуда: Msk never sleep
Фото: 98
kiberman писал(а):
Выключать параметр только для диагностики,а на хорошем ssd на мой вгляд и отключать не надо.

Всё ясно спасибо.

_________________
Греется🔥значит работает.
Термопасту наносят ни как нутелу в гостях, а как черную икру теще на бутерброд 😎


 

Member
Статус: Не в сети
Регистрация: 10.02.2018
Фото: 35
Спасибо за советы, буду пробовать.

А память не BLS4G4D240FSB.8FADG, а BLS4G4D240FSE.8FBD


 

Member
Статус: Не в сети
Регистрация: 16.05.2010
Откуда: Ленинград
Фото: 545
gadpaw писал(а):
Спасибо за советы, буду пробовать.

А память не BLS4G4D240FSB.8FADG, а BLS4G4D240FSE.8FBD


Пожалуйста, да индекс другой- не внимательно посмотрел.

_________________
5950x\MSI MPG X570S MAX CARBON WIFI\7900xt Nitro+ Vapor\32GB 2x16-DDR4 Gskill 3200 (14-14-14-32-Cr2)\Pccooler YS1200W


 

Member
Статус: Не в сети
Регистрация: 23.03.2017
Alex TOPMAN писал(а):
Загрузка хотя бы одного ядра держится под 100%?

Может в настройках электропитания процессора отключено переопределение ядра приостановки ядра производительности процессора и лимит на ядро 90%?


 

Member
Статус: Не в сети
Регистрация: 01.06.2017
kostik1966beta писал(а):
лимит на ядро 90%

где такое настраивается? а то первый раз слышу


 

Member
Статус: Не в сети
Регистрация: 23.03.2017
Mr_VIT писал(а):
где такое настраивается? а то первый раз слышу

https://overclockers.ru/lab/show/50738_ ... nd_Windows


 

Member
Статус: Не в сети
Регистрация: 01.06.2017
kostik1966beta
ну и где там "лимит на ядро"? единственное что там есть с "90%" так это порог признания ядра сильно загруженным, и относится это к управлению С-состояниям и множителями частоты, а не к "лимитам"


 

Member
Статус: Не в сети
Регистрация: 22.03.2005
Откуда: Уфа
Фото: 0
Mr_VIT писал(а):
[b]ну и где там "лимит на ядро"?

Как вариант: утилку что я выше предлагал с лимитом загрузки ядра 1 процессом и вручную назначить это ядро процессы, а все остальные процессы от этого ядра отцепить. 1 в качестве эксперимента можно заморочиться и проверить насколько предложенная идея недогружать ядро в принципе - актуальна.

_________________
14900KF(P62-58E48R52) Apex z790Encore Kingbank 2x24GB_8200cl32-48-48-2T Optane 5801X+960Pro+2x960Evo+5xSSD Palit5090Gamerock ASUS_PG278Q Pimax_8KX CM_HAF_X Win11x64


 

Member
Статус: Не в сети
Регистрация: 23.03.2017
Mr_VIT писал(а):
ну и где там "лимит на ядро"?

Вам нужно проверить две позиции: 27- включение переопределения ядер, и 23-порог использования парковки. Первая включает или выключает размазывание процессов по ядрам, вторая устанавливает лимит загрузки ядра при котором это делается. В режиме сбережения порог 90%, в балансе 85, в макс производ.-60%. В приложениях заточенных под один поток, лучше чтобы работало одно ядро так как частота его работы в бусте выше, и процесс не бегает по ядрам, лучше отзывчивость. Так утверждает автор статьи. А в многопоточных выше производительность с вкл. переопределением. Все игры как правило уже идут адаптированными под многопоточность, поэтому переопределение в новых играх я включаю, лимит на ядро 60%


 

Member
Статус: Не в сети
Регистрация: 18.02.2009
Много читал это тему нифига не понял ибо нуб. Походу проблема как правило в вин10! Стоит ли откатиться на вин7? И подскажите плиз команду для командной строки для отключения этого таймера в винде, а то чт ото совсем запутался) Спасибо!

_________________
IntelCorei712700K|ASUS STRIX Z690-A|G.Skill32GB6000Mhz|TeamGroupMP44L 2TB|GIGA GeForce RTX 4090 AERO|DarkPower13|GIGA M32U|Fractal DesignTorrent|


 

Member
Статус: Не в сети
Регистрация: 23.03.2017
eam1983 писал(а):
команду для командной строки для отключения этого таймера в винде

Если Вы имеете в виду HPET, то если Вы его из командной строки не включали, то и отключать нечего. а так bcdedit /set useplatformclock true включение, bcdedit /deletevalue useplatformclock выключение, перезагрузка


 

Member
Статус: Не в сети
Регистрация: 08.01.2010
Откуда: Санкт-Петербург
Фото: 41
Добрый день. посмотрите мои картинки. замучили периодические черные экраны: темный экран, вентиляторы крутятся, никакой реакции для клаву и мышь. Проц и память в разгоне.
есть подозрение для кривой драйвер nvidia.


Вложения:
LatencyMon-3.png
LatencyMon-3.png [ 231.69 КБ | Просмотров: 1639 ]
LatencyMon-2.png
LatencyMon-2.png [ 88.79 КБ | Просмотров: 1639 ]
LatencyMon-1.png
LatencyMon-1.png [ 95.18 КБ | Просмотров: 1639 ]

_________________
R3700X, ASRock X570 TAICHI,2x16Gb E-die Crucial,СВО MORA-420, Palit GAMINGPRO 12G GTX3080,БП BQ BN285
 

Advanced member
Статус: Не в сети
Регистрация: 30.03.2017
Откуда: Москва/Вешняки
Фото: 11
romalan писал(а):
темный экран, вентиляторы крутятся
а для начала свою профильную ветку почитать - там как раз про твой черный экран => Процессоры AMD Ryzen (Микроархитектура Zen) #15071113 , прежде чем на кривой драйвер подозрение наводить:)


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 4379 • Страница 65 из 219<  1 ... 62  63  64  65  66  67  68 ... 219  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan