From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751283AbcBEDPR (ORCPT ); Thu, 4 Feb 2016 22:15:17 -0500 Received: from mail-lf0-f65.google.com ([209.85.215.65]:34169 "EHLO mail-lf0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750722AbcBEDPP (ORCPT ); Thu, 4 Feb 2016 22:15:15 -0500 MIME-Version: 1.0 In-Reply-To: References: <3705929.bslqXH980s@vostro.rjw.lan> <1529283.0IedZktI9q@vostro.rjw.lan> <20160204050954.GU3469@vireshk> <20160205025948.GE3068@vireshk> Date: Fri, 5 Feb 2016 04:15:13 +0100 X-Google-Sender-Auth: X9sIQo24SvAhNxArkGUVk-1xENk Message-ID: Subject: Re: [PATCH 2/11] cpufreq: governor: Use common mutex for dbs_data protection From: "Rafael J. Wysocki" To: "Rafael J. Wysocki" Cc: Viresh Kumar , "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 4:06 AM, Rafael J. Wysocki wrote: > 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? In any case, we're talking about having one lock instead of two, mind you (out of the tree things don't count), because performance and powersave don't even use the code in question. I'm not really sure how much of a difference that would make on a really big system. Thanks, Rafael