LoongArch: Reduce min_delta for the arch clockevent device
authorHuacai Chen <chenhuacai@loongson.cn>
Fri, 22 Nov 2024 07:47:48 +0000 (15:47 +0800)
committerHuacai Chen <chenhuacai@loongson.cn>
Tue, 26 Nov 2024 10:06:03 +0000 (18:06 +0800)
Now the min_delta is 0x600 (1536) for LoongArch's constant clockevent
device. For a 100MHz hardware timer this means ~15us. This is a little
big, especially for PREEMPT_RT enabled kernels. So reduce it to 100 for
PREEMPT_RT kernel, and 1000 for others (we don't want too small values
to affect performance).

Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
arch/loongarch/kernel/time.c

index 46d7d40..a07d7ef 100644 (file)
@@ -127,7 +127,11 @@ void sync_counter(void)
 int constant_clockevent_init(void)
 {
        unsigned int cpu = smp_processor_id();
-       unsigned long min_delta = 0x600;
+#ifdef CONFIG_PREEMPT_RT
+       unsigned long min_delta = 100;
+#else
+       unsigned long min_delta = 1000;
+#endif
        unsigned long max_delta = (1UL << 48) - 1;
        struct clock_event_device *cd;
        static int irq = 0, timer_irq_installed = 0;