Thread (67 messages) 67 messages, 11 authors, 2013-06-25

Re: [PATCH 22/45] percpu_counter: Use get/put_online_cpus_atomic() to prevent CPU offline

From: Srivatsa S. Bhat <hidden>
Date: 2013-06-24 18:13:37
Also in: linux-arch, linux-pm, lkml, netdev

On 06/24/2013 11:36 PM, Tejun Heo wrote:
On Mon, Jun 24, 2013 at 10:55:35AM -0700, Tejun Heo wrote:
quoted
quoted
@@ -105,6 +106,7 @@ s64 __percpu_counter_sum(struct percpu_counter *fbc)
 		ret += *pcount;
 	}
 	raw_spin_unlock(&fbc->lock);
+	put_online_cpus_atomic();
I don't think this is necessary.  CPU on/offlining is explicitly
handled via the hotplug callback which synchronizes through fbc->lock.
__percpu_counter_sum() racing with actual on/offlining doesn't affect
correctness and adding superflous get_online_cpus_atomic() around it
can be misleading.
Ah, okay, so you added a debug feature which triggers warning if
online mask is accessed without synchronization.
Exactly!
 Yeah, that makes
sense and while the above is not strictly necessary, it probably is
better to just add it rather than suppressing the warning in a
different way.
Yeah, I was beginning to scratch my head as to how to suppress the
warning after I read your explanation as to why the calls to
get/put_online_cpus_atomic() would be superfluous in this case...

But as you said, simply invoking those functions is much simpler ;-)
 Can you please at least add a comment explaining that?
Sure, will do. Thanks a lot Tejun!
 
Regards,
Srivatsa S. Bhat
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help