summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorHuacai Chen <chenhuacai@loongson.cn>2024-11-22 15:47:48 +0800
committerHuacai Chen <chenhuacai@loongson.cn>2024-11-26 18:06:03 +0800
commitaf4b67da652214f06fde48cca7bb438fa829741f (patch)
tree54082a58c00351e90f56c7cb33ac74e814dc8e65 /arch
parent73c359d1d356cf10236ccd358bd55edab33e9424 (diff)
downloadlinux-af4b67da652214f06fde48cca7bb438fa829741f.tar.gz
linux-af4b67da652214f06fde48cca7bb438fa829741f.tar.bz2
linux-af4b67da652214f06fde48cca7bb438fa829741f.zip
LoongArch: Reduce min_delta for the arch clockevent device
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>
Diffstat (limited to 'arch')
-rw-r--r--arch/loongarch/kernel/time.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/loongarch/kernel/time.c b/arch/loongarch/kernel/time.c
index 46d7d40c87e3..a07d7eff4dc5 100644
--- a/arch/loongarch/kernel/time.c
+++ b/arch/loongarch/kernel/time.c
@@ -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;