[РЕШЕНО] LinuxCNC jitter Lenovo T61

Чтобы снизить системные задержки для опредеденного процесса, обычно рекомендуют при использовании многоядерных процессоров зарезервировать часть ядер для выполнения только этого процесса, а все остальные процессы будут выполняться на оставшихся ядрах ... обычно оставляют не зарезервированным только одно ядро. И плюс к этому отключают все энергосбережение и не нужные устройства.
Ошибки не исчезают с опытом - они просто умнеют
По ядрам, параметрам запуска, выше уже была ссылка, я эти мероприятия реализовал, результат есть, умеренный.

Ядро 3.4-9-rtai-686-pae. Версию более позднего деб ставить не буду - по многичсленным озывам там ядро не РТ.

Скачал дрова, реализовал инструкции https://askubuntu.com/questions/99373/building-driver-for-ralink-rt5370-usb-wifi-wlan-dongle

Дрова скомпилировались, компиляция завершилась установкой модулей -

make[1]: Entering directory `/tmp/DPO_RT5572_LinuxSTA_2.6.1.3_20121022/os/linux'
rm -rf /etc/Wireless/RT2870STA
mkdir /etc/Wireless/RT2870STA
cp /tmp/DPO_RT5572_LinuxSTA_2.6.1.3_20121022/RT2870STA.dat /etc/Wireless/RT2870STA/.
install -d /lib/modules/3.4-9-rtai-686-pae/kernel/drivers/net/wireless/
install -m 644 -c rt5370sta.ko /lib/modules/3.4-9-rtai-686-pae/kernel/drivers/net/wireless/
/sbin/depmod -a 3.4-9-rtai-686-pae

lsmod |grep rt
rt2800usb              21689  0
rt2x00usb              17427  1 rt2800usb
rt2800lib              51150  1 rt2800usb
rt2x00lib              41296  3 rt2x00usb,rt2800lib,rt2800usb
crc_ccitt              12332  1 rt2800lib
rt5572sta             712200  0
mac80211              224518  5 iwl4965,iwlegacy,rt2x00lib,rt2x00usb,rt2800lib
cfg80211              150489  4 iwl4965,iwlegacy,mac80211,rt2x00lib
iTCO_vendor_support    12586  1 iTCO_wdt
parport_pc             21896  0
parport                35208  1 parport_pc
usbcore               124257  6 uhci_hcd,rt2x00usb,rt2800usb,ehci_hcd,rt5572sta
однако

modprobe rt5572sta
modprobe rt2800usb
никакоего видимого результата не дает, ни ошибок, ни результата. Свисток лампочкой моргает.

lsusb
Bus 001 Device 003: ID 148f:7601 Ralink Technology, Corp.
wau
modprobe rt5572sta
modprobe rt2800usb
а почему эти модули?
когда по айди оборудования (ID 148f:7601) вам mt7601u нужен.
Вы ревизию адаптера не перепутали?
v4 написано на нем. Остальное настолько мелко, что я уже не тот "орел", что был раньше. Да, в блэклист вписал нужное. После modprobe rt5370sta по lsmod вижу, что "это никому не нужно". Спасибо за mt7601 - пошел гуглить.
wau
"это никому не нужно"

Проверьте, может раньше другой модуль для этого железа был
в модуле должен быть алиас на ваше железо
 modinfo rt5572sta |grep 7601
modinfo rt2800usb |grep 7601
ЙЕЕЕЕСССС!!! Спасибо всем!!!
Идея заключалась в том, что коли распаянный на плате вайфай дает поганки, то вынесение вай-фая на свисток юсб понизит статус этого осединения в системе и оно не будет влиять на джиттер. Так оно и получилось - имеем стабильный джиттер меньше 5000!!!
wau
По ядрам, параметрам запуска, выше уже была ссылка, я эти мероприятия реализовал …
Там указано только это
wau
В БИОСЕ все управлялки энергосбережением поотклуючал, службы acpi поприбивал
... и плюс параметры ядра - lapic noirqbalance - но от этого заметного эффекта не будет.
В основном эффект достигается при запрете cpu уходить в сон (достигается использованием нескольких параметров ядра) и ориетированием всех ядер cpu только на нужную прогу (например, станок), оставив для других нужд только одно ядро.
Как пример, зарезервировал 3-и ядра из 4-х
В нормальном состоянии имею
CPU   User%  Sys%  Wait%  Idle|
  1        0.0        0.0      0.0      100.0
  2        0.0        0.0      0.0      100.0
  3        0.0        0.0      0.0      100.0
  4      15.6        1.5      0.0        82.9
Нагружаю cpu, используя специальную утилиту,
CPU   User%   Sys%  Wait%  Idle
  1        0.0        0.0       0.0      100.0
  2        0.0        0.0       0.0      100.0
  3        0.0        0.0       0.0      100.0
  4      37.0      63.0       0.0          0.0
и хорошо видно, что 3-и ядра не задействованы, а 4-ое загружено довольно хорошо.
И вот эти 3-и ядра можно натравить только на конкретную прогу … и плюс к этому можно попробовать запретить ядрам впадать в спячку.
Конечно, не уверен на все 100, что эффект будет заметным … но если имеются затыки, то можно и поэкспериментировать. Если все устраивает, то можно ничего и не делать.
Ошибки не исчезают с опытом - они просто умнеют
vasek
lapic noirqbalance - но от этого заметного эффекта не будет..

Спасибо, благодаря этому топику и подсказке это было уже сделано раньше. Общая команда запуска ядра стала


linux   /boot/vmlinuz-3.4-9-rtai-686-pae root=UUID=ddffdb7d-8729-4c56-9789-0ba63f2e3bc7 ro initrd=/install/gtk/initrd.gz  quiet noirqbalance mce=ignore_ce nosoftlockup vm.stat_interval=120 transparent_hugepage=never processor.max_cstate=1 idle=poll intel_idle.max_cstate=0 lapic quiet rootdelay=5

вместо -
      # linux   /boot/vmlinuz-3.4-9-rtai-686-pae root=UUID=ddffdb7d-8729-4c56-9789-0ba63f2e3bc7 ro initrd=/install/gtk/initrd.gz  lapic quiet rootdelay=5

Дрова для этого свистка брал отсюда - https://github.com/art567/mt7601usta
wau, раз приходится заниматься станками, даю ссылки на не которые статьи ..1.., ..2.., ..3.. - может и пригодиться для общего развития ...

PS - в части параметров ядра - имей ввиду, что некоторые из них приводят к значительному нагреву компа .....

PSS - в части важности задержек - в одной из ссылок интересная фраза
Latency is far more important than CPU speed. A lowly Pentium II that responds to interrupts within 10 microseconds each and every time can give better results than the latest and fastest P4 Hyperthreading beast.
... а используя резервирование одного ядра из двух, смогли понизить задержку с 25000 до 10000 ...
Ошибки не исчезают с опытом - они просто умнеют
vasek
PSS - в части важности задержек - в одной из ссылок интересная фраза
Latency is far more important than CPU speed. A lowly Pentium II that responds to interrupts within 10 microseconds each and every time can give better results than the latest and fastest P4 Hyperthreading beast.
… а используя резервирование одного ядра из двух, смогли понизить задержку с 25000 до 10000 …

За ссылки - спасибо, часть я, конечно, читал ранее, новое - почитаю и попробую.
По поводу ухудшения архитектуры процессоров - не только они, вон, разобранный пример ухудшения интегрированного вайфая только что разобрали по косточкам. LinuxCNC не просто так "сидит" на деб7 - более поздние дистрибутивы и ядра дают хУдшие результаты. Похоже также, что переход материнских плат с IDE на SATA тоже ухудшил задержки.
Сейчас, после тушения пожара "на Т41 умерла одна ножка лпт (входящий датчик)" подготовкой для замены на Т61, тушу постоянно возникающие при вводе в эксплуатацию нового станка - целиком самодельный, из китая только моторы - то (...!!!,,,) приходится клеммники из них плоскогубцами отрывать и припаивать нормальные провода, то редукторы подправлять (сейчас многие изготовители не помнят ни про допуски, ни про посадки, многое приходится "напильником" доводить и не всегда удается, поэтому редукторы моей работы не идеальны).

Изоляцией, резервирование ядер я видимого эффекта не получил, потому поробовав, эти параметры убрал. Принципиально на этой машине не запускается ничего, кроме Geany (может перейду на vim, но там не видел одновременного редактирования нескольких строк, хоть и редко это использую) и самого LCNC.

lapic - обязательно нужен. Без него могут быть аборты при обращении к лпт порту.

Следующее, что планирую вспомнить - ручное конфигурирование Иксов и убрать отображение миллионов цветов.
 
Зарегистрироваться или войдите чтобы оставить сообщение.