Я работаю на плате PowerPC с ядром версии 4.1.35 и сталкиваюсь со значительными задержками загрузки, особенно вокруг операций часов реального времени (ds-1337). Во время процесса загрузки скрипт (hwclock.sh) запускает команду hwclock --hctosys, и я добавил операторы печати для регистрации времени ее выполнения в журналах ядра.
Вот фрагмент из hwclock.sh:
Когда конфигурация ядра CONFIG_DYNAMIC_DEBUG отключена, команда hwclock испытывает значительные задержки, иногда до 50 секунд. Однако при включении **CONFIG_DYNAMIC_DEBUG** задержки значительно сокращаются, а время выполнения составляет от 4 до 12 секунд.
Вот некоторые фрагменты журнала ядра из различных циклов загрузки с отключенным **CONFIG_DYNAMIC_DEBUG**:
Цикл загрузки 1:
Цикл загрузки 2:
Цикл загрузки 5:
При включенном CONFIG_DYNAMIC_DEBUG задержки уменьшаются:
Пример с включенным **CONFIG_DYNAMIC_DEBUG**:
Кроме того, при загрузке с включенной конфигурацией CONFIG_PROFILING команда hwclock постоянно занимает не более 2 секунд.
Вопросы
Я пробовал несколько ядро печатает в драйверах rtc, и там только видно, что блокировка мьютекса ожидает получения. Я не могу понять, что вызывает проблему и почему она не появляется при включенной динамической отладке
echo "running command hwclock --hctosys. - arij" | tee /dev/kmsg
hwclock $tz --hctosys
echo "ending hwclock --hctosys. - arij" | tee /dev/kmsg
[ 6.401707] running command hwclock --hctosys. - arij
[ 39.206200] ending hwclock --hctosys. - arij
[ 7.054404] running command hwclock --hctosys. - arij
[ 14.218021] ending hwclock --hctosys. - arij
[ 18.659482] running command hwclock --hctosys. - arij
[ 50.005113] ending hwclock --hctosys. - arij
[ 8.833980] running command hwclock --hctosys. - arij
[ 14.223970] ending hwclock --hctosys. - arij