LinuxForum.Fans
Тема

разница между пуском своей программы из rcS и консоли

Автор: andybeg 6 сообщений 1588 просмотров
26.08.2014 11:35 #390680

не совсем уверен, что туда пишу, потому что тема пограничная
есть у меня железка с линуксом на борту , FS построена на busybox. моя программа сделит за пином через poll gpio на который подаются импульсы с определённой частотой, одна из функций это замер времени между импульсами, импульсы подаю с генератора, так что в их стабильности можно быть уверенным, но есть особенность - если запускаю программу из консоли, то она работает стабильно и дельта измерений весьма мала (1-2 миллисекунд при общем периоде в 100 миллисекунд), если же запускаю из /etc/init.d/rcS , то дельта измерений подскакивает до десятков миллисекунд

26.08.2014 12:23 #390695

nice'ность процесса не повышена?

26.08.2014 12:25 · отредактировано #390696

провёл эксперименты с nice, renice, ситация улучшилась, но до пуска из консоли не дотягивает, так же не дотягивает до пуска из консоли введение программы в демонизм

29.08.2014 06:24 #391164

можно немного подробнее о системе?

В порядке умозрительных предположений:
может какая-то магия шедулера учитывающего cgroups задействована?
или сам шедулер какой-то больно мудрёный?
какой CONFIG_HZ? и можно ли будет пересобрать ядро?
может где-то ошибка и программа почему-то остаются висеть на процессоре вместо того, чтобы уходить бекграунд?

"andybeg" написал:
провёл эксперименты с nice, renice, ситация улучшилась, но до пуска из консоли не дотягивает

на все -20 выкручивал?

29.08.2014 09:01 · отредактировано #391170

можно немного подробнее о системе?

железка Cortex A8 процессор TI AM3517 ядро 2.32, ФС собирал на основе крайней версии Busybox, тоесть кроме него и моего софта ничего нет

"Fat-Zer" написал:
и можно ли будет пересобрать ядро?

можно конечно, только боюсь той же версии

"Fat-Zer" написал:
может где-то ошибка и программа почему-то остаются висеть на процессоре вместо того, чтобы уходить бекграунд?
как бы это ещё проверить

"Fat-Zer" написал:
на все -20 выкручивал?
в обе стороны крутил, сейчас попробую поиграться приоритетами процессов

в ПО есть три треда - один отвечает за обмен по эзернет, второй следит за пином следующим образом, третий по срабатыванию от пина делает работу.
Признаться, метод слежения за изменением GPIO мне самому не очень нравится, поэтому сейчас рассматриваю вариант слежения за изменениями через модуль gpio_keys, но пока не до конца вкурил как с ним работать
11.09.2014 15:21 #392480

решил отслеживать состояние пина через самописный модуль, всё можно сказать идеально - разница между отсчётами не более пол миллисекунды

Войдите или зарегистрируйтесь, чтобы ответить.