From nobody Tue Dec 2 02:32:42 2025 Received: from out-187.mta1.migadu.com (out-187.mta1.migadu.com [95.215.58.187]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BFAA6284662 for ; Tue, 18 Nov 2025 16:06:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.187 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763481967; cv=none; b=af2DyyQGmWfcQ/GTlZeaGRdQ50g2Pk7Vs829ZQGbRQwdYSrgTDAbEOXLullPEo9LtilRZ8fsudIO1XHvmxEX5IAmVd7KWC0OgwV6K0CXtahcavfcVRvvs8smKhkM8W5u/DBb6Vwsuh/6LC+XcgmQJEIWP+LVBLV0usg/Wqh30Qs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763481967; c=relaxed/simple; bh=xrqUAi5ZcEphfUtFtpNPpy+RYcLlHYGmZbKBj1N/+S8=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=re66QPAtwfaKK28dEF4rfR9vuC8CRO/JEw2tSffzABWo+2hMHyhnD/Eo5+BhjNEKpJPzFnEnf0Czl6baXyE4RMHuOl4Al3EXIuASsK+dla6qBOKWeV7e5iTYx8fW/4jL+PekVPAtU8X7dT9wVZEmCQO+w2criqQQZNsD2h5pSBo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=mCmByvia; arc=none smtp.client-ip=95.215.58.187 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="mCmByvia" X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1763481961; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=y4os6F822VeXDLzMwEdyOTaVUvsnp/vhl/5DWriXCeI=; b=mCmByviaDwuTOQwxL5nFb95WwO+igOT4E1yjh2s7xXrD+ahHh5pVHCifSHyWxUtgEktvWd vL0fMEUPVvC5LkvNmv6we8m+VkajOshz9khGgzy9IHTnQqS/dnaWEma0al+2BZS+1elC1i G/MEyKKFgJqsfrd6CJx8gHAFNnBz2pA= From: wen.yang@linux.dev To: Ingo Molnar , Peter Zijlstra , Juri Lelli , Vincent Guittot , Steven Rostedt , Mel Gorman , Valentin Schneider Cc: Wen Yang , Dietmar Eggemann , Ben Segall , linux-kernel@vger.kernel.org Subject: [PATCH] sched/debug: add new tracepoints to track rt throttling Date: Wed, 19 Nov 2025 00:05:25 +0800 Message-Id: <20251118160525.1686985-1-wen.yang@linux.dev> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Migadu-Flow: FLOW_OUT Content-Type: text/plain; charset="utf-8" From: Wen Yang The new tracepoint allows for tracking RT throttling events at the rt_rq level to identify RT processes that use a large amount of CPU. Signed-off-by: Wen Yang Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Juri Lelli Cc: Vincent Guittot Cc: Dietmar Eggemann Cc: Steven Rostedt Cc: Ben Segall Cc: Mel Gorman Cc: Valentin Schneider Cc: linux-kernel@vger.kernel.org --- include/linux/sched.h | 1 + include/trace/events/sched.h | 5 +++++ kernel/sched/rt.c | 1 + 3 files changed, 7 insertions(+) diff --git a/include/linux/sched.h b/include/linux/sched.h index 40a6027a2cfd..210cf5ce41be 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -78,6 +78,7 @@ struct reclaim_state; struct robust_list_head; struct root_domain; struct rq; +struct rt_rq; struct sched_attr; struct sched_dl_entity; struct seq_file; diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h index 7b2645b50e78..9ec53bc98df9 100644 --- a/include/trace/events/sched.h +++ b/include/trace/events/sched.h @@ -896,6 +896,11 @@ DECLARE_TRACE(sched_set_need_resched, TP_PROTO(struct task_struct *tsk, int cpu, int tif), TP_ARGS(tsk, cpu, tif)); =20 +DECLARE_TRACE(sched_rt_throttled, + TP_PROTO(struct rt_rq *rt_rq), + TP_ARGS(rt_rq)); + + #endif /* _TRACE_SCHED_H */ =20 /* This part must be outside protection */ diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c index f1867fe8e5c5..c04762a51ff0 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -884,6 +884,7 @@ static int sched_rt_runtime_exceeded(struct rt_rq *rt_r= q) */ if (likely(rt_b->rt_runtime)) { rt_rq->rt_throttled =3D 1; + trace_sched_rt_throttled_tp(rt_rq); printk_deferred_once("sched: RT throttling activated\n"); } else { /* --=20 2.25.1