Visionfive2 (Preempt-RT kernel 5.15.0) cyclictest result is not matched in the document

Hi.
I’m using visionfive2 and I’m measuring latency performance through cyclictest on linux with Preempt-RT.

As described in the document provided in the link, the Preempt-RT patch and additional patch were performed in kernel 5.15.0 and applied to visionfive2, and the results were verified by performing cyclictest.

Unfortunately, however, the measurement results are quite different from the cyclical test results provided in the document.
(avg: 24us, min: 15us, max: 88us)

I don’t know what I did wrong.
Does anyone know if there’s anything wrong with the environment they used

Visionfive2 RTLinux Doc: Analysis of Running Real-Time Linux on VisionFive 2

My Visionfive2 environment

-----
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
index 6fe5d24bcf30..a354f7ea50de 100644
--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -118,6 +118,8 @@ config RISCV
        select TRACE_IRQFLAGS_SUPPORT
        select UACCESS_MEMCPY if !MMU
        select ZONE_DMA32 if 64BIT
+       select ARCH_SUPPORTS_RT if HAVE_POSIX_CPU_TIMERS_TASK_WORK
+       select HAVE_POSIX_CPU_TIMERS_TASK_WORK if !KVM
        select ARM_AMBA

 config ARCH_MMAP_RND_BITS_MIN

diff --git a/arch/riscv/configs/starfive_visionfive2_defconfig b/arch/riscv/configs/starfive_visionfive2_defconfig
index ee0aaedb8163..a72437e88841 100755
--- a/arch/riscv/configs/starfive_visionfive2_defconfig
+++ b/arch/riscv/configs/starfive_visionfive2_defconfig
@@ -5,6 +5,7 @@ CONFIG_USELIB=y
 CONFIG_NO_HZ_IDLE=y
 CONFIG_HIGH_RES_TIMERS=y
 CONFIG_BPF_SYSCALL=y
+CONFIG_PREEMPT_RT=y
 CONFIG_IKCONFIG=y
 CONFIG_IKCONFIG_PROC=y
 CONFIG_CGROUPS=y
------


* cycliectest: 
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
cyclictest -m -S -p 99 -i 200 -q -D 10m -H 200

Maybe you haven’t modified the CPU’s dynamic tuning strategy
Run ‘echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor’ first and then run the cyclictest

1 Like