From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 13478C2BA12 for ; Sat, 16 Sep 2023 19:57:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232530AbjIPT4g (ORCPT ); Sat, 16 Sep 2023 15:56:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49238 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239298AbjIPT4V (ORCPT ); Sat, 16 Sep 2023 15:56:21 -0400 Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DC8FF1AB for ; Sat, 16 Sep 2023 12:56:15 -0700 (PDT) Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-40434d284f7so33302795e9.3 for ; Sat, 16 Sep 2023 12:56:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=layalina-io.20230601.gappssmtp.com; s=20230601; t=1694894174; x=1695498974; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=aSRNOnwEQsZZMI8EIIn71RrWo2EfMJ2ZTlOi8DC8epM=; b=sWzvC+xkAN09tmwdn6sxPM0OVO0vljZhyxtomJn1osWFSKmzTJuqgxBT2TBHcpQRw9 hW2RvbnCSD1YM1B8k7trfhP/FbB2aZrD2jn8b28VgIVaSrgiM2IkUNny5OxZ6adq2F/y Cj3Om6daiJmYS2k3MepSPdr6ZzTAO6mBeSP/qQ5JOF9fZRsFaYsVwvCWd1mXh9lOI/GX 18tklEl9/cp5rmDh6YdxMK7l5SR1Bx1M8ZA53q9qETC2YilPOfLdME1fQBk35hEV8HbZ uR2YKwSpoVfB1v2Yv45bcXCU2jYB31mrBBs/EbEyXglPkSnIioNJkJXyeP1yE/uNdX+l SBiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694894174; x=1695498974; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=aSRNOnwEQsZZMI8EIIn71RrWo2EfMJ2ZTlOi8DC8epM=; b=txieg9aUI7GU6ptfi+6Hkelr2HUDGOMizFXhjq69dwydC8n1mGHRwLULzapIkrF7fe u99tIdZl/osCdlJZGFDmQI3PJGn/cujp1OfP9DvSHlOUibNBj87nM9ryntt7uBJgn5xh e6Rk8Jzihxbwz9VQHtVht1nnBQ2A0Fa8JqanpVCQM5w0g3agvVWgIdcU+dgvj2QhnFd9 Kc2zc3UH0Cx9iMJ0Tx9nbY+/0TSToZVtN8gfpGyYInHCUYb6Es6pqVZWNF/gmnXZkSVy R937m7OcCznTG4MQYXwu/RKoAkJr9PmmDlPSCxVmAhh6T99RIVvf4qE9/MRiXLt6iANz rD/w== X-Gm-Message-State: AOJu0YxcL3nVIIlqMplrzqaQdW025HdKFMyfwVnQrr02QOWKGFf3zL5H +iH6TeXum7V1DBw0QAKAn3/rmw== X-Google-Smtp-Source: AGHT+IHgp1hQiDf9gp1gYjKMJGj/hOQySUq6hZIOAS8Yr9MgEmNAohUdVy/Yuq7EBhnq10tLrd8GMw== X-Received: by 2002:a7b:c4cb:0:b0:401:b53e:6c56 with SMTP id g11-20020a7bc4cb000000b00401b53e6c56mr5131086wmk.3.1694894174399; Sat, 16 Sep 2023 12:56:14 -0700 (PDT) Received: from airbuntu (host109-151-228-137.range109-151.btcentralplus.com. [109.151.228.137]) by smtp.gmail.com with ESMTPSA id w4-20020a5d6804000000b003197efd1e7bsm7990039wru.114.2023.09.16.12.56.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 16 Sep 2023 12:56:13 -0700 (PDT) Date: Sat, 16 Sep 2023 20:56:12 +0100 From: Qais Yousef To: Hongyan Xia Cc: Ingo Molnar , Peter Zijlstra , "Rafael J. Wysocki" , Viresh Kumar , Vincent Guittot , Dietmar Eggemann , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, Lukasz Luba Subject: Re: [RFC PATCH 2/7] sched/pelt: Add a new function to approximate runtime to reach given util Message-ID: <20230916195612.n7iukjkdjl3dzyxt@airbuntu> References: <20230827233203.1315953-1-qyousef@layalina.io> <20230827233203.1315953-3-qyousef@layalina.io> <3fc888d4-fc18-7947-0541-9dc42892c071@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <3fc888d4-fc18-7947-0541-9dc42892c071@arm.com> Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org On 09/15/23 10:15, Hongyan Xia wrote: > On 28/08/2023 00:31, Qais Yousef wrote: > > 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 (Google) > > --- > > 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 50322005a0ae..f673b9ab92dc 100644 > > --- a/kernel/sched/pelt.c > > +++ b/kernel/sched/pelt.c > > @@ -487,3 +487,24 @@ unsigned long approximate_util_avg(unsigned long util, u64 delta) > > return sa.util_avg; > > } > > + > > +/* > > + * Approximate the required amount of runtime in ms required to reach @util. > > + */ > > +u64 approximate_runtime(unsigned long util) > > +{ > > + struct sched_avg sa = {}; > > + u64 delta = 1024; // period = 1024 = ~1ms > > + u64 runtime = 0; > > + > > + if (unlikely(!util)) > > + return runtime; > > + > > + while (sa.util_avg < util) { > > + accumulate_sum(delta, &sa, 0, 0, 1); > > This looks a bit uncomfortable as the existing comment says that we assume: > > if (!load) > runnable = running = 0; > > I haven't looked at the math in detail, but if this is okay, maybe a comment > saying why this is okay despite the existing comment says otherwise? Yeah as Dietmar highlighted I should pass 1 for load and it was my bad misreading the code. So it should be accumulate_sum(delta, &sa, 1, 0, 1); If that's what you meant, yes. Thanks! -- Qais Yousef