armbian-build/patch/kernel/archive/spacemit-6.18/017-Spacemit-lower-kthread-loop-speed-to-1-sec.patch
Sven-Ola Tuecke db44df7501 Spacemit: fix high CPU load caused by rCPU remoteproc communication kthread
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
2026-02-19 22:10:34 -05:00

34 lines
1.2 KiB
Diff

From 0ee176ed1a9b65fa62311e6fc0b55ceeefb75cf8 Mon Sep 17 00:00:00 2001
From: Sven-Ola Tuecke <sven-ola@gmx.de>
Date: Sun, 25 Jan 2026 22:14:57 +0100
Subject: [PATCH] Spacemit: lower kthread loop speed to 1 sec
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
---
drivers/remoteproc/k1x-rproc.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/remoteproc/k1x-rproc.c b/drivers/remoteproc/k1x-rproc.c
index 8d0c318b5..deb4a8de7 100644
--- a/drivers/remoteproc/k1x-rproc.c
+++ b/drivers/remoteproc/k1x-rproc.c
@@ -276,13 +276,13 @@ static int __process_theread(void *arg)
struct mbox_client *cl = arg;
struct rproc *rproc = dev_get_drvdata(cl->dev);
struct spacemit_mbox *mb = container_of(cl, struct spacemit_mbox, client);
- struct sched_param param = {.sched_priority = 0 };
+ struct sched_param param = {.sched_priority = MAX_RT_PRIO - 1 };
mb->kthread_running = true;
ret = sched_setscheduler(current, SCHED_FIFO, &param);
do {
- wait_for_completion_timeout(&mb->mb_comp, 10);
+ wait_for_completion_idle_timeout(&mb->mb_comp, 10);
if (rproc_vq_interrupt(rproc, mb->vq_id) == IRQ_NONE)
dev_dbg(&rproc->dev, "no message found in vq%d\n", mb->vq_id);
} while (!kthread_should_stop());
--
2.34.1