Re: [PATCH 1/2] cpufreq: Add governor operation ongoing flag

From: Viresh Kumar
Date: Wed Aug 14 2013 - 03:48:14 EST


I am still not sure if I got what you are trying to say, sorry :(

On 14 August 2013 13:06, Xiaoguang Chen <chenxg.marvell@xxxxxxxxx> wrote:
> Please see below code in __cpufreq_governor function
>
> mutex_lock(&cpufreq_governor_lock);
> if ((!policy->governor_enabled && (event == CPUFREQ_GOV_STOP)) ||
> //////////// <1> Here one process A tries
> to stop governor, it finds governor is enabled, so it will pass down.
> (policy->governor_enabled && (event == CPUFREQ_GOV_START))) {
> /////////////<3> Process B tries to start
> governor, it finds enable flag is false, so it can also pass down.

Processes aren't allowed to call START/STOP in random manner. They
must do a STOP first, if it succeeds do a START.

So lets see it this way:

Process A Process B
STOP
STOP
START (If STOP passed)
START (If STOP passed)

So, Process B tries to STOP/START after governor is Stopped by A.
Now call to STOP for process B will fail as we are already stopped..

Can you explain with this example the problem you are trying to solve?
--
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/