Messages in this thread | | | Date | Sun, 5 Jul 2009 21:46:46 +0200 | From | Pavel Machek <> | Subject | Re: [PATCH 1/2] CPUFREQ: Remove unneeded dbs_mutexes from ondemand and conservative governors |
| |
On Fri 2009-07-03 12:10:15, Thomas Renninger wrote: > Hi Pavel, > > On Tuesday 30 June 2009 08:33:39 Pavel Machek wrote: > > On Thu 2009-06-25 16:01:24, Thomas Renninger wrote: > > > Comment from Venkatesh: > > > ... > > > This mutex is just serializing the changes to those variables. I could't > > > think of any functionality issues of not having the lock as such. > > > > > > -> rip it out. > > > > > > CC: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> > > > Signed-off-by: Thomas Renninger <trenn@suse.de> > > > > > static struct dbs_tuners { > > > @@ -236,10 +222,7 @@ static ssize_t store_sampling_down_factor(struct cpufreq_policy *unused, > > > if (ret != 1 || input > MAX_SAMPLING_DOWN_FACTOR || input < 1) > > > return -EINVAL; > > > > > > - mutex_lock(&dbs_mutex); > > > dbs_tuners_ins.sampling_down_factor = input; > > > - mutex_unlock(&dbs_mutex); > > > - > > > > You'd need to make s_down_factor atomic_t for this to work.... > Can you provide a userspace scenario (or tell which kind of event must > happen in between), that this would cause problems, please.
Imagine
dbs_tuners_ins.sampling_down_factor = 0xd0000; input = 0xabcd;
..then other threads can see 0xdabcd; if they read at "bad" moment. Not on i386, but this is generic code (right?). Just use atomic_t. Pavel
-- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
| |