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
-
First Install system Image: starfive-jh7110-VF2_515_v2.5.0-69.img
-
Kernel: 5.15.0 (GitHub - starfive-tech/linux at JH7110_VisionFive2_devel)
-
RT-patch: patch-5.15-rt17.patch
-
Appendix Patch(RISC-V RT):
-----
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