[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <53DC05C7.5000507@codeaurora.org>
Date: Fri, 01 Aug 2014 14:25:27 -0700
From: Saravana Kannan <skannan@...eaurora.org>
To: Stephen Boyd <sboyd@...eaurora.org>
CC: Prarit Bhargava <prarit@...hat.com>,
"Rafael J. Wysocki" <rjw@...ysocki.net>,
linux-kernel@...r.kernel.org,
Viresh Kumar <viresh.kumar@...aro.org>,
Lenny Szubowicz <lszubowi@...hat.com>, linux-pm@...r.kernel.org
Subject: Re: [PATCH] cpufreq, store_scaling_governor requires policy->rwsem
to be held for duration of changing governors [v2]
On 08/01/2014 12:54 PM, Stephen Boyd wrote:
> On 08/01/14 12:43, Prarit Bhargava wrote:
>>
>> On 08/01/2014 03:36 PM, Stephen Boyd wrote:
>>> On 08/01/14 12:15, Prarit Bhargava wrote:
>>>> On 08/01/2014 01:18 PM, Stephen Boyd wrote:
>>>>> On 08/01/14 03:27, Prarit Bhargava wrote:
>>>>>> Can you send me the test and the trace of the deadlock? I'm not creating it with:
>>>>>>
>>>>> This was with conservative as the default, and switching to ondemand
>>>>>
>>>>> # cd /sys/devices/system/cpu/cpu2/cpufreq
>>>>> # ls
>>>>> affected_cpus scaling_available_governors
>>>>> conservative scaling_cur_freq
>>>>> cpuinfo_cur_freq scaling_driver
>>>>> cpuinfo_max_freq scaling_governor
>>>>> cpuinfo_min_freq scaling_max_freq
>>>>> cpuinfo_transition_latency scaling_min_freq
>>>>> related_cpus scaling_setspeed
>>>>> scaling_available_frequencies stats
>>>>> # cat conservative/down_threshold
>>>>> 20
>>>>> # echo ondemand > scaling_governor
>>>> Thanks Stephen,
>>>>
>>>> There's obviously a difference in our .configs. I have a global conservative
>>>> directory, ie) /sys/devices/system/cpu/cpufreq/conservative instead of a per-cpu
>>>> governor file.
>>>>
>>>> ie) what are your .config options for CPUFREQ?
>>>>
>>>> Mine are:
>>>>
>>>> #
>>>> # CPU Frequency scaling
>>>> #
>>>> CONFIG_CPU_FREQ=y
>>>> CONFIG_CPU_FREQ_GOV_COMMON=y
>>>> CONFIG_CPU_FREQ_STAT=m
>>>> CONFIG_CPU_FREQ_STAT_DETAILS=y
>>>> # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
>>>> # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
>>>> # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
>>>> CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE=y
>>>> CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
>>>> CONFIG_CPU_FREQ_GOV_POWERSAVE=y
>>>> CONFIG_CPU_FREQ_GOV_USERSPACE=y
>>>> CONFIG_CPU_FREQ_GOV_ONDEMAND=y
>>>> CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
>>>>
>>>> Is there some other config option I have to set?
>>> I have the same options. The difference is that my driver has a governor
>>> per policy. That's set with the CPUFREQ_HAVE_GOVERNOR_PER_POLICY flag.
>>> If I remove that flag I can't trigger the lockdep splat anymore with
>>> this sequence and your patch.
>> I see -- so you're seeing this on arm then? If so, let me know so I can reserve
>> one to work on :)
>>
>
> I only have ARM to test on. You can set this flag in your cpufreq driver
> if you have independently scaling CPU frequencies, so it isn't
> necessarily an ARM thing.
>
Sorry, forgot to mention this in the earlier email. But yeah, this is a
totally SW feature. You should be able to enable this flag in your driver.
-Saravana
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists