From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f172.google.com (mail-pf1-f172.google.com [209.85.210.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 54BC43C0A08 for ; Thu, 25 Jun 2026 06:57:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782370634; cv=none; b=HEuj/MtM4PSSsn+klDDIiSo2dVzxLLHXuO2/Wp5XADdBPs2Ab6x7d3nd6J4WQlPErCRpzHuuevNarAnvEYPM8jUBtw/s5nq2QQ/3NL+FY6S8NbFQ1OgbGaexR41qatj/0B6EOuTQj3rOQdYIrpJSPNVG4sTxzTSD9XzoePzjTxA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782370634; c=relaxed/simple; bh=e6bNTqMj8cnrYfvK3Eln6MZZRpJ9MyOp6PHs7BqugrU=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=SSgb39NqpBQBjV4E7nJkaruoWc/av79uEZLTVLP6j6iHVkeozdLSMJLhLqnKuoPSgrXjPOXdwpPX/M2GWHq/8YJSka8/ttiTWokNgVvcKALrod/HEOo+lvNPnXrVCJisb8W9vZjYotbRGWtbbwD6CRQ2XZjEhstRWZFW+AnFM+o= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=escgtYRZ; arc=none smtp.client-ip=209.85.210.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="escgtYRZ" Received: by mail-pf1-f172.google.com with SMTP id d2e1a72fcca58-8423f236418so1227167b3a.1 for ; Wed, 24 Jun 2026 23:57:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782370632; x=1782975432; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=415/rQ4AO9I7+QSO+GIuT7baFIYThTflX6GSkcbj8AI=; b=escgtYRZnE6iXdkySIFZZtCgter+el8TV87vvZd7cZFrw+bkZgIAD+XoNEX246PTZC 1s1a8uM5Y2ya5dIgZQEg7NRTzoJoV2VOz6aYFCBA0Mng20n4YPyuIDM42XfSViAkY8n6 EPMXLOXeZ0X8RcKNA/4ow8ETjm3rZQPa6g8g4tQwUfWmK1y6NZZwsevCv0GLeMxTGmwg J2KgC9wVrGGahHzxX8CFdPl1qAza1uw1nWJNajR10J2Dpedhrg07k2MHKRgZLG/lZ6f6 atbhYYf2liPEtkhUbynI7wy0SMsnqMj+QrRepJj15n3LeAL0sfHbZOZ1gJIhi4VXE14e +a4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782370632; x=1782975432; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=415/rQ4AO9I7+QSO+GIuT7baFIYThTflX6GSkcbj8AI=; b=pTtuUAIUeFLyS9IfXmUVmw4Zn1UgCKPevHlFxVMs9zNAIsyy0/ij2fW//u9wUIbOoE w6Wq4yGS8oCd2YTQGdKGlRF4LT6B7M+nWwy45Yp/utlYrZkrhofxeiAzSH3TgFrGNh2Y rZ2dk5SpSUtVhWR0Yc3+QYGJkB76quE+KsX1riDa13xGX3RDHTXj3ABtsRTOjWg/X16p 2BXRX8CQdTs3NUkIkBACBDOhvUuV90TVVS9s7s+wpR60AautSms0a+shOH2VtkB1vAiC vfUenZ1eFn1st40ZRRo+aKbZLi/lj/n03Q57/VPs/VLsBRR9SfW5cyV9kQtwlWhz6iPU h68A== X-Gm-Message-State: AOJu0Yyzrl4Lyt8A4ut0DmJ4HjJdl5wYSPRL/LDXp62lZPy+ZJUK98Ej +yhQx4M1wqcR+7JFQUc9IYJLXedMTYEBw5UAyvX1eCB1wiRPe561DCanU1i7WQ== X-Gm-Gg: AfdE7cnQhp/Jjaf07w3UfhdZjN6DXFMXM7Rja/ZyHyRi3alP3RSDTrmqNbqqk1WHd5f m8L+tRqoT4tpaqUeD4Za8+LPpEmTecdQ8kLrv+inJShaNtMOb1zsAkqKJznDGKZZ8e4C0I259qC Y+phPRPB05CpvCeDVaBmLlNcS8cfHJd1fqEtAoER1hYOukHsBUC0RyV15Nn/agp8iZ8AoJEcmq0 PpsIESHqEcHeb0j5JUjVlMQwrL7i3kpRaoIzBGG+HrgEFvKEc0SuWCbT4xkaOgNR0nbXVHAxWaR S1CLH11dsshRPzSE4JpHd0vdUTckQIqpSMZ/ubZWrkDZsduqoAlOB9Hx1+xf5KpW9mEG1aAFnWF iL5cmvGk4E/wWDCbVw++jWtTEK+/zJyqF9xCjht/8ZUMEEz65YKrU+PO7jTZ5RGfpIypy5nJujS 3KqkrQzrBJw/52/C5FN6kLwdA05hEY8CrCHASUMq9JlCyzQlxhDIs= X-Received: by 2002:a05:6a00:b80c:b0:842:5bf3:c53c with SMTP id d2e1a72fcca58-845b3ac12eamr1841354b3a.2.1782370632455; Wed, 24 Jun 2026 23:57:12 -0700 (PDT) Received: from cps-manycore-1.. ([147.46.174.222]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-845a40d8f2bsm3944256b3a.38.2026.06.24.23.57.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jun 2026 23:57:12 -0700 (PDT) From: Sechang Lim To: linux-kernel@vger.kernel.org Cc: mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com, kprateek.nayak@amd.com, gmonaco@redhat.com Subject: [PATCH] sched: set TIF_NEED_RESCHED before calling __trace_set_need_resched() Date: Thu, 25 Jun 2026 06:54:19 +0000 Message-ID: <20260625065656.392182-1-rhkrqnwk98@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit set_tsk_need_resched() tests TIF_NEED_RESCHED, calls __trace_set_need_resched() if the flag is clear, then sets it via set_tsk_thread_flag(). A BPF raw_tp program attached to sched_set_need_resched executes synchronously inside __bpf_trace_run(). On return, __bpf_trace_run() drops the RCU lock with rcu_read_unlock_migrate(), which on the preempt-or-BH-disabled path calls set_need_resched_current() -> set_tsk_need_resched() again. set_tsk_thread_flag() follows the tracepoint call, so every re-entrant frame sees TIF_NEED_RESCHED clear and calls __trace_set_need_resched() again: BUG: TASK stack guard page was hit at ffffc9001224ff98 Oops: stack guard page: 0000 [#1] SMP KASAN PTI RIP: 0010:__bpf_trace_sched_set_need_resched_tp+0x1c/0x190 Call Trace: trace_sched_set_need_resched_tp+0x110/0x130 set_tsk_need_resched include/linux/sched.h:2076 set_need_resched_current include/linux/sched.h:2094 rcu_read_unlock_special+0x43a/0x440 __rcu_read_unlock+0x9e/0x120 rcu_read_unlock_migrate+0xa9/0x240 __bpf_trace_run+0x131/0x180 bpf_trace_run3+0x333/0x430 __bpf_trace_sched_set_need_resched_tp+0x13a/0x190 trace_sched_set_need_resched_tp+0x110/0x130 set_tsk_need_resched include/linux/sched.h:2076 ... Replace the separate test_tsk_thread_flag() + set_tsk_thread_flag() pair with test_and_set_tsk_thread_flag(). Fixes: adcc3bfa8806 ("sched: Adapt sched tracepoints for RV task model") Signed-off-by: Sechang Lim --- include/linux/sched.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/include/linux/sched.h b/include/linux/sched.h index ee06cba5c6f5..c9efd08dae92 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -2071,10 +2071,9 @@ static inline int test_tsk_thread_flag(struct task_struct *tsk, int flag) static inline void set_tsk_need_resched(struct task_struct *tsk) { - if (tracepoint_enabled(sched_set_need_resched_tp) && - !test_tsk_thread_flag(tsk, TIF_NEED_RESCHED)) + if (!test_and_set_tsk_thread_flag(tsk, TIF_NEED_RESCHED) && + tracepoint_enabled(sched_set_need_resched_tp)) __trace_set_need_resched(tsk, TIF_NEED_RESCHED); - set_tsk_thread_flag(tsk,TIF_NEED_RESCHED); } static inline void clear_tsk_need_resched(struct task_struct *tsk) -- 2.43.0