Re: [PATCH 3/3] LoongArch: Allow to enable PREEMPT_RT

From: Huacai Chen
Date: Thu Nov 14 2024 - 06:07:57 EST


Hi, Sebastian,

On Thu, Nov 14, 2024 at 6:31 PM Sebastian Andrzej Siewior
<bigeasy@xxxxxxxxxxxxx> wrote:
>
> On 2024-11-08 17:15:45 [+0800], Huacai Chen wrote:
> > It is really time.
> >
> > LoongArch has all the required architecture related changes, that have
> > been identified over time, in order to enable PREEMPT_RT. With the recent
> > printk changes, the last known road block has been addressed.
> >
> > Allow to enable PREEMPT_RT on LoongArch.
> >
> > Below are the latency data from cyclictest on a 4-core Loongson-3A5000
> > machine, with a "make -j8" kernel building workload in the background.
> >
> > 1. PREEMPT kernel with default configuration:
> >
> > ./cyclictest -a -t -m -i200 -d0 -p99
> > policy: fifo: loadavg: 8.78 8.96 8.64 10/296 64800
> > T: 0 ( 4592) P:99 I:200 C:14838617 Min: 3 Act: 6 Avg: 8 Max: 844
> > T: 1 ( 4593) P:99 I:200 C:14838765 Min: 3 Act: 9 Avg: 8 Max: 909
> > T: 2 ( 4594) P:99 I:200 C:14838510 Min: 3 Act: 7 Avg: 8 Max: 832
> > T: 3 ( 4595) P:99 I:200 C:14838631 Min: 3 Act: 8 Avg: 8 Max: 931
> >
> > 2. PREEMPT_RT kernel with default configuration:
> >
> > ./cyclictest -a -t -m -i200 -d0 -p99
> > policy: fifo: loadavg: 10.38 10.47 10.35 9/336 77788
> > T: 0 ( 3941) P:99 I:200 C:19439626 Min: 3 Act: 12 Avg: 8 Max: 227
> > T: 1 ( 3942) P:99 I:200 C:19439624 Min: 2 Act: 11 Avg: 8 Max: 184
> > T: 2 ( 3943) P:99 I:200 C:19439623 Min: 3 Act: 4 Avg: 7 Max: 223
> > T: 3 ( 3944) P:99 I:200 C:19439623 Min: 2 Act: 10 Avg: 7 Max: 226
> >
> > 3. PREEMPT_RT kernel with tuned configuration:
> >
> > ./cyclictest -a -t -m -i200 -d0 -p99
> > policy: fifo: loadavg: 10.52 10.66 10.62 12/334 109397
> > T: 0 ( 4765) P:99 I:200 C:29335186 Min: 3 Act: 6 Avg: 8 Max: 62
> > T: 1 ( 4766) P:99 I:200 C:29335185 Min: 3 Act: 10 Avg: 8 Max: 52
> > T: 2 ( 4767) P:99 I:200 C:29335184 Min: 3 Act: 8 Avg: 8 Max: 64
> > T: 3 ( 4768) P:99 I:200 C:29335183 Min: 3 Act: 12 Avg: 8 Max: 53
> >
> > Main instruments of tuned configuration include: Disable the boot rom
> > space in BIOS for kernel, in order to avoid speculative access to low-
> > speed memory; Disable CPUFreq scaling; Disable RTC synchronization in
> > the ntpd/chronyd service.
>
> If "rom space in BIOS for kernel" is a thing you should document it
> somewhere or issue a warning at boot. I don't know what the latency
> impact is here and if this is needed at all during runtime.
I'm sorry to confuse you. This sentence should be reworded. The real
meaning is: we should disable something in BIOS configuration, the
goal is avoid kernel code's speculative access to boot rom (low speed
memory).

>
> Why is ntpd/chronyd service affecting this? Is it running at prio 99?
> Otherwise it should not be noticed.
No, ntpd/chronyd doesn't affect latency. But they may trigger RTC
synchronization every 11 minutes, and RTC synchronization affects
latency. We can keep ntpd/chronyd running but disable RTC
synchronization by configuration, this is the least aggressive method.

>
> Is lockdep complaining in any workloads?
> Is CONFIG_DEBUG_ATOMIC_SLEEP leading to any complains?
This needs more tests because I haven't enabled them.

Huacai

>
>
> > Signed-off-by: Huacai Chen <chenhuacai@xxxxxxxxxxx>
>
> Sebastian
>