From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from devianza.investici.org (devianza.investici.org [198.167.222.108]) (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 697001F8723 for ; Sat, 8 Aug 2026 01:36:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.167.222.108 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786152976; cv=none; b=qPbeEoonurF3SR08ZGTrZ8mSzTdOGn6ocd9Br7mA/29MPH1BCxSHuF1isGioaHxjPp6+hbQ0SBnQMTJafYX0a7kPip5Pj80qfbInOckvT1c2A8xScUinWHeUQMJGlb/J0Y79Kd4ReM+FfxpWeqsp86gQsDUORNRjKwvi2nXJepY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786152976; c=relaxed/simple; bh=whCZ3P0Mzw9n0D4BXBB8INbxORfXeE4eCC6Pr9r/lxo=; h=Date:From:To:CC:Subject:In-Reply-To:References:Message-ID: MIME-Version:Content-Type; b=RMAVG9SdAKjsGSOxvX8V38f3MBEOwwhD32DSWCAoxTvEDLR0dG+TVAYq8nemnjIJi5tOr+CTkzXxQV0K682uU6i++2jpkKp+IH+Hb/N3NVLR8iqmhqPbFN8lmwOoBwxSERVWRY3nfvX4HspJ47T/XwD7fwuq0dg4DlKlCNhAsrU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=grrlz.net; spf=pass smtp.mailfrom=grrlz.net; dkim=pass (1024-bit key) header.d=grrlz.net header.i=@grrlz.net header.b=oX0dbQUL; arc=none smtp.client-ip=198.167.222.108 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=grrlz.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=grrlz.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=grrlz.net header.i=@grrlz.net header.b="oX0dbQUL" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=grrlz.net; s=stigmate; t=1786152972; bh=oVHEfANa5NPEYc5tD8knOvozQs0FiDz128jsUSaeKNo=; h=Date:From:To:CC:Subject:In-Reply-To:References:From; b=oX0dbQULC3it3S350vZPXw9tesBua5EWJ8ogzdBc4UWMUIGSALzGiI2ejGUiZKp5B +O2KOZCD6290hUweYyJq3BhIjXHDvBu2HQOnieviLbQqJxG/PVJVS/s9I8ssBqp9Bw QYvt34pohi1JSCNOX/OIuJ2KxKcM+GGRpFu8ApEM= Received: from mx2.investici.org (unknown [127.0.0.1]) by devianza.investici.org (Postfix) with ESMTP id 4hH3Wc3XN8z6vXv; Sat, 08 Aug 2026 01:36:12 +0000 (UTC) Received: by mx2.investici.org (Postfix) id 4hH3Wc0b0jz4y43; Sat, 08 Aug 2026 01:36:12 +0000 (UTC) Date: Sat, 08 Aug 2026 02:36:11 +0100 From: Bradley Morgan To: Karl Mehltretter , Andrew Morton CC: Andrey Konovalov , Dmitry Vyukov , Alexander Potapenko , Marco Elver , kasan-dev@googlegroups.com, linux-kernel@vger.kernel.org, Peter Zijlstra , Ingo Molnar , Juri Lelli , Vincent Guittot Subject: Re: [PATCH 5/5] sched: pause KCOV in wake_up_new_task() In-Reply-To: <20260807205027.31972-6-kmehltretter@gmail.com> References: <20260807205027.31972-1-kmehltretter@gmail.com> <20260807205027.31972-6-kmehltretter@gmail.com> Message-ID: <7B5B72BA-4F48-4AB5-80B7-8ACA9F8259A7@grrlz.net> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit On 7 August 2026 21:50:27 BST, Karl Mehltretter wrote: >wake_up_new_task() is uninstrumented, but CPU selection and enqueue call >instrumented helpers. During a KCOV-enabled fork, they can record >scheduler, hrtimer and clockevent coverage into the parent. > >The paths depend on runqueue and CPU state, so coverage varies between >identical forks. Pause KCOV for the whole function, extending the >scheduler exclusion to new-task wakeups. > >Fixes: 5c9a8750a640 ("kernel: add kcov code coverage") >Assisted-by: Claude:claude-opus-4-8 >Signed-off-by: Karl Mehltretter Reviewed-by: Bradley Morgan >--- > kernel/sched/core.c | 5 +++++ > 1 file changed, 5 insertions(+) > >diff --git a/kernel/sched/core.c b/kernel/sched/core.c >index 1e562a7ff0afb..cad1b01063450 100644 >--- a/kernel/sched/core.c >+++ b/kernel/sched/core.c >@@ -4945,8 +4945,12 @@ void wake_up_new_task(struct task_struct *p) > { > struct rq_flags rf; > struct rq *rq; >+ unsigned int kcov_paused; > int wake_flags = WF_FORK; > >+ /* KCOV: sched/ is uninstrumented but the wakeup callees are not. */ I feel this comment is not the best. I mean, it's more a opinion thing. /* Instrumented callees would leak into current here... */ could be a good one. What do you think? :) >+ kcov_paused = kcov_pause(current); >+ > raw_spin_lock_irqsave(&p->pi_lock, rf.flags); > WRITE_ONCE(p->__state, TASK_RUNNING); > /* >@@ -4976,6 +4980,7 @@ void wake_up_new_task(struct task_struct *p) > rq_repin_lock(rq, &rf); > } > task_rq_unlock(rq, p, &rf); >+ kcov_resume(current, kcov_paused); > } > > #ifdef CONFIG_PREEMPT_NOTIFIERS > Thanks!