Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp2933104imm; Thu, 17 May 2018 00:01:09 -0700 (PDT) X-Google-Smtp-Source: AB8JxZo7HIiP0YY01yTdpaP6zIoseXg7jX/SSSj6idhJH8NfaoQ2NL7lNKJiCpHTwlqry2MMNddC X-Received: by 2002:a17:902:bf08:: with SMTP id bi8-v6mr4009749plb.353.1526540469441; Thu, 17 May 2018 00:01:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526540469; cv=none; d=google.com; s=arc-20160816; b=tvSL7ZByEs4yMIMsFFKEFoiXMKhpMvhroyAeVCvVgGFsQtEwLAnQBEtv4MS5fWSEuu h0sDPGNJMiuZWvm8oqVnL0OpyPLCa4CSu/H+MmeSreKGSjgHT6YRUM2+5s656tE7VCkX 4akykK9Po+N8n3qd34croa3uq0wn/0qIQDmBx8LHgpozGAUy2RjXT+lBDNG4wYnt1Tb/ Nfy7mr2s9uQONjG9cmYWuH8jm5OIgLkxRWYxbOXKSanPpLHq10Hew8LNYclWvGcrRUI/ g/oCzs5gUnRHgGlSke/QnChM59hB/OPeqC/CSDEzjLpWKWAJx47E6cQqhBnO1ZfG98Ze wzhg== 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=H7JrUeZCxU+QOGp4eaQKloK7wrJFY5b8Mk8+/6P7pac=; b=lHEfJ1H7oUESksdsL+C9EhSVthozYkXmZnrZOEtkjVxIoyI2pVHYeIWuWK+fV66ffI kQLmqsFKsX420VzvMrctklCyRICWFRZlTwQFOvisXxgqRiFvnkLrGwkqgiSFfs8lnMBs fRYz61nhdZ12joe0Uc0LM80dr8klAMWOVmHGUfgzmZO9TJ7UYKxbaX253xnfFxgSEgeJ HQVQw1iPOeHABm8iL/05O30GvKFUD+5j9ZC9w/8kUZCLOrxHtMBJoirDV0VWnHAn7Lr4 0v5c6qEpvLBipoXO0gbszf5Mp+bTkSdu7ZY55DhNGNtALL88ZsP54S/iASNFsbLQpSvL Qmjg== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k72-v6si4721475pfa.53.2018.05.17.00.00.54; Thu, 17 May 2018 00:01:09 -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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752189AbeEQHAc (ORCPT + 99 others); Thu, 17 May 2018 03:00:32 -0400 Received: from mail-wr0-f196.google.com ([209.85.128.196]:40153 "EHLO mail-wr0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751319AbeEQHAa (ORCPT ); Thu, 17 May 2018 03:00:30 -0400 Received: by mail-wr0-f196.google.com with SMTP id v60-v6so4424749wrc.7 for ; Thu, 17 May 2018 00:00:30 -0700 (PDT) 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=H7JrUeZCxU+QOGp4eaQKloK7wrJFY5b8Mk8+/6P7pac=; b=E6BrlXaMPgEf51iyjJVZrYFh/0sGAuZy0ChymjnKsIzxRcdTH/AVGH4+Mx0aDm56j8 Z0u0jbNY1dFTQL2VrdQKbPjTOpT2WmSCJWE0S88R+5044N1N+1ClruzGuq2N3U6ggTrm pL9ZyrE5ZA/BrUv51lpAY8BxBGiGGLPVgum7/Skqw6z27cR5n4+4IRebusdj7TvXm0N5 wiXhnoVqU1+7JH/PwZi1nYB98eQlN+qaDlaVk1k76Eg592ETBw0FphyQ7q1O88ihWKGj ooY2TYxZ50Ujt8EFVRVYumw8qbaYrWVj6oihtEDpuGCxitwI/jhjwOA6M94CxqBWXbAJ BqFw== X-Gm-Message-State: ALKqPweFmwfhP6d6qTKjM/qomlm6+2FYXsPPOFEhSdAGp2XK/f5FTsMb Bfg4WBVng6vVFg7DbZ2pc/FXNA== X-Received: by 2002:adf:c613:: with SMTP id n19-v6mr2936620wrg.177.1526540429350; Thu, 17 May 2018 00:00:29 -0700 (PDT) Received: from localhost.localdomain ([151.15.207.48]) by smtp.gmail.com with ESMTPSA id e39-v6sm3421231wrg.92.2018.05.17.00.00.27 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 17 May 2018 00:00:28 -0700 (PDT) Date: Thu, 17 May 2018 09:00:26 +0200 From: Juri Lelli To: "Joel Fernandes (Google)" Cc: linux-kernel@vger.kernel.org, Viresh Kumar , "Rafael J . Wysocki" , Peter Zijlstra , Ingo Molnar , Patrick Bellasi , Luca Abeni , Joel Fernandes , linux-pm@vger.kernel.org Subject: Re: [PATCH RFC] schedutil: Allow cpufreq requests to be made even when kthread kicked Message-ID: <20180517070026.GA22493@localhost.localdomain> References: <20180516224518.109891-1-joel@joelfernandes.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180516224518.109891-1-joel@joelfernandes.org> 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 Joel, On 16/05/18 15:45, Joel Fernandes (Google) wrote: [...] > @@ -382,13 +391,24 @@ sugov_update_shared(struct update_util_data *hook, u64 time, unsigned int flags) > static void sugov_work(struct kthread_work *work) > { > struct sugov_policy *sg_policy = container_of(work, struct sugov_policy, work); > + unsigned int freq; > + unsigned long flags; > + > + /* > + * Hold sg_policy->update_lock shortly to handle the case where: > + * incase sg_policy->next_freq is read here, and then updated by > + * sugov_update_shared just before work_in_progress is set to false > + * here, we may miss queueing the new update. > + */ > + raw_spin_lock_irqsave(&sg_policy->update_lock, flags); > + freq = sg_policy->next_freq; > + sg_policy->work_in_progress = false; > + raw_spin_unlock_irqrestore(&sg_policy->update_lock, flags); OK, we queue the new request up, but still we need to let this kthread activation complete and then wake it up again to service the request already queued, right? Wasn't what Claudio proposed (service back to back requests all in the same kthread activation) better from an overhead pow? Also, I assume that there's no problem kicking the irq_work thing while the kthread that it's going to be woken up it's already running? > > mutex_lock(&sg_policy->work_lock); > - __cpufreq_driver_target(sg_policy->policy, sg_policy->next_freq, > + __cpufreq_driver_target(sg_policy->policy, freq, > CPUFREQ_RELATION_L); > mutex_unlock(&sg_policy->work_lock); > - > - sg_policy->work_in_progress = false; > } Best, - Juri