Re: [PATCH] cpufreq, store_scaling_governor requires policy->rwsem to be held for duration of changing governors [v2]

From: Prarit Bhargava
Date: Fri Aug 01 2014 - 15:43:56 EST




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 :)

Thanks!

P.
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/