Received: by 2002:a25:7ec1:0:0:0:0:0 with SMTP id z184csp4204571ybc; Fri, 15 Nov 2019 00:17:05 -0800 (PST) X-Google-Smtp-Source: APXvYqzLnKvFUgB2noRwZLb/1Fo3I2Xa0StV1njOC/eq19iQgiCjGgoPsLwVjSl6NsVuz8uJaT/O X-Received: by 2002:a17:906:5e05:: with SMTP id n5mr12026598eju.116.1573805825891; Fri, 15 Nov 2019 00:17:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1573805825; cv=none; d=google.com; s=arc-20160816; b=C+uw8SJsL1/rBSu6/EmE7vRetFCMn94nZq4ffS7lTkiHHxxUtfxkCOmzuHv2FYsK1O 2EvFfWmrEwGvfWyRLOnay5BB0M8rJikXq6qwlehLxF0wJaIIJ+PfMSQKDCfb9FZJSfXd CJJShelNVAEKFKMXO2getEzVNpFcvCp3bVrd49SOO4ONH824Cd1LPAvtgDstgS5DyE7W NDtWT+gh2JfPfw1HDvncxXNpelSr8fbC+B98fZ9ZrDenyS+qNXnzHEzewuuoSzF31z2F mF/2uEN+XoMFHX8HWvHBfPniA7Y7YE2jZ/qM1k6F/mtXSpn5G2R/AeD+hLxJa+4fP2Ne 1CaA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=GTuooXfeRJCn+Le2dc6w/geRWvuq4bPUY6baj5P3vh8=; b=XI7bXFaNdcgsRPYdIKSgjJMG0DEWFqZodCgVNM6fLMsE9KYpblC2xXPPMJ4SmDIFhJ 81Qb/Zw1Aq4GC1VGeFzKG46qXBa6Zdnd+nEMDs9lEp8n5+HscRnosWYy3Ap8oMDQZzWQ eig79oZIE3u/QjuwlVc8ttMnnBOszmyMKStleZJObgZzT5t06hJ2lawgMuvr4J84vAeM tcSCEZ40eOfwEA+FCgh0bAYutBlbFXnHbl+G7pa3WrB+eIEwdwc3LzOr3igJJV/weKTO qpb6iBQ/WkGb3NoH/Z7aTIHmlT5a8egZdVZhsvy9NreyNlyY+G5p5Pd9w7M10TTD453i fjNA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=tMPTru0V; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z37si5869431edz.281.2019.11.15.00.16.41; Fri, 15 Nov 2019 00:17:05 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=tMPTru0V; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727503AbfKOINM (ORCPT + 99 others); Fri, 15 Nov 2019 03:13:12 -0500 Received: from mail-lf1-f66.google.com ([209.85.167.66]:35406 "EHLO mail-lf1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726605AbfKOINL (ORCPT ); Fri, 15 Nov 2019 03:13:11 -0500 Received: by mail-lf1-f66.google.com with SMTP id i26so7353957lfl.2 for ; Fri, 15 Nov 2019 00:13:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=GTuooXfeRJCn+Le2dc6w/geRWvuq4bPUY6baj5P3vh8=; b=tMPTru0VmkKgO4TtmWounwu7MnPwXGtKmiDlCwMqoo4HV0v3hCnQEQIdLRJlwdH0hN TYCejypUBj5umj4BlavTWpbHIwAtZ/XcBIZlO/t+2YlPcm+IwO7JAfYxOXyloaHWjiiU VliwE5H6VKtPhgKES2ZwR9+hvOrsybdFTEV76B+8W0OychwR9lGseeBBiiitbKcaTJNn BgsdOVpJumkfx70X2PPoBUARE6VzwVtJ4An7JdFCdhBidnameUZR9BiAE9QE2uuagVE3 dZoqb2/RKtJYpzC3PT+D/fMZdPZRyQ+Jdtd8mfBLSksgXYuKyP2aaTBqaajuIvdA2H0g ySwg== 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=GTuooXfeRJCn+Le2dc6w/geRWvuq4bPUY6baj5P3vh8=; b=Th2p+qL8YvHuAqxhL5dl7azDls0BVFldxUtaLZ86qe0+7O+qBGKQUpSzWthBwNXjwD APTXyM2ZAC/laHbqXxZKm0vzrrBZGIXncmeXk99Qw0ZVtnmodcd1ZTF5ty8NWE7U0oRN MgGl4vpXTpFQjCteXuGu8MTWra2AV/cktCI1D/ahA2bnO3DWdcUA3rcAtIVXefH83HhM Oxg5nxIBRUpvdOBm6i4uU0GDCsIqqLpcy6mwfMwDtbT7/Z9YT1HAL6biwGYtn+hXHPeC ok/Rn5+dfWfjoEjHiCe03f3j1CUSJeRpnn6SPYmyHQZUFBFra100oPQVDmlb+7g2z4bi Tt/w== X-Gm-Message-State: APjAAAWtyj1bd9/QHYJ22s2wJsb0linos6enlaMH/7qSGWH3e5yjeJYf LuDHlS+C1r5XHBi4XE2fi7KbqKTl5gnH9HcYbWsu3g== X-Received: by 2002:a19:ed12:: with SMTP id y18mr9899503lfy.151.1573805590014; Fri, 15 Nov 2019 00:13:10 -0800 (PST) MIME-Version: 1.0 References: <20191113165334.14291-1-valentin.schneider@arm.com> In-Reply-To: <20191113165334.14291-1-valentin.schneider@arm.com> From: Vincent Guittot Date: Fri, 15 Nov 2019 09:12:58 +0100 Message-ID: Subject: Re: [PATCH] sched/uclamp: Fix overzealous type replacement To: Valentin Schneider Cc: linux-kernel , Ingo Molnar , Peter Zijlstra , Dietmar Eggemann , Tejun Heo , Patrick Bellasi , Suren Baghdasaryan , Quentin Perret Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 13 Nov 2019 at 17:55, Valentin Schneider wrote: > > Some uclamp helpers had their return type changed from 'unsigned int' to > 'enum uclamp_id' by commit > > 0413d7f33e60 ("sched/uclamp: Always use 'enum uclamp_id' for clamp_id values") > > but it happens that some *actually* do return an unsigned int value. Those > are the helpers that return a utilization value: uclamp_rq_max_value() and > uclamp_eff_value(). Fix those up. > > Note that this doesn't lead to any obj diff using a relatively recent > aarch64 compiler (8.3-2019.03). The current code of e.g. uclamp_eff_value() > already figures out that the return value is 11 bits (bits_per(1024)) and > doesn't seem to do anything funny. I'm still marking this as fixing the > above commit to be on the safe side. > > Fixes: 0413d7f33e60 ("sched/uclamp: Always use 'enum uclamp_id' for clamp_id values") > Signed-off-by: Valentin Schneider > --- > kernel/sched/core.c | 4 ++-- > kernel/sched/sched.h | 2 +- > 2 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/kernel/sched/core.c b/kernel/sched/core.c > index 513a4794ff36..71a45025cd2e 100644 > --- a/kernel/sched/core.c > +++ b/kernel/sched/core.c > @@ -853,7 +853,7 @@ static inline void uclamp_idle_reset(struct rq *rq, enum uclamp_id clamp_id, > } > > static inline > -enum uclamp_id uclamp_rq_max_value(struct rq *rq, enum uclamp_id clamp_id, > +unsigned int uclamp_rq_max_value(struct rq *rq, enum uclamp_id clamp_id, > unsigned int clamp_value) > { > struct uclamp_bucket *bucket = rq->uclamp[clamp_id].bucket; > @@ -918,7 +918,7 @@ uclamp_eff_get(struct task_struct *p, enum uclamp_id clamp_id) > return uc_req; > } > > -enum uclamp_id uclamp_eff_value(struct task_struct *p, enum uclamp_id clamp_id) > +unsigned int uclamp_eff_value(struct task_struct *p, enum uclamp_id clamp_id) > { > struct uclamp_se uc_eff; > And static inline enum uclamp_id uclamp_none(enum uclamp_id clamp_id) ? Should it be fixed as well as it can return SCHED_CAPACITY_SCALE ? > diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h > index 05c282775f21..280a3c735935 100644 > --- a/kernel/sched/sched.h > +++ b/kernel/sched/sched.h > @@ -2300,7 +2300,7 @@ static inline void cpufreq_update_util(struct rq *rq, unsigned int flags) {} > #endif /* CONFIG_CPU_FREQ */ > > #ifdef CONFIG_UCLAMP_TASK > -enum uclamp_id uclamp_eff_value(struct task_struct *p, enum uclamp_id clamp_id); > +unsigned int uclamp_eff_value(struct task_struct *p, enum uclamp_id clamp_id); > > static __always_inline > unsigned int uclamp_util_with(struct rq *rq, unsigned int util, > -- > 2.22.0 >