From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (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 0C6473A6F08 for ; Tue, 12 May 2026 10:06:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778580406; cv=none; b=fdPdrjEMKkPTwjxHbTZYXjrpMNDGd8xt9XDzpuUCpjTDJ1sUEp9YR7ufHzghzd4adhcGg/tHpLCRdDkrVbPTqAcn8s2C/D/Hn/UoiLm0GCKqgRYswg/hdgarJ2sLg9cHMm7sbMWGoKMQ5Gtej1nROwOkEyqQm49/B/ia8H9zoqY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778580406; c=relaxed/simple; bh=qhLKAYHOL89XYEpCvZKhu99h5DPsM1zT4591dhRG6x0=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=c0I8u8vogjTY1DzXpQYHZccoIz3fFKGdcLAKlIp9JlUzsBUSK67I05mQiKDvvr72Kr/G80iHUOWkDb0G8aUlHGEKcVj9Ttu5lIU9zFKlKsReI/MqlPdkUULWiYb0/wZpruc9o+9u1ZrbeGT6CMdEDOuBp9wOJnSZ9UN7tylrn2A= 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=mAGUA1Ch; arc=none smtp.client-ip=209.85.128.44 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="mAGUA1Ch" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-4891d7164ddso30148245e9.3 for ; Tue, 12 May 2026 03:06:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778580403; x=1779185203; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=zT8vkF5zcY/aj+btPDEu+f2MDHb9/VKwJg9hGIHKRN4=; b=mAGUA1ChBVHPpPFK6i/hA5q8ootakp5mEPU2H3f7fmB1N4yR5j/+qTgC7VByFAtYUx RM3xVlQw1MClCcKPYIaZ7jTWiRV7cohGMLXIUlpBlxp84j2AtN10+JZFDyf54jgijid2 1kd8v+GCZm67bgwMqhE7sUT5+xy5D3AYYZwlDS1rfPjJRFLkyNRl5rHUoq7vq9Auw/nj 84i5svJFVVcmgLLKtTS6MpN5dbNQjeJ2a0VK5MOCIcytcZBQ1O9e1as+jA2ZawTXK9kD vx41bbaJ7dhs278VkxwHrXgTNcSu6TaXBc632mX2SpZw0ONAZmh8NyAEF06W88GRX/Ud 7/pA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778580403; x=1779185203; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=zT8vkF5zcY/aj+btPDEu+f2MDHb9/VKwJg9hGIHKRN4=; b=tFEk+OKRInRMzhljxUkyvFmA8jcKHH1ntr47azUJPAJVCl0/tg1S6XKWJuC3aUv7x0 0xQ/ddXvHNYpX0fB8E0rzMsyy1EOt6QivCLF2mt7EVhFJS4h6jzszDbsaXUbedIxjQuW wh3XlCCygtYe1Bp9QLTQJV5ZN89f9H82Wlj06emQerjs2XFCZaHJCh5iHpiMlq5jI6vV dkVXmRJ9aSrzn0WsEu2/w1+vIoiKGZRoDB9HEyIOqtpsri9VYkGPp/kox4sS9P0XSxzP WL2E1QfLUoSbczp0lCS7RtGQliCSmSFNYPCu0lFHo5EH1qH1G6bJJA3oUlrdvOOKDigf pJ6g== X-Gm-Message-State: AOJu0YxFb9JAW1fBQI/wyQuT+hYWEIg0+tIJAncg9VIZtsS0BjNLkT+1 fsHwZDk+7fmWXUPRWwOvIaJeNcI/T40VNg5E5tpJ+s85hHEtl+cm+UPe X-Gm-Gg: Acq92OErmuMk6HdNsYjdn6O+T9adfvab++RR6KGhI19tqVdnFfES0/BKRK/eUvS4zx9 MiF0z5MaNW228jNAhpOXIgCkr0COj7m/mk3/4LI2wZ9wjGUDDKGn9qgfXACJe7bgiqLy7GuSpBt ny/IeEMpt66F8HNvWmsHnmrBpe5ggG0Ey3tksFCJc1ipFyQEVsvMlgQ7BJjS6bLtygDD8VtgcwL OCg/AkKfiW+/+jedLvzxZLpm+JmeEbQm4f2QwnMY8knJZixXA8hZv2dxMoJh+/Gj39a+nNnXk+U qm37tS78WdQGVMPxrQg9p/1HloLYJjgq24YY1wTbWADzEjOTQR2PSW0JxUp9nTprEFz25P5wKGK g6czO9x2Yorf8l1wSJ2Xzr26HN7ycM7kZYAwmFA26xjkdQwbOLZMoiDzQd+P5PISSdHpY7gXdHz mr/KlzJarFpariMuXLcWQObm2GtPkadI0= X-Received: by 2002:a05:600c:c107:b0:48a:52d4:888c with SMTP id 5b1f17b1804b1-48e51e0bb23mr324100625e9.3.1778580403091; Tue, 12 May 2026 03:06:43 -0700 (PDT) Received: from [192.168.1.109] ([78.163.105.248]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48e904bf792sm63751395e9.0.2026.05.12.03.06.41 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 12 May 2026 03:06:42 -0700 (PDT) Message-ID: Date: Tue, 12 May 2026 13:06:37 +0300 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] sched/deadline: Make dl-server nohz full aware To: Juri Lelli , Ingo Molnar , Peter Zijlstra , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Ben Segall , Mel Gorman , Valentin Schneider , K Prateek Nayak , Andrea Righi , Frederic Weisbecker Cc: linux-kernel@vger.kernel.org, David Haufe , Cao Ruichuang References: <20260512-upstream-fix-dlserver-nohzfull-b4-v1-1-a94844387ae7@redhat.com> Content-Language: en-US From: =?UTF-8?B?RnVya2FuIMOHYWzEscWfa2Fu?= In-Reply-To: <20260512-upstream-fix-dlserver-nohzfull-b4-v1-1-a94844387ae7@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Hi Juri, On 5/12/26 12:02, Juri Lelli wrote: > The dl_server_timer() causes spurious IPIs on nohz_full cores, breaking > isolation guarantees. The timer executes on a housekeeping core and > eventually calls tick_nohz_dep_set_cpu(), sending IPIs to isolated cores > even when only a single task is running. > > The problem is that dl-servers are not coordinated with nohz_full tick > state. Timers can fire and send IPIs to otherwise undisturbed cores. > > Fix by managing servers in sched_can_stop_tick(): > > - When RT tasks run with CFS/SCX tasks, start the appropriate server > and keep the tick running > - When only RT tasks remain, stop all servers and allow tick to stop > (except for >1 RR tasks which need the tick for round-robin) > - When only CFS/SCX tasks remain, stop all servers before stopping tick > > Introduce dl_servers_stop_all() to reduce duplication and abstract > server management from core.c. Unify RT handling into one block that > handles both RR and FIFO cases. > > Fixes: 557a6bfc662c ("sched/fair: Add trivial fair server") > Reported-by: David Haufe > Closes: https://lore.kernel.org/lkml/CAKJHwtOw_G67edzuHVtL1xC5Vyt6StcZzihtDd0yaKudW=rwVw@mail.gmail.com > Signed-off-by: Juri Lelli > --- > I had to modify my first original attempt at fixing this (please take a > look at the linked report/discussion) to also take SCX into > consideration. > > FYI, I temporarily pushed the script I'm using to repro and verify the > fix here > > https://github.com/jlelli/sched-deadline-tests/blob/master/test-dlserver-nohz.sh > --- > kernel/sched/core.c | 43 +++++++++++++++++++++++-------------------- > kernel/sched/deadline.c | 14 ++++++++++++++ > kernel/sched/sched.h | 1 + > 3 files changed, 38 insertions(+), 20 deletions(-) > > diff --git a/kernel/sched/core.c b/kernel/sched/core.c > index b905805bbcbe4..98759255c306b 100644 > --- a/kernel/sched/core.c > +++ b/kernel/sched/core.c > @@ -1414,30 +1414,35 @@ static inline bool __need_bw_check(struct rq *rq, struct task_struct *p) > > bool sched_can_stop_tick(struct rq *rq) > { > - int fifo_nr_running; > - > /* Deadline tasks, even if single, need the tick */ > if (rq->dl.dl_nr_running) > return false; > > /* > - * If there are more than one RR tasks, we need the tick to affect the > - * actual RR behaviour. > + * If there are RT tasks, we may need the tick (for >1 RR tasks), > + * but we must also service lower-priority CFS/SCX tasks via dl-servers. > */ > - if (rq->rt.rr_nr_running) { > - if (rq->rt.rr_nr_running == 1) > - return true; > - else > + if (rq->rt.rt_nr_running) { > + if (rq->cfs.h_nr_queued) { > + dl_server_start(&rq->fair_server); > + return false; > + } > +#ifdef CONFIG_SCHED_CLASS_EXT > + if (rq->scx.nr_running) { > + dl_server_start(&rq->ext_server); > + return false; > + } > +#endif In the above block, the CFS and SCX server start paths are mutually exclusive. If both cfs.h_nr_queued and scx.nr_running are non-zero at the same time, only fair_server gets started and ext_server remains stopped. Could that leave SCX tasks without server coverage in a mixed CFS+SCX+RT scenario? --- Thanks, Furkan Caliskan