From b3cfdd7171c215c4f77f1a6064a6c960ac889e4f Mon Sep 17 00:00:00 2001 From: Lei Chen Date: Fri, 17 Apr 2026 09:53:21 +0800 Subject: [PATCH 1/2] Revert "scheduler: modify run_delay stat" The reverted commit causes abnormal steal time in virtual machines. It can be reproduced by starting a virtual machine on an otherwise idle host, running some workload inside the guest, and observing st at around 20% in top. demo work load in guest: while true; do end=$((SECONDS + 2)) while [ $SECONDS -lt $end ]; do : done sleep 1 done This reverts commit 0fbc9791c4ba0db1ebb59bb6992ddc9cf45701c2. Signed-off-by: Lei Chen --- arch/x86/configs/kata.config | 1 - kernel/sched/stats.h | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/arch/x86/configs/kata.config b/arch/x86/configs/kata.config index 3fd37541d7f1..fe448a0746c7 100644 --- a/arch/x86/configs/kata.config +++ b/arch/x86/configs/kata.config @@ -50,7 +50,6 @@ CONFIG_X86_X2APIC=y CONFIG_HYPERVISOR_GUEST=y CONFIG_PARAVIRT=y CONFIG_PVH=y -CONFIG_PARAVIRT_TIME_ACCOUNTING=y CONFIG_NR_CPUS=16 # CONFIG_SCHED_CLUSTER is not set # CONFIG_SCHED_MC is not set diff --git a/kernel/sched/stats.h b/kernel/sched/stats.h index b3be4eafcb73..c748f8c3507d 100644 --- a/kernel/sched/stats.h +++ b/kernel/sched/stats.h @@ -243,7 +243,7 @@ static void sched_info_arrive(struct rq *rq, struct task_struct *t) now = rq_clock(rq); delta = now - t->sched_info.last_queued; - t->sched_info.last_queued = now; + t->sched_info.last_queued = 0; t->sched_info.run_delay += delta; t->sched_info.last_arrival = now; t->sched_info.pcount++; -- Gitee From 05d711eaad8cce252b5ba0a3fc49a870ee13dda6 Mon Sep 17 00:00:00 2001 From: Lei Chen Date: Fri, 17 Apr 2026 10:09:57 +0800 Subject: [PATCH 2/2] x86:config: enable CONFIG_PARAVIRT_TIME_ACCOUNTING in kata.config Signed-off-by: Lei Chen --- arch/x86/configs/kata.config | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/x86/configs/kata.config b/arch/x86/configs/kata.config index fe448a0746c7..3fd37541d7f1 100644 --- a/arch/x86/configs/kata.config +++ b/arch/x86/configs/kata.config @@ -50,6 +50,7 @@ CONFIG_X86_X2APIC=y CONFIG_HYPERVISOR_GUEST=y CONFIG_PARAVIRT=y CONFIG_PVH=y +CONFIG_PARAVIRT_TIME_ACCOUNTING=y CONFIG_NR_CPUS=16 # CONFIG_SCHED_CLUSTER is not set # CONFIG_SCHED_MC is not set -- Gitee