Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp560398imm; Mon, 21 May 2018 10:20:36 -0700 (PDT) X-Google-Smtp-Source: AB8JxZosTSCiXwVZTDEmpdCZxpgIXlvJphbce5I4AKn9SokC2L/RwuiE7zFh3AZZjia+tqIricUE X-Received: by 2002:a63:b25a:: with SMTP id t26-v6mr7846124pgo.174.1526923236255; Mon, 21 May 2018 10:20:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526923236; cv=none; d=google.com; s=arc-20160816; b=norcWb+D+FnjiZVvxT080YjIXqwttw/Gg972mhjesXfQ1/ZwkrI+NRs/mutuf5xHTt h5m4bFvwTlK5R8HmkkCge6HfJSuhF7BT19+rV5PkgXKEq9TF0v/fzPux2AwbNYkXP02i TOg/5Rz09PmMDJguoaNAa5B7QgciZTvTnTuwZFQYH7Zeq2FTUyWxYYybWEYrEfe+tBpe 7u1NhpBpcbnrqDAkEk3wYYK15+mnZ2hTsRv00EY18tHrrg/CvfIADVeK+eH1rcGqADv9 OoTfapoAegveI+Vn//a0BrIKxEwpn2Q/sJtWOQWkGocSTqr8VK+VHBz/cyW8t0qkFM1J PfiQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature:arc-authentication-results; bh=tHkcQa6ZaxWbmU0xjt3mhhQoo9x85aP0p4XNd0Cmhy0=; b=GRqTtPnD+AZezT8kHD2hnnwmtLx2LhxHoxPbGxopbH1nBc3D97xn9B09uzzMcbu8Kp YnlNPBTYNtkmKr8fNNRcmDCtW9XlVwZ5CPP/CxvB3MhLK9udHdL9z4w+9q3MQk9SGI/t cqLkahNHoBMZlSZgaerwtAEw8CB99Ze1/deEe0SVGOvW1o0ATeJU321r/plDJ1dtllem P4uUjwVscbILE9HccKXqjpyFdR36vvOxM27fZTlAoDjO/GujBxNsa/vTlpthbuaZe2ZL Q89kxscgO9bIDQ+sD59qOZNT6om82QfC+IBJWYH3OEv0K3cLUPJMRYK5wyfSbdNpPfxq /3OQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@joelfernandes.org header.s=google header.b=k5efPQFu; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k185-v6si14267666pfc.361.2018.05.21.10.20.21; Mon, 21 May 2018 10:20:36 -0700 (PDT) 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=@joelfernandes.org header.s=google header.b=k5efPQFu; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753241AbeEURUF (ORCPT + 99 others); Mon, 21 May 2018 13:20:05 -0400 Received: from mail-pf0-f196.google.com ([209.85.192.196]:43439 "EHLO mail-pf0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753031AbeEURUD (ORCPT ); Mon, 21 May 2018 13:20:03 -0400 Received: by mail-pf0-f196.google.com with SMTP id j20-v6so7399620pff.10 for ; Mon, 21 May 2018 10:20:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=joelfernandes.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=tHkcQa6ZaxWbmU0xjt3mhhQoo9x85aP0p4XNd0Cmhy0=; b=k5efPQFu/zYbIUxhD3gzxovfiehDIC4rXNwVw8oLUlAV0O07x0XqJsxn1ofbGea8zp zMexZWUOTB2cWO+cycSNcQdtgqieueuIQgtQB2t/m8h79/2JcqHodmscLsUoeLF4xwOp UxnGkM/jv7IQTIU9G1v5OUi936iouOxbF8BWc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=tHkcQa6ZaxWbmU0xjt3mhhQoo9x85aP0p4XNd0Cmhy0=; b=A6jEW1RIti5B528u1ngQn538QtiX4pGSkUVUK7DGS3ck/fWpMhtMVu6xI/tAkbk/tT 6mhGb0D3q8zmWc05O8HlKgIDWwRKTVeXoZo3REpObmIg2wYrqxlG9rjFxeWgPrFu46+E vmTdgeJLWh2h+KrhNdAqPhlSxTD9Ww04A7s9ABM+iCidRrU0oEKXNuf0/iJDf2m0bkRP UKoJN8bnnhuzlwxEs5GPF/RvlAbCytzyyAo+NTAHg1qCv1RmDCeXGFe/jqq2gdiXIf+3 NJKGydhFnLCbXZwamv1WhIWv9Qmm5EMhbOywiYZBn6DMNaEiXwE/ZJcGrvX2yVvmj0rA f4HQ== X-Gm-Message-State: ALKqPwcMlcw3VfMv4U2HBfjI+0WxOoDpSy2z9Bg/qktHczRTfD/E2Cpg WIyFXHlOZlfsSQTvl2rNDHZdBw== X-Received: by 2002:a62:7682:: with SMTP id r124-v6mr20741295pfc.80.1526923202948; Mon, 21 May 2018 10:20:02 -0700 (PDT) Received: from localhost ([2620:0:1000:1600:3122:ea9c:d178:eb]) by smtp.gmail.com with ESMTPSA id k1-v6sm19211710pgt.88.2018.05.21.10.20.02 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 21 May 2018 10:20:02 -0700 (PDT) Date: Mon, 21 May 2018 10:20:01 -0700 From: Joel Fernandes To: Patrick Bellasi Cc: "Joel Fernandes (Google.)" , linux-kernel@vger.kernel.org, Viresh Kumar , "Rafael J . Wysocki" , Peter Zijlstra , Ingo Molnar , Juri Lelli , Luca Abeni , Todd Kjos , claudio@evidence.eu.com, kernel-team@android.com, linux-pm@vger.kernel.org Subject: Re: [PATCH v2] schedutil: Allow cpufreq requests to be made even when kthread kicked Message-ID: <20180521172001.GA21678@joelaf.mtv.corp.google.com> References: <20180518185501.173552-1-joel@joelfernandes.org> <20180521105055.GQ30654@e110439-lin> <20180521154957.GA14065@joelaf.mtv.corp.google.com> <20180521170050.GT30654@e110439-lin> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180521170050.GT30654@e110439-lin> User-Agent: Mutt/1.9.2 (2017-12-15) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Patrick, On Mon, May 21, 2018 at 06:00:50PM +0100, Patrick Bellasi wrote: > On 21-May 08:49, Joel Fernandes wrote: > > On Mon, May 21, 2018 at 11:50:55AM +0100, Patrick Bellasi wrote: > > > On 18-May 11:55, Joel Fernandes (Google.) wrote: > > > > From: "Joel Fernandes (Google)" > > > > > > > > Currently there is a chance of a schedutil cpufreq update request to be > > > > dropped if there is a pending update request. This pending request can > > > > be delayed if there is a scheduling delay of the irq_work and the wake > > > > up of the schedutil governor kthread. > > > > > > > > A very bad scenario is when a schedutil request was already just made, > > > > such as to reduce the CPU frequency, then a newer request to increase > > > > CPU frequency (even sched deadline urgent frequency increase requests) > > > > can be dropped, even though the rate limits suggest that its Ok to > > > > process a request. This is because of the way the work_in_progress flag > > > > is used. > > > > > > > > This patch improves the situation by allowing new requests to happen > > > > even though the old one is still being processed. Note that in this > > > > approach, if an irq_work was already issued, we just update next_freq > > > > and don't bother to queue another request so there's no extra work being > > > > done to make this happen. > > > > > > Maybe I'm missing something but... is not this patch just a partial > > > mitigation of the issue you descrive above? > > > > > > If a DL freq increase is queued, with this patch we store the request > > > but we don't actually increase the frequency until the next schedutil > > > update, which can be one tick away... isn't it? > > > > > > If that's the case, maybe something like the following can complete > > > the cure? > > > > We already discussed this and thought of this case, I think you missed a > > previous thread [1]. The outer loop in the kthread_work subsystem will take > > care of calling sugov_work again incase another request was queued which we > > happen to miss. > > Ok, I missed that thread... my bad. Sure no problem, sorry I was just pointing out the thread, not blaming you for not reading it ;) > However, [1] made me noticing that your solution works under the > assumption that we keep queuing a new kworker job for each request we > get, isn't it? Not at each request, but each request after work_in_progress was cleared by the sugov_work. Any requests that happen between work_in_progress is set and cleared only result in updating of the next_freq. > If that's the case, this means that if, for example, during a > frequency switch you get a request to reduce the frequency (e.g. > deadline task passing the 0-lag time) and right after a request to > increase the frequency (e.g. the current FAIR task tick)... you will > enqueue a freq drop followed by a freq increase and actually do two > frequency hops? Yes possibly, I see your point but I'm not sure if the tight loop around that is worth the complexity, or atleast is within the scope of my patch. Perhaps the problem you describe can be looked at as a future enhancement? thanks, - Joel