Re: [PATCH 2/5] cpufreq: governor: Create separate sysfs-ops
From: Viresh Kumar
Date: Wed Feb 03 2016 - 01:51:51 EST
On 02-02-16, 14:21, Saravana Kannan wrote:
> I also don't like this patch because it forces governors to either implement
> their own macros and management of their attributes or force them to use the
> governor structs that come with cpufreq_governor.h. cpufreq_governor.h IMHO
> is very ondemand and conservative governor specific and is very irrelevant
> for sched-dvfs or any other governors (hint hint).
But who is stopping us from breaking that file and moving some of it
into include/linux/cpufreq.h ?
We can do that today as well, but it would be fine to do that, when we
add more governors to the core. Though, it would only take a simple
patch if people want me to do it now.
> The only time this ABBA locking is an issue is when governor are changing
> and trying to add/remove attributes. That can easily be checked in
> store_governor
store_scaling_governor ??
> and dealt with without holding the policy rwsem if the
Are you saying that we could have taken the rwsem from the generic
cpufreq.c:store() and dropped it from store_scaling_governor() ? That
would have been something similar to what I tried earlier, which I
never posted (I gave the link to that few days back).
> governors can provide their per sys and per policy attribute arrays as part
> of registering themselves.
These per-sys and per-policy attributes really suck. There is nothing
really different in the implementation, just that the show/store
callbacks have different prototype. One accept 'kboj' as the parameter,
other accept 'policy'. I would call that a HACK as well (I only
implemented it though).
That should just die. A single list of attributes is what we should
have had initially as well.
--
viresh