From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751868AbcBEDGV (ORCPT ); Thu, 4 Feb 2016 22:06:21 -0500 Received: from mail-lb0-f195.google.com ([209.85.217.195]:33384 "EHLO mail-lb0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751788AbcBEDGT (ORCPT ); Thu, 4 Feb 2016 22:06:19 -0500 MIME-Version: 1.0 In-Reply-To: <20160205025948.GE3068@vireshk> References: <3705929.bslqXH980s@vostro.rjw.lan> <1529283.0IedZktI9q@vostro.rjw.lan> <20160204050954.GU3469@vireshk> <20160205025948.GE3068@vireshk> Date: Fri, 5 Feb 2016 04:06:17 +0100 X-Google-Sender-Auth: hEHKQXTuaP8MfKSMlvvThW1ccwM Message-ID: Subject: Re: [PATCH 2/11] cpufreq: governor: Use common mutex for dbs_data protection From: "Rafael J. Wysocki" To: Viresh Kumar Cc: "Rafael J. Wysocki" , "Rafael J. Wysocki" , Linux PM list , Linux Kernel Mailing List , Srinivas Pandruvada , Juri Lelli , Steve Muckle , Saravana Kannan Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Feb 5, 2016 at 3:59 AM, Viresh Kumar wrote: > On 04-02-16, 17:46, Rafael J. Wysocki wrote: >> On Thu, Feb 4, 2016 at 6:09 AM, Viresh Kumar wrote: >> > On 04-02-16, 00:16, Rafael J. Wysocki wrote: >> >> From: Rafael J. Wysocki >> >> >> >> Every governor relying on the common code in cpufreq_governor.c >> >> has to provide its own mutex in struct common_dbs_data. However, >> >> those mutexes are never used at the same time >> > >> > Why do you think so? I thought they can always be used in parallel. >> > >> > Consider 2 or more policies, one can have ondemand as the governor, >> > whereas other one can have conservative. >> > >> > If CPUs go online/offline or if governors are switching in parallel, >> > then cpufreq_governor_dbs() can very much run in parallel for ondemand >> > and conservative. >> > >> > Or am I missing something here ? >> >> Well, so perhaps the changelog is inaccurate. >> >> However, what's wrong with using a single mutex then? > > You are killing the possibility of running the code faster. Consider > this: > - A 16 policy system with N CPUs in every policy (IBM has something > similar only :) ).. > - 4 policies using ondemand, 4 using conservative, 4 using powersave > and 4 with performance. > - Now if we try to change governors for all of them in parallel, only > one will be done at a time and others have to wait for this > BIG-kernel lock. And why is this a big problem, actually? Why do we want the switching of governors to be that efficient? Thanks, Rafael