Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4171362pxj; Tue, 8 Jun 2021 08:05:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyghx5SCgYnzs01zVDBX/PwMA0TVeX8FTNlqOgtIxtCXI2RSmhMBKe6jP7X8BDCk2HpqjvK X-Received: by 2002:a17:906:308d:: with SMTP id 13mr23366554ejv.554.1623164728349; Tue, 08 Jun 2021 08:05:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1623164728; cv=none; d=google.com; s=arc-20160816; b=dBu7i4cuzc65y/4UqjOe9Ox/WRhT7XhRuRRLg/AK1nfky5PXp3AjC9dOw1aQwh0eNH JUJQzQe2Jrbg92nhjxRUbb2q4trH9KQPf1JIFGOV0mcG/Ed1zhJVkZL2tsU5vOjSdjTo Pzq9Ad5WvGu21JfKsMeusSEVIwSvCbWzfB4lAM0x0algze1vPp1xwFWQoSleHfLhe+7r 6uLHIH0BVJH7M5v/rGKVDiYogop7KPDGXAkDVQt7CHOU42GP//hyEtgTVG/9K3vrBAFj 66gOXfGDGI0HvVYiKIv1nLfRMbpuMcG+gmudh8zbF4dqDYB6ckwVNfZ3E5Wvc9laoNKN 7IHA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=p2VVI+QZ/E3Qyy8TJRSVbuUnoyJN14Hx4Ij/Bt7TFZ0=; b=aWvbzuU6pQ+dJ711j32G+MSdNLFs64pdNrN7TkZhXgzxm+Ral6oZeLfI+Zb4CqiRXM iowD0252480PR6Lcv4dAKgkF6VORriTZaZ/XDb+HiKzjqFnghIuttUxu4bLN8gl74cOU fUlQppDFVM5EiB2wAsRr2jKUMpZsJzjCM2OeyINlVbX6geoFalwzLVaoUPOKRIiQuPM7 dLGH+ggkeXp9qIHD1T86KA2euTEPKVyMdLYT2tMpcX38O281JV3B3Cbg8i+QN7yE/HgM 0VDobfb5OCYW4G9rGq6+qJqgQ+TkBOCmSAfDc/DfuYyCWx50cOphYu63CUTxCGMfVfKC uwmw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=NtPeiiCF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id c15si7832622edr.280.2021.06.08.08.05.03; Tue, 08 Jun 2021 08:05:28 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=NtPeiiCF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233744AbhFHPFR (ORCPT + 99 others); Tue, 8 Jun 2021 11:05:17 -0400 Received: from mail-lj1-f176.google.com ([209.85.208.176]:40863 "EHLO mail-lj1-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233749AbhFHPFP (ORCPT ); Tue, 8 Jun 2021 11:05:15 -0400 Received: by mail-lj1-f176.google.com with SMTP id x14so13086057ljp.7 for ; Tue, 08 Jun 2021 08:03:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=p2VVI+QZ/E3Qyy8TJRSVbuUnoyJN14Hx4Ij/Bt7TFZ0=; b=NtPeiiCFzMemTwNzl2g3QiStSH+uSTKt6LlgtxDcMJpyWXIY0iTJDln/ehfFnKJzLH 5Vhqrtw84xLPbaTAQRPVjDJ7zJHlWwZx5+8aA22O3Ivv5WmtQLEaMMtUp/oHXsI7F/TT kanMvxKisPu25mRhwoMs/aAFA2WRWlD9NnhGCMKXkmuA3ply/eW8E8Qlc01ELP1cx8aC irf9TW4zAXD359SBe77Czf6fqBV8b3FgodL8bZ4vLuwKzNz7WeUEg0zW5nchATEwQ5su /5HXnx9JgkhjykuUOfEgRtCABcIe5w9FSM9a4s8WIyC8zMt8H7MslnebalNHnvnWuNOm yPdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=p2VVI+QZ/E3Qyy8TJRSVbuUnoyJN14Hx4Ij/Bt7TFZ0=; b=lqPzQXE5nMfCGGwMYGxbG/9bDptmDJjzfJ3iiF5V6zb0r+P/LDOdcYU9QK7yOHjDqk RgNUV17Ces7CusGzkXlYK2eoK3eadOD1gNOeDhd2guVI/SedMfcxg6mDR1fYNTkhdfGj iA0hDihUJ0IpDdgKNfVC7pZaM9lhUugkKo5uU+LoXA50txjDGce6GW7vvvtUzD/6lhOG IRIR4a+7c7FEY0CDbzE6JeQ/R3KrD7Um/SvWkWxIZI3bN+UYD6XmqPHot1DeP30CyIvz uCvkxF59+qtQI9iFAJ4YLPggMaV5/A5HTunUPilelgrVoIFoXUDqd0htAJd86Mew/333 zbiQ== X-Gm-Message-State: AOAM5318x0MMIOnryj8/QEzpp2a1R7OnIJr/I/Q/xdhoScGrADY1Un7r AQJNkEPYRgWvJkFnqUkfsZW8CFEu+Ncp6VYz3Bo= X-Received: by 2002:a2e:a717:: with SMTP id s23mr18625093lje.282.1623164530255; Tue, 08 Jun 2021 08:02:10 -0700 (PDT) MIME-Version: 1.0 References: <20210602123803.15738-1-xuewen.yan94@gmail.com> <20210604160839.2op4ak75vle3gmt3@e107158-lin.cambridge.arm.com> <20210605114908.mqfsip5pskamls6k@e107158-lin.cambridge.arm.com> <20210607134902.nlgvqtzj35rhjg7x@e107158-lin.cambridge.arm.com> <20210608142554.tbiu2s5qnwflmk27@e107158-lin.cambridge.arm.com> In-Reply-To: <20210608142554.tbiu2s5qnwflmk27@e107158-lin.cambridge.arm.com> From: Xuewen Yan Date: Tue, 8 Jun 2021 23:01:59 +0800 Message-ID: Subject: Re: [PATCH] sched/uclamp: Avoid setting cpu.uclamp.min bigger than cpu.uclamp.max To: Qais Yousef Cc: Quentin Perret , Ingo Molnar , Peter Zijlstra , Juri Lelli , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Benjamin Segall , Mel Gorman , Daniel Bristot de Oliveira , linux-kernel , Chunyan Zhang , Ryan Y , Patrick Bellasi , tj@kernel.org Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi On Tue, Jun 8, 2021 at 10:25 PM Qais Yousef wrote: > > --->8--- > > diff --git a/kernel/sched/core.c b/kernel/sched/core.c > index 9e9a5be35cde..1d2d3e6648a6 100644 > --- a/kernel/sched/core.c > +++ b/kernel/sched/core.c > @@ -1403,38 +1403,28 @@ static void uclamp_sync_util_min_rt_default(void) > static inline struct uclamp_se > uclamp_tg_restrict(struct task_struct *p, enum uclamp_id clamp_id) > { > - struct uclamp_se uc_req = p->uclamp_req[clamp_id]; > + /* Copy by value as we could modify it */ > + struct uclamp_se uc_eff = p->uclamp_req[clamp_id]; > #ifdef CONFIG_UCLAMP_TASK_GROUP > + unsigned long tg_min, tg_max, value; > > /* > * Tasks in autogroups or root task group will be > * restricted by system defaults. > */ > if (task_group_is_autogroup(task_group(p))) > - return uc_req; > + return uc_eff; > if (task_group(p) == &root_task_group) > - return uc_req; > + return uc_eff; > > - switch (clamp_id) { > - case UCLAMP_MIN: { > - struct uclamp_se uc_min = task_group(p)->uclamp[clamp_id]; > - if (uc_req.value < uc_min.value) > - return uc_min; > - break; > - } > - case UCLAMP_MAX: { > - struct uclamp_se uc_max = task_group(p)->uclamp[clamp_id]; > - if (uc_req.value > uc_max.value) > - return uc_max; > - break; > - } > - default: > - WARN_ON_ONCE(1); > - break; > - } > + tg_min = task_group(p)->uclamp[UCLAMP_MIN].value; > + tg_max = task_group(p)->uclamp[UCLAMP_MAX].value; > + value = uc_eff.value; > + value = clamp(value, tg_min, tg_max); > + uclamp_se_set(&uc_eff, value, false); Is it reasonable to set user_defined to be false here? > #endif > > - return uc_req; > + return uc_eff; > } > > /* > @@ -1661,8 +1651,7 @@ uclamp_update_active(struct task_struct *p, enum uclamp_id clamp_id) > > #ifdef CONFIG_UCLAMP_TASK_GROUP > static inline void > -uclamp_update_active_tasks(struct cgroup_subsys_state *css, > - unsigned int clamps) > +uclamp_update_active_tasks(struct cgroup_subsys_state *css) > { > enum uclamp_id clamp_id; > struct css_task_iter it; > @@ -1670,10 +1659,8 @@ uclamp_update_active_tasks(struct cgroup_subsys_state *css, > > css_task_iter_start(css, 0, &it); > while ((p = css_task_iter_next(&it))) { > - for_each_clamp_id(clamp_id) { > - if ((0x1 << clamp_id) & clamps) > - uclamp_update_active(p, clamp_id); > - } > + for_each_clamp_id(clamp_id) > + uclamp_update_active(p, clamp_id); > } > css_task_iter_end(&it); > } > @@ -9626,7 +9613,7 @@ static void cpu_util_update_eff(struct cgroup_subsys_state *css) > } > > /* Immediately update descendants RUNNABLE tasks */ > - uclamp_update_active_tasks(css, clamps); > + uclamp_update_active_tasks(css); > } > } Would you resend another email? maybe it would be better to resend an email with a new subject? BR xuewen