Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp538319imm; Mon, 21 May 2018 10:01:18 -0700 (PDT) X-Google-Smtp-Source: AB8JxZqKGE/Ne0Bqc0fTqHRIXl+YefSNiQ1YVZC3Oy9Byv/7PKNe9zPEvDG9IxFT6ihsEM2myF0Y X-Received: by 2002:a17:902:265:: with SMTP id 92-v6mr20649392plc.368.1526922078536; Mon, 21 May 2018 10:01:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526922078; cv=none; d=google.com; s=arc-20160816; b=zT1yQ3fSnd6LkQ0h6JtwRwAFiH1IZ7oA7RkfIuz5WbnbCBXqEcoYwHlxHD+60lwJs9 jSPMu3pgwQDxUzxvzgSGsj1nZatRhuAeLAZRm1e2ZYv7k76LCGqjHKolbGDZnVYH83fq tdUK1eSM0HP2OebbJc7Y9Vk1QEYL+LK3rhM124w2G9kPqFZPoSwzJLuHLXyV8ilPCy32 K7UEdKElHNEqmt6rZww7zweoPe3Z2aq6s9MLFVLkRweMZnEz0qOUZLe4Z0Ss+kj8JxO/ rU/cuDX5TbGGfCz7xv2WzRU2F7fL4WkSqaQry4KF9sMvvq/N4xx9GiLToWQp8x05yJRZ bOcw== 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:arc-authentication-results; bh=IJu1u9W0T1d1E71P7KaIJ1ARzGP3A5gcTqPMbSjeaNo=; b=eY+xb5Fa65iiDu0+kqR9NnWinr0/IBC2N3ySIItrfJXAfht4s0vRfsT0HvvA2yoVGh BwJXMXiurlDdceaqX712XjD8l1F4U7Uz2e4hnItkcEUU5BPPAms5IWwEPmYhSeQbECeD rPh+baBacQCkXLBGLSyNhAUOMHvDMAR4RNR3/FNHJeK88pqHu2ishsLBG6VhHJB9vyUN 3p2sX2+WqiOe0/PHJ0ZYjDOcuynymZ7JppMih1/SfvrcCBbiUnCqXL713Dz702F/YY2m 6kuaC+3x/SpsUIWP4bOibf6mdvynKVvC0FqCVNDyBgagduWv7cG+UPlPu5dThl2VkkAJ /u8w== ARC-Authentication-Results: i=1; mx.google.com; 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 y8-v6si14499058pfd.47.2018.05.21.10.01.04; Mon, 21 May 2018 10:01:18 -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; 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 S1753198AbeEURA4 (ORCPT + 99 others); Mon, 21 May 2018 13:00:56 -0400 Received: from foss.arm.com ([217.140.101.70]:53754 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753006AbeEURAz (ORCPT ); Mon, 21 May 2018 13:00:55 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id E61721435; Mon, 21 May 2018 10:00:54 -0700 (PDT) Received: from e110439-lin (e110439-lin.cambridge.arm.com [10.1.210.68]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id B0F9B3F25D; Mon, 21 May 2018 10:00:52 -0700 (PDT) Date: Mon, 21 May 2018 18:00:50 +0100 From: Patrick Bellasi To: Joel Fernandes 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: <20180521170050.GT30654@e110439-lin> References: <20180518185501.173552-1-joel@joelfernandes.org> <20180521105055.GQ30654@e110439-lin> <20180521154957.GA14065@joelaf.mtv.corp.google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180521154957.GA14065@joelaf.mtv.corp.google.com> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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. 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? 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? > So I don't think more complexity is needed to handle the case > you're bringing up. > > thanks! > > - Joel > > [1] https://lkml.org/lkml/2018/5/17/668 > -- #include Patrick Bellasi