Моя система использует Arm cortexa7 @ 1 ГГц с набором патчей реального времени Linux 4.4.138-rt19 от CIP Community: v4.4.138-cip25-rt19
Я пробежал
ПРИО-preempt.c
чтобы проверить приоритет приоритета в моей системе. Однако у меня есть проблема:
система, вероятно, работает только с числом потоков меньше 27 созданных потоков.
Что касается теоретического аспекта, то в приложении ltp prio-preempt создается 27 worker_threads с разными приоритетами, N busy_threads (N: зависит от количества процессоров, в моем случае N = 2) с высоким приоритетом и master_thread (самый высокий приоритет) ).
При развертывании приложения на плате threads_running всегда меньше 27, в то время как create_fifo_thread (worker_thread, i, ...) успешно создало 27 worker_thread (s).
Я запустил ту же самую программу выше на cortexa15@1.5GHz, проблема не произошла.
Для дальнейшего понимания я подумал, что проблема может быть связана с планировщиком Linux RT, который не может пробудить спящих потоков после снятия блокировки bmutex .
У кого-нибудь есть такая же проблема для меня? Пожалуйста, поделитесь своей идеей.