From nobody Sun Jun 14 04:20:27 2026 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (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 130B41F3BA4 for ; Mon, 4 May 2026 02:00:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777860016; cv=none; b=ffh1Q9YH0dMk2h7IBtuO0Hx5gHuRX4XU962i1T1OJ7tYfaSDbEjf9i9UtHyiJWkxcAWX17JGl6y4RedZG+I3oI0DmTes2dCYILMRTqcBec1scqtI2thfIgHT7crK84a8uFJJR+inU0X8eINluWpdkLDlZHXyzm4usX7H9EH+Ayk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777860016; c=relaxed/simple; bh=E0eOydXd6tos3soGOgmN/ynT018kCln/FbX5evGbwxU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Cdq3ufRwlRDVC0ePDRsh7gyDt7GEnyaHBRHoUDvNC9OACcziYyQpo+v0B7ZxhKZjaOalXPuj4tUBsAcLVtwFYAaIGoz0bmaqL+SFn5FTIvYao0Bf3PU9P7yzGF3+hCQJU06+/b+z79mPqlqeVXhSXRzJWjOf2mjfiIv677VtnE8= 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.20251104.gappssmtp.com header.i=@layalina-io.20251104.gappssmtp.com header.b=MA6tL0Db; arc=none smtp.client-ip=209.85.128.46 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.20251104.gappssmtp.com header.i=@layalina-io.20251104.gappssmtp.com header.b="MA6tL0Db" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-4891c0620bcso24245125e9.1 for ; Sun, 03 May 2026 19:00:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=layalina-io.20251104.gappssmtp.com; s=20251104; t=1777860013; x=1778464813; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=wd98iPPe5qNyrXCohE1KHWmMS9J/mTeoNujknNshEaI=; b=MA6tL0Dbfy6ra/uxYYbet0+M+K6YOuDbr6alQ/mim4xZgZQT/jf1sFGGb+0Gs3QOfA 2V785mryMPgNQPsWvSWG1Ndq+UlOtPvY0ZMLfnck4uLBv5pjdE5ozepKmuS+pqoQNeiM FsucTN6J/KgbBZ2estZ4UqGGLu5DKacrfvUVu5PUBbF3BYoEHdtELqCntnLWsRa8WwO2 vFxFlJBN0xaV/I50bYS0lt0BD43th3hJF95pjJ5EJaRF3FPJwwtmnN+4B+7UIRGzs1aQ n+S8ysKUJoIE8kcHs2j/Ys3MZ/+0cQ2txRrcPBQ50Y3QHOS6qTc74Edg3E0P7RUd5hz5 CgZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777860013; x=1778464813; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=wd98iPPe5qNyrXCohE1KHWmMS9J/mTeoNujknNshEaI=; b=pGBcgTVM4cJSaIbLDTol1/FewJDiPdzS2FlQ81eXMeu25VxVhNEZe3KSV8BGJHBemv V1jHF2GbNrosdZI1RHyENrQdCv3ujB7scrfug651DwHWfhfdHzN2k1CEd+n8KyYzfP9M QPD1y0dQ7/TWjq917nUuYiUqxNVjyyYGMYZHXwUzL29wimjfypqB7+kLxutqHB8M62PQ PA5g50jmFnowFyCPTZBZdgsrnGTbXVcVr/TkEWEGiywMNyhMOLLwQlud54/kVV0A0HCm 1wXktz/l4CIFu+U1kc6thCF3lL7lhJKHxz7nvhrFlVaUfRAPYoZWWerIMxtFFe9QyKWh e2fQ== X-Forwarded-Encrypted: i=1; AFNElJ/o8DKlLGGJyA6r4p+H/DZrB1ng6jpXFFW20AmXhHL/7xhkVc7Lw4RalNe9/9oWPDr8iZhk8UGttlcCnvQ=@vger.kernel.org X-Gm-Message-State: AOJu0YydziskIiRS9XcyflJy1qgstL1ZOP5GtN5EmZSnsFMd00MHkQoN 1hjoIrVhNfgN/JAZka8PlpPvIVhZyvflJ9oig30JCO77BTN+rngK4Vp7dZZ51aUGQEQ= X-Gm-Gg: AeBDievwTdyrIa+tpthMb9SIF4dxajz+3WQNVKygDpeC994ruZNktO/xl9TlDxNLqgr thyXmRU/qaGzo8bWR/5D7T5ZFMCqnQNIUM4nURCTj6AdPTeTfmF9zhaKDJ13LW/9zSPna96+/GZ z33ZDrVu2FtaKSUPvoWr08oeJUzJ1bJgi/ykSPhlRYbqZ0WUYQ5upr9ZgDovABitFfukBZ/JzCx dcrKJpI+EpqqNdxC/8m82citJkRPyV87IWF//pmeyl3dKW1U8QqVWINJYCCHVkKirBuB6MO9xx0 2tsfOXUximQymDtI0tcNLnlFHDZpCqcfKbxakQmjR7EwkaVcnVStFMESrGWQi9sUwz3p2cEr+0r BD8wDEfgxcT6eg9BQHPQ78n9q2Eruw1OCInyznWzPgwunJqi77TcupbRujlBiZO2PKCW+U0EVds odPxmZ9imVcfYXLnZdGWqLKWU82KBqmdk= X-Received: by 2002:a05:600c:6215:b0:47e:e2eb:bc22 with SMTP id 5b1f17b1804b1-48a988a9c49mr113907935e9.5.1777860013459; Sun, 03 May 2026 19:00:13 -0700 (PDT) Received: from airbuntu.. ([146.70.179.108]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48a8fee5033sm68064215e9.22.2026.05.03.19.00.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 May 2026 19:00:10 -0700 (PDT) From: Qais Yousef To: Ingo Molnar , Peter Zijlstra , Vincent Guittot , "Rafael J. Wysocki" , Viresh Kumar Cc: Juri Lelli , Steven Rostedt , John Stultz , Dietmar Eggemann , Tim Chen , "Chen, Yu C" , Thomas Gleixner , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, Qais Yousef Subject: [PATCH v2 01/13] sched: cpufreq: Rename map_util_perf to sugov_apply_dvfs_headroom Date: Mon, 4 May 2026 02:59:51 +0100 Message-Id: <20260504020003.71306-2-qyousef@layalina.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260504020003.71306-1-qyousef@layalina.io> References: <20260504020003.71306-1-qyousef@layalina.io> 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 Content-Type: text/plain; charset="utf-8" We are providing headroom for the utilization to grow until the next decision point to pick the next frequency. Give the function a better name and give it some documentation. It is not really mapping anything. Also move it to cpufreq_schedutil.c. This function relies on updating util signal appropriately to give a headroom to grow. This is tied to schedutil and scheduler and not something that can be shared with other governors. Acked-by: Viresh Kumar Acked-by: Rafael J. Wysocki Reviewed-by: Vincent Guittot Signed-off-by: Qais Yousef --- include/linux/sched/cpufreq.h | 5 ----- kernel/sched/cpufreq_schedutil.c | 20 +++++++++++++++++++- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/include/linux/sched/cpufreq.h b/include/linux/sched/cpufreq.h index bdd31ab93bc5..d01755d3142f 100644 --- a/include/linux/sched/cpufreq.h +++ b/include/linux/sched/cpufreq.h @@ -28,11 +28,6 @@ static inline unsigned long map_util_freq(unsigned long = util, { return freq * util / cap; } - -static inline unsigned long map_util_perf(unsigned long util) -{ - return util + (util >> 2); -} #endif /* CONFIG_CPU_FREQ */ =20 #endif /* _LINUX_SCHED_CPUFREQ_H */ diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedu= til.c index 153232dd8276..f6de241fc62c 100644 --- a/kernel/sched/cpufreq_schedutil.c +++ b/kernel/sched/cpufreq_schedutil.c @@ -206,12 +206,30 @@ static unsigned int get_next_freq(struct sugov_policy= *sg_policy, return cpufreq_driver_resolve_freq(policy, freq); } =20 +/* + * DVFS decision are made at discrete points. If CPU stays busy, the util = will + * continue to grow, which means it could need to run at a higher frequency + * before the next decision point was reached. IOW, we can't follow the ut= il as + * it grows immediately, but there's a delay before we issue a request to = go to + * higher frequency. The headroom caters for this delay so the system cont= inues + * to run at adequate performance point. + * + * This function provides enough headroom to provide adequate performance + * assuming the CPU continues to be busy. + * + * At the moment it is a constant multiplication with 1.25. + */ +static inline unsigned long sugov_apply_dvfs_headroom(unsigned long util) +{ + return util + (util >> 2); +} + unsigned long sugov_effective_cpu_perf(int cpu, unsigned long actual, unsigned long min, unsigned long max) { /* Add dvfs headroom to actual utilization */ - actual =3D map_util_perf(actual); + actual =3D sugov_apply_dvfs_headroom(actual); /* Actually we don't need to target the max performance */ if (actual < max) max =3D actual; --=20 2.34.1 From nobody Sun Jun 14 04:20:27 2026 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (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 D0B5B1D5ABA for ; Mon, 4 May 2026 02:00:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777860019; cv=none; b=UUX5rn43/wQ33tO/oiREXGzRZgy86FSH6IGSR5skjGCs/8qY/i1cPmbb210n+CZdY5vCAh7pZ3h4BAEA0CuYdIoIMNARQaqS9OlyKVSu7zyaDirBkUoJGQOwRD8H9enH31g71TfhjBXXV7hCgxT0XZOcOX7wxshHXy6amtvh3qg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777860019; c=relaxed/simple; bh=jNS5ugF6VA1XQQCNnhAQXK2hOKiFWxczMDSZ5HOFuUs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=KWgTJI02+jYBGlCUefNpjlY/uKmxXfTBCUzRKf8NHPi/teAKsDHehl4cJcWhaVYIzRONmDczu9drTxEaSPGBS6IwM2DhebwWP6ll83NqRJmoBMdtnFLTVTgv7buP5Df3253ktLeAUUJ4Socw4Vfg8QNI1LSGQnNIxOGFNFJpovg= 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.20251104.gappssmtp.com header.i=@layalina-io.20251104.gappssmtp.com header.b=u7FUT96S; arc=none smtp.client-ip=209.85.128.45 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.20251104.gappssmtp.com header.i=@layalina-io.20251104.gappssmtp.com header.b="u7FUT96S" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-4852b81c73aso23867865e9.3 for ; Sun, 03 May 2026 19:00:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=layalina-io.20251104.gappssmtp.com; s=20251104; t=1777860016; x=1778464816; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=VGX9LyWWhnXaPHL2xAB0hm15nm1TdqQjuBEHx8htUtM=; b=u7FUT96SLKXTZPSzpz+e1Vz6PLtLbwEr0an4RkODpJu7J1rxyPUUnmiMRHt2FftjG5 vn93FwLbgohRJsv76HW6h4fUXEDR1DTSMvphKZvZ3zCQUQp7PjN77Gw5uUmJbAklexzu Vh834BSS5VRKCB6pVYQXUPNLW0+9DtKrhHo4UgfG/fx18mbWWnZ0QWGiy6Hw5OqdZjmA n2pXYQ0gDs1eeGI04m7bY9UCUFlBa1IB5nWIt3/kF6JYWckhBbb8dhFBgAsaQizucCyR r/+jMymtVZSIbxy5dOElH40LHwJD49goZvnGgPLa12Jlnn2gT/oQzJHr4NEunG9Ct6wC glVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777860016; x=1778464816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=VGX9LyWWhnXaPHL2xAB0hm15nm1TdqQjuBEHx8htUtM=; b=SNrK43XRP20WCAOuR5YwR5UrTDXTr0WQkOLpe5D/KZw4R2jt9VGjpIXQBpf2t0hn0O oxtjloQlgf3A/QrjNqgHptvGQLGtyOZzhCjvSaKLd8KtCK6M+jGfl0EjEpMNefsK9GhD ULPxpgVlFNHG1TDNnvdl3BD4YmVgmB6WDqCrvcWxWXT6AZV8HXZjGcaObsLmIuNSii4i sQPxc7MoU6tXQ/lGyLco5m+BWi17HgyAfGWu4uDxPsF2dzw+oL502bzqWhkNlExI2H30 TSw09aVAbGFhaCudOR8ZaoNaqtN/qHn9UXitGRB/mSZEKdAbPpqV81YG/X5Z6iV73Url GZtQ== X-Forwarded-Encrypted: i=1; AFNElJ9HhbFGbkwJKaQ3R21JFqXu5DTFk/yDHOUSpz0lfqKt22QdlJLJgGYSYw4C0H60L9NIpG1m9athvFljbWY=@vger.kernel.org X-Gm-Message-State: AOJu0Yy/UcasH7EPFUUM8wUS7KF6JhbcTmd+lKdH5FLYBRx/JhIKSc0G Xncj6qAN0phjkICHGRv71ZWMp5yJc4u6rqUCZcIZLfmhc3KMilHA6/jUI9lvMjWA/P8= X-Gm-Gg: AeBDieudUVWkt2Bv+LyPwRHG1+Htw0emnx+KOmVYd/ZyZaKxwEZOcO7RdYTC2PLTGfC 9/h1Xw+X/lkJRoesc/TO2cS6ZfnEGrhWeLGYgSpO0AkzM2ZNRj++ITmMgxfH/o1E4OSQZC1Znue RiEEVfD6565JvAuKEbrdEMyiflobw6YaFbvRyc6Pe8v446hPZ6JqLmpxh9P6ea+YXA8nhBNjf35 3Hn1OGXdRV0VGLH768rA5aVRvj0nM3DNVhWurpmRDTY5eg588/es4TjgCPd7Y58jIJk8vc1BgFh P5qPRxYX/LJeXJ4H0C081JoUcwmNv75sfSS+6kSMif0JpW6mxyy2LZIWtR23ZJOkiliE0m8F5S1 KrTB0Cuobo/U3e2AhNsIdbuTPesG5nP3YpH+a/F+QaVbXnopMZg+/Vq9xffRWn/CwiyiSSCM2lb ZARs6Dlmo8DpETC7K3cKUAfwbi5KZtMao= X-Received: by 2002:a05:600c:8b0e:b0:485:ae14:8191 with SMTP id 5b1f17b1804b1-48a9852d122mr117385575e9.5.1777860016270; Sun, 03 May 2026 19:00:16 -0700 (PDT) Received: from airbuntu.. ([146.70.179.108]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48a8fee5033sm68064215e9.22.2026.05.03.19.00.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 May 2026 19:00:15 -0700 (PDT) From: Qais Yousef To: Ingo Molnar , Peter Zijlstra , Vincent Guittot , "Rafael J. Wysocki" , Viresh Kumar Cc: Juri Lelli , Steven Rostedt , John Stultz , Dietmar Eggemann , Tim Chen , "Chen, Yu C" , Thomas Gleixner , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, Qais Yousef Subject: [PATCH v2 02/13] sched/pelt: Add a new function to approximate the future util_avg value Date: Mon, 4 May 2026 02:59:52 +0100 Message-Id: <20260504020003.71306-3-qyousef@layalina.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260504020003.71306-1-qyousef@layalina.io> References: <20260504020003.71306-1-qyousef@layalina.io> 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 Content-Type: text/plain; charset="utf-8" Given a util_avg value, the new function will return the future one given a runtime delta. This will be useful in later patches to help replace some magic margins with more deterministic behavior. Signed-off-by: Qais Yousef --- kernel/sched/pelt.c | 20 ++++++++++++++++++++ kernel/sched/sched.h | 1 + 2 files changed, 21 insertions(+) diff --git a/kernel/sched/pelt.c b/kernel/sched/pelt.c index 897790889ba3..5a8f4dc99ffc 100644 --- a/kernel/sched/pelt.c +++ b/kernel/sched/pelt.c @@ -488,3 +488,23 @@ bool update_other_load_avgs(struct rq *rq) update_hw_load_avg(rq_clock_task(rq), rq, hw_pressure) | update_irq_load_avg(rq, 0); } + +/* + * Approximate the new util_avg value assuming an entity has continued to = run + * for @delta us. + */ +unsigned long approximate_util_avg(unsigned long util, u64 delta) +{ + struct sched_avg sa =3D { + .util_sum =3D util * PELT_MIN_DIVIDER, + .util_avg =3D util, + }; + + if (unlikely(!delta)) + return util; + + accumulate_sum(delta, &sa, 1, 0, 1); + ___update_load_avg(&sa, 0); + + return sa.util_avg; +} diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index c95584191d58..190515b50dc8 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -3527,6 +3527,7 @@ unsigned long sugov_effective_cpu_perf(int cpu, unsig= ned long actual, unsigned long min, unsigned long max); =20 +unsigned long approximate_util_avg(unsigned long util, u64 delta); =20 /* * Verify the fitness of task @p to run on @cpu taking into account the --=20 2.34.1 From nobody Sun Jun 14 04:20:27 2026 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (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 EA383145FE0 for ; Mon, 4 May 2026 02:00:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777860021; cv=none; b=YUlPcsFu/6AYD22xISuk6wzv1xHtwFfQgh9S8Qdi+H49KoKxEtAhcsNWCdskzpfGiNA/ZGPQk0ps2M3tUONf6AuJV+IVYRug4SanGvhX3rHJEmfk0Ubv6yYFr/z15/RrTfh+I4DoXHu1m7n0rKUVYqCXahfeGglu7dEJAqbmuRc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777860021; c=relaxed/simple; bh=5vG3U0BaZnJmp47YUmn031O5Pq3+fxqw0xD41MTuiO4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=RAKzU/MD5X0IIUvkNAjUZt1zcZCdBVFqhgmyB2opFxAm0L4k8HWcznDOSd08BKyiW01uGAuOxNPNJUw3fQlmFsyNpMtBAE5E4U3a20RwAUtJ06iON3NFjkOOyirYMOYdeRrGFWCw5Eydx9O9fS2Y5bdhWHy9oyHlGmOfn6LNiGE= 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.20251104.gappssmtp.com header.i=@layalina-io.20251104.gappssmtp.com header.b=zo7bdswt; arc=none smtp.client-ip=209.85.128.50 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.20251104.gappssmtp.com header.i=@layalina-io.20251104.gappssmtp.com header.b="zo7bdswt" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-488b150559bso23523675e9.1 for ; Sun, 03 May 2026 19:00:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=layalina-io.20251104.gappssmtp.com; s=20251104; t=1777860018; x=1778464818; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nHhjICQePhZbdRVPnhX620Fr/hMNUIWexLWzur3AOv4=; b=zo7bdswtBG58Ba4mypZij16OpIJehK4oU66FWjeh8TrPKjHyUfi1Ad24e6dT3l1OEV aMEQ+dbzAGpqM22s0YwnNHkmdPB3bX7sSOufQEBwuojBhZnwzx0GeWqJBIEiZrJFGDMn 1o/onr32myFA+t7A7JHALVEG28zmm7PHVUjl9WfOiGpWWq94T9n9+F21agMCkTT28wzI z/OEbxq9U1u8JB757TfA/zqbXN8ptxc+aWae3mYg2YmDAhc0KPApWdOKEVS51QveTK0R 5/BVJOAJ++8FA4zXApan3g4HbS6hZQmIDigGfEOu/u66OfKOT3PHOYeYyTe0U6IMenlv qWwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777860018; x=1778464818; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=nHhjICQePhZbdRVPnhX620Fr/hMNUIWexLWzur3AOv4=; b=FYSOGswCj5bLjHgz1i7NpmmkJsqggEiqBs1YOO1neF+DrN02jby3VtOmK+mogFChBq DmKvAe0rN3UOi1auzqCL8MK/zH8wumJT++52DGEd9IHJtNo7kLZLr6PCaSyBLmQzpi3q ocers7jWpBDNLdGH+PvjHnOf0QdGvM2QGcbImu0vi2WeirugKQ3LnXBW0J/6aOxT82K5 YvtBMyOIeSomMC9XdqjB6EA6M6Kfs45Hms3eEjVEdWkeUrIcxzK0UxcjeWllJPpTeViR IDj7gWali8MNrl3bpK2BLYDDEHnYoDE96MYvh/6ETo3H3g4uWf3m1mbkkIYwwNJpHI5V tlAA== X-Forwarded-Encrypted: i=1; AFNElJ/B/YWsKpX7+S2tgR28Qv9WvosyC2HfKZJVJKGRddD/ikyedFHPzCZIaGFjwJvdkWqxHbU0C0g2SocksQc=@vger.kernel.org X-Gm-Message-State: AOJu0YwSkDt+Tv3MDQAjZQ6GmlF83tFBueiEZRsXJq4aGTPRZrvyVmko CNFdVc1d5HRR3KWnVxc5ejkumGEozXLApnWJaYastmYbPe2bcUi8I1FeqgElBkIRFqA= X-Gm-Gg: AeBDieuC5cMbi227JhPn8AG33ELR7Z3F57jTtyusoU0YyxcDdjvDBbP1tm3OceL4Y2T d4DC53xkCys5IaP3zcXmLhgJU+Pui5o70/uF//Jyryki2bQ0t+qnuDm3xYEL6sxs5HoygeC+/qa Xt0KTC5dxHaZFHl1Op8izSpmxw6fDrcJA3IhUMyMKIGL/gYoX/ayB8EUXuxyNUHP/yUd1DvkYhh Q9cl2TqhlqiucDOQP43hFHLPUP0X4aRCvmvT8zqtAQgT/VHu3Fvk1BE+SEoUsM9SqGM3ykEznPU UBt73ssKts2qEUpfwwXqJaNw51vQVWp7SpsvGTR86CLSmqDKmKk3wu5qbXNnUQk9iDTKtKuFMGf gNgJshGKrkFcG7xiQ+kowf2vWYxjNnIrDIWZvP3ckITaB7KwBRbge92xWEXS5casV2zlHrCd/2+ 1pSmMn732++kSadiPrNeVAOav0iiYI26w= X-Received: by 2002:a05:600c:45d4:b0:489:1c5f:3a9e with SMTP id 5b1f17b1804b1-48a9865e17dmr116960415e9.13.1777860018401; Sun, 03 May 2026 19:00:18 -0700 (PDT) Received: from airbuntu.. ([146.70.179.108]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48a8fee5033sm68064215e9.22.2026.05.03.19.00.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 May 2026 19:00:17 -0700 (PDT) From: Qais Yousef To: Ingo Molnar , Peter Zijlstra , Vincent Guittot , "Rafael J. Wysocki" , Viresh Kumar Cc: Juri Lelli , Steven Rostedt , John Stultz , Dietmar Eggemann , Tim Chen , "Chen, Yu C" , Thomas Gleixner , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, Qais Yousef Subject: [PATCH v2 03/13] sched/pelt: Add a new function to approximate runtime to reach given util Date: Mon, 4 May 2026 02:59:53 +0100 Message-Id: <20260504020003.71306-4-qyousef@layalina.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260504020003.71306-1-qyousef@layalina.io> References: <20260504020003.71306-1-qyousef@layalina.io> 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 Content-Type: text/plain; charset="utf-8" It is basically the ramp-up time from 0 to a given value. Will be used later to implement new tunable to control response time for schedutil. Signed-off-by: Qais Yousef --- kernel/sched/pelt.c | 21 +++++++++++++++++++++ kernel/sched/sched.h | 1 + 2 files changed, 22 insertions(+) diff --git a/kernel/sched/pelt.c b/kernel/sched/pelt.c index 5a8f4dc99ffc..dbd450798b03 100644 --- a/kernel/sched/pelt.c +++ b/kernel/sched/pelt.c @@ -508,3 +508,24 @@ unsigned long approximate_util_avg(unsigned long util,= u64 delta) =20 return sa.util_avg; } + +/* + * Approximate the required amount of runtime in ms required to reach @uti= l. + */ +u64 approximate_runtime(unsigned long util) +{ + struct sched_avg sa =3D {}; + u64 delta =3D 1024; // period =3D 1024 =3D ~1ms + u64 runtime =3D 0; + + if (unlikely(!util)) + return runtime; + + while (sa.util_avg < util) { + accumulate_sum(delta, &sa, 1, 0, 1); + ___update_load_avg(&sa, 0); + runtime++; + } + + return runtime; +} diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index 190515b50dc8..a445add5cc3a 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -3528,6 +3528,7 @@ unsigned long sugov_effective_cpu_perf(int cpu, unsig= ned long actual, unsigned long max); =20 unsigned long approximate_util_avg(unsigned long util, u64 delta); +u64 approximate_runtime(unsigned long util); =20 /* * Verify the fitness of task @p to run on @cpu taking into account the --=20 2.34.1 From nobody Sun Jun 14 04:20:27 2026 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (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 191921F09A8 for ; Mon, 4 May 2026 02:00:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777860023; cv=none; b=ZJAqa1xgynEDqauqCu5T6ujwX3qpR7iMpco9f2gOLSYpeWJfOjatv7bsxQt02Q6QvsH0fIIRkimpu0n1QuhCHgTtBsxdSdV1sXL3hQ7ySCQ4561M1YiaZAJDUZnBUdmAux6q4dOatSeKqYQCtXrseYnjWQzcnFPi1gHICmHAlDE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777860023; c=relaxed/simple; bh=yuTHinju3Wqelxa/OJT5FyWbi37H9Z2sU6ewl9V4gcs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=pDg8B2do9Q/GMEKkSQCqa1t1cxUCmmcqTYEqRnmxOJmnzNdDC7DhGPDJ+i3Jl6zJp2QRYyk5msW+7F76jODQFn7YOXRCKTroUJgKiwIGVj7HWwzXj9PhLHmSDbywSGUfrznn5owR/yZy4mzhLJbrb04NpU/ccHQ9PL1p4WKDP78= 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.20251104.gappssmtp.com header.i=@layalina-io.20251104.gappssmtp.com header.b=plue465z; arc=none smtp.client-ip=209.85.128.45 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.20251104.gappssmtp.com header.i=@layalina-io.20251104.gappssmtp.com header.b="plue465z" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-488e1a8ac40so33749615e9.2 for ; Sun, 03 May 2026 19:00:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=layalina-io.20251104.gappssmtp.com; s=20251104; t=1777860020; x=1778464820; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=YXuQ4QLl0TdDDNVQh+o+wnNBMRXQls3OjNZ9KPeuMHc=; b=plue465zBI+B0ijjGdWgG/nGsterW1nuAyFv7cZ0aYyqiE/RNoo45pzryl8ecTvuGU 1ObE34mubfkvzbqjS0K+43KiQll7sXvEbBnClJ6zBkDyAHHC1DLKlo/fSxWOXfEObTNC Xlru6qqd67zoG1xBbQW6QCbQPkZqvmJZHBixlRoCaFhV18fg/bo6oPrB157qbtOmKLgR bWiHiRFAbhh9YByrhh2thk7oECgW6Ei733p9IT5t9V/RchLUKunUQypBUS7lH6EKSWnd KYV6cgjbXVF3OedMR88qHBnjDQq72EbbIZvBOpXL6zK8bIxWKXP67KMBtQ/Bt1JEma/p FXvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777860020; x=1778464820; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=YXuQ4QLl0TdDDNVQh+o+wnNBMRXQls3OjNZ9KPeuMHc=; b=Dfb3bdXT/BAZZHn8bdDfJ6HUqOTUt6dmykOaJobycb7gIEZhG68H/WukSEeQBZ5G9u VOVoolF3lGoo2ZjQjEXKGLwlGwbGF/shW0GietzTnhTeru+pYhb7PXOg5fAT1hlYncg9 fJUqeimjt0UCX4w7XgLIrs8GxdWJ7dOelRYbT1r3X+OWBxGND7gSCkCvU00p081igybQ JsNVHg4aPZ1R9+n4XA5iuqIFkIBKr+o2XwJy2EyPePJKhD3I8Ctpw+Bp5hgbK6PX+ubf yBZDKQ72Q1JRKqv5AxoL7JQ5nFhwMtiNlYeTwLqWn7iRBQiQmn2Iatybv/sGO7wppjWB rxgA== X-Forwarded-Encrypted: i=1; AFNElJ/J9WC/sjHva/P4FSv4b1HT6opzUWUnToLP7uCaFuW+UtKwzEjtGn0wINZs3Pny87EHirlkhgTAvLIfccg=@vger.kernel.org X-Gm-Message-State: AOJu0YxuHXYp7Mt0t7+VZxeReXUsze28DM9m6qz5oZY3vZ5EizSaH85X bRqIj3TtKMAZoDozQSORVPaCkMG+gpsYoC7NCi/lIPmYWW8OAnHcYvNPAmcRsVWzBiQ= X-Gm-Gg: AeBDieshMtfHXL02c345aqy8Ad/zWzr2/lnG/wK+9RLll3866vkVo3pvyNsxxO/YmZK vzpDw7h21b6S79Jt04nbzeGFK/KzV9IoTnEjhCRxM47czfmI9eE+wwVzjQt5hQu4Yxv7fWNAh5d pNbKMaFtYne3kwtN/6anFPYgD1aqFT9WOerbqx/3T1lwihkyGHRZBU8Hgbh/BiF9jgcY6qRg32C iDSU21gtdCAjb1ViZSQRClsdi1JnlE2mtcem5CWXLYC4EtWNxGFOJ/6G8S0jGxHeqy8fn6RJoMB PJ3yrHDthrYez3o6EULNLoVXhk8HErRYnE0CSqiEPxXVD/2ChenHIKLCX5ANdISmfbBuFp94Khg eqoBDm0sTABoo2bnI1TgFUW1ZL25VkgpG5HfV6WWp8LpkujR/2DProPnacjj0V1c+ywRU/ys0u/ WKKI8DDu4wyPaSnbu+DZNZtiX9W3K6mmA= X-Received: by 2002:a05:600c:5303:b0:48a:53ea:13eb with SMTP id 5b1f17b1804b1-48a9852c5c0mr138385405e9.5.1777860020476; Sun, 03 May 2026 19:00:20 -0700 (PDT) Received: from airbuntu.. ([146.70.179.108]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48a8fee5033sm68064215e9.22.2026.05.03.19.00.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 May 2026 19:00:19 -0700 (PDT) From: Qais Yousef To: Ingo Molnar , Peter Zijlstra , Vincent Guittot , "Rafael J. Wysocki" , Viresh Kumar Cc: Juri Lelli , Steven Rostedt , John Stultz , Dietmar Eggemann , Tim Chen , "Chen, Yu C" , Thomas Gleixner , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, Qais Yousef Subject: [PATCH v2 04/13] sched/fair: Remove magic hardcoded margin in fits_capacity() Date: Mon, 4 May 2026 02:59:54 +0100 Message-Id: <20260504020003.71306-5-qyousef@layalina.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260504020003.71306-1-qyousef@layalina.io> References: <20260504020003.71306-1-qyousef@layalina.io> 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 Content-Type: text/plain; charset="utf-8" Replace hardcoded margin value in fits_capacity() with better dynamic logic. 80% margin is a magic value that has served its purpose for now, but it no longer fits the variety of systems that exist today. If a system is over powered specifically, this 80% will mean we leave a lot of capacity unused before we decide to upmigrate on HMP system. On many systems the little cores are under powered and ability to migrate faster away from them is desired. Redefine misfit migration to mean the utilization threshold at which the task would become misfit at the next load balance event assuming it becomes an always running task. To calculate this threshold, we use the new approximate_util_avg() function to find out the threshold, based on arch_scale_cpu_capacity() the task will be misfit if it continues to run for a TICK_USEC which is our worst case scenario for when misfit migration will kick in. Signed-off-by: Qais Yousef --- kernel/sched/core.c | 1 + kernel/sched/fair.c | 40 ++++++++++++++++++++++++++++++++-------- kernel/sched/sched.h | 1 + 3 files changed, 34 insertions(+), 8 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 49cd5d217161..47ec8ea7c52e 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -8921,6 +8921,7 @@ void __init sched_init(void) rq->sd =3D NULL; rq->rd =3D NULL; rq->cpu_capacity =3D SCHED_CAPACITY_SCALE; + rq->fits_capacity_threshold =3D SCHED_CAPACITY_SCALE; rq->balance_callback =3D &balance_push_callback; rq->active_balance =3D 0; rq->next_balance =3D jiffies; diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index f179faf7a6a1..4e1ed3c7f96e 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -97,11 +97,15 @@ int __weak arch_asym_cpu_priority(int cpu) } =20 /* - * The margin used when comparing utilization with CPU capacity. - * - * (default: ~20%) + * fits_capacity() must ensure that a task will not be 'stuck' on a CPU wi= th + * lower capacity for too long. This the threshold is the util value at wh= ich + * if a task becomes always busy it could miss misfit migration load balan= ce + * event. So we consider a task is misfit before it reaches this point. */ -#define fits_capacity(cap, max) ((cap) * 1280 < (max) * 1024) +static inline bool fits_capacity(unsigned long util, int cpu) +{ + return util < cpu_rq(cpu)->fits_capacity_threshold; +} =20 /* * The margin used when comparing CPU capacities. @@ -5180,14 +5184,13 @@ static inline int util_fits_cpu(unsigned long util, unsigned long uclamp_max, int cpu) { - unsigned long capacity =3D capacity_of(cpu); unsigned long capacity_orig; bool fits, uclamp_max_fits; =20 /* * Check if the real util fits without any uclamp boost/cap applied. */ - fits =3D fits_capacity(util, capacity); + fits =3D fits_capacity(util, cpu); =20 if (!uclamp_is_used()) return fits; @@ -10299,12 +10302,33 @@ static void update_cpu_capacity(struct sched_doma= in *sd, int cpu) { unsigned long capacity =3D scale_rt_capacity(cpu); struct sched_group *sdg =3D sd->groups; + struct rq *rq =3D cpu_rq(cpu); + u64 limit; =20 if (!capacity) capacity =3D 1; =20 - cpu_rq(cpu)->cpu_capacity =3D capacity; - trace_sched_cpu_capacity_tp(cpu_rq(cpu)); + rq->cpu_capacity =3D capacity; + trace_sched_cpu_capacity_tp(rq); + + /* + * Calculate the util at which the task must be considered a misfit. + * + * We must ensure that a task experiences the same ramp-up time to + * reach max performance point of the system regardless of the CPU it + * is running on (due to invariance, time will stretch and task will + * take longer to achieve the same util value compared to a task + * running on a big CPU) and a delay in misfit migration which depends + * on TICK doesn't end up hurting it as it can happen after we would + * have crossed this threshold. + * + * To ensure that invaraince is taken into account, we don't scale time + * and use it as-is, approximate_util_avg() will then let us know the + * our threshold. + */ + limit =3D approximate_runtime(arch_scale_cpu_capacity(cpu)) * USEC_PER_MS= EC; + limit -=3D TICK_USEC; /* sd->balance_interval is more accurate */ + rq->fits_capacity_threshold =3D approximate_util_avg(0, limit); =20 sdg->sgc->capacity =3D capacity; sdg->sgc->min_capacity =3D capacity; diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index a445add5cc3a..24008f1ec812 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1236,6 +1236,7 @@ struct rq { unsigned char nohz_idle_balance; unsigned char idle_balance; =20 + unsigned long fits_capacity_threshold; unsigned long misfit_task_load; =20 /* For active balancing */ --=20 2.34.1 From nobody Sun Jun 14 04:20:27 2026 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (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 A171F1F3BA2 for ; Mon, 4 May 2026 02:00:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777860028; cv=none; b=ovb+FAzMMLBWPCcJD9sODsTz7x+se+QX9UIwIZi7n9LM9MVIXjPjlFAP+an03bt+yB7qL7H7WPNqpMw5JwN55Tb2uZNb1JoKW9EH5n1k6g06jsMc5DATML1lToCrQSU79QhxYqDzqtjbQzapaZB+xJWD1b4NGUXrbujncuMhOpI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777860028; c=relaxed/simple; bh=IuHzjEG/NnEmcD2qU2tuLvD8m2QsjcoR5Ym0/Y230fc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=lVsGq6sY82KOZc/+xixoVaLLJOuoZlac2PEPcmWneQbFljipC8jrwGpsqB8pT0xHw0XxBvQ0RJDlYC+A/lEsCwOgHKI7Q97CmQrBxZ2xa6MV76OBpy8r2d74mxBgqZImNM22CDKWnF8xQ/r3PaY9Zjc9yhuwI2dThX9JFRfEW3A= 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.20251104.gappssmtp.com header.i=@layalina-io.20251104.gappssmtp.com header.b=CX7rq4KT; arc=none smtp.client-ip=209.85.128.54 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.20251104.gappssmtp.com header.i=@layalina-io.20251104.gappssmtp.com header.b="CX7rq4KT" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-488ad135063so30081095e9.0 for ; Sun, 03 May 2026 19:00:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=layalina-io.20251104.gappssmtp.com; s=20251104; t=1777860023; x=1778464823; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=pnFztH0MgizY/YqzLaNQKaZjQRKlZC14r0DZS22NKYE=; b=CX7rq4KToXleeu61606KlTyNG488VDuyTyGE6Veq9xWkolXG86RgAp7YTCAhyxj3HQ EMhYYWQ2gms8AmOH1q4OyXjG+6UYWYKjPuHmJiuqf81h4+YCWm2AKs1NxlfIm6BhI/6R 1/G/T1Cn3HPqjYxCKWgVQLwXjAlGwkNSgQMIDwBt4o1RL6Da7ZO6ZL0d+BTbqU/aR5Az E0kB8/U/chWFEj93ZcXIcXrj7OeX0zU+JAP9W7Uxu+rXvZuQyKtkce6uRh7/r11paMZ6 972minOH2f9RNs6v3nmIdDvT+ePG6BpVtibxwPTpczOLLO7qCY3Gr2AURhUrCqjoxoo/ QwDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777860023; x=1778464823; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=pnFztH0MgizY/YqzLaNQKaZjQRKlZC14r0DZS22NKYE=; b=r5n175uMavXyKdOrzklekr3w3Mjn/jW/dQ4s6mLVeiwihbQlS9FkdCPIU2Vmh1uOE3 JRyNq8+lRpmmu/oaex22mA++xvIEJZ0Zn4+0ug15k7L+uRPmc9oHwOD0TCNaXRFhUNMn cI2a2JC+gdjn1QmhyVcmAb1hG17bieE9Hhx4ZIWA0sRc7OApv+g8LqbFZzv3ca1aMemS 1qNLxRa2qiJqNRMNmP20OWG53IFyYqh1c0My/ylOb7599XfUlnj2uVavxapfj0Vn870M fvcvF0bytCk73wrmDTRsVzh36lK8NOBFpmGLL7PJkBQmlskUleIlLQbrX10qcMn6WGr3 qiCg== X-Forwarded-Encrypted: i=1; AFNElJ+Kn1Lne6ckZKLbVjVrtwZvdmyv4iOQJrfSAoVAREJYXmMzQFJI7O+veFeY6yQfNwQ2Ny0MJiUi8Hnknrg=@vger.kernel.org X-Gm-Message-State: AOJu0YwGMKSqFlkAiBrA4CkJnh7aGH1y7TMR1eEygLk5ZjgIQXSwV7+Y 2wSPwTpUZsoXGvKq8YUMcIKB1NzE47g29UMSYgo072WdKpyp0oguMs6VHSRmjLmYRTI= X-Gm-Gg: AeBDieuwn9+fGxo2Z1FlHb14VX0ae92i4n2eKg6jXsXFmP8p/oRMC0k7A59CZf4WO9F QldGioKJe7q2rSP0yVk4R4Eminr3tMzvA8NdzIjOy//1sFsnX1pcmfHnMmqQWI+a8pgsSJ21/ZZ ubQw8++bNI6EUZ+V6vAMjoTLJU4xV+N9I+NTIPTOs2OUqA4SzKfBG3R+i4kFS+ZOsfwl1mlmIUn cp5S94YHQhYUq/y/q7eFM2pqY4JBnxBiExyFoNkBq+BlCXU34RWVnVRLHVxMkH8MwMpVhiywzGw P+hdtoVAYPR/W+rHbFUsgwmAR8awKjdQmopIH+LxFyeS7B+U3r0qwFJzNR4mwQACo8u8Z3sdfTh AcLpb6vqiLLADxiVSaHaBw7Zk2EzAh4FpAu2LrM9vfcV/8LOA7U9wL78XIsmGoI9qIGuDCi53E5 S8G+PpvgSsF9b77SH0pYrvK12j8uXRfFE= X-Received: by 2002:a05:600c:16c9:b0:48d:35e:84a0 with SMTP id 5b1f17b1804b1-48d035e84damr45050035e9.28.1777860023099; Sun, 03 May 2026 19:00:23 -0700 (PDT) Received: from airbuntu.. ([146.70.179.108]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48a8fee5033sm68064215e9.22.2026.05.03.19.00.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 May 2026 19:00:22 -0700 (PDT) From: Qais Yousef To: Ingo Molnar , Peter Zijlstra , Vincent Guittot , "Rafael J. Wysocki" , Viresh Kumar Cc: Juri Lelli , Steven Rostedt , John Stultz , Dietmar Eggemann , Tim Chen , "Chen, Yu C" , Thomas Gleixner , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, Qais Yousef Subject: [PATCH v2 05/13] sched: cpufreq: Remove magic 1.25 headroom from sugov_apply_dvfs_headroom() Date: Mon, 4 May 2026 02:59:55 +0100 Message-Id: <20260504020003.71306-6-qyousef@layalina.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260504020003.71306-1-qyousef@layalina.io> References: <20260504020003.71306-1-qyousef@layalina.io> 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 Content-Type: text/plain; charset="utf-8" Replace 1.25 headroom in sugov_apply_dvfs_headroom() with better dynamic logic. Instead of the magical 1.25 headroom, use the new approximate_util_avg() to provide headroom based on the dvfs_update_delay, which is the period at which the cpufreq governor will send DVFS updates to the hardware, or min(curr.se.slice, TICK_USEC) which is the max delay for util signal to change and promote a cpufreq update; whichever is higher. Add a new percpu dvfs_update_delay that can be cheaply accessed whenever sugov_apply_dvfs_headroom() is called. We expect cpufreq governors that rely on util to drive its DVFS logic/algorithm to populate these percpu variables. schedutil is the only such governor at the moment. The behavior of schedutil will change. Some systems will experience faster dvfs rampup (because of higher TICK or rate_limit_us), others will experience slower rampup. The impact on performance should not be visible if not for the black hole effect of utilization invariance. A problem that will be addressed in later patches. CONST_DVFS_HEADROOM sched_feat allows reverting back to the old behavior for easy backward compatibility. Signed-off-by: Qais Yousef --- kernel/sched/core.c | 1 + kernel/sched/cpufreq_schedutil.c | 39 +++++++++++++++++++++++++++----- kernel/sched/features.h | 6 +++++ kernel/sched/sched.h | 9 ++++++++ 4 files changed, 49 insertions(+), 6 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 47ec8ea7c52e..3fbf560203f3 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -124,6 +124,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(sched_exit_tp); EXPORT_TRACEPOINT_SYMBOL_GPL(sched_set_need_resched_tp); =20 DEFINE_PER_CPU_SHARED_ALIGNED(struct rq, runqueues); +DEFINE_PER_CPU_READ_MOSTLY(u64, dvfs_update_delay); DEFINE_PER_CPU(struct rnd_state, sched_rnd_state); =20 #ifdef CONFIG_SCHED_PROXY_EXEC diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedu= til.c index f6de241fc62c..b529f5b96f6e 100644 --- a/kernel/sched/cpufreq_schedutil.c +++ b/kernel/sched/cpufreq_schedutil.c @@ -215,13 +215,31 @@ static unsigned int get_next_freq(struct sugov_policy= *sg_policy, * to run at adequate performance point. * * This function provides enough headroom to provide adequate performance - * assuming the CPU continues to be busy. + * assuming the CPU continues to be busy. This headroom is based on the + * dvfs_update_delay of the cpufreq governor or min(curr.se.slice, TICK_US= ), + * whichever is higher. * - * At the moment it is a constant multiplication with 1.25. + * XXX: Should we provide headroom when the util is decaying? */ -static inline unsigned long sugov_apply_dvfs_headroom(unsigned long util) +static inline unsigned long sugov_apply_dvfs_headroom(unsigned long util, = int cpu) { - return util + (util >> 2); + struct rq *rq =3D cpu_rq(cpu); + u64 delay; + + if (sched_feat(CONST_DVFS_HEADROOM)) + return util + (util >> 2); + + /* + * What is the possible worst case scenario for updating util_avg, ctx + * switch or TICK? + */ + if (rq->cfs.h_nr_queued > 1) + delay =3D min(rq->curr->se.slice/1000, TICK_USEC); + else + delay =3D TICK_USEC; + delay =3D max(delay, per_cpu(dvfs_update_delay, cpu)); + + return approximate_util_avg(util, delay); } =20 unsigned long sugov_effective_cpu_perf(int cpu, unsigned long actual, @@ -229,7 +247,7 @@ unsigned long sugov_effective_cpu_perf(int cpu, unsigne= d long actual, unsigned long max) { /* Add dvfs headroom to actual utilization */ - actual =3D sugov_apply_dvfs_headroom(actual); + actual =3D sugov_apply_dvfs_headroom(actual, cpu); /* Actually we don't need to target the max performance */ if (actual < max) max =3D actual; @@ -615,15 +633,21 @@ rate_limit_us_store(struct gov_attr_set *attr_set, co= nst char *buf, size_t count struct sugov_tunables *tunables =3D to_sugov_tunables(attr_set); struct sugov_policy *sg_policy; unsigned int rate_limit_us; + int cpu; =20 if (kstrtouint(buf, 10, &rate_limit_us)) return -EINVAL; =20 tunables->rate_limit_us =3D rate_limit_us; =20 - list_for_each_entry(sg_policy, &attr_set->policy_list, tunables_hook) + list_for_each_entry(sg_policy, &attr_set->policy_list, tunables_hook) { + sg_policy->freq_update_delay_ns =3D rate_limit_us * NSEC_PER_USEC; =20 + for_each_cpu(cpu, sg_policy->policy->cpus) + per_cpu(dvfs_update_delay, cpu) =3D rate_limit_us; + } + return count; } =20 @@ -886,6 +910,9 @@ static int sugov_start(struct cpufreq_policy *policy) memset(sg_cpu, 0, sizeof(*sg_cpu)); sg_cpu->cpu =3D cpu; sg_cpu->sg_policy =3D sg_policy; + + per_cpu(dvfs_update_delay, cpu) =3D sg_policy->tunables->rate_limit_us; + cpufreq_add_update_util_hook(cpu, &sg_cpu->update_util, uu); } return 0; diff --git a/kernel/sched/features.h b/kernel/sched/features.h index a25f97201ab9..6f7e5bba854f 100644 --- a/kernel/sched/features.h +++ b/kernel/sched/features.h @@ -129,3 +129,9 @@ SCHED_FEAT(LATENCY_WARN, false) */ SCHED_FEAT(NI_RANDOM, true) SCHED_FEAT(NI_RATE, true) + +/* + * For backward compatibility. Use the constant 1.25 dvfs headroom in + * schedutil instead of the dynamic one. + */ +SCHED_FEAT(CONST_DVFS_HEADROOM, false) diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index 24008f1ec812..16ebd8eb48d5 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -3531,6 +3531,15 @@ unsigned long sugov_effective_cpu_perf(int cpu, unsi= gned long actual, unsigned long approximate_util_avg(unsigned long util, u64 delta); u64 approximate_runtime(unsigned long util); =20 +/* + * Any governor that relies on util signal to drive DVFS, must populate th= ese + * percpu dvfs_update_delay variables. + * + * It should describe the rate/delay at which the governor sends DVFS freq + * update to the hardware in us. + */ +DECLARE_PER_CPU_READ_MOSTLY(u64, dvfs_update_delay); + /* * Verify the fitness of task @p to run on @cpu taking into account the * CPU original capacity and the runtime/deadline ratio of the task. --=20 2.34.1 From nobody Sun Jun 14 04:20:27 2026 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (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 BF291145FE0 for ; Mon, 4 May 2026 02:00:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777860031; cv=none; b=K89VHb4wlVNZAuJUXiVvxamfrE+Jho/C/uk7AnaOYOXFN2GZgqoYT8k00XcVd5Sx1dEaSVYB+R0vhhJaImP9KvIU3Y3AbAWTYKdtvkbYDsjzGxnT36BeQwBa7jVV6oWiLfuwd/FhcTqcFfKiL4Gb8S/omyE5gSSplXuZNnjrLpg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777860031; c=relaxed/simple; bh=2nLzsKYtPFhQH9YPjL0PFapNrdsVRfOd+Hro4eW9RKY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=mbNQHRpYaSwLHaCatN/GCJUESuqacqThGpu70n3JOCdInd+qFIORkowx4dEnFTVgWrFKADqr4+rstbb3pHqd3xQhqspyJkYDI0uR5AFR8/GJbrzbyCj3xjzi3JYKyuMlXl7DkIoGAihouP1aHbfooj872+6sElL8qy9sP4nSpNg= 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.20251104.gappssmtp.com header.i=@layalina-io.20251104.gappssmtp.com header.b=mf6CcL0c; arc=none smtp.client-ip=209.85.128.54 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.20251104.gappssmtp.com header.i=@layalina-io.20251104.gappssmtp.com header.b="mf6CcL0c" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-488a9033b2cso30709835e9.2 for ; Sun, 03 May 2026 19:00:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=layalina-io.20251104.gappssmtp.com; s=20251104; t=1777860027; x=1778464827; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+5cMKXE4HTk3LJQjUYjfql/GlKLvXEff/TpETqEGuMI=; b=mf6CcL0c6UyEiKmPAI0fNKSFnvvJ/Hdpep4K6QeCbQqk3QN34LGy1wuFytR/60vN+0 UY13sM5YJn77on48xK0gc/aOkzi0wfcS82ccBGtEyrHzWEzFGnjgW8+YVd++qD3fiIn2 K/Z3ueuS1oy5sHMBlbHAr96xRDOHwvCwkCRQW6w7bccru3FqO3WqflMRSbPXoAX6fgB0 8fqpke6ZevoIZZnX1dZ7FNr7QpPvL44wpgSoJCHC5AxQ4RtYkWWV9lrJYGrtAc17AxMb /RSA7ex5jRqRHmRf0joVMxYCMyc8hrcBlzg+gBJ9z7BiKEvq6XQm594Ityj7FiCdS/3Y FDDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777860027; x=1778464827; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=+5cMKXE4HTk3LJQjUYjfql/GlKLvXEff/TpETqEGuMI=; b=OipcPFITEVcwL4evdgHoQHn5B4oRW7oFgyn2Y/Py8dLRj5Vw6UO+4r4pQcaR5FLkhj zlijGFkD/SNEtBPw/KavICo6Lx1LR5DcVimXQox8BiwTqmKbn4LcvkogiKKXkHtRhO5O +4gDlgFX8WUIeSecocIA5KceJ0ERrDO89D2cCP30iQ7zWwCl3ofm5Ag6nkVmHOYvJvjk vtY5O2zWV72zagN4mZNjLaDfpvsbF95fQkPB+Bi3XvT59qeWGBX1rcDDeXqTrSHPDWGJ N39RxE0f2fzWprq08W5gPiLWs4xXy/Ukp3d6Li9oBoeGEgvweYqpVXjXTIBgp9jKpzvI USkw== X-Forwarded-Encrypted: i=1; AFNElJ9T87aaf6t49YO24V2/4jpYkSY2XYGg/75/0AZFIGupdXkfPCv1CheZ7HfFGbg6XZ5Fxv7tE2ZbZA8tRCs=@vger.kernel.org X-Gm-Message-State: AOJu0Yy4jmhYRhGIPP4al0Vgk22y0Ea7B2sfq3uJOXsiSY5K23kw3Aam c0VnKSBVDdoNbKm/2ygYqclH2ubwSpYUyuMlpVvuKPP0TLn2Lz5YeiBU+6oSDU8e6WA= X-Gm-Gg: AeBDievu4feQmdTGn2N7/yUAiEHl+99nXq2IAfV58GlRXnsdhbw3zAlDZRhz2YQfi5J 0qxdOYOVWcQTi1RDfX7pIouMzmOO9KToA5M4f3xFYe3ItlE4jQozZ50AERWKmlssORgrmgWYsU9 xdjBnPgxYXsZfoZmiOZfisOSeioHaloxwSTlaO4bBEnsX4UHz3x5wq4l6HTsrSu45yCbNDp3ZFK rNAn29Esy2fQI3wPxPSCcDkncZJfXvvCLTjMJMFHqL+bNLccZBi8WGtPx8U+gXrCJiZ1lSRp79U 96y6T4icrOT6ltJwleW4MnkA08xIlVzwPHT4p2Q47T5l3Xjo6yrRueddghkeZVQXs7dt6hHOlzl ujGzeyUQq2nhUvFrD7SJwiM+x+TL3aeTlg3Hv+5thXaxRImLzxEs6oXDxBEquQqnrhak7wxddZV DWM+ZcCoQX+zcNI7n2mBipfvzGac6Ti/o= X-Received: by 2002:a05:600c:4f91:b0:489:149a:f9e7 with SMTP id 5b1f17b1804b1-48a98674fadmr118963015e9.27.1777860026695; Sun, 03 May 2026 19:00:26 -0700 (PDT) Received: from airbuntu.. ([146.70.179.108]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48a8fee5033sm68064215e9.22.2026.05.03.19.00.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 May 2026 19:00:25 -0700 (PDT) From: Qais Yousef To: Ingo Molnar , Peter Zijlstra , Vincent Guittot , "Rafael J. Wysocki" , Viresh Kumar Cc: Juri Lelli , Steven Rostedt , John Stultz , Dietmar Eggemann , Tim Chen , "Chen, Yu C" , Thomas Gleixner , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, Qais Yousef Subject: [PATCH v2 06/13] sched/fair: Extend util_est to improve rampup time Date: Mon, 4 May 2026 02:59:56 +0100 Message-Id: <20260504020003.71306-7-qyousef@layalina.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260504020003.71306-1-qyousef@layalina.io> References: <20260504020003.71306-1-qyousef@layalina.io> 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: quoted-printable Utilization invariance can cause big delays. When tasks are running, accumulate non-invairiant version of utilization to help tasks to settle down to their new util_avg values faster. Keep track of delta_exec during runnable across activations to help update util_est for a long running task accurately. util_est shoudl still behave the same at enqueue/dequeue. Before this patch the a busy task tamping up would experience the following transitions, running on M1 Mac Mini rampup-6338 util_avg running =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=90 986.0=E2=94=A4 = =E2=96=84=E2=96=84=E2=96=84=E2=96=84=E2=96=84=E2=96=9F=E2=96=80=E2=96=80= =E2=96=80=E2=96=80=E2=94=82 =E2=94=82 =E2= =96=97=E2=96=84=E2=96=84=E2=96=9F=E2=96=80=E2=96=80=E2=96=80=E2=96=98 = =E2=94=82 =E2=94=82 =E2=96=97= =E2=96=84=E2=96=9F=E2=96=80=E2=96=80 =E2=94=82 =E2=94=82 =E2=96=84=E2= =96=9F=E2=96=80=E2=96=80 =E2=94=82 739.5=E2=94=A4 =E2=96=84=E2=96= =9F=E2=96=80=E2=96=98 =E2=94=82 =E2=94=82 =E2=96=97=E2=96=84= =E2=96=9B=E2=96=98 =E2=94=82 =E2=94=82 =E2=96=97=E2=96=9F= =E2=96=80 =E2=94=82 493.0=E2=94=A4 =E2=96=97=E2=96=9B=E2= =96=80 =E2=94=82 =E2=94=82 =E2=96=97=E2=96=84=E2=96= =9B=E2=96=80 =E2=94=82 =E2=94=82 =E2=96=84=E2=96=9F=E2=96=80= =E2=94=82 =E2=94=82 =E2=96=84=E2=96=9B=E2=96=98 = =E2=94=82 246.5=E2=94=A4 =E2=96=97=E2=96=9F=E2=96=80=E2= =96=98 =E2=94=82 =E2=94=82 =E2=96=84=E2=96=9F=E2=96=80=E2=96= =80 =E2=94=82 =E2=94=82 =E2=96=97=E2=96=84=E2=96=84=E2=96=9B=E2= =96=98 =E2=94=82 =E2=94=82 =E2=96=97=E2=96=84=E2=96=84=E2=96=84=E2=96= =9F=E2=96=80 =E2=94=82 0.0=E2=94=A4 =E2=96=97 =E2=96=97=E2=96=84=E2=96=84=E2=96=9F=E2= =96=80=E2=96=80 =E2= =94=82 =E2=94=94=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=AC= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=AC=E2= =94=98 1.700 1.733 1.767 1.800 1.833 1.867 1.900 1.933 1.967 2= .000 =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80 rampup-6338 util_avg running residency (ms) =E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80 0.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 5.5 15.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87 7.9 36.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87 8.0 57.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87 8.0 78.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87 7.9 98.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87 5.0 117.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87 5.0 137.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87 5.0 156.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87 4.0 176.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87 3.0 191.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87 4.0 211.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87 4.0 230.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87 3.0 248.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87 3.0 266.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87 2.0 277.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87 3.0 294.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 2.6 311.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 2.4 327.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87 2.0 340.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87 3.0 358.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87 2.0 371.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87 1.0 377.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87 2.0 389.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87 2.0 401.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87 2.0 413.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87 3.0 431.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87 2.0 442.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87 2.0 456.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87 1.0 =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= Sum Time Running on CPU (ms) =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80 CPU0.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 90.39 CPU4.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 1156.= 93 6338 rampup CPU0.0 Frequency =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=90 2.06=E2=94=A4 =E2=96=9B=E2=96=80=E2=96=80 = =E2=94=82 =E2=94=82 =E2=96=8C = =E2=94=82 =E2=94=82 =E2=96=8C = =E2=94=82 =E2=94=82 =E2=96=8C = =E2=94=82 1.70=E2=94=A4 =E2=96=9B=E2=96=80=E2=96=80=E2=96= =98 =E2=94=82 =E2=94=82 =E2=96=8C = =E2=94=82 =E2=94=82 =E2=96=8C = =E2=94=82 1.33=E2=94=A4 =E2=96=97=E2=96=84=E2=96=84=E2=96=84= =E2=96=8C =E2=94=82 =E2=94=82 =E2=96=90 = =E2=94=82 =E2=94=82 =E2=96=90 = =E2=94=82 =E2=94=82 =E2=96=90 = =E2=94=82 0.97=E2=94=A4 =E2=96=97=E2=96=84=E2=96=84=E2=96=84=E2= =96=9F =E2=94=82 =E2=94=82 =E2=96=90 = =E2=94=82 =E2=94=82 =E2=96=90 = =E2=94=82 =E2=94=82 =E2=96=90 = =E2=94=82 0.60=E2=94=A4 =E2=96=97 =E2=96=97=E2=96=84=E2=96=84=E2=96=84=E2=96= =84=E2=96=84=E2=96=84=E2=96=84=E2=96=84=E2=96=9F = =E2=94=82 =E2=94=94=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=AC=E2=94=98 1.700 1.733 1.767 1.800 1.833 1.867 1.900 1.933 1.967 2= .000 6338 rampup CPU4.0 Frequency =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=90 3.20=E2=94=A4 =E2=96=90= =E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2= =96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96= =80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=94=82 =E2=94=82 =E2=96=90 = =E2=94=82 =E2=94=82 =E2=96=9B=E2= =96=80=E2=96=80 =E2=94=82 =E2=94=82 =E2=96=8C = =E2=94=82 2.78=E2=94=A4 =E2=96=90=E2=96= =80=E2=96=80=E2=96=98 =E2=94=82 =E2=94=82 =E2=96=97=E2=96= =84=E2=96=9F =E2=94=82 =E2=94=82 =E2=96=8C = =E2=94=82 2.35=E2=94=A4 =E2=96=97=E2=96=84= =E2=96=84=E2=96=8C =E2=94=82 =E2=94=82 =E2=96=90 = =E2=94=82 =E2=94=82 =E2=96=84=E2=96=84=E2= =96=9F =E2=94=82 =E2=94=82 =E2=96=8C = =E2=94=82 1.93=E2=94=A4 =E2=96=97=E2=96=84=E2=96= =84=E2=96=8C =E2=94=82 =E2=94=82 =E2=96=90 = =E2=94=82 =E2=94=82 =E2=96=90 = =E2=94=82 =E2=94=82 =E2=96=90 = =E2=94=82 1.50=E2=94=A4 =E2=96=97=E2=96=84=E2=96=84= =E2=96=9F =E2=94=82 =E2=94=94=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=AC=E2=94=98 1.700 1.733 1.767 1.800 1.833 1.867 1.900 1.933 1.967 2= .000 =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80 6338 rampup CPU0.0 Frequency residency (ms) =E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80 0.6 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 37.300000000000004 0.972 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 15.0 1.332 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 15.0 1.704 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= 11.0 2.064 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87 12.1 =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80 6338 rampup CPU4.0 Frequency residency (ms) =E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80 1.5 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87 11.9 1.956 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87 10.0 2.184 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87 10.0 2.388 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87 11.0 2.592 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87 10.0 2.772 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87 10.0 2.988 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87 10.0 3.204 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87 85.3 After the patch the response is improved to rampup frequencies faster and migrate from little quicker rampup-2234 util_avg running =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=90 984=E2=94=A4 = =E2=96=97=E2=96=84=E2=96=84=E2=96=84=E2=96=84=E2=96=84=E2=96=9B=E2=96=80= =E2=96=80=E2=96=80=E2=96=80=E2=94=82 =E2=94=82 =E2= =96=84=E2=96=84=E2=96=9F=E2=96=80=E2=96=80=E2=96=80=E2=96=80 =E2= =94=82 =E2=94=82 =E2=96=84= =E2=96=84=E2=96=9F=E2=96=80=E2=96=80 =E2=94=82 =E2=94=82 =E2=96=84=E2= =96=9F=E2=96=80=E2=96=98 =E2=94=82 738=E2=94=A4 =E2=96=84=E2=96= =9F=E2=96=80=E2=96=98 =E2=94=82 =E2=94=82 =E2=96=97=E2=96=9F= =E2=96=80=E2=96=98 =E2=94=82 =E2=94=82 =E2=96=97=E2=96=9F=E2= =96=80 =E2=94=82 492=E2=94=A4 =E2=96=97=E2=96=9F=E2= =96=80 =E2=94=82 =E2=94=82 =E2=96=97=E2=96=9F=E2=96= =80 =E2=94=82 =E2=94=82 =E2=96=9F=E2=96=80 = =E2=94=82 =E2=94=82 =E2=96=84=E2=96=9B=E2=96=98 = =E2=94=82 246=E2=94=A4 =E2=96=97=E2=96=9F=E2=96=98 = =E2=94=82 =E2=94=82 =E2=96=97=E2=96=9F=E2=96=80 = =E2=94=82 =E2=94=82 =E2=96=97=E2=96=9F=E2=96=80 = =E2=94=82 =E2=94=82 =E2=96=97=E2=96=9F=E2=96=80 = =E2=94=82 0=E2=94=A4 =E2=96=84=E2=96=84=E2=96=84=E2=96=9B=E2= =96=80 =E2=94=82 =E2=94=94=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=AC=E2=94=98 1.700 1.733 1.767 1.800 1.833 1.867 1.900 1.933 1.967 2= .000 =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80 rampup-2234 util_avg running residency (ms) =E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80 0.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 5.6000000000000005 15.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 8.0 39.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87 5.0 61.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87 4.0 85.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 2.0 99.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 3.0 120.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 3.0 144.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 2.0 160.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 2.0 176.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 2.0 192.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 2.0 210.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 2.0 228.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 2.0 246.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 2.0 263.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 2.0 282.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 1.0 291.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 2.0 309.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 2.0 327.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 2.0 344.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 1.0 354.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 2.0 373.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 1.0 382.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 2.0 400.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 1.0 408.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 2.0 425.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 1.0 434.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 2.0 452.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 1.0 2234 rampup CPU1.0 Frequency =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=90 2.06=E2=94=A4 =E2=96=90=E2=96=80 = =E2=94=82 =E2=94=82 =E2=96=90 = =E2=94=82 =E2=94=82 =E2=96=90 = =E2=94=82 =E2=94=82 =E2=96=90 = =E2=94=82 1.70=E2=94=A4 =E2=96=9B=E2=96=80 = =E2=94=82 =E2=94=82 =E2=96=8C = =E2=94=82 =E2=94=82 =E2=96=8C = =E2=94=82 1.33=E2=94=A4 =E2=96=84=E2=96=8C = =E2=94=82 =E2=94=82 =E2=96=8C = =E2=94=82 =E2=94=82 =E2=96=8C = =E2=94=82 =E2=94=82 =E2=96=8C = =E2=94=82 0.97=E2=94=A4 =E2=96=97=E2=96=84=E2=96=8C = =E2=94=82 =E2=94=82 =E2=96=90 = =E2=94=82 =E2=94=82 =E2=96=90 = =E2=94=82 =E2=94=82 =E2=96=90 = =E2=94=82 0.60=E2=94=A4 =E2=96=97=E2=96=84=E2=96=84=E2=96=9F = =E2=94=82 =E2=94=94=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=AC=E2=94=98 1.700 1.733 1.767 1.800 1.833 1.867 1.900 1.933 1.967 2= .000 2234 rampup CPU4.0 Frequency =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=90 3.10=E2=94=A4 = =E2=96=90=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2= =96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=94=82 =E2=94=82 =E2=96=9B=E2= =96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96= =80=E2=96=80=E2=96=80 =E2=94=82 =E2=94=82 =E2=96=8C = =E2=94=82 =E2=94=82 =E2=96=90=E2=96=80= =E2=96=80=E2=96=80=E2=96=80=E2=96=98 =E2=94=82 2.70=E2=94=A4 =E2=96=90 = =E2=94=82 =E2=94=82 =E2=96=90=E2=96=80=E2= =96=80=E2=96=80=E2=96=80 =E2=94=82 =E2=94=82 =E2=96=90 = =E2=94=82 2.30=E2=94=A4 =E2=96=9B=E2=96=80=E2=96= =80 =E2=94=82 =E2=94=82 =E2=96=8C = =E2=94=82 =E2=94=82 =E2=96=90=E2=96=80=E2=96=80= =E2=96=98 =E2=94=82 =E2=94=82 =E2=96=90 = =E2=94=82 1.90=E2=94=A4 =E2=96=90=E2=96=80=E2=96=80 = =E2=94=82 =E2=94=82 =E2=96=90 = =E2=94=82 =E2=94=82 =E2=96=97=E2=96=84=E2=96=9F = =E2=94=82 =E2=94=82 =E2=96=90 = =E2=94=82 1.50=E2=94=A4 =E2=96=97=E2=96=9F = =E2=94=82 =E2=94=94=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=AC=E2=94=98 1.700 1.733 1.767 1.800 1.833 1.867 1.900 1.933 1.967 2= .000 =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= Sum Time Running on CPU (ms) =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80 CPU1.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87 32.53 CPU4.0 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87 540.3 =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80 2234 rampup CPU1.0 Frequency residency (ms) =E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80 0.6 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87 12.1 0.972 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 6.5 1.332 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 3.7 1.704 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 5.5 2.064 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87 4.8 =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80 2234 rampup CPU4.0 Frequency residency (ms) =E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80 1.5 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 4.0 1.728 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87 8.0 1.956 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 9.0 2.184 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 9.0 2.388 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 11.0 2.592 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 16.0 2.772 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87 18.0 2.988 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87 47.0 3.096 =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2= =96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96= =87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87=E2=96=87= =E2=96=87=E2=96=87=E2=96=87 53.4 Signed-off-by: Qais Yousef --- include/linux/sched.h | 1 + kernel/sched/core.c | 1 + kernel/sched/fair.c | 41 ++++++++++++++++++++++++++++++++++------- 3 files changed, 36 insertions(+), 7 deletions(-) diff --git a/include/linux/sched.h b/include/linux/sched.h index 8ec3b6d7d718..b61da16861e7 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -589,6 +589,7 @@ struct sched_entity { /* hole */ =20 u64 exec_start; + u64 delta_exec; u64 sum_exec_runtime; u64 prev_sum_exec_runtime; u64 vruntime; diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 3fbf560203f3..fe14fd4a2d53 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -4391,6 +4391,7 @@ static void __sched_fork(u64 clone_flags, struct task= _struct *p) =20 p->se.on_rq =3D 0; p->se.exec_start =3D 0; + p->se.delta_exec =3D 0; p->se.sum_exec_runtime =3D 0; p->se.prev_sum_exec_runtime =3D 0; p->se.nr_migrations =3D 0; diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 4e1ed3c7f96e..c6363ec5de9d 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -1344,6 +1344,7 @@ static s64 update_se(struct rq *rq, struct sched_enti= ty *se) */ running->se.exec_start =3D now; running->se.sum_exec_runtime +=3D delta_exec; + running->se.delta_exec +=3D delta_exec; =20 trace_sched_stat_runtime(running, delta_exec); account_group_exec_runtime(running, delta_exec); @@ -1362,7 +1363,6 @@ static s64 update_se(struct rq *rq, struct sched_enti= ty *se) __schedstat_set(stats->exec_max, max(delta_exec, stats->exec_max)); } - return delta_exec; } =20 @@ -5099,15 +5099,30 @@ static inline void util_est_update(struct cfs_rq *c= fs_rq, if (!sched_feat(UTIL_EST)) return; =20 + /* Get current estimate of utilization */ + ewma =3D READ_ONCE(p->se.avg.util_est); + /* - * Skip update of task's estimated utilization when the task has not - * yet completed an activation, e.g. being migrated. + * If a task is running, update util_est ignoring utilization + * invariance so that if the task suddenly becomes busy we will rampup + * quickly to settle down to our new util_avg. */ - if (!task_sleep) - return; + if (!task_sleep) { + u64 delta =3D p->se.delta_exec; + unsigned int prev_ewma =3D ewma & ~UTIL_AVG_UNCHANGED; =20 - /* Get current estimate of utilization */ - ewma =3D READ_ONCE(p->se.avg.util_est); + do_div(delta, 1000); + ewma =3D approximate_util_avg(prev_ewma, delta); + /* + * Keep accumulating delta_exec if it is too small to cause + * a change. + */ + if (ewma !=3D prev_ewma) + p->se.delta_exec =3D 0; + goto done; + } else { + p->se.delta_exec =3D 0; + } =20 /* * If the PELT values haven't changed since enqueue time, @@ -5170,6 +5185,14 @@ static inline void util_est_update(struct cfs_rq *cf= s_rq, trace_sched_util_est_se_tp(&p->se); } =20 +static inline void util_est_update_running(struct cfs_rq *cfs_rq, + struct task_struct *p) +{ + util_est_dequeue(cfs_rq, p); + util_est_update(cfs_rq, p, false); + util_est_enqueue(cfs_rq, p); +} + static inline unsigned long get_actual_cpu_capacity(int cpu) { unsigned long capacity =3D arch_scale_cpu_capacity(cpu); @@ -9245,6 +9268,8 @@ pick_next_task_fair(struct rq *rq, struct task_struct= *prev, struct rq_flags *rf simple: #endif /* CONFIG_FAIR_GROUP_SCHED */ put_prev_set_next_task(rq, prev, p); + if (prev->on_rq) + util_est_update_running(&rq->cfs, prev); return p; =20 idle: @@ -13670,6 +13695,8 @@ static void task_tick_fair(struct rq *rq, struct ta= sk_struct *curr, int queued) entity_tick(cfs_rq, se, queued); } =20 + util_est_update_running(&rq->cfs, curr); + if (queued) { if (!need_resched()) hrtick_start_fair(rq, curr); --=20 2.34.1 From nobody Sun Jun 14 04:20:27 2026 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (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 8108C1DF261 for ; Mon, 4 May 2026 02:00:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777860032; cv=none; b=Tz6Isn5uzwz0h7i2blS1JPG0ORiWTRnuErYORn1XXqUvtNMz5lmfqD2gFZivGJUyIo+4yUU8qhEOMQXhezmtEcGRgQW8L8R+rr/CqMMOmPuI+7ROi1wsKITTUqA3DrqA+YE/wfKcb/2QR7Mkz9uZfYbEIq9OTMPVQjvBovOuIQY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777860032; c=relaxed/simple; bh=cy+j8MjibedIQhzLoAyze5sRnjwPgv9zPirmIRVcZHs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ot0xNhf5nVIrfb9KUVYQeDRIQJPTnk+cOiHEPNrcTsdjb4o8V2y06AxiUk30PwsqZDSVm6Vc/43G8s1uTizfFLm5C+ngusuJCMfP+56XvzicZO8l0sC1NX7HrslsRw1K1Zy17t/Vin55PcYNqmXCIcxdCuJNqYvpS7YWe42Xzbw= 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.20251104.gappssmtp.com header.i=@layalina-io.20251104.gappssmtp.com header.b=jcGdBuXs; arc=none smtp.client-ip=209.85.128.46 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.20251104.gappssmtp.com header.i=@layalina-io.20251104.gappssmtp.com header.b="jcGdBuXs" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-4891cd41959so28745325e9.3 for ; Sun, 03 May 2026 19:00:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=layalina-io.20251104.gappssmtp.com; s=20251104; t=1777860029; x=1778464829; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=O4EWfVx8oSxQ1texlxFkhY6RzzwUwZhmXsmzRm5cdpY=; b=jcGdBuXsp9SuXwDOyIky7sIacjKO5wGQ/j/lwIw93PsQUsZXQzONXUHSJC5gTXmSSq sidD5aKeJlCpN92f4gxAuhHlySh7Y6siU5sEVmcdxZBV0vLAf+vUK5a8soo8x5j0ge+n sITaoiwNUoPifxVjNoXzthagJ4sTjcfCSn0FOUqoEz0EjQtjliILUAPzMv+8GHzgkjNh JhH5wMsUImrr08ZvPO0OofC3lBnfinE6kEZ82sMXpKR4+CloB6lo0YaPrbv2tL4/W7kA Ys+oKHqGoIgv9ld7wYvZIYqnIFmNq0+W5QdE830XopfOy6uxz9VwDVhUc1ZO0Yzie0SE HpYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777860029; x=1778464829; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=O4EWfVx8oSxQ1texlxFkhY6RzzwUwZhmXsmzRm5cdpY=; b=TlEXW/OaL8iiY3QF3Y/bu7Yjdra7GWetMHpqngct/3IIxC1LI7jsY1D5DRibQeA8hg 2WI4ME7mJ1ViPLL9LuvHht999/aC7qWCtdTyRpT9h3ZEtLyue/Pte4AUR+bNw4U1sHcW WWzHZRADQ4f0uOv9yboMPBC4YVbNP4GQ/Oz7Ioqav9QIM95+F2FBCRVpcWs+u5cs026+ 2hIqvXDFj2m5+pDt88Tz8Lsy9WxYKO5uDAdv7Y93fF0GqCrsOsmboJMl2WjPzYumS8YI 0PlabrHL6mS8oSQZwK8bpXqwjfAHsVjO+vH59PKrPYHd/vM2WoBMU8n7oyWfChzz/fOU VR/w== X-Forwarded-Encrypted: i=1; AFNElJ+XULZEvqfCiUCHoKBfrGOm8hw60gyiR7Ec18LRVNgI7fbINsDcEtBgNuDfBO8SQhwUzL4oYq7YHjGZCY8=@vger.kernel.org X-Gm-Message-State: AOJu0YyKbjohPiBWgcrvdgrHEaUNhOCuaONR72b1LnUkfEMCQcHRFB3g nWc9kXh1w3/vfuXMVzokgqmZa5DpkBMbhS5XRFcY2Hl5QHx8fGE3umNV5d49MAzB9+o= X-Gm-Gg: AeBDietmKlfjKSxPxTPitUCybQpk539EdF/l/IpYshgKeZO0ZP7PbEKokQICh8QTBMG wbm2FO++uh5/r41ZKUNMFRnoJX3FKpHsIb9vA4WRqsNZ4m517YY2WSiVQCgrCkE0CCOtR/yu3PS tzLDvz3APGlf70PJkaNfOU3njpAk8E34uynAs5LbYNzIE8X7hDgC30jAxsoLrQRW5FijRvG/xR1 kd82C7USrr+EVmMYrFWZEKEGxzWjSuEHoCYrINUdc8BSuxETlEXVdNdv0bshqasIQVfJK0tajns Z+GnRpa+uLbVamcmScfBIPgxy7gt8sOVkgkWmIKn/RbGv1F3aVSjLXt4yyEVQXiYXw/t3WB+46y WmMmsxeAqctgWaYq8QQ+I2d6amBi9r2nFSJBeEEG/b9LiwPgbwf27hlS1W3ArnXSUzaUxj4j48c qE39jWzOOEyempEmFkGpb53MG2jEDz1iA= X-Received: by 2002:a05:600d:16:b0:48a:563c:c8e2 with SMTP id 5b1f17b1804b1-48a9852d292mr93129285e9.3.1777860028909; Sun, 03 May 2026 19:00:28 -0700 (PDT) Received: from airbuntu.. ([146.70.179.108]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48a8fee5033sm68064215e9.22.2026.05.03.19.00.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 May 2026 19:00:28 -0700 (PDT) From: Qais Yousef To: Ingo Molnar , Peter Zijlstra , Vincent Guittot , "Rafael J. Wysocki" , Viresh Kumar Cc: Juri Lelli , Steven Rostedt , John Stultz , Dietmar Eggemann , Tim Chen , "Chen, Yu C" , Thomas Gleixner , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, Qais Yousef Subject: [PATCH v2 07/13] sched/fair: util_est: Take into account periodic tasks Date: Mon, 4 May 2026 02:59:57 +0100 Message-Id: <20260504020003.71306-8-qyousef@layalina.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260504020003.71306-1-qyousef@layalina.io> References: <20260504020003.71306-1-qyousef@layalina.io> 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 Content-Type: text/plain; charset="utf-8" The new faster rampup is great for performance. But terrible for power. We want the faster rampup to be only applied for tasks that are transitioning from one periodic/steady state to another periodic/steady state. But if they are stably periodic, then the faster rampup doesn't make sense as util_avg describes their computational demand accurately and we can rely on that to make accurate decision. And preserve the power savings from being exact with the resources we give to this task (ie: smaller DVFS headroom). We detect periodic tasks based on util_avg across util_est_update() calls. If it is rising, then the task is going through a transition. We rely on util_avg being stable for periodic tasks with very little variations around one stable point. Signed-off-by: Qais Yousef --- include/linux/sched.h | 2 ++ kernel/sched/core.c | 2 ++ kernel/sched/fair.c | 35 ++++++++++++++++++++++++----------- 3 files changed, 28 insertions(+), 11 deletions(-) diff --git a/include/linux/sched.h b/include/linux/sched.h index b61da16861e7..70517497e80b 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -907,6 +907,8 @@ struct task_struct { struct uclamp_se uclamp[UCLAMP_CNT]; #endif =20 + unsigned long util_avg_dequeued; + struct sched_statistics stats; =20 #ifdef CONFIG_PREEMPT_NOTIFIERS diff --git a/kernel/sched/core.c b/kernel/sched/core.c index fe14fd4a2d53..82189bdc85b7 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -4409,6 +4409,8 @@ static void __sched_fork(u64 clone_flags, struct task= _struct *p) #endif #endif =20 + p->util_avg_dequeued =3D 0; + #ifdef CONFIG_SCHEDSTATS /* Even if schedstat is disabled, there should not be garbage */ memset(&p->stats, 0, sizeof(p->stats)); diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index c6363ec5de9d..d9729da3901a 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -5041,6 +5041,11 @@ static inline unsigned long task_util(struct task_st= ruct *p) return READ_ONCE(p->se.avg.util_avg); } =20 +static inline unsigned long task_util_dequeued(struct task_struct *p) +{ + return READ_ONCE(p->util_avg_dequeued); +} + static inline unsigned long task_runnable(struct task_struct *p) { return READ_ONCE(p->se.avg.runnable_avg); @@ -5108,18 +5113,22 @@ static inline void util_est_update(struct cfs_rq *c= fs_rq, * quickly to settle down to our new util_avg. */ if (!task_sleep) { - u64 delta =3D p->se.delta_exec; - unsigned int prev_ewma =3D ewma & ~UTIL_AVG_UNCHANGED; + if (task_util(p) > task_util_dequeued(p) && + task_util(p) - task_util_dequeued(p) > UTIL_EST_MARGIN) { + u64 delta =3D p->se.delta_exec; + unsigned int prev_ewma =3D ewma & ~UTIL_AVG_UNCHANGED; =20 - do_div(delta, 1000); - ewma =3D approximate_util_avg(prev_ewma, delta); - /* - * Keep accumulating delta_exec if it is too small to cause - * a change. - */ - if (ewma !=3D prev_ewma) - p->se.delta_exec =3D 0; - goto done; + do_div(delta, 1000); + ewma =3D approximate_util_avg(prev_ewma, delta); + /* + * Keep accumulating delta_exec if it is too small to cause + * a change. + */ + if (ewma !=3D prev_ewma) + p->se.delta_exec =3D 0; + goto done_running; + } + return; } else { p->se.delta_exec =3D 0; } @@ -5134,6 +5143,9 @@ static inline void util_est_update(struct cfs_rq *cfs= _rq, /* Get utilization at dequeue */ dequeued =3D task_util(p); =20 + if (!task_on_rq_migrating(p)) + p->util_avg_dequeued =3D dequeued; + /* * Reset EWMA on utilization increases, the moving average is used only * to smooth utilization decreases. @@ -5180,6 +5192,7 @@ static inline void util_est_update(struct cfs_rq *cfs= _rq, ewma >>=3D UTIL_EST_WEIGHT_SHIFT; done: ewma |=3D UTIL_AVG_UNCHANGED; +done_running: WRITE_ONCE(p->se.avg.util_est, ewma); =20 trace_sched_util_est_se_tp(&p->se); --=20 2.34.1 From nobody Sun Jun 14 04:20:27 2026 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (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 98C291F5825 for ; Mon, 4 May 2026 02:00:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777860035; cv=none; b=lABeAvLEwvVpUrWnUyR2E/ffFfVwKAvYInHPYtY4DqqcQYtLGpRTpMlJCq7s2pDdyXuE2i0ihBU1WHDYzmvJsikvXrW01478Mp3jdLW/eoYH9FGzE68BKC5rCFnZz6kzEoMhDV6KuLAviz413H0RSYVQGOJ/p27Ce/BuMzRr/30= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777860035; c=relaxed/simple; bh=hxv28qxiMM010BdFmcLfqx6u+OZbFpQDMqKxGnS6oKY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=o+Bblu2Wsbj8bvxth2P47zGupdZniO0JzCryyL0daxg3ZaoDENk0JmBxNTUm5EeUEccAdUAgKxd5zUHdk3woNXsbDP+7mZTMoMAAj7Udq1kfcWIuucANeNuwY9v4iQDBoyUWQyAIA+fJ1AbXF4B976uU34XzI8MtuccylZH0gy4= 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.20251104.gappssmtp.com header.i=@layalina-io.20251104.gappssmtp.com header.b=zu9Unrok; arc=none smtp.client-ip=209.85.128.54 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.20251104.gappssmtp.com header.i=@layalina-io.20251104.gappssmtp.com header.b="zu9Unrok" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-48a3e9862f0so22564665e9.1 for ; Sun, 03 May 2026 19:00:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=layalina-io.20251104.gappssmtp.com; s=20251104; t=1777860032; x=1778464832; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=USUCVKbkv4JKoHCWAtwT6K9NM/4+6hSZ3/jRvhM/sQw=; b=zu9Unrok4YQN+miG+9dvnNLc0KbBr/6abE6Q/T9dtib9B6WknldmHmJe2GVcN5duGe IE/1T4wqboJbHpzpmLHGMNbnPAQ7JK8NmTL2Oxq4EsiHYIieBNCLahSdamHFkb3aCeek uxKKjIMr0HKOhJO03vhAEgXMy7DolujC8XlilEZoAcTn6EzdjJGeqTTjg+OO62KRdkPd bpAv9x0O0lQLhwVszj+NLUbeB6BvsU4oZRBVyc/cFuXcxc2gBTDVcQoezGgsIm6RObhO Opf1KSRPSpAvkXNMNPo7MJhU0Idb26ZPEdV8zitz4z5cZPuiwEqicC+HedCXwfUmsxhU ecHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777860032; x=1778464832; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=USUCVKbkv4JKoHCWAtwT6K9NM/4+6hSZ3/jRvhM/sQw=; b=sbLxv+NodJdSZnUma+SXa7xFSZjDkgT+x1S13DLss8K5TxirRwfGNFQIx+hTVzBfLm QKA4QLui9UpCtUnYj2wWqoojExEI5myOiMTNCj41YtIQGEsOsze+UcVQUi2tEJwZ9tBH uMslP0BzE7qUvKhOcG0TsyJ//oqpS6dVJ3Zu65+xbFI3y8igQMtNzDcVCqH5/hVjtWON 4Oxi/xZHYhpituvKxU01uS0YH3My10ZM4En5jhFYZh4/8xxhpDZVDaBdIuI1Fv0O/D11 ZRTC7aD9AaKwySy3T6HvVLOqjDF0EkbaK3tqVRWEElFUtqcdFJXwPeDlDRQgIrlpS2F4 wrKw== X-Forwarded-Encrypted: i=1; AFNElJ/zSzaZA3/HMx6VWR+GJxmloMTjhHDP8AkFoKYJ5gD6ojkyguuUozB/LDK1d9BoObtXTgLpoKbGwQb1SpM=@vger.kernel.org X-Gm-Message-State: AOJu0YxFwqmXbG+WJ0fhsA07HenBfV/V98ZRoFDNJVps949DlEtDHGRX ghYOVgZzOVbZ9K3KavKtrIHttUuRq81/E8uebTlHUmaNuQenGyFAmgviZ4GB6OcCLzY= X-Gm-Gg: AeBDieutYuSaquU19Sx3hFdIriTiKN3mJCiS1JmJs3V3CXvmfUWoE057be+iEZR7zNL QxLYp/JSMn9HbY6hOm6lZN7DMO0NFo3hG1i7pF5pekPyd44TAYRepRv+n4FDco9u9R7CFwJ/9xb OsyYx9L8dJS3nybW23eEu8mze18DgAXzY3O7h8h4z7OoiSGFJiwoE52pj7hByhtpZf2EykvWr1o t5FypGf8x8cdKUV3r7Sl0S4b5iW6up52r3NEmWmLWhrApctNAURp0adrnysL1rg3aGmgwWeal92 ocVslMk9UzQukm1lLhjkstRN48Qzw3qbq3sWOeT+hooJfmqwc5w+NOa285LXIPLAkzYT1ZZK3O+ f/25tneGuFDZvKieLmqOoJa/1V5DF9nND5b35MIZ76gnmlLsH8RKeArtZPUfKp+1ppZ8uuqkEMc 5M5sr7z0jrjZlBV9VyZY+ncZJt9A85r9HDBQNOj/9NaQ== X-Received: by 2002:a05:600c:a410:b0:48a:761:5816 with SMTP id 5b1f17b1804b1-48a970c1bc1mr97344565e9.8.1777860032194; Sun, 03 May 2026 19:00:32 -0700 (PDT) Received: from airbuntu.. ([146.70.179.108]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48a8fee5033sm68064215e9.22.2026.05.03.19.00.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 May 2026 19:00:30 -0700 (PDT) From: Qais Yousef To: Ingo Molnar , Peter Zijlstra , Vincent Guittot , "Rafael J. Wysocki" , Viresh Kumar Cc: Juri Lelli , Steven Rostedt , John Stultz , Dietmar Eggemann , Tim Chen , "Chen, Yu C" , Thomas Gleixner , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, Qais Yousef Subject: [PATCH v2 RFC 08/13] sched/qos: Add a new sched-qos interface Date: Mon, 4 May 2026 02:59:58 +0100 Message-Id: <20260504020003.71306-9-qyousef@layalina.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260504020003.71306-1-qyousef@layalina.io> References: <20260504020003.71306-1-qyousef@layalina.io> 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 Content-Type: text/plain; charset="utf-8" Provide a generic and extensible interface to describe arbitrary QoS tags to tell the kernel about specific behavior that is doesn't fall into the existing sched_attr. The interface is broken into three parts: * Type * Value * Cookie Type is an enum that should be give us enough space to extend (and deprecate) comfortably. Value is a signed 64bit number to allow for arbitrary high values. Cookie is to help group tasks selectively so that some QoS might want to operate on tasks per groups. A value of 0 indicates system wide. There are two anticipated users being discussed on the list. 1. Per task rampup multiplier to allow controlling how fast util rises, and by implication it can migrate between cores on HMP systems and cause freqs to rise with schedutil. 2. Tag a group of task that are memory dependent for Cache Aware Scheduling. The interface is anticipated to be provisioned to apps via utilities and libraries. schedqos [1] is an example how such interface can be used to provide higher level QoS abstraction to describe workloads without baking it into the binaries, and by implication without worrying about potential abuse. The interface requires privileged access since QoS is considered scarce resource and requires admin control to ensure it is set properly. Again that admin control is anticipated to be the schedqos utility service. QoS is treated as a scarce resource and the intention is for the a syscall to be done for each individual QoS tag. QoS tags are not inherited on fork by default too for the same reason. A reasonable point of debate is whether to make the sched_qos an array of 3 or 5 value to avoid potential bottleneck if this grows large and users do end up hitting a bottleneck of having to issue too many syscalls to set all QoS. Being limited as it is now helps enforce intentionality and scarcity of tagging. [1] https://github.com/qais-yousef/schedqos Signed-off-by: Qais Yousef --- Documentation/scheduler/index.rst | 1 + Documentation/scheduler/sched-qos.rst | 44 ++++++++++++++++++ include/uapi/linux/sched.h | 4 ++ include/uapi/linux/sched/types.h | 46 +++++++++++++++++++ kernel/sched/syscalls.c | 10 ++++ .../trace/beauty/include/uapi/linux/sched.h | 4 ++ 6 files changed, 109 insertions(+) create mode 100644 Documentation/scheduler/sched-qos.rst diff --git a/Documentation/scheduler/index.rst b/Documentation/scheduler/in= dex.rst index 17ce8d76befc..6652f18e553b 100644 --- a/Documentation/scheduler/index.rst +++ b/Documentation/scheduler/index.rst @@ -23,5 +23,6 @@ Scheduler sched-stats sched-ext sched-debug + sched-qos =20 text_files diff --git a/Documentation/scheduler/sched-qos.rst b/Documentation/schedule= r/sched-qos.rst new file mode 100644 index 000000000000..0911261cb124 --- /dev/null +++ b/Documentation/scheduler/sched-qos.rst @@ -0,0 +1,44 @@ +.. SPDX-License-Identifier: GPL-2.0 + +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +Scheduler QoS +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +1. Introduction +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +Different workloads have different scheduling requirements to operate +optimally. The same applies to tasks within the same workload. + +To enable smarter usage of system resources and to cater for the conflicti= ng +demands of various tasks, Scheduler QoS provides a mechanism to provide mo= re +information about those demands so that scheduler can do best-effort to +honour them. + + @sched_qos_type what QoS hint to apply + @sched_qos_value value of the QoS hint + @sched_qos_cookie magic cookie to tag a group of tasks for which the QoS + applies. If 0, the hint will apply globally system + wide. If not 0, the hint will be relative to tasks that + has the same cookie value only. + +QoS hints are set once and not inherited by children by design. The +rationale is that each task has its individual characteristics and it is +encouraged to describe each of these separately. Also since system resourc= es +are finite, there's a limit to what can be done to honour these requests +before reaching a tipping point where there are too many requests for +a particular QoS that is impossible to service for all of them at once and +some will start to lose out. For example if 10 tasks require better wake +up latencies on a 4 CPUs SMP system, then if they all wake up at once, only +4 can perceive the hint honoured and the rest will have to wait. Inheritan= ce +can lead these 10 to become a 100 or a 1000 more easily, and then the QoS +hint will lose its meaning and effectiveness rapidly. The chances of 10 +tasks waking up at the same time is lower than a 100 and lower than a 1000. + +To set multiple QoS hints, a syscall is required for each. This is a +trade-off to reduce the churn on extending the interface as the hope for +this to evolve as workloads and hardware get more sophisticated and the +need for extension will arise; and when this happen the task should be +simpler to add the kernel extension and allow userspace to use readily by +setting the newly added flag without having to update the whole of +sched_attr. diff --git a/include/uapi/linux/sched.h b/include/uapi/linux/sched.h index 52b69ce89368..3cdba44bc1cb 100644 --- a/include/uapi/linux/sched.h +++ b/include/uapi/linux/sched.h @@ -102,6 +102,9 @@ struct clone_args { __aligned_u64 set_tid_size; __aligned_u64 cgroup; }; + +enum sched_qos_type { +}; #endif =20 #define CLONE_ARGS_SIZE_VER0 64 /* sizeof first published struct */ @@ -133,6 +136,7 @@ struct clone_args { #define SCHED_FLAG_KEEP_PARAMS 0x10 #define SCHED_FLAG_UTIL_CLAMP_MIN 0x20 #define SCHED_FLAG_UTIL_CLAMP_MAX 0x40 +#define SCHED_FLAG_QOS 0x80 =20 #define SCHED_FLAG_KEEP_ALL (SCHED_FLAG_KEEP_POLICY | \ SCHED_FLAG_KEEP_PARAMS) diff --git a/include/uapi/linux/sched/types.h b/include/uapi/linux/sched/ty= pes.h index bf6e9ae031c1..b65da4938f43 100644 --- a/include/uapi/linux/sched/types.h +++ b/include/uapi/linux/sched/types.h @@ -94,6 +94,48 @@ * scheduled on a CPU with no more capacity than the specified value. * * A task utilization boundary can be reset by setting the attribute to -1. + * + * Scheduler QoS + * =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + * + * Different workloads have different scheduling requirements to operate + * optimally. The same applies to tasks within the same workload. + * + * To enable smarter usage of system resources and to cater for the confli= cting + * demands of various tasks, Scheduler QoS provides a mechanism to provide= more + * information about those demands so that scheduler can do best-effort to + * honour them. + * + * @sched_qos_type what QoS hint to apply + * @sched_qos_value value of the QoS hint + * @sched_qos_cookie magic cookie to tag a group of tasks for which the Q= oS + * applies. If 0, the hint will apply globally system + * wide. If not 0, the hint will be relative to tasks that + * has the same cookie value only. + * + * QoS hints are set once and not inherited by children by design. The + * rationale is that each task has its individual characteristics and it is + * encouraged to describe each of these separately. Also since system reso= urces + * are finite, there's a limit to what can be done to honour these requests + * before reaching a tipping point where there are too many requests for + * a particular QoS that is impossible to service for all of them at once = and + * some will start to lose out. For example if 10 tasks require better wake + * up latencies on a 4 CPUs SMP system, then if they all wake up at once, = only + * 4 can perceive the hint honoured and the rest will have to wait. Inheri= tance + * can lead these 10 to become a 100 or a 1000 more easily, and then the Q= oS + * hint will lose its meaning and effectiveness rapidly. The chances of 10 + * tasks waking up at the same time is lower than a 100 and lower than a 1= 000. + * + * To set multiple QoS hints, a syscall is required for each. This is a + * trade-off to reduce the churn on extending the interface as the hope for + * this to evolve as workloads and hardware get more sophisticated and the + * need for extension will arise; and when this happen the task should be + * simpler to add the kernel extension and allow userspace to use readily = by + * setting the newly added flag without having to update the whole of + * sched_attr. + * + * Details about the available QoS hints can be found in: + * Documentation/scheduler/sched-qos.rst */ struct sched_attr { __u32 size; @@ -116,6 +158,10 @@ struct sched_attr { __u32 sched_util_min; __u32 sched_util_max; =20 + __u32 sched_qos_type; + __s64 sched_qos_value; + __u32 sched_qos_cookie; + }; =20 #endif /* _UAPI_LINUX_SCHED_TYPES_H */ diff --git a/kernel/sched/syscalls.c b/kernel/sched/syscalls.c index b215b0ead9a6..88feedd2f7c9 100644 --- a/kernel/sched/syscalls.c +++ b/kernel/sched/syscalls.c @@ -481,6 +481,13 @@ static int user_check_sched_setscheduler(struct task_s= truct *p, if (p->sched_reset_on_fork && !reset_on_fork) goto req_priv; =20 + /* + * Normal users can't set QoS on their own, must go via admin + * controlled service + */ + if (attr->sched_flags & SCHED_FLAG_QOS) + goto req_priv; + return 0; =20 req_priv: @@ -552,6 +559,9 @@ int __sched_setscheduler(struct task_struct *p, return retval; } =20 + if (attr->sched_flags & SCHED_FLAG_QOS) + return -EOPNOTSUPP; + /* * SCHED_DEADLINE bandwidth accounting relies on stable cpusets * information. diff --git a/tools/perf/trace/beauty/include/uapi/linux/sched.h b/tools/per= f/trace/beauty/include/uapi/linux/sched.h index 359a14cc76a4..4ff525928430 100644 --- a/tools/perf/trace/beauty/include/uapi/linux/sched.h +++ b/tools/perf/trace/beauty/include/uapi/linux/sched.h @@ -102,6 +102,9 @@ struct clone_args { __aligned_u64 set_tid_size; __aligned_u64 cgroup; }; + +enum sched_qos_type { +}; #endif =20 #define CLONE_ARGS_SIZE_VER0 64 /* sizeof first published struct */ @@ -133,6 +136,7 @@ struct clone_args { #define SCHED_FLAG_KEEP_PARAMS 0x10 #define SCHED_FLAG_UTIL_CLAMP_MIN 0x20 #define SCHED_FLAG_UTIL_CLAMP_MAX 0x40 +#define SCHED_FLAG_QOS 0x80 =20 #define SCHED_FLAG_KEEP_ALL (SCHED_FLAG_KEEP_POLICY | \ SCHED_FLAG_KEEP_PARAMS) --=20 2.34.1 From nobody Sun Jun 14 04:20:27 2026 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (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 BEF981EB5FD for ; Mon, 4 May 2026 02:00:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777860038; cv=none; b=VO0VK4VG/ROomr7eIz+HfJOUHVwP0hzN7mgkG+EiIfQi+HyNXyc3NgfXTn6mu5v3DAAFibJGN3QTv0JaARFL9BLbKrSE+80O+OJ1vdJgLtnxix+hVbDMgP4XBznvQSI9lY/4As47LPxin7EMrBY9Bgnok7qFxyuw1K0780cScw8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777860038; c=relaxed/simple; bh=wGdqoMCD5vTrbqsOUB8F7aBwoPsyejH6Chsf2+bq9wM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=UidFWmj8hBytL5CpMLgPWfij6AgUnHSdkV0v1b1l1smM3vpZtIsgGD0yWH3qZkej0Wrr620t6jbQUykZXv5/e5vZu+ZUM29Ufyz0A3qxII7WLYF26cQR6Z/zlyzq+15pHENjUgkfWARX7EFRLm7HRAREYynZe++hq81pdBypjDI= 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.20251104.gappssmtp.com header.i=@layalina-io.20251104.gappssmtp.com header.b=j2tDzcKE; arc=none smtp.client-ip=209.85.128.41 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.20251104.gappssmtp.com header.i=@layalina-io.20251104.gappssmtp.com header.b="j2tDzcKE" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-488d2079582so38697645e9.2 for ; Sun, 03 May 2026 19:00:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=layalina-io.20251104.gappssmtp.com; s=20251104; t=1777860035; x=1778464835; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=hZ4hUF0n3D9SeY8kArGM+n8pM6V04xy5DPkrbpzYAFs=; b=j2tDzcKEd4qXcved1R5PyKlafIv7KeOT+NGROurXmoZ6M0vXHAZ7p5WjSszAmwAQOq Ph0t8Nrt6v5QBRmb15xIetAQo+fosUZ/vyl8Sw2XYXNcPzBZjL59STKhoxAh3Bu0lrRq 9DgGAqpcuG3muZ3CuauACsa+z6p95OCYTn8w99a3tK3MdmtbMXLCmaL7o51m9n+SD260 ARhNz75iSSha2YQmtHD+Lsg6UWlVMhtTvjFOnW5fn2firVOSExY2TogNf+OaGPrJmt0O aHima//XBgxBrnH3U5IIqMZ2HiU2oOB9Td4S0n3ZL1NjVxOpzPhyi1Kmt/bxJfagjYi9 6miw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777860035; x=1778464835; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=hZ4hUF0n3D9SeY8kArGM+n8pM6V04xy5DPkrbpzYAFs=; b=LPLXL/+TeepM+wAfj1O4oKWhNRGMtdxNFMePSmjVqgzIUOdzvue9nK7HUzYP3PSKS/ k9jHnXsJ8hwIwCcFjNbKgwBTimAwjXE76pGQXWvSEpJEiVMrG8OKg7afOyYX0ohVeDg8 28dyciByh/005m2IUUJSU4Fq2973ycWqfa8i+IGObqgjaJDuoXBxkHt0NvWZ1Hpe20Oq HMkWOBRVoxvHNwb+ZhWwfmXsBP8NmHGCw8dOeg5qFpRSvGAm6J5juWDh4amuHHthK9tU 4cSR4fhlSSl6F1+MDX/JJWQ9kJWhfNiip1Ai+iScY/yXepTOl8PYuXAIYExD06GUcSAX PV3w== X-Forwarded-Encrypted: i=1; AFNElJ9drQrUNfEIZQDUJpUOivT3IUc5NyvnDKRXU4hhc2EVqVX8sXnY0LircUB5EnoqbI7RiP179lQeMwNriMo=@vger.kernel.org X-Gm-Message-State: AOJu0Yw79GKBLRZok/IoFvMNJSQFw5sAr2bxKJNWXO1RBnOfaVB7ZzQp OuDAyZIVULLLA1SPWmte+J4Lhf0BjKJjZDJJcG4I1key2QVMy209r2n4VozkTq8zN5s= X-Gm-Gg: AeBDiesdgAswj301BCdNM7Ek8yEMKajyX9hPEISk6IKXMiS38bkHyGuwZFW057UQI+W rqq1QDDoR+jJ9r3NysqvR1vEEfmBDXsmaL47ztFtkZ3ERSPFhVSv4zj9qQHI8P/SoIx58Pu5dRc cIooycokTcg1hoi3t4yL+FbOMEzxo8HqbPQfugFoOQaqrgfmsNXIA2WpvFIcBAsArJ33MbjcUpl weiBopNB0oFotYnXS/ayvJh2TvAn1lOf36EON7Y60y4iYAhE1omHHFdfthF/LuFEG1zHR2eU1KQ 8csu+quaMO6hGSRdwKt+bviww+2oDxTJ8BWpwJnRHINAN9sxEMTueFSeH5CIIYhtZDXsVawuDiM tvCprPzlZgGJWQjtpYN3FsmPR4sAmPnG1bA2Y+eBqwEIDZ7IFMlXGfo95LR1J4Nskf5ZxxTn07E v8Ukb1O1ynarAMD9ayRsJt/aNH4ruBkFsl6q7dUABviw== X-Received: by 2002:a05:600c:859a:b0:48a:525b:e157 with SMTP id 5b1f17b1804b1-48a9865f870mr86414375e9.13.1777860035117; Sun, 03 May 2026 19:00:35 -0700 (PDT) Received: from airbuntu.. ([146.70.179.108]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48a8fee5033sm68064215e9.22.2026.05.03.19.00.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 May 2026 19:00:34 -0700 (PDT) From: Qais Yousef To: Ingo Molnar , Peter Zijlstra , Vincent Guittot , "Rafael J. Wysocki" , Viresh Kumar Cc: Juri Lelli , Steven Rostedt , John Stultz , Dietmar Eggemann , Tim Chen , "Chen, Yu C" , Thomas Gleixner , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, Qais Yousef Subject: [PATCH v2 09/13] sched/qos: Add rampup multiplier QoS Date: Mon, 4 May 2026 02:59:59 +0100 Message-Id: <20260504020003.71306-10-qyousef@layalina.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260504020003.71306-1-qyousef@layalina.io> References: <20260504020003.71306-1-qyousef@layalina.io> 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 Content-Type: text/plain; charset="utf-8" Bursty tasks are hard to predict. To use resources efficiently, the system would like to be exact as much as possible. But this poses a challenge for these bursty tasks that need to get access to more resources quickly. The new SCHED_QOS_RAMPUP_MULTIPLIER allows userspace to do that. As the name implies, it only helps them to transition to a higher performance state when they get _busier_. That is perfectly periodic tasks by definition are not going through a transition and will run at a constant performance level. It is the tasks that need to transition from one periodic state to another periodic state that is at a higher level that this rampup_multiplier will help with. It also slows down the ewma decay of util_est which should help those bursty tasks to keep their faster rampup. This should work complimentary with uclamp. uclamp tells the system about min and max perf requirements which can be applied immediately. rampup_multiplier is about reactiveness to change in behavior; specifically when a task gets a sudden burst of work and gets busier. In practice this is found to be a much better control than uclamp_min as it is relative parameter and doesn't require absolute description. It allows the task to go through the motion faster without knowing exactly how busy it can get at any particular point of time. The intention is for this rampup multiplier to be applied only during a burst. It has no effect on perfectly periodic tasks. Signed-off-by: Qais Yousef --- Documentation/scheduler/sched-qos.rst | 22 +++++++++ include/linux/sched.h | 7 +++ include/uapi/linux/sched.h | 6 ++- kernel/sched/core.c | 66 +++++++++++++++++++++++++++ kernel/sched/debug.c | 1 + kernel/sched/fair.c | 6 ++- kernel/sched/syscalls.c | 55 +++++++++++++++++++++- 7 files changed, 158 insertions(+), 5 deletions(-) diff --git a/Documentation/scheduler/sched-qos.rst b/Documentation/schedule= r/sched-qos.rst index 0911261cb124..f68856f23b6b 100644 --- a/Documentation/scheduler/sched-qos.rst +++ b/Documentation/scheduler/sched-qos.rst @@ -42,3 +42,25 @@ need for extension will arise; and when this happen the = task should be simpler to add the kernel extension and allow userspace to use readily by setting the newly added flag without having to update the whole of sched_attr. + +2. QoS Tags +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +SCHED_QOS_RAMPUP_MULTIPLIER +--------------------------- + +Controls how fast util signal rises. Affects frequency selection when sche= dutil +is in use. And affects how fast tasks migrate between clusters on HMP syst= ems. + +It affects bursty tasks only. Perfectly periodic tasks are well described = by +util_avg and the rampup multiplier will have no effect on them. + +When set to 0, util_est will be disabled to help further with power saving. +This behavior can be controlled via UTIL_EST_RAMPUP_ZERO sched_feature. + +Value is not capped to retain flexibility, but it tapers off very quickly = to +notice a difference above 16. Roughly it takes ~200ms to reach a util_avg = of +1000 starting from 0. With 16 it should take ~12.5ms. A range of 0-8 is +advised for general use. + +Cookie must always be set to 0. diff --git a/include/linux/sched.h b/include/linux/sched.h index 70517497e80b..38f0f507960a 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -443,6 +443,11 @@ struct sched_info { #endif /* CONFIG_SCHED_INFO */ }; =20 +struct sched_qos { + DECLARE_BITMAP(user_defined, SCHED_QOS_MAX); + unsigned int rampup_multiplier; +}; + /* * Integer metrics need fixed point arithmetic, e.g., sched/fair * has a few: load, load_avg, util_avg, freq, and capacity. @@ -954,6 +959,8 @@ struct task_struct { =20 struct sched_info sched_info; =20 + struct sched_qos sched_qos; + struct list_head tasks; struct plist_node pushable_tasks; struct rb_node pushable_dl_tasks; diff --git a/include/uapi/linux/sched.h b/include/uapi/linux/sched.h index 3cdba44bc1cb..2247fe805abc 100644 --- a/include/uapi/linux/sched.h +++ b/include/uapi/linux/sched.h @@ -104,6 +104,9 @@ struct clone_args { }; =20 enum sched_qos_type { + SCHED_QOS_NONE, + SCHED_QOS_RAMPUP_MULTIPLIER, + SCHED_QOS_MAX, }; #endif =20 @@ -148,7 +151,8 @@ enum sched_qos_type { SCHED_FLAG_RECLAIM | \ SCHED_FLAG_DL_OVERRUN | \ SCHED_FLAG_KEEP_ALL | \ - SCHED_FLAG_UTIL_CLAMP) + SCHED_FLAG_UTIL_CLAMP | \ + SCHED_FLAG_QOS) =20 /* Only for sched_getattr() own flag param, if task is SCHED_DEADLINE */ #define SCHED_GETATTR_FLAG_DL_DYNAMIC 0x01 diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 82189bdc85b7..2b06701191c5 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -186,6 +186,8 @@ __read_mostly int sysctl_resched_latency_warn_once =3D = 1; */ __read_mostly unsigned int sysctl_sched_nr_migrate =3D SCHED_NR_MIGRATE_BR= EAK; =20 +unsigned int sysctl_sched_qos_default_rampup_multiplier =3D 1; + __read_mostly int scheduler_running; =20 #ifdef CONFIG_SCHED_CORE @@ -4567,6 +4569,47 @@ static int sysctl_schedstats(const struct ctl_table = *table, int write, void *buf #endif /* CONFIG_SCHEDSTATS */ =20 #ifdef CONFIG_SYSCTL +static void sched_qos_sync_sysctl(void) +{ + struct task_struct *g, *p; + + guard(rcu)(); + for_each_process_thread(g, p) { + struct rq_flags rf; + struct rq *rq; + + rq =3D task_rq_lock(p, &rf); + if (!test_bit(SCHED_QOS_RAMPUP_MULTIPLIER, p->sched_qos.user_defined)) + p->sched_qos.rampup_multiplier =3D sysctl_sched_qos_default_rampup_mult= iplier; + task_rq_unlock(rq, p, &rf); + } +} + +static int sysctl_sched_qos_handler(const struct ctl_table *table, int wri= te, + void *buffer, size_t *lenp, loff_t *ppos) +{ + unsigned int old_rampup_mult; + int result; + + old_rampup_mult =3D sysctl_sched_qos_default_rampup_multiplier; + + result =3D proc_dointvec(table, write, buffer, lenp, ppos); + if (result) + goto undo; + if (!write) + return 0; + + if (old_rampup_mult !=3D sysctl_sched_qos_default_rampup_multiplier) { + sched_qos_sync_sysctl(); + } + + return 0; + +undo: + sysctl_sched_qos_default_rampup_multiplier =3D old_rampup_mult; + return result; +} + static const struct ctl_table sched_core_sysctls[] =3D { #ifdef CONFIG_SCHEDSTATS { @@ -4613,6 +4656,13 @@ static const struct ctl_table sched_core_sysctls[] = =3D { .extra2 =3D SYSCTL_FOUR, }, #endif /* CONFIG_NUMA_BALANCING */ + { + .procname =3D "sched_qos_default_rampup_multiplier", + .data =3D &sysctl_sched_qos_default_rampup_multiplier, + .maxlen =3D sizeof(unsigned int), + .mode =3D 0644, + .proc_handler =3D sysctl_sched_qos_handler, + }, }; static int __init sched_core_sysctl_init(void) { @@ -4622,6 +4672,21 @@ static int __init sched_core_sysctl_init(void) late_initcall(sched_core_sysctl_init); #endif /* CONFIG_SYSCTL */ =20 +static void sched_qos_fork(struct task_struct *p) +{ + /* + * We always force reset sched_qos on fork. These sched_qos are treated + * as finite resources to help improve quality of life. Inheriting them + * by default can easily lead to a situation where the QoS hint become + * meaningless because all tasks in the system have it. + * + * Every task must request the QoS explicitly if it needs it. No + * accidental inheritance is allowed to keep the default behavior sane. + */ + bitmap_zero(p->sched_qos.user_defined, SCHED_QOS_MAX); + p->sched_qos.rampup_multiplier =3D sysctl_sched_qos_default_rampup_multip= lier; +} + /* * fork()/clone()-time setup: */ @@ -4641,6 +4706,7 @@ int sched_fork(u64 clone_flags, struct task_struct *p) p->prio =3D current->normal_prio; =20 uclamp_fork(p); + sched_qos_fork(p); =20 /* * Revert to default priority/policy on fork if requested. diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c index 74c1617cf652..60a0d4b0e6a6 100644 --- a/kernel/sched/debug.c +++ b/kernel/sched/debug.c @@ -1357,6 +1357,7 @@ void proc_sched_show_task(struct task_struct *p, stru= ct pid_namespace *ns, __PS("effective uclamp.min", uclamp_eff_value(p, UCLAMP_MIN)); __PS("effective uclamp.max", uclamp_eff_value(p, UCLAMP_MAX)); #endif /* CONFIG_UCLAMP_TASK */ + __PS("sched_qos.rampup_multiplier", p->sched_qos.rampup_multiplier); P(policy); P(prio); if (task_has_dl_policy(p)) { diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index d9729da3901a..8124bcc602d3 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -5119,7 +5119,7 @@ static inline void util_est_update(struct cfs_rq *cfs= _rq, unsigned int prev_ewma =3D ewma & ~UTIL_AVG_UNCHANGED; =20 do_div(delta, 1000); - ewma =3D approximate_util_avg(prev_ewma, delta); + ewma =3D approximate_util_avg(prev_ewma, delta * p->sched_qos.rampup_mu= ltiplier); /* * Keep accumulating delta_exec if it is too small to cause * a change. @@ -5188,6 +5188,8 @@ static inline void util_est_update(struct cfs_rq *cfs= _rq, * 0.25, thus making w=3D1/4 ( >>=3D UTIL_EST_WEIGHT_SHIFT) */ ewma <<=3D UTIL_EST_WEIGHT_SHIFT; + if (p->sched_qos.rampup_multiplier) + last_ewma_diff /=3D p->sched_qos.rampup_multiplier; ewma -=3D last_ewma_diff; ewma >>=3D UTIL_EST_WEIGHT_SHIFT; done: @@ -10360,7 +10362,7 @@ static void update_cpu_capacity(struct sched_domain= *sd, int cpu) * on TICK doesn't end up hurting it as it can happen after we would * have crossed this threshold. * - * To ensure that invaraince is taken into account, we don't scale time + * To ensure that invariance is taken into account, we don't scale time * and use it as-is, approximate_util_avg() will then let us know the * our threshold. */ diff --git a/kernel/sched/syscalls.c b/kernel/sched/syscalls.c index 88feedd2f7c9..3bf9a8b32f7d 100644 --- a/kernel/sched/syscalls.c +++ b/kernel/sched/syscalls.c @@ -427,6 +427,38 @@ static void __setscheduler_uclamp(struct task_struct *= p, const struct sched_attr *attr) { } #endif /* !CONFIG_UCLAMP_TASK */ =20 +static inline int sched_qos_validate(struct task_struct *p, + const struct sched_attr *attr) +{ + switch (attr->sched_qos_type) { + case SCHED_QOS_RAMPUP_MULTIPLIER: + if (attr->sched_qos_cookie) + return -EINVAL; + if (attr->sched_qos_value < 0) + return -EINVAL; + break; + default: + return -EINVAL; + } + + return 0; +} + +static void __setscheduler_sched_qos(struct task_struct *p, + const struct sched_attr *attr) +{ + if ((attr->sched_flags & SCHED_FLAG_QOS) =3D=3D 0) + return; + + switch (attr->sched_qos_type) { + case SCHED_QOS_RAMPUP_MULTIPLIER: + set_bit(SCHED_QOS_RAMPUP_MULTIPLIER, p->sched_qos.user_defined); + p->sched_qos.rampup_multiplier =3D attr->sched_qos_value; + default: + break; + } +} + /* * Allow unprivileged RT tasks to decrease priority. * Only issue a capable test if needed and only once to avoid an audit @@ -559,8 +591,11 @@ int __sched_setscheduler(struct task_struct *p, return retval; } =20 - if (attr->sched_flags & SCHED_FLAG_QOS) - return -EOPNOTSUPP; + if (attr->sched_flags & SCHED_FLAG_QOS) { + retval =3D sched_qos_validate(p, attr); + if (retval) + return retval; + } =20 /* * SCHED_DEADLINE bandwidth accounting relies on stable cpusets @@ -697,6 +732,7 @@ int __sched_setscheduler(struct task_struct *p, __setscheduler_dl_pi(newprio, policy, p, scope); } __setscheduler_uclamp(p, attr); + __setscheduler_sched_qos(p, attr); =20 if (scope->queued) { /* @@ -1108,6 +1144,21 @@ SYSCALL_DEFINE4(sched_getattr, pid_t, pid, struct sc= hed_attr __user *, uattr, kattr.sched_util_min =3D p->uclamp_req[UCLAMP_MIN].value; kattr.sched_util_max =3D p->uclamp_req[UCLAMP_MAX].value; #endif + if (copy_from_user(&kattr.sched_qos_type, + &uattr->sched_qos_type, + sizeof(kattr.sched_qos_type))) { + + return -EFAULT; + } + + switch (kattr.sched_qos_type) { + case SCHED_QOS_RAMPUP_MULTIPLIER: + kattr.sched_qos_value =3D p->sched_qos.rampup_multiplier; + kattr.sched_qos_cookie =3D 0; + break; + default: + break; + } } =20 kattr.size =3D min(usize, sizeof(kattr)); --=20 2.34.1 From nobody Sun Jun 14 04:20:27 2026 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 0F5641F5847 for ; Mon, 4 May 2026 02:00:39 +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=1777860041; cv=none; b=WtAlIxHjZMafE9o9BCSgGlhXbraF7U4Q/y/xMcfbQ1VNU7n+6ot40GXVSv/JPF06Cl6ZRCawiot9HFrk/96oHNzWrXSZJkOsevXG8KDqBo1YNsygNcIv/lfIUYUrUu9qf6vm1N7pdLIRFvu2T9R6AX9P6c3RBpFowp33MdwCOII= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777860041; c=relaxed/simple; bh=QkOKQICC5yt2pJugqkrh+wtd/pyAXJ2pn3e2FMLdQkc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=SYPu77IdFd1KPmRu1HAYLDOwQGr7ibtqaavI500INflQFFQTlmEuv7sGxwfTv3ZHVN4RMqMPbmeGqeZvcbVeEqGrIg9APyjbdGLj2dcmDSd7o6yb5WmEbkz8YlBgsCtn9YrsEqOyrufD67H1q5DVK7VEMaBnPKnn+YgfIbo/jiQ= 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.20251104.gappssmtp.com header.i=@layalina-io.20251104.gappssmtp.com header.b=ceBXQfUo; 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.20251104.gappssmtp.com header.i=@layalina-io.20251104.gappssmtp.com header.b="ceBXQfUo" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-48a7fe4f40bso37105865e9.0 for ; Sun, 03 May 2026 19:00:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=layalina-io.20251104.gappssmtp.com; s=20251104; t=1777860038; x=1778464838; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=G/E8KR0XEjeExn68lfo2HlzMQ0sz7ZGE2ppHllIbcQU=; b=ceBXQfUoXnimbX+ewxK6669e9h3oAduv8WpkxwdxDPLnxkzcvgvRBDzVUfVuLpv6A9 HewZC4NMSgxf0fymccKuzHD8Sn32smryU7F+mSMxJUgMeBr3duM7r/FCpMCYWFiH+KuR /IWyTSGAxvrMsyDyh4NcGrmpzjROMknbAKQsjKoOXkr7I2uUD8ZKVqK6ZYCzG5Qxgwsc YSMRIBwh6dHxiD21rwjdSA9w0GiiqcJXAsvr8OHwkuIJbPfIvx8ymHBNMUDxF1zbUg2I nXDakDHjF2nK3Tcf1/xEoTF5Xt5hSWS3PCXcuQJkwj+RuQ9QacG2m4TnA4RTlVZUoPMt 93ZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777860038; x=1778464838; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=G/E8KR0XEjeExn68lfo2HlzMQ0sz7ZGE2ppHllIbcQU=; b=SzRz3NpK34jMFlkkzZFzdfJ50qc+VCyie/n2PkzcXlgpo2JJMeIuk2HPSUPJwLWo3F U9QPNw7eJHE1/5sCuqJqslG1b3xc1PPZqLP71+49toil5Lq9+fFr8weeqPAftPxuKOTB PESZr83j86oAYlfrCu66tfPj+sjXmUqB0vL3SmWzW8t8ETihAHDXjc/ANIHRVc9X6JVl GpbeXW3rEEOYtcI52Lkjcca13y4ETrZP3qqZ+AmUQLSFriix9/L62A0DzqahuqVP35H4 XyHuajhZriiE1a7XBNIdUz21ChH5KkDzw3hKVTsLXqEtBpSCtmC/7PqCLCOS9tArXUra HQSQ== X-Forwarded-Encrypted: i=1; AFNElJ9oOlbVMD2EXLnpNUKShkzAvctMtG7+Z5u8bZM8RxT3uXqi8Urmu/wo1F8cF98K5F1BuViBBXO1gYRsG5g=@vger.kernel.org X-Gm-Message-State: AOJu0Yz1XVbno8CQgQOH4NgPxD11BXCiLdo2gP3n31r1FAl9Mausk8aW bjqRVF6Irsh7lF7Lds/Y+7BSKVgXnbx5yqcvssY2d/N3v1b+TCkTAOWmh5/EFEwlkIw= X-Gm-Gg: AeBDiesIohOm4Stwt2N7fe2OXM1oIQZwv2jgz4/NVCwdU05Sb2jqlUmAWJ6vsRCOdEx xK3DD84gQ69o/0RJ3E3LrSWz+mGnP7TLbBBX+suL1ORjt5XlYzqMbtMeFocI8Jv8nZT+Isorcst Hw1K9yl+1qEh86RkGYC03wNiFFItjKoakAXHtN2IO34vxb9yi+L0Io4CafBHwL8+Rk1qZ5M3ZMM WA0DYt2SjumZgR26q4xfVVDc+bPOoWIClsJwFr9AGaDCo1b17u83HjuN+3AXcuCl1k+I300BXTf pf8SbzR2sNAIlTckeql01/fyE3NzNiHkCQQRLaG/37GQUCcIoEmXNrc31bWzSHAHCTQCU6AKhsk lfOD30q5H7fXAOxxrar+OgSCQrxHa3QtVOcGex5RLsM3wj45K87sNG9l0WfzJaVR4eF5Oe4nan6 myUa9OzSMgW/G7jVblmJV19VBsFAAq3XE= X-Received: by 2002:a05:600c:828a:b0:488:78f2:6b0 with SMTP id 5b1f17b1804b1-48a986790e9mr129881665e9.29.1777860037407; Sun, 03 May 2026 19:00:37 -0700 (PDT) Received: from airbuntu.. ([146.70.179.108]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48a8fee5033sm68064215e9.22.2026.05.03.19.00.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 May 2026 19:00:36 -0700 (PDT) From: Qais Yousef To: Ingo Molnar , Peter Zijlstra , Vincent Guittot , "Rafael J. Wysocki" , Viresh Kumar Cc: Juri Lelli , Steven Rostedt , John Stultz , Dietmar Eggemann , Tim Chen , "Chen, Yu C" , Thomas Gleixner , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, Qais Yousef Subject: [PATCH v2 10/13] sched/fair: Disable util_est when rampup_multiplier is 0 Date: Mon, 4 May 2026 03:00:00 +0100 Message-Id: <20260504020003.71306-11-qyousef@layalina.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260504020003.71306-1-qyousef@layalina.io> References: <20260504020003.71306-1-qyousef@layalina.io> 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 Content-Type: text/plain; charset="utf-8" util_est is a great feature to enable busy tasks with long sleep time to maintain their perf level. But it can also be expensive in terms of power for tasks that have no such perf requirements and just happened to be busy in the last activation. If a task sets its rampup_multiplier to 0, then it indicates that it is happy to glide along with system default response and doesn't require responsiveness. We can use that to further imply that the task is happy to decay its util for long sleep too and disable util_est. The behavior can be controlled via UTIL_EST_RAMPUP_ZERO sched_feat that is enabled by default. Signed-off-by: Qais Yousef --- kernel/sched/fair.c | 8 ++++++++ kernel/sched/features.h | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 8124bcc602d3..a36d6abaf6d2 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -5104,6 +5104,14 @@ static inline void util_est_update(struct cfs_rq *cf= s_rq, if (!sched_feat(UTIL_EST)) return; =20 + /* + * rampup_multiplier =3D 0 indicates util_est is disabled. + */ + if (sched_feat(UTIL_EST_RAMPUP_ZERO) && !p->sched_qos.rampup_multiplier) { + ewma =3D 0; + goto done; + } + /* Get current estimate of utilization */ ewma =3D READ_ONCE(p->se.avg.util_est); =20 diff --git a/kernel/sched/features.h b/kernel/sched/features.h index 6f7e5bba854f..05eed37a9064 100644 --- a/kernel/sched/features.h +++ b/kernel/sched/features.h @@ -122,6 +122,11 @@ SCHED_FEAT(WA_BIAS, true) */ SCHED_FEAT(UTIL_EST, true) =20 +/* + * Disable util_est when rampup_multiplier is 0. + */ +SCHED_FEAT(UTIL_EST_RAMPUP_ZERO, true) + SCHED_FEAT(LATENCY_WARN, false) =20 /* --=20 2.34.1 From nobody Sun Jun 14 04:20:27 2026 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (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 4090B1FA859 for ; Mon, 4 May 2026 02:00:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777860047; cv=none; b=Pizbeyc3opQjVBjGVIlxVFvwHqkdsWRR+hMYj7MmquqqUbm2ZjI47OnOZULUyD1pBX2bAfPo+oyYvtllgOn9K6fJKXgZpWfSjGOpADElTbl36Qa5t9Au57Jggr4YUa7XOsFifHBybSMUwdjTA7i/9iUHsp7Ye0s4nMf1Z1ssjvI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777860047; c=relaxed/simple; bh=w/5BpgtwWB9gvhUeO0LymK333h3v7QsTdN0RrznuU4U=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Vvtfp70HkQZV9NwGI0Yprtq0SEM0NIfDhXDE2eSHE+ad+S82SyE+3MGT61WDCwrOpQAEgzHmA7YYC1AgvQerX8qoyT+QjZXCePdYd0t+JwdSohp7cbpmjE08RNFxanl/5P1aUj4I82H7xo3XFNNwiB2TDQKslQnXPD05Avk+rZo= 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.20251104.gappssmtp.com header.i=@layalina-io.20251104.gappssmtp.com header.b=VYnT8zsq; arc=none smtp.client-ip=209.85.128.42 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.20251104.gappssmtp.com header.i=@layalina-io.20251104.gappssmtp.com header.b="VYnT8zsq" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-488ad135063so30082485e9.0 for ; Sun, 03 May 2026 19:00:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=layalina-io.20251104.gappssmtp.com; s=20251104; t=1777860041; x=1778464841; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Yt5Yn7iSlTX5edqzbUliEK6b4yg+MnQ5F8uUHtLwLtA=; b=VYnT8zsqK3Bh2OpN2sjNldJRtT2PuKcdbQdoC09W3EPQorfuffdeBkNK4DGpNqBuyD ADeS93D9LLxkygXXtbQ1c97rdZP2prhm0DD693Gn+8VZDsVi0cowueCtLleTLuSY9dt7 TJ3g5hWxRvssU8vznDzEr2kemeXXZgyiVj53OBVDL+Pch/oWNkMpJmCsw3sKZxghwR4S GbmQmZrrM/RRdRpS3TUPLwab61QSm97v9eb+Z0vOHY04i/DtjtGDKADAlEU6QzdAJYwW yaTE1pjZVlDm4NxvGtYv9fdo3tzJ7gFHG+itgXp6ISzF1QCr48ujysDKaHJfRrSKiXlm 0g7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777860041; x=1778464841; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Yt5Yn7iSlTX5edqzbUliEK6b4yg+MnQ5F8uUHtLwLtA=; b=le28dz7nvyBgDonrJXjLr4juDYsq8CwCmNdmNk9Y3fBlQpYMIij+RyYCB8P0AduVRl 9ynuGrH56F0fNfTPBv8iAobzqRwwwwMAAGfrMMCS9ForANNQJPot98eSLrDN2q/4NCX+ QnEFctK0vnnmlFPqQnPDXSLVdje78cKqZNUrG0TvoM8g4EepPAvNYM4n2wE58LjSialH T9Jz8tTT8urNghlS61zZYPJPNAnj1c97rep65jCTXJ8ZbYBybuUsb6E17BzMALqBUZvq NZaUdEpnKURjoxDzcKgKVJjUrrdvA8kv6NMoMQgbpwrqRFOL5163XXamuV5kj72BhzLS /jtg== X-Forwarded-Encrypted: i=1; AFNElJ/OIm2nguTaZT5bxSDhuKSB0TXDk3TRaFGYf0KqpesLrhHfT3rsH8HCNuEC8Hfv1fv6bhi4OETIvECYFJQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yz4j6j2wRJT5qGi+24AWDuGwjD8Nps5ybigAqF4nMPI4ZzWmriF 1agwASEzuI0nITvIUAolAVn/GQg8E+B/1qA2RJ2OybYjejVBJW3WAs90MRX4+mCeNf8= X-Gm-Gg: AeBDiesPD7RgyrEvbJ7GI/gXrDg/bFuGZMZyal1axlYUgdM87z3G69kFKxEpWy2N4vU goMH3Kk2dfyUJ5+3DW4jw6zIHXNcJN7hqyxcCxne3CGQ5IWb8j9u0+pVJygkJkZdQPgFG3wNd5J HoUet6YHGQuW9OYKvX9WlcR8SowBGjbGKlgBvqLMBzgXcwa3ybY9Stsa6iFgEp2EWSpQqbEErfq RlzwR7WWSBUfisRHqr6Yfu+XDHlfv5lNN3uaet7wvzvzkLhLYP2QjbVF2+t704oZAHqYDvKS4tP NVLh2aHy4E42uAsYliUD3LuZkKuA5U3y/tHD7cs1vJqzXMp0amgiKcIseaP3p60xunJHoe67+2D Aj5aA4GyfBKJNDSoiIZgO0ZW8UzAWVH07iEWhi/DF7Xs5/fgBNMYjx08GNjEOfwebwdm7aYwjn0 xOvltAD82zseCKTKBTP3fV/4ypi4/3/no= X-Received: by 2002:a05:600c:154b:b0:489:a4:e58a with SMTP id 5b1f17b1804b1-48a988b1ec0mr138910845e9.19.1777860040320; Sun, 03 May 2026 19:00:40 -0700 (PDT) Received: from airbuntu.. ([146.70.179.108]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48a8fee5033sm68064215e9.22.2026.05.03.19.00.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 May 2026 19:00:38 -0700 (PDT) From: Qais Yousef To: Ingo Molnar , Peter Zijlstra , Vincent Guittot , "Rafael J. Wysocki" , Viresh Kumar Cc: Juri Lelli , Steven Rostedt , John Stultz , Dietmar Eggemann , Tim Chen , "Chen, Yu C" , Thomas Gleixner , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, Qais Yousef Subject: [PATCH v2 11/13] sched/fair: Don't mess with util_avg post init Date: Mon, 4 May 2026 03:00:01 +0100 Message-Id: <20260504020003.71306-12-qyousef@layalina.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260504020003.71306-1-qyousef@layalina.io> References: <20260504020003.71306-1-qyousef@layalina.io> 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 Content-Type: text/plain; charset="utf-8" The extrapolation logic for util_avg for newly forked tasks tries to crystal ball the task's demand. This has worked well when the system didn't have the means to help these tasks otherwise. But now we do have util_est that will rampup faster. And uclamp_min to ensure a good starting point if they really care. Since we really can't crystal ball the behavior, and giving the same starting value for all tasks is more consistent behavior for all forked tasks, and it helps to preserve system resources for tasks to compete to get them if they truly care, set the initial util_avg to be 0 when util_est feature is enabled. This should not impact workloads that need best single threaded performance (like geekbench) given the previous improvements introduced to help with faster rampup to reach max perf point more coherently and consistently across systems. The logic can be forced back on using UTIL_EST_FORCE_POST_INIT sched_feat. Signed-off-by: Qais Yousef --- kernel/sched/fair.c | 19 +++++++++++++++++++ kernel/sched/features.h | 10 ++++++++++ 2 files changed, 29 insertions(+) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index a36d6abaf6d2..d0f646b32c2d 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -1261,6 +1261,19 @@ void init_entity_runnable_average(struct sched_entit= y *se) } =20 /* + * When util_est is used, the tasks can rampup much faster by default. And= with + * the rampup_multiplier, tasks can ask for faster rampup after fork. And = with + * uclamp, they can ensure a min perf requirement. Given all these factors= , we + * keep util_avg at 0 as we can't crystal ball the task demand after fork. + * Userspace have enough ways to ensure good perf for tasks after fork. Ke= eping + * the util_avg to 0 is good way to ensure a uniform start for all tasks. = And + * it is good to preserve precious resources. Truly busy forked tasks can + * compete for the resources without the need for initial 'cheat' to ramp = them + * up automagically. + * + * When util_est is not present, the extrapolation logic below will still + * apply. + * * With new tasks being created, their initial util_avgs are extrapolated * based on the cfs_rq's current util_avg: * @@ -1310,6 +1323,12 @@ void post_init_entity_util_avg(struct task_struct *p) return; } =20 + /* + * Tasks can rampup faster with util_est, so don't mess with util_avg. + */ + if (sched_feat(UTIL_EST) && !sched_feat(UTIL_EST_FORCE_POST_INIT)) + return; + if (cap > 0) { if (cfs_rq->avg.util_avg !=3D 0) { sa->util_avg =3D cfs_rq->avg.util_avg * se_weight(se); diff --git a/kernel/sched/features.h b/kernel/sched/features.h index 05eed37a9064..fa8e7d458029 100644 --- a/kernel/sched/features.h +++ b/kernel/sched/features.h @@ -127,6 +127,16 @@ SCHED_FEAT(UTIL_EST, true) */ SCHED_FEAT(UTIL_EST_RAMPUP_ZERO, true) =20 +/* + * Force extrapolating util_avg on fork. + * + * When util_est is enabled the extrapolation is not necessary since tasks= can + * rampup faster and can be controlled with a rampup multiplier to get bet= ter + * responses making the need for the extrapolation moot. Switch this on to + * force the extrapolation logic. + */ +SCHED_FEAT(UTIL_EST_FORCE_POST_INIT, false) + SCHED_FEAT(LATENCY_WARN, false) =20 /* --=20 2.34.1 From nobody Sun Jun 14 04:20:27 2026 Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) (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 A347D335BA for ; Mon, 4 May 2026 02:00:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777860046; cv=none; b=KBb8Z3rFlcepBGVlQ7fPJMC/7Ypl0m0HahW9XrqJLbaYL/mWPe2t3IRjVWEW4L3mI16iy8dFiDdDedr72fta5a+04vTWfgHH/1HpiOmT6DYwkVuFGrVB4TUMFPXuW/Yud7k0EUR4808gQ2hwWhH38ZO76eKlvST/HIsGW4rvIus= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777860046; c=relaxed/simple; bh=syA1uKvD2SIpi113rRI2QtXJk6354F+wskAFbK+kYFc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=LoOz13yPN2oTj6mv1zBhqO6/LE0qAWgQQOrP7ywyv0Rms63TPhbZEziU1EVbO6AFte8MGNJpDOuxPN2X1Rj0pvj4EN1ZEL5F3Y5Tlr/0OYTOdnD7K6LtNm24/5QDZUQUFPxrHuomILttX4avXu4QFtsMzjVwzYxgJfL3dhisDaw= 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.20251104.gappssmtp.com header.i=@layalina-io.20251104.gappssmtp.com header.b=e8WBvnAc; arc=none smtp.client-ip=209.85.128.49 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.20251104.gappssmtp.com header.i=@layalina-io.20251104.gappssmtp.com header.b="e8WBvnAc" Received: by mail-wm1-f49.google.com with SMTP id 5b1f17b1804b1-4891c0620bcso24246765e9.1 for ; Sun, 03 May 2026 19:00:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=layalina-io.20251104.gappssmtp.com; s=20251104; t=1777860043; x=1778464843; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=2gSJS7wB39WX+wxJ4xaZGWICn1EmJcXYfO92MXwTTkI=; b=e8WBvnAceDlJZbxrodQZ4iIq7a+NdxOaH9s6qO5h8wV3cJfTOi3imJs+ZVCRHMD/zk sgJRRdjzU6sCJAOu8ZQGVZh0lwMbUKRXbrXt38rO5IZScovP6vIkvJHG7xZqYV3wAQHX zI0waDQDz0q3wVxQiWdaDWOLWg3xTBdYJwMZCYg67K8d+vQ72mQkGCRtfJTA7j9+KViy zxCBnz4ZdsRkT7zaSDG3mXGQNuUuY9TVYV4APtsqnc0BzllEdyy+vQRdZQBON5LX6KEP pyN/NNK+tnSQhggv8Ik1HT8YYFuQv6zFEyAEpCxxwINq7PhUnZJjqx1SGCaCONGpgMG3 eoxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777860043; x=1778464843; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=2gSJS7wB39WX+wxJ4xaZGWICn1EmJcXYfO92MXwTTkI=; b=jxqm/ydnI/TMZETwC32aAKBQQ/o86Bc+T3C8O1uy2wtCrz+4aFk0mFQzFmcJTSU1+m V0F9kNTRrE08S6TZLpaon02sZYE7sno1BTlu7+AhgIakLgMZGrkcYh8Wjx2FORjxxCzX muJu/ZxlYxlh2KzTlJdkjEu8CLZ2f9VD9FfOhjP3QZ0rEIEr3/EMKVRRVfrvnVl80LXA KJ3tYcqLNPFIxuMsF70KtMKG+W9AMufIy/8zUbUdwManjZnn0704sKza53GKNZstmixg X1/a+G2ZIb0ts14kFZdudEd59bgTxAZBsHVzoizQyz/N4uWu5iKJI3iq7lPwh7v2sTs3 VRMQ== X-Forwarded-Encrypted: i=1; AFNElJ+kSwFbp+6UUwKGxbjP86htjHKy6E8KLt++uKQ9gTjwB4rsbFMfqS5QVg7ZEeWynts4uwspWXXRmShOskY=@vger.kernel.org X-Gm-Message-State: AOJu0YwWs2RJXg28iVk7UYxO6C5DkOOb+QcCdMSHH3ThSpVTd9xSlAPS o8a4yfhRk/+9+gEdVE6yVB7/yPJg3nYaMXH10Y20eBOr6tTIxudLEciBx5eHnx7I2ms= X-Gm-Gg: AeBDievpDH3n/sGSFvsD8glRWX/xmGSsPZYGMURitVui/h8XtNa8YodUFLZYy4caqRC tO1MgsrlljpUjmW3gcpi6OOlAk11jyDTrkHKHI06mVCwc8+LwksqtvKsSXUtyKU2wRorrURN9+g DRy9zEHUhWfC7zD/MOr2oA72b5LjDly9Aj/yn+QNj/4G2gyeXXXs6LtwOwQDssGBbCEQUXN8Y72 5m65PVWp/teJPb55zbS5rkZel4/xd/uqmW7RW/owOJ2BAkaDmm97VGREWeGRjAbEz9hlz90HEWb 3d8+mbjVfGFCQqWMa8a2s0ER7Q1portefsaS+Z7D8VLea2agxyCXlEvJ4DbJYBPVaGRmKfYbzEh TuQ5ACJz5ur5TZ4jXgumq7DjxjPOGw/jSwfAbdINjmtaxnQVPKlVm2mel6O9jQ1vIXFSCrGgp0j 3MSINWGy5b8uWcEcE9Qbad+nBKZRopOidNU7Qi+BX+yw== X-Received: by 2002:a05:600c:8287:b0:48a:6798:52e9 with SMTP id 5b1f17b1804b1-48a986526f4mr115419895e9.0.1777860043115; Sun, 03 May 2026 19:00:43 -0700 (PDT) Received: from airbuntu.. ([146.70.179.108]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48a8fee5033sm68064215e9.22.2026.05.03.19.00.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 May 2026 19:00:41 -0700 (PDT) From: Qais Yousef To: Ingo Molnar , Peter Zijlstra , Vincent Guittot , "Rafael J. Wysocki" , Viresh Kumar Cc: Juri Lelli , Steven Rostedt , John Stultz , Dietmar Eggemann , Tim Chen , "Chen, Yu C" , Thomas Gleixner , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, Qais Yousef Subject: [PATCH v2 12/13] sched/fair: Call update_util_est() after dequeue_entities() Date: Mon, 4 May 2026 03:00:02 +0100 Message-Id: <20260504020003.71306-13-qyousef@layalina.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260504020003.71306-1-qyousef@layalina.io> References: <20260504020003.71306-1-qyousef@layalina.io> 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: quoted-printable update_util_est() reads task_util() at dequeue which is updated in dequeue_entities(). To read the accurate util_avg at dequeue, make sure to do the read after load_avg is updated in dequeue_entities(). util_est for a periodic task before periodic-3114 util_est.enqueued running =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90 183=E2=94=A4 =E2=96=96=E2=96=97 =E2=96=90=E2=96=96 = =E2=96=96 =E2=96=97=E2=96=99 =E2=96=97 =E2=96=97=E2=96=99=E2=96=96=E2= =96=96 =E2=96=96=E2=96=96 =E2=96=96 =E2=96=96=E2=96=96 = =E2=96=97 =E2=96=9F =E2=96=97=E2=96=84=E2=96=96 =E2=94=82 139=E2=94=A4 =E2=96=90=E2=96=9B=E2=96=88=E2=96=9C=E2=96=99=E2= =96=9E=E2=96=80=E2=96=84=E2=96=84=E2=96=9E=E2=96=9A=E2=96=84=E2=96=9F=E2=96= =88=E2=96=9E=E2=96=99=E2=96=88=E2=96=84=E2=96=9F=E2=96=80=E2=96=9A=E2=96=84= =E2=96=84=E2=96=9E=E2=96=9A=E2=96=84=E2=96=84=E2=96=9F=E2=96=80=E2=96=80=E2= =96=9B=E2=96=84=E2=96=9D=E2=96=84=E2=96=84=E2=96=84=E2=96=99=E2=96=88=E2=96= =9B=E2=96=9B=E2=96=88=E2=96=9B=E2=96=9C=E2=96=9B=E2=96=84=E2=96=84=E2=96=80= =E2=96=84=E2=96=88=E2=96=99=E2=96=9B=E2=96=9B=E2=96=9B=E2=96=99=E2=96=84=E2= =96=80=E2=96=84=E2=96=84=E2=96=96=E2=96=9C=E2=96=84=E2=96=9F=E2=96=88=E2=96= =9F=E2=96=80=E2=96=9C=E2=96=9F=E2=96=84=E2=96=9C=E2=96=80=E2=96=84=E2=96=84= =E2=96=9F=E2=96=99=E2=96=96 =E2=94=82 95=E2=94=A4 =E2=96=90=E2=96=80 =E2=96=98 =E2=96=9D =E2= =96=9D =E2=96=9D=E2=96=98 =E2=96=98 =E2=96=98=E2=96=98 = =E2=96=9D=E2=96=98 =E2=96=9D=E2=96=98 =E2=96=9D =E2=96=9D = =E2=96=80 =E2=94=82 =E2=94=82 =E2=96=9B = =E2=94=82 51=E2=94=A4 =E2=96=90=E2=96=98 = =E2=94=82 7=E2=94=A4 =E2=96=96=E2=96=97=E2=96=97 =E2=96=97=E2=96=84=E2=96=90 = = =E2=94=82 =E2=94=94=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=AC=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=AC= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=AC=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=AC=E2=94=98 0.00 0.65 1.30 1.96 2.61 3.26 3.91 = 4.57 5.22 5.87 and after periodic-2977 util_est.enqueued running =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=90 157.0=E2=94=A4 =E2=96=99=E2=96=84 =E2=96=97=E2=96=84 =E2=96= =97=E2=96=84=E2=96=84=E2=96=84 =E2=96=97=E2=96=84 =E2=96=97=E2=96=84=E2=96= =84=E2=96=84=E2=96=97=E2=96=84=E2=96=84 =E2=96=97=E2=96=84=E2=96=84=E2=96= =96 =E2=96=84 =E2=96=84=E2=96=84=E2=96=84 =E2=96=84 =E2=96=84=E2=96=96= =E2=96=96 =E2=96=84=E2=96=84=E2=96=84=E2=96=84=E2=96=84=E2=96=96=E2=96=96= =E2=96=9D=E2=96=99=E2=96=84=E2=96=84=E2=96=84=E2=96=84=E2=96=84=E2=96=84=E2= =96=96 =E2=96=97=E2=96=84 =E2=94=82 119.5=E2=94=A4 =E2=96=97=E2=96=84=E2=96=8C=E2=96=98=E2=96=80=E2= =96=80 =E2=96=80=E2=96=80=E2=96=80 =E2=96=9D=E2=96=80=E2=96=80=E2=96=98=E2= =96=9D=E2=96=80=E2=96=80=E2=96=80 =E2=96=9D=E2=96=80=E2=96=98 =E2=96=9D=E2= =96=80=E2=96=80=E2=96=98 =E2=96=80=E2=96=9D=E2=96=80=E2=96=98=E2=96=80=E2= =96=80=E2=96=80=E2=96=98=E2=96=9D=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96= =80=E2=96=80=E2=96=80=E2=96=98=E2=96=9D=E2=96=9D=E2=96=80=E2=96=80 =E2=96= =80 =E2=96=9D=E2=96=9D=E2=96=80 =E2=96=80 =E2=96=80=E2=96=80=E2=96=80= =E2=96=80 =E2=94=82 82.0=E2=94=A4 =E2=96=9F = =E2=94=82 =E2=94=82 =E2=96=8C = =E2=94=82 44.5=E2=94=A4 =E2=96=8C = =E2=94=82 7.0=E2=94=A4 =E2=96=97 =E2=96=97=E2=96=96 =E2=96=8C = =E2=94=82 =E2=94=94=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=AC=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=AC=E2=94=98 0.00 0.65 1.30 1.95 2.60 3.25 3.90 = 4.56 5.21 5.86 Note how the signal is noisier and can peak to 183 vs 157 now. Signed-off-by: Qais Yousef --- kernel/sched/fair.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index d0f646b32c2d..2fec5b6a7c30 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -7455,6 +7455,8 @@ static int dequeue_entities(struct rq *rq, struct sch= ed_entity *se, int flags) */ static bool dequeue_task_fair(struct rq *rq, struct task_struct *p, int fl= ags) { + int ret; + if (task_is_throttled(p)) { dequeue_throttled_task(p, flags); return true; @@ -7463,8 +7465,9 @@ static bool dequeue_task_fair(struct rq *rq, struct t= ask_struct *p, int flags) if (!p->se.sched_delayed) util_est_dequeue(&rq->cfs, p); =20 + ret =3D dequeue_entities(rq, &p->se, flags); util_est_update(&rq->cfs, p, flags & DEQUEUE_SLEEP); - if (dequeue_entities(rq, &p->se, flags) < 0) + if (ret < 0) return false; =20 /* --=20 2.34.1 From nobody Sun Jun 14 04:20:27 2026 Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) (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 3DE2C202963 for ; Mon, 4 May 2026 02:00:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777860050; cv=none; b=RyuNQP9TWR+tDSMHDKd4UXoKrU0KIg5JLbMoxwpzOD6IZmxy+zD+9Fy6+srCV6tUnTkbnsXHRhSP1D6AqamKd58MoTi78joKyBTjGJnkXYHsB+6/L2aRfd2Na7wyZqaXxDxM8ZflQhvXOThpkk/pt3LochalyI6OryOJu8cVfcc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777860050; c=relaxed/simple; bh=AHtii8CCYTSf7q4I3jdtrAotYIqQ0VVWNFC+K8e3w80=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=uXtYBmuxaR4/ZhtkDbr5MiDrf8jjvp0y6v27cofWIK2ebs5db8NAH3mg6/ovafvJuKCZV+JWXZckgKh4tAsmAj8SrUrLsPAPqLoC9kCRTpKS9WDigDM8FZZfYdgleVR86zobWigL4sFijl2QZdS1+Zhx3mOiapgxgPDlbTefJLs= 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.20251104.gappssmtp.com header.i=@layalina-io.20251104.gappssmtp.com header.b=epzMTcmT; arc=none smtp.client-ip=209.85.221.49 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.20251104.gappssmtp.com header.i=@layalina-io.20251104.gappssmtp.com header.b="epzMTcmT" Received: by mail-wr1-f49.google.com with SMTP id ffacd0b85a97d-44da2de25f3so304205f8f.1 for ; Sun, 03 May 2026 19:00:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=layalina-io.20251104.gappssmtp.com; s=20251104; t=1777860046; x=1778464846; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=z0yO3jZLN26FeBlMUZI82K9kgV7+1GCeVfAvlBcPEuc=; b=epzMTcmTYbUZK0dosqL40FsPbipbGK34qdyNMO8YrV6hp0WTJOUfxRIFWSF2JMpe01 yqUkZTAlSK62mdej6X9k+Jzo5Ay3qOVuiFY6QoU/CgU4FgQSi5U3phk45v9BxE1+0UnV M+paL4pSBFYExFT2Hm3qTadY+ZvCLEsUiypFDArI7zhtRhnQ18L6lHA0PhZlQghOErHe 11YFSfq7QNsDUCIyCXZcqJdK2ZrTWDtV5MClbhFRsCGR5pecofU+7S3ahnTbsGIW/dA9 XQeE9iw/9CARojhhTAH5sbXRJS8Ytm1wftIR/TtoB762lFvxGy1VyX2RQa0AYTdnhIFZ 15xQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777860046; x=1778464846; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=z0yO3jZLN26FeBlMUZI82K9kgV7+1GCeVfAvlBcPEuc=; b=e8NJ/2TqgO9ZfmOoXSdPRnSuanhhiJ8HGLWamxUpkM7PW41DquKUrGwdCzlOQEUkzV y0wezwyj0bUQQ+2F9EVKsBh5Auanq1gf41hzKd1BfBO1HdfQ6H0sM6Aecg3WUMTwLGGd y2yh2snXrnmKKQV9arIXQQJ8hATll3p5Xd+AcRONoz5TDet9EqsNCfYA6yDOFOQQKgOa H05NJS/3InqsjYZaFMVKVQCuigSJOFKgiRbUdBa2oHhmM8snQovCV6/mVoambL5VGUME BolpZUeLh/Sii9If9GaOCA2kt3k5vu6EAvVRtsEToUJ/Y2w37rxWaKeTw3WeNtCBz/E8 zlVw== X-Forwarded-Encrypted: i=1; AFNElJ+JYr0DRHpZqou3inJbpbzr03GAIKjXPoVl1eAFiIdn6xrPg5MjTmJbW4/wMTURlZo+WBPbMdOQJOgyb2w=@vger.kernel.org X-Gm-Message-State: AOJu0YzyJYEKbxNyXkYYsNT9r7iGBcU4MckcGd9m2nEtMFKMRPCRcsnV ixLDiu7plfE+Qm+skUdiD2ZtM9rk0cZoMBOEv0XodlmOUvtBHb5yxr+p+C0+uLNavSI= X-Gm-Gg: AeBDiesdReGHnXeADgtQF+l983KK/REosc4qO1dNbTHJDG1G3hqHWOp17M28xymO66o Zy8F5x2dQ3VawSWtvleA6d4pVKQfr8Iq1Pa6ZxV+pREIMcNUvQBAdg93KNP/ae+D0ZxFyx3HVJq G7/mcknqvhVXnNqAjvf8OorZiCIyYcuzscUtT61P9o/OnYW1vNBIQ1UDQ817LAMfUhM8ThuIUDc tN17QGNJ3fZXzsdEK+3BnjA6qn0qG0NUJPIifYegkkv0fbOeadjXxL5vPNgzylzCw7asc7QM8uw KhWXzSLydx0XH65FrJFbvHYV3rW3DQqMTc8zc7c+UujmBPChflDFcMzs92arSvZWic02jYBuC/R 9HDxH3P7Uo+QpPvgOZUJa3J+TRM7fzc/YgQTCN85LRWq2gtGaSxm3jCxKnWS41pbNozaIpcS09A jOVgv2RYOzPvA7JN6v84WTcJln43whB8w= X-Received: by 2002:a05:600c:698d:b0:488:aa33:dcbd with SMTP id 5b1f17b1804b1-48d09ccfee0mr27181505e9.26.1777860046115; Sun, 03 May 2026 19:00:46 -0700 (PDT) Received: from airbuntu.. ([146.70.179.108]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48a8fee5033sm68064215e9.22.2026.05.03.19.00.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 May 2026 19:00:44 -0700 (PDT) From: Qais Yousef To: Ingo Molnar , Peter Zijlstra , Vincent Guittot , "Rafael J. Wysocki" , Viresh Kumar Cc: Juri Lelli , Steven Rostedt , John Stultz , Dietmar Eggemann , Tim Chen , "Chen, Yu C" , Thomas Gleixner , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, Qais Yousef Subject: [PATCH v2 RFC 13/13] sched/pelt: Always allow load updates Date: Mon, 4 May 2026 03:00:03 +0100 Message-Id: <20260504020003.71306-14-qyousef@layalina.io> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260504020003.71306-1-qyousef@layalina.io> References: <20260504020003.71306-1-qyousef@layalina.io> 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: quoted-printable 1024us period can cause a problem at dequeue if the last udpate (due to tick) has happened less than this period. Running a periodic task I can see the dequeued util_avg changing by 15-20 points due to this variation - which on HMP system with small cores can mean a big jump in freqs. Before periodic-2977 util_avg =E2=94=8C=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=AC=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=AC=E2=94=90 140.0=E2=94=BC=E2=94=BC=E2=94=80=E2=96=90=E2=96=80=E2=96=9B=E2=96=9C=E2=94= =80=E2=96=84=E2=96=84=E2=96=84=E2=96=96=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =BC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=BC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=96=84=E2=96=84=E2=94=80=E2=94=80=E2=96=97=E2=96=84=E2=96= =84=E2=96=84=E2=94=80=E2=94=80=E2=96=97=E2=96=84=E2=96=84=E2=96=84=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=BC=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=BC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=BC=E2=94=A4 =E2=94=82=E2=94=82 =E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2= =96=8C =E2=96=9B=E2=96=9C=E2=96=84 =E2=96=84=E2=96=9F=E2=96=9C=E2=96=84= =E2=96=96 =E2=96=90=E2=96=9C=E2=96=9B=E2=96=8C =E2=94=82=E2=96=97=E2=96=84= =E2=94=82 =E2=96=8C=E2=96=90 =E2=96=90 =E2=96=8C=E2=96=90 = =E2=96=90=E2=94=82=E2=96=8C=E2=96=90 =E2=96=9B=E2=96=99=E2=96=84 =E2=96= =97=E2=96=84 =E2=96=90=E2=96=9C =E2=94=82 =E2=96=97=E2=96=84 =E2= =94=82=E2=94=82 =E2=94=82=E2=96=80=E2=96=99=E2=96=9F =E2=96=8C=E2=96=90 =E2=96=8C=E2= =96=90 =E2=96=8C =E2=96=8C=E2=96=90=E2=96=90 =E2=96=90=E2=96=9C=E2=96=8C= =E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=9C=E2=96=9B=E2=96=88=E2=96=90=E2= =96=8C=E2=96=8C =E2=94=82=E2=96=90=E2=96=90 =E2=94=82 =E2=96=9B=E2= =96=9C=E2=96=80=E2=96=9B=E2=96=9C=E2=96=80=E2=96=8C=E2=96=90=E2=96=80=E2=96= =99=E2=96=9F =E2=96=8C=E2=96=90 =E2=96=90=E2=94=82=E2=96=8C=E2=96=90 =E2= =96=8C=E2=96=88=E2=96=90 =E2=96=97=E2=96=84=E2=96=9B=E2=96=88=E2=96=90=E2= =96=9B=E2=96=88=E2=96=9C=E2=96=84=E2=96=9F=E2=96=90 =E2=94=82 =E2=96=90=E2= =96=90=E2=96=80=E2=96=8C=E2=96=97=E2=96=84=E2=96=96 =E2=94=82=E2=94=82 =E2=94=82=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90=E2=96=84=E2=96= =8C=E2=96=90 =E2=96=8C =E2=96=8C=E2=96=90=E2=96=90 =E2=96=90=E2=96=90=E2= =96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96= =90=E2=96=8C=E2=96=8C =E2=94=82=E2=96=90=E2=96=90 =E2=96=90=E2=96=80=E2=96= =99=E2=96=84 =E2=96=9B=E2=96=9C=E2=96=84=E2=96=8C=E2=96=90 =E2=96=8C=E2=96= =90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90=E2=96=84=E2=96= =96=E2=96=90=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=88=E2=96=90 =E2=96= =90=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C= =E2=96=88=E2=96=90=E2=96=9B=E2=96=99=E2=96=84 =E2=96=90=E2=96=90 =E2=96=8C= =E2=96=90 =E2=96=9B=E2=96=9C=E2=94=82=E2=94=82 129.5=E2=94=BC=E2=94=BC=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94= =80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=94=80=E2=94=80=E2=96=8C=E2=96=90= =E2=96=90=E2=94=80=E2=96=90=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2= =96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=99=E2=96=84=E2=96= =84=E2=96=9F=E2=96=90=E2=94=80=E2=94=80=E2=96=90=E2=94=80=E2=96=8C=E2=96=90= =E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2= =96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96= =8C=E2=96=90=E2=94=80=E2=96=9B=E2=96=9C=E2=94=BC=E2=96=8C=E2=96=90=E2=94=80= =E2=96=8C=E2=96=88=E2=96=90=E2=94=80=E2=96=90=E2=96=90=E2=96=8C=E2=96=88=E2= =96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96= =8C=E2=96=90=E2=94=80=E2=96=90=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80= =E2=96=8C=E2=96=90=E2=94=BC=E2=94=A4 =E2=94=82=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2= =96=90 =E2=96=9B=E2=96=9C=E2=96=80=E2=96=8C=E2=96=90=E2=96=90 =E2=96=90=E2= =96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96= =88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=94=82=E2=96=9B=E2=96=90 =E2=96= =90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2= =96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C= =E2=96=90=E2=94=82=E2=96=8C=E2=96=90=E2=96=84=E2=96=8C=E2=96=88=E2=96=90 = =E2=96=90=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2= =96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=8C=E2=96=90=E2=96=80=E2=96=9B=E2=96= =90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90=E2=94=82=E2=94=82 =E2=94=82=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2= =96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90=E2=96=90 =E2=96=90=E2=96=90=E2= =96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96= =90=E2=96=8C=E2=96=88=E2=96=90=E2=94=82=E2=96=8C=E2=96=90=E2=96=80=E2=96=99= =E2=96=9F =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96= =8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2= =96=8C=E2=96=90=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=88=E2=96=90 =E2= =96=90=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96= =8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96= =99=E2=96=9F =E2=96=8C=E2=96=90=E2=94=82=E2=94=82 119.0=E2=94=BC=E2=94=BC=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94= =80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90= =E2=96=90=E2=96=9B=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2= =96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=94= =BC=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90= =E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2= =96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96= =8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=BC=E2=96=8C=E2=96=90=E2=94=80= =E2=96=8C=E2=96=88=E2=96=90=E2=96=84=E2=96=9F=E2=96=90=E2=96=8C=E2=96=88=E2= =96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96= =8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80= =E2=96=8C=E2=96=90=E2=94=BC=E2=94=A4 =E2=94=82=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2= =96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90=E2=96=90=E2=96=8C=E2=96=88=E2= =96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96= =88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=94=82=E2=96=8C=E2=96=90 =E2=96= =8C=E2=96=90 =E2=96=8C=E2=96=90=E2=96=84=E2=96=8C=E2=96=90 =E2=96=8C=E2=96= =90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2= =96=90 =E2=96=8C=E2=96=90=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=88=E2= =96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96= =88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=8C=E2=96=90 =E2=96= =8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90=E2=96=80=E2=94=82 =E2=94=82=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2= =96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90=E2=96=90=E2=96=8C=E2=96=88=E2= =96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=9B=E2=96=90=E2=96=98=E2=96= =88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=94=82=E2=96=8C=E2=96=90 =E2=96= =8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2= =96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 = =E2=96=8C=E2=96=90=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=88=E2=96=90= =E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=9B=E2= =96=90=E2=96=98=E2=96=88=E2=96=90=E2=96=8C=E2=96=8C=E2=96=90 =E2=96=8C=E2= =96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90=E2=94=82=E2=94=82 =E2=94=82=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2= =96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90=E2=96=90=E2=96=8C=E2=96=88=E2= =96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=8C=E2=96=90 =E2=96=88=E2= =96=90=E2=96=98=E2=96=88=E2=96=90=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2= =96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C= =E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96= =8C=E2=96=90=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=88=E2=96=90=E2=96= =8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=8C=E2=96=90= =E2=96=88=E2=96=90=E2=96=98=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C= =E2=96=90 =E2=96=8C=E2=96=90=E2=94=82=E2=94=82 108.5=E2=94=BC=E2=94=BC=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94= =80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90= =E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2= =96=8C=E2=96=90=E2=94=80=E2=96=88=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94= =BC=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90= =E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2= =96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96= =8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=BC=E2=96=8C=E2=96=90=E2=94=80= =E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2= =96=90=E2=96=8C=E2=96=8C=E2=96=90=E2=94=80=E2=96=88=E2=96=90=E2=94=80=E2=96= =8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80= =E2=96=8C=E2=96=90=E2=94=BC=E2=94=A4 =E2=94=82=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2= =96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90=E2=96=90=E2=96=8C=E2=96=88=E2= =96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=8C=E2=96=90 =E2=96=88=E2= =96=90 =E2=96=8C=E2=96=90=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2= =96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 = =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90= =E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88= =E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=8C=E2=96=90 =E2=96=88= =E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96= =8C=E2=96=90=E2=94=82=E2=94=82 =E2=94=82=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2= =96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90=E2=96=90=E2=96=8C=E2=96=88=E2= =96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=8C=E2=96=90 =E2=96=88=E2= =96=90 =E2=96=8C=E2=96=90=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2= =96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 = =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90= =E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88= =E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=8C=E2=96=90 =E2=96=88= =E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96= =8C=E2=96=90=E2=94=82=E2=94=82 =E2=94=82=E2=94=82 =E2=94=82 =E2=96=9D =E2=96=98=E2=96=88=E2= =96=90=E2=96=8C=E2=96=88=E2=96=9D=E2=96=98=E2=96=98=E2=96=9D =E2=96=80=E2= =96=9D =E2=96=98=E2=96=9D=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2= =96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=98=E2=96=9D = =E2=94=82 =E2=94=82 =E2=96=9D=E2=96=90=E2=96=8C=E2=96=88=E2=96= =90=E2=96=8C=E2=96=88=E2=96=9D=E2=96=98=E2=96=98=E2=96=9D =E2=96=80=E2=96= =9D =E2=96=98=E2=96=9D =E2=96=98=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2= =96=90=E2=94=82=E2=94=82 98.0=E2=94=BC=E2=94=BC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=96=9D=E2=96=98=E2=94=BC=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =BC=E2=94=80=E2=94=80=E2=94=80=E2=96=98=E2=96=9D=E2=94=80=E2=96=8C=E2=96=90= =E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=96=80=E2=96=9D=E2=96=98=E2=94=BC=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=BC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=96=98=E2=96=9D=E2=94=80= =E2=96=98=E2=96=9D=E2=94=BC=E2=94=A4 =E2=94=94=E2=94=BC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =BC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=BC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=BC=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=BC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=BC=E2=94=98 2.00 2.11 2.22 2.33 2.44 2.56 2.67 = 2.78 2.89 3.00 After periodic-2968 util_avg =E2=94=8C=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=AC=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=AC=E2=94=90 139.0=E2=94=BC=E2=96=84=E2=96=96=E2=94=80=E2=94=80=E2=96=84=E2=96=84=E2=96= =84=E2=96=84=E2=96=84=E2=96=84=E2=96=96=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =BC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=BC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =96=97=E2=96=84=E2=96=84=E2=96=9F=E2=96=80=E2=96=9B=E2=96=9C=E2=96=80=E2=96= =9B=E2=96=9C=E2=96=84=E2=96=96=E2=94=80=E2=94=BC=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=BC=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=BC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=BC=E2=94=A4 =E2=94=82=E2=94=82=E2=96=9B=E2=96=9C=E2=96=80=E2=96=8C=E2=96=90 =E2=96= =8C=E2=96=90 =E2=96=9B=E2=96=9C=E2=96=80=E2=96=99=E2=96=84 =E2=96=84=E2= =96=9F=E2=96=80=E2=96=9B=E2=96=9C=E2=96=84 =E2=94=82 =E2=94=82= =E2=96=90=E2=96=80=E2=96=9B=E2=96=9C =E2=96=8C=E2=96=90 =E2=96=8C=E2=96= =90 =E2=96=8C=E2=96=90 =E2=96=9B=E2=96=9C=E2=96=80=E2=96=99=E2=96=84 = =E2=94=82 =E2=94=82 =E2=94=82=E2=94=82 =E2=94=82=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2= =96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90=E2=96=80=E2=96=99=E2=96=9F=E2= =96=80=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90=E2=96=90=E2=96=9B=E2=96=88=E2= =96=9C=E2=96=9B=E2=96=88=E2=96=9C=E2=96=9B=E2=96=88=E2=96=9C=E2=96=9B=E2=96= =99=E2=96=84 =E2=94=82 =E2=96=84=E2=96=9E=E2=96=9C =E2=96=8C=E2=96=90 = =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90= =E2=94=82=E2=96=8C=E2=96=90=E2=96=80=E2=96=9B=E2=96=9C =E2=96=84=E2=96= =84=E2=96=84=E2=96=84=E2=96=9F=E2=96=9C=E2=96=9B=E2=96=88=E2=96=9C=E2=96=9B= =E2=96=88=E2=96=9C=E2=96=9B=E2=96=88=E2=96=9C=E2=96=9B=E2=96=88=E2=96=9C=E2= =96=84=E2=96=84=E2=96=84=E2=94=82=E2=94=82 =E2=94=82=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2= =96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C= =E2=96=90 =E2=96=8C=E2=96=90=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C= =E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2= =96=9B=E2=96=88=E2=96=9C=E2=96=9B=E2=96=88=E2=96=9C=E2=96=8C=E2=96=8C=E2=96= =90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2= =96=90 =E2=96=8C=E2=96=90=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90=E2= =96=80=E2=96=9B=E2=96=9C=E2=96=80=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=88=E2= =96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96= =88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=9B= =E2=94=82 128.2=E2=94=BC=E2=94=BC=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94= =80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90= =E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2= =96=90=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96= =8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90= =E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2= =96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96= =8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=BC=E2=96=8C=E2=96=90=E2=94=80= =E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2= =94=80=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96= =88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C= =E2=96=88=E2=96=90=E2=96=8C=E2=94=A4 =E2=94=82=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2= =96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C= =E2=96=90 =E2=96=8C=E2=96=90=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C= =E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2= =96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=8C=E2=96= =90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2= =96=90 =E2=96=8C=E2=96=90=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2= =96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2= =96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96= =8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=94=82 =E2=94=82=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2= =96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C= =E2=96=90 =E2=96=8C=E2=96=90=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C= =E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2= =96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=8C=E2=96= =90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2= =96=90 =E2=96=8C=E2=96=90=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2= =96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2= =96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96= =8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=94=82 117.5=E2=94=BC=E2=94=BC=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94= =80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90= =E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2= =96=90=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96= =8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90= =E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2= =96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96= =8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=BC=E2=96=8C=E2=96=90=E2=94=80= =E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2= =94=80=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96= =88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=9B=E2=96=90=E2=96=98= =E2=96=88=E2=96=90=E2=96=8C=E2=94=A4 =E2=94=82=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2= =96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C= =E2=96=90 =E2=96=8C=E2=96=90=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C= =E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90 = =E2=96=9B=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=8C=E2=96=90 = =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90= =E2=96=8C=E2=96=90=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C= =E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88= =E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2= =96=8C=E2=96=90 =E2=96=9B=E2=96=90=E2=96=8C=E2=94=82 =E2=94=82=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2= =96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C= =E2=96=90 =E2=96=8C=E2=96=90=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C= =E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90 = =E2=96=8C=E2=96=90 =E2=96=9B=E2=96=90=E2=96=8C=E2=96=8C=E2=96=90 =E2=96=8C= =E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96= =8C=E2=96=90=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96= =90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96= =90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=8C= =E2=96=90 =E2=96=8C=E2=96=90=E2=94=82=E2=94=82 =E2=94=82=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2= =96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C= =E2=96=90 =E2=96=8C=E2=96=90=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C= =E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90 = =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90= =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96= =90=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96= =8C=E2=96=90 =E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96= =8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=8C=E2=96=90= =E2=96=8C=E2=96=90=E2=94=82=E2=94=82 106.8=E2=94=BC=E2=94=BC=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94= =80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90= =E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2= =96=90=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=9B=E2=96=90=E2=96= =8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=94=80=E2=96=8C=E2=96=90= =E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2= =96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96= =8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=BC=E2=96=8C=E2=96=90=E2=94=80= =E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2=94=80=E2=96=8C=E2=96=90=E2= =94=80=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96= =9B=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=8C=E2=96=90=E2=94=80= =E2=96=8C=E2=96=90=E2=94=BC=E2=94=A4 =E2=94=82=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2= =96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C= =E2=96=90 =E2=96=8C=E2=96=90=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C= =E2=96=8C=E2=96=90=E2=94=82=E2=96=8C=E2=96=90=E2=96=8C=E2=96=88=E2=96=90 = =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90= =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96= =90=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96= =8C=E2=96=90 =E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96= =8C=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90=E2=96=98=E2=96=8C=E2=96=90 =E2=96= =8C=E2=96=90=E2=94=82=E2=94=82 =E2=94=82=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2= =96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C= =E2=96=90 =E2=96=8C=E2=96=90=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C= =E2=96=8C=E2=96=90=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C= =E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96= =98=E2=96=9D =E2=96=98 =E2=96=9D =E2=96=8C=E2=96=90=E2=94=82=E2=96=8C=E2= =96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C= =E2=96=88=E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=8C=E2=96=90 = =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90=E2=94=82=E2=94=82 =E2=94=82=E2=94=82 =E2=94=82 =E2=96=9D =E2=96=98=E2=96=90 = =E2=96=98=E2=94=82 =E2=96=98=E2=96=80=E2=96=9D=E2=96=98=E2=96=98=E2=96= =9D=E2=94=82=E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96= =8C=E2=96=90 =E2=96=8C=E2=96=9D =E2=94=82 =E2=94=82 =E2=96=9D = =E2=96=98=E2=96=9D =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=90 =E2=96=8C=E2=96=9C= =E2=96=90=E2=96=8C=E2=96=88=E2=96=90=E2=96=8C=E2=96=98=E2=96=9D =E2=96=98= =E2=96=9D =E2=96=98=E2=96=90 =E2=96=8C=E2=96=90=E2=94=82=E2=94=82 96.0=E2=94=BC=E2=94=BC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=96=9D=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =BC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=96=9D=E2=94=80=E2=96=98=E2=96=9D= =E2=94=80=E2=96=98=E2=96=90=E2=94=80=E2=96=98=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=96=98=E2=96=90=E2=94=80=E2=96=98=E2=96=9D=E2= =94=80=E2=96=98=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=BC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=96=98=E2=94=80=E2=94=BC=E2=94=A4 =E2=94=94=E2=94=BC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =BC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=BC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=BC=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=BC=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=BC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=BC=E2=94=98 2.00 2.11 2.22 2.33 2.44 2.56 2.67 = 2.78 2.89 3.00 Also the new util_est periodic detection logic can be thrown off by this variation. With this fix it now stabilizes pretty well. Before periodic-2977 util_est.enqueued running =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=90 157.0=E2=94=A4 =E2=96=99=E2=96=84 =E2=96=97=E2=96=84 =E2=96= =97=E2=96=84=E2=96=84=E2=96=84 =E2=96=97=E2=96=84 =E2=96=97=E2=96=84=E2=96= =84=E2=96=84=E2=96=97=E2=96=84=E2=96=84 =E2=96=97=E2=96=84=E2=96=84=E2=96= =96 =E2=96=84 =E2=96=84=E2=96=84=E2=96=84 =E2=96=84 =E2=96=84=E2=96=96= =E2=96=96 =E2=96=84=E2=96=84=E2=96=84=E2=96=84=E2=96=84=E2=96=96=E2=96=96= =E2=96=9D=E2=96=99=E2=96=84=E2=96=84=E2=96=84=E2=96=84=E2=96=84=E2=96=84=E2= =96=96 =E2=96=97=E2=96=84 =E2=94=82 119.5=E2=94=A4 =E2=96=97=E2=96=84=E2=96=8C=E2=96=98=E2=96=80=E2= =96=80 =E2=96=80=E2=96=80=E2=96=80 =E2=96=9D=E2=96=80=E2=96=80=E2=96=98=E2= =96=9D=E2=96=80=E2=96=80=E2=96=80 =E2=96=9D=E2=96=80=E2=96=98 =E2=96=9D=E2= =96=80=E2=96=80=E2=96=98 =E2=96=80=E2=96=9D=E2=96=80=E2=96=98=E2=96=80=E2= =96=80=E2=96=80=E2=96=98=E2=96=9D=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96= =80=E2=96=80=E2=96=80=E2=96=98=E2=96=9D=E2=96=9D=E2=96=80=E2=96=80 =E2=96= =80 =E2=96=9D=E2=96=9D=E2=96=80 =E2=96=80 =E2=96=80=E2=96=80=E2=96=80= =E2=96=80 =E2=94=82 82.0=E2=94=A4 =E2=96=9F = =E2=94=82 =E2=94=82 =E2=96=8C = =E2=94=82 44.5=E2=94=A4 =E2=96=8C = =E2=94=82 7.0=E2=94=A4 =E2=96=97 =E2=96=97=E2=96=96 =E2=96=8C = =E2=94=82 =E2=94=94=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=AC=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=AC=E2=94=98 0.00 0.65 1.30 1.95 2.60 3.25 3.90 = 4.56 5.21 5.86 After periodic-2968 util_est.enqueued running =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=90 139.0=E2=94=A4 =E2=96=97=E2=96=9F=E2=96=80=E2=96=80=E2=96=80= =E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2= =96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96= =80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80= =E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2= =96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96= =80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80= =E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2= =96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96=80=E2=96= =80=E2=96=80=E2=96=80=E2=96=80 =E2=94=82 106.5=E2=94=A4 =E2=96=90=E2=96=9B = =E2=94=82 74.0=E2=94=A4 =E2=96=9F = =E2=94=82 =E2=94=82 =E2=96=8C = =E2=94=82 41.5=E2=94=A4 =E2=96=8C = =E2=94=82 9.0=E2=94=A4 =E2=96=97=E2=96=96 =E2=96=97=E2=96=8C = =E2=94=82 =E2=94=94=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=AC=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=AC=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=AC=E2=94=98 0.00 0.65 1.30 1.95 2.60 3.25 3.90 = 4.55 5.20 5.85 Signed-off-by: Qais Yousef --- I tried to do the update every 256us intead of every period, but this didn't help to flatten util_est. If doing the update always is too much, AND, I didn't miss something else t= hat could be contributing to this problem, would another sched feature to allow those who want accuracy vs those who want minimal overhead take their pick? kernel/sched/pelt.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/kernel/sched/pelt.c b/kernel/sched/pelt.c index dbd450798b03..64f9e60023a9 100644 --- a/kernel/sched/pelt.c +++ b/kernel/sched/pelt.c @@ -224,8 +224,7 @@ ___update_load_sum(u64 now, struct sched_avg *sa, * Step 1: accumulate *_sum since last_update_time. If we haven't * crossed period boundaries, finish. */ - if (!accumulate_sum(delta, sa, load, runnable, running)) - return 0; + accumulate_sum(delta, sa, load, runnable, running); =20 return 1; } --=20 2.34.1