LINUX.ORG.RU

linux-rt дает пятизначное значение latency - ЧЯДНТ??

 ,


0

1

Суть проблемы.

# uname -a
Linux angband 6.14.0-rt3-arch1-6-rt #1 SMP PREEMPT_RT Sat, 03 Jan 2026 22:01:07 +0000 x86_64 GNU/Linux

При этом:

# cyclictest -t -a 0-3 --smi
# /dev/cpu_dma_latency set to 0us
policy: other/other: loadavg: 1.40 0.84 0.77 2/699 3127           

T: 0 ( 3106) P: 0 I:1000 C:  36681 Min:     15 Act:   71 Avg:   94 Max:    5997 SMI:       0
T: 1 ( 3107) P: 0 I:1500 C:  24573 Min:     24 Act:   70 Avg:  101 Max:   14803 SMI:       0
T: 2 ( 3108) P: 0 I:2000 C:  18444 Min:     25 Act:   74 Avg:  106 Max:    4149 SMI:       0
T: 3 ( 3109) P: 0 I:2500 C:  14849 Min:     23 Act:   71 Avg:  107 Max:    7104 SMI:       0

Поможите, люди добрыя! Что делать, куда копать? Сами мы не местныя в real time ядре не сечем.

Что может вызывать такие дичайшие задержки? И они на самом деле есть - звук трещит по швам, при работе с низкой задержкой звука.

Железо - ноутбук Lenovo z570,

$ cat /proc/cpuinfo 
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 42
model name      : Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz
stepping        : 7
microcode       : 0x14
cpu MHz         : 1751.954
cache size      : 3072 KB
physical id     : 0
siblings        : 4
core id         : 0
cpu cores       : 2
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx lahf_lm epb tpr_shadow flexpriority ept vpid xsaveopt dtherm arat pln pts vnmi
vmx flags       : vnmi preemption_timer invvpid ept_x_only flexpriority tsc_offset vtpr mtf vapic ept vpid unrestricted_guest
bugs            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit mmio_unknown
bogomips        : 4190.66
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 42
model name      : Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz
stepping        : 7
microcode       : 0x14
cpu MHz         : 1821.418
cache size      : 3072 KB
physical id     : 0
siblings        : 4
core id         : 0
cpu cores       : 2
apicid          : 1
initial apicid  : 1
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx lahf_lm epb tpr_shadow flexpriority ept vpid xsaveopt dtherm arat pln pts vnmi
vmx flags       : vnmi preemption_timer invvpid ept_x_only flexpriority tsc_offset vtpr mtf vapic ept vpid unrestricted_guest
bugs            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit mmio_unknown
bogomips        : 4190.66
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 2
vendor_id       : GenuineIntel
cpu family      : 6
model           : 42
model name      : Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz
stepping        : 7
microcode       : 0x14
cpu MHz         : 1981.878
cache size      : 3072 KB
physical id     : 0
siblings        : 4
core id         : 1
cpu cores       : 2
apicid          : 2
initial apicid  : 2
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx lahf_lm epb tpr_shadow flexpriority ept vpid xsaveopt dtherm arat pln pts vnmi
vmx flags       : vnmi preemption_timer invvpid ept_x_only flexpriority tsc_offset vtpr mtf vapic ept vpid unrestricted_guest
bugs            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit mmio_unknown
bogomips        : 4190.66
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor       : 3
vendor_id       : GenuineIntel
cpu family      : 6
model           : 42
model name      : Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz
stepping        : 7
microcode       : 0x14
cpu MHz         : 1489.855
cache size      : 3072 KB
physical id     : 0
siblings        : 4
core id         : 1
cpu cores       : 2
apicid          : 3
initial apicid  : 3
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx lahf_lm epb tpr_shadow flexpriority ept vpid xsaveopt dtherm arat pln pts vnmi
vmx flags       : vnmi preemption_timer invvpid ept_x_only flexpriority tsc_offset vtpr mtf vapic ept vpid unrestricted_guest
bugs            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit mmio_unknown
bogomips        : 4190.66
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:
★★★★★

Последнее исправление: James_Holden (всего исправлений: 1)

RT ядро, на ноутбучном железе, да вы шутник.

У вас там SMI: 0, но это просто прога не детектит их. Для RT нужно отрубать C-states (энергосбережения), убирать приоритеты с usb, WiFi и тд. что сделает ноут неюзабельным.

Короче, ноут, тем более уровня Леново, это последнее место где стоит втыкать RT ядро.

Obezyan
()

Вот хороший вопрос! Давайте-ка вы разберитесь отчего звук трещит при такой шикарнейшей конфигурации? Какие сервисы запущены, скока вкладок в браузере открыто..

С удовольствием буду ожидать причину этой проблемы. А так без поллитра никак, хотя можно попробовать Обизяна всё таки наклюкать..

anonymous
()
Ответ на: комментарий от Obezyan

Хм. Но! Но!

Если я делаю так - добавляю опцию -p99

# cyclictest -t4 -p99 -a 0-3 --smi
# /dev/cpu_dma_latency set to 0us
policy: fifo: loadavg: 0.27 0.33 0.47 2/615 5570          

T: 0 ( 5566) P:99 I:1000 C:   8431 Min:      5 Act:   15 Avg:    6 Max:      28 SMI:       0
T: 1 ( 5567) P:99 I:1500 C:   5620 Min:      5 Act:    5 Avg:    6 Max:      43 SMI:       0
T: 2 ( 5568) P:99 I:2000 C:   4215 Min:      5 Act:    6 Avg:    6 Max:      30 SMI:       0
T: 3 ( 5569) P:99 I:2500 C:   3372 Min:      5 Act:    6 Avg:    7 Max:      39 SMI:       0

то все нормально становится. То есть, проблема просто была в том, что у cyclictest по дефолту не-риалтаймовый приоритет. С риалтаймовым, он показывает нормальные задержки.

Так же обнаружил, что если после запуска cyclictest без этой опции, выполнить chrt для его PID и повысить приоритет, все тоже начинает показывать нормально.

James_Holden ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Тут проблема, что трещит даже под openbox, без драйвера wifi и браузера запущенного, примерно такая же картина была.

Конкретно с cyclictest получается, что виноват приоритет, при установке риалтаймового приоритета тредам cyclictest он начинает показывать адекватные числа, даже под нагрузкой и в wifi с браузером.

Теперь вопрос, как этот эффект перенести на аудио компоненты.

James_Holden ★★★★★
() автор топика
Ответ на: комментарий от James_Holden

Если я делаю так - добавляю опцию -p99

Все правильно, до этого вы тестили SCHED_OTHER.

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

Obezyan
()
Ответ на: комментарий от Obezyan

Ну либо кастрировать ноут отрубая фичи энергосбережения, спидстеп частот, часть переиферии и прочее. Но кому он тогда такой нужен.

Еще раз, для данной задачи я и так все это делаю. Зачем он нужен - чтобы обрабатывать звук с гитары. Все, больше ничего при этом. При этом мне не надо играть в Counter Strike на фоне )))

James_Holden ★★★★★
() автор топика
Ответ на: комментарий от James_Holden

для данной задачи я и так все это делаю

А ну тогда нет препятствий патриотам. Смотрите кто использует прерывания и рубите топором, также понижайте приоритеты

echo 1 > /proc/irq/XX/smp_affinity

Загуглите инфу по имени файла в команде, там вылезет все что нужно делать. У меня на телефоне лапки, да и память обезьянья.

В ядро суньте:

intel_pstate=disable
processor.max_cstate=1
intel_idle.max_cstate=0
idle=poll
nohz_full=0-3
rcu_nocbs=0-3
Obezyan
()
Последнее исправление: Obezyan (всего исправлений: 2)
Ответ на: комментарий от Obezyan

Встройка - имеется в виду встроенное видео? Задействование opengl тоже сразу все тормозит у меня.

Тогда понятно, то есть надо копать как повысить приоритет нужных приложений, и понизить у прерываний вайфая и встройки.

James_Holden ★★★★★
() автор топика