[PATCH-RT sched v2 0/2] Optimize the RT group scheduling

From: Xavier
Date: Sat Jun 29 2024 - 07:29:27 EST


Hi all,

Patch v2 fix the issues arising from disabling the CONFIG_RT_GROUP_SCHED
macro during compilation.

>The first patch optimizes the enqueue and dequeue of rt_se, the strategy
>employs a bottom-up removal approach.
>The second patch provides validation for the efficiency improvements made
>by patch 1. The test case count the number of infinite loop executions for
>all threads.
>
> origion optimized
>
> 10242794134 10659512784
> 13650210798 13555924695
> 12953159254 13733609646
> 11888973428 11742656925
> 12791797633 13447598015
> 11451270205 11704847480
> 13335320346 13858155642
> 10682907328 10513565749
> 10173249704 10254224697
> 8309259793 8893668653
>
>avg 11547894262 11836376429
>
>Run two QEMU emulators simultaneously, one running the original kernel and the
>other running the optimized kernel, and compare the average of the results over
>10 runs. After optimizing, the number of iterations in the infinite loop increased
>by approximately 2.5%.

Kindly review.

Xavier (2):
RT SCHED: Optimize the enqueue and dequeue operations for rt_se
RT test: Adding test cases for RT group scheduling

MAINTAINERS | 7 +
kernel/sched/debug.c | 50 ++++
kernel/sched/rt.c | 278 +++++++++++++++---
kernel/sched/sched.h | 1 +
tools/testing/selftests/sched/Makefile | 4 +-
tools/testing/selftests/sched/deadloop.c | 192 ++++++++++++
.../selftests/sched/rt_group_sched_test.sh | 119 ++++++++
7 files changed, 609 insertions(+), 42 deletions(-)
create mode 100644 tools/testing/selftests/sched/deadloop.c
create mode 100755 tools/testing/selftests/sched/rt_group_sched_test.sh

--
2.45.2