В этой статье в основном описывается тестирование Rockchip RK3562J в реальном времени. Среда разработки следующая:
U-Boot:U-Boot-2017.09
Kernel:Linux-RT-5.10.198
LinuxSDK:
LinuxSDK-[номер версии]
(На основе RK3562_LINUX_SDK_RELEASE_V1.1.0_20231220)
Данные испытаний RK3562J в реальном времени
В этой статье используется инструмент обнаружения задержки Cyclictest для проверки производительности системы Linux в реальном времени. Он запускает командный тест в течение 12 часов при трех условиях: ЦП без нагрузки, полная нагрузка (запуск инструмента стресс-стресс-теста) и полная нагрузка. - изолированное ядро CPU3 (запущен инструмент стресс-теста).
Согласно результатам тестирования в трех состояниях, когда программа предназначена для работы на изолированном ядре CPU3, система Linux имеет самую низкую задержку, что может эффективно улучшить производительность системы в реальном времени. Поэтому рекомендуется назначать программы (функции) с высокими требованиями к работе в реальном времени изолированным ядрам ЦП.
Типичные области применения RK3562J
Тестирование системы Cyclictest в режиме реального времени
В этой статье демонстрируется аппаратная платформа промышленной оценочной платы Chuanglong Technology TL3562-EVM (на базе RK3562J). В целях упрощения описания в данной статье приведены лишь части описания функций программы и результаты тестирования.
В этом тесте в качестве примера используется изолированное ядро CPU3, чтобы гарантировать нормальную работу процесса CPU3 за счет уменьшения влияния задержек других процессов, запущенных в системе на изолированном CPU3, тем самым оценивая производительность системы ядра Linux-RT в реальном времени. .
После включения оценочной платы нажмите клавишу пробела до окончания обратного отсчета U-Boot, чтобы войти в режим командной строки U-Boot, выполните следующую команду, измените переменные среды и изолируйте ядро CPU3.
U-Boot#setenv bootargs storagemedia=sd androidboot.storagemedia=sd androidboot.mode=normal isolcpus=3
U-Boot#saveenv
U-Boot#reset
После перезагрузки оценочной платы выполните следующую команду, чтобы просмотреть переменные среды.
Target#cat /proc/cmdline
Войдите в файловую систему оценочной платы и выполните следующую команду, чтобы изменить уровень журнала печати ядра, чтобы информация печати ядра не влияла на тестирование в реальном времени.
Target#echo 1 > /proc/sys/kernel/printk
Установите для политики выделения памяти значение «2», чтобы отключить перераспределение памяти. Избегайте атак OOM (Out-of-Memory) на определенные процессы, вызывающих задержки и влияющих на результаты тестирования.
Target#echo 2 > /proc/sys/vm/overcommit_memory
Выполните следующую команду, чтобы запустить инструмент нагрузочного тестирования и поддерживать полную загрузку ЦП. Затем используйте инструмент набора задач для запуска тестовой программы Cyclictest на ядре CPU3, чтобы проверить производительность системы в реальном времени, когда ядро CPU3 полностью загружено. Инструкции по тестированию должны выполняться в течение 12 часов. Обеспечьте стабильную работу оценочной платы в течение длительного времени. После завершения теста будет создан файл статистических результатов iso_overload_output.
Target#stress-ng --cpu 4 --cpu-method=all --io 4 --vm 4 --vm-bytes 64M --timeout 43200s &
Target#taskset -c 0-3 cyclictest -m -Sp99 -i1000 -h800 -D12h -q > iso_overload_output
Проанализируйте данные в файле результатов теста, используйте сценарий для создания гистограммы и получите статистические результаты в изолированном состоянии ядра ЦП, как показано ниже. В этом тесте ядро CPU1 имеет наибольшее значение максимальной задержки, равное 244 мкс, а изолированное ядро CPU3 имеет наименьшее значение максимальной задержки, равное 33 мкс.