From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (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 E617E337692 for ; Fri, 6 Feb 2026 18:32:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770402739; cv=none; b=U/ALc3VwKT92+kJQxvDl89Y2zqYFcqh1V8pmhTnXOUZW+KsZYxG4WY0fgHm80GVcE4Axf1hFiZC13O375dh3Npm5Wm5ASkNZ5Xg0gwop+08eta5gRtw6mlqjxN6eX8jS8KWSrf3aiv3mBNM15sxp3y+15tL3jIVlOFqbISXGmwQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770402739; c=relaxed/simple; bh=4zraOXge/6qxklpwieAzo3JfjxS+Y8d++cPc2mK2iNA=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=bmuQKVWLfDMYt+PO/g6BSkXoQxTznhhZZHVbh5tuqFwXoHZAyU81u8ZtBbzIgZBhmx+/OQ/RuAZAXonwEiydjFN6qgrSrbBRTEdq2vI84PknrGRORWtz94wll/jiJFbRcaH2IL63izDfAHfaysBBklVWV0wyf2rMzBXhWGWISpU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=layalina.io; spf=pass smtp.mailfrom=layalina.io; dkim=pass (2048-bit key) header.d=layalina-io.20230601.gappssmtp.com header.i=@layalina-io.20230601.gappssmtp.com header.b=cVClcqUy; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=layalina.io Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=layalina.io Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=layalina-io.20230601.gappssmtp.com header.i=@layalina-io.20230601.gappssmtp.com header.b="cVClcqUy" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-482f454be5bso28898555e9.0 for ; Fri, 06 Feb 2026 10:32:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=layalina-io.20230601.gappssmtp.com; s=20230601; t=1770402737; x=1771007537; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=O8/bAXWOOLdWQUEfeZ1ir5SvcC5ctvOno5TcSB8TW0Q=; b=cVClcqUyWBzZ/plYkgfeMtL681ijk0E5Rscljx8gC+ZhJ6t136OmfDadiq2r9RYLoR 7apUiuHr+M/UnUVT2gj/lK++V3jhU0v37Owh9JsRVpn2zLsYQjwQw1M5C4qmXNO3thub cS3k+FxS+fdKNb0iuXWx2Y4bf3zaTmcShd+khStO9x9pszjw2PX0iy0458fB+u8dWTrg MCPTpmmekPvXcUNuoSERQ1WFljLdYrVfbXOqvHvkviP3Cn5lVr2XmBAwAwSnTiXHHn1o uEMifqq2+3qodRAh9vmkteHq2cjZSdQCNwxrIGVNdQ3ouM7A4HzkiAv8NoHm6nFUh/P/ JwnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770402737; x=1771007537; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=O8/bAXWOOLdWQUEfeZ1ir5SvcC5ctvOno5TcSB8TW0Q=; b=hJdxzSxSWqyq1m0wHBVdMovcUIGOoaoixdNiVfQdcAGwp+o6+dEWFjR/wkaSX8fg13 bFvor/zZjzC0cqeCRaXK0ngn6C3MQiLFnSkv8L3JULbKb2Jg7TcGDZeWwQ52/3O9rpSO iUHKlDl5TzUC4qFpMqRcPu+Wfi84X4AmCFEtTFigQRy8bWs1FdlFv4MXEq98IiJJHlil 04aCGWOwSKVK9KD52gMHRXcRx969VU1VJTGywz6ltSeBiWFWjC4Qavn28K2t0hhDtocK jL/Gu5LeoIY0gpopbRMFmxXzCzQOKp81w9CTgU2V8Drn1KUwh5kxpaUrAdtL8RCzsy1Z ftlg== X-Forwarded-Encrypted: i=1; AJvYcCXG7Z9XpKvdYJODRhUe9q10w9JqbqpYgruZuaVhlgvIk3ERHyoy6WcAgu73RkShSikkqcrcivOjEnsLQdQ=@vger.kernel.org X-Gm-Message-State: AOJu0YzoAloyDQSodIk/nriz9KClueZR6PiG5wC5BxXuq9FN+P35ibeN plQk28GEIig8TLWc5Ca/ksWW7n/q2G9lDb+I8JtjgEHqfufefDJsQNOUcHKDSKkMwsM= X-Gm-Gg: AZuq6aKYdVCMDnwjnOP+r9Nei/O88ubwOcwDVfK0OQ4Lr/qK8oUzHlZwOCFqkIyXP4z AkfDxJwhOymL1UqpTseQCFs2KP9UTGcHeduU7SXT7VRMuZ7XhvNIot+9kHncPUo6L8GO9D6RaFy TnKJJRuV3gCz2kfxXZ4rylI3gz47Rz702qeoBfHWmLEPrzohyxvfm7a+1+m6Pc0QNzcrEtmuc+Y 0yWC5sJ3F1ZE39IxX+4Me7Xmj2/Wr7NF64kpv7SkWyACJrvGn4o3go1gPD2U5N3T3fpZL2fIFtl kPSGN27QwjrxnuerYLaew4ospy9YygrDmEIXoqqEeJ4oC4MrQmB1jVcHaw4tAKlVVc9b7/1HLt9 6Njs8+ZOaVEc35u1em5H8N4rJ5wS15bTAVCcuoG5cB4AfW0uCNhtlK0yaPba/3sLdtSvG8BKA6D mq0As+iAKtYN1nqy4j4WnREsy7G5ViGO3lRTZjBbwdKqtWJs0HYIBtGZxUoK86u7A= X-Received: by 2002:a05:6000:420c:b0:436:140d:3f32 with SMTP id ffacd0b85a97d-436209877b3mr12825499f8f.4.1770402737372; Fri, 06 Feb 2026 10:32:17 -0800 (PST) Received: from airbuntu (host109-153-232-30.range109-153.btcentralplus.com. [109.153.232.30]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-436296b2110sm7495678f8f.3.2026.02.06.10.32.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Feb 2026 10:32:16 -0800 (PST) Date: Fri, 6 Feb 2026 18:32:15 +0000 From: Qais Yousef To: Vincent Guittot Cc: mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, dietmar.eggemann@arm.com, rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com, linux-kernel@vger.kernel.org, pierre.gondois@arm.com, kprateek.nayak@amd.com, hongyan.xia2@arm.com, christian.loehle@arm.com, luis.machado@arm.com Subject: Re: [PATCH 0/6 v8] sched/fair: Add push task mechanism and handle more EAS cases Message-ID: <20260206183215.eqc2b7wspwhdruil@airbuntu> References: <20251202181242.1536213-1-vincent.guittot@linaro.org> 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-Disposition: inline In-Reply-To: <20251202181242.1536213-1-vincent.guittot@linaro.org> On 12/02/25 19:12, Vincent Guittot wrote: > This is a subset of [1] (sched/fair: Rework EAS to handle more cases) > > [1] https://lore.kernel.org/all/20250314163614.1356125-1-vincent.guittot@linaro.org/ > > The current Energy Aware Scheduler has some known limitations which have > became more and more visible with features like uclamp as an example. This > serie tries to fix some of those issues: > - tasks stacked on the same CPU of a PD > - tasks stuck on the wrong CPU. I think you are under selling the importance of this improvement :-) FWIW, in my view the new mechanism will help us: 1. Improve slow reaction time of lb. Waiting for another CPU to pull is very slow. And with 4ms TICK being the default and what I believe should be demolished (for most systems) back off mechanisms, when lb kicks in things has gone really bad already. 2. It helps implement misfit based on energy I brought up in the past [1] 3. It brings up a step closer to unify wake up and load balancer paths as we discussed is necessary to get a decent sched qos. We need to add the concept of task placement based on latency, and if lb can't take similar decision it is hard to make this useful. With push lb, both path can easily follow up the same decision tree. I have backported an earlier version of this to help verify it, but so far I think it is an amazing addition. Thanks for this! [1] https://lore.kernel.org/lkml/20231209011759.398021-1-qyousef@layalina.io/ > > Patch 1 fixes the case where a CPU is wrongly classified as overloaded > whereas it is capped to a lower compute capacity. This wrong classification > can prevent periodic load balancer to select a group_misfit_task CPU > because group_overloaded has higher priority. > > Patch 2 removes the need of testing uclamp_min in cpu_overutilized to > trigger the active migration of a task on another CPU. > > Patch 3 prepares select_task_rq_fair() to be called without TTWU, Fork or > Exec flags when we just want to look for a possible better CPU. > > Patch 4 adds push call back mecanism to fair scheduler but doesn't enable > it. > > Patch 5 enable has_idle_core for !SMP system to track if there may be an > idle CPU in the LLC. > > Patch 6 adds some conditions to enable pushing runnable tasks for EAS: > - when a task is stuck on a CPU and the system is not overutilized. > - if there is a possible idle CPU when the system is overutilized. > > More tests results will come later as I wanted to send the pachtset before > LPC. > > I have kept Tbench figures as I added them in v7 but results are the same > with the correct patch 6. > > Tbench on dragonboard rb5 > schedutil and EAS enabled > > # process tip +patchset > 1 29.3(+/-0.3%) 29.2(+/-0.2%) +0% > 2 61.1(+/-1.8%) 61.7(+/-3.2%) +1% > 4 260.0(+/-1.7%) 258.8(+/-2.8%) -1% > 8 1361.2(+/-3.1%) 1377.1(+/-1.9%) +1% > 16 981.5(+/-0.6%) 958.0(+/-1.7%) -2% > > Hackbench didn't show any difference > > Changes since v7: > - Rebased on latest tip/sched/core > - Fix some typos > - Fix patch 6 mess > > Vincent Guittot (6): > sched/fair: Filter false overloaded_group case for EAS > sched/fair: Update overutilized detection > sched/fair: Prepare select_task_rq_fair() to be called for new cases > sched/fair: Add push task mechanism for fair > sched/fair: Enable idle core tracking for !SMT > sched/fair: Add EAS and idle cpu push trigger > > kernel/sched/fair.c | 350 +++++++++++++++++++++++++++++++++++----- > kernel/sched/sched.h | 46 ++++-- > kernel/sched/topology.c | 2 + > 3 files changed, 345 insertions(+), 53 deletions(-) > > -- > 2.43.0 >