Re: [PATCH] memcg: remove unneeded preempt_disable
From: Johannes Weiner <hidden>
Date: 2011-08-18 09:38:13
Also in:
lkml
On Wed, Aug 17, 2011 at 11:50:53PM -0700, Greg Thelen wrote:
Both mem_cgroup_charge_statistics() and mem_cgroup_move_account() were
unnecessarily disabling preemption when adjusting per-cpu counters:
preempt_disable()
__this_cpu_xxx()
__this_cpu_yyy()
preempt_enable()
This change does not disable preemption and thus CPU switch is possible
within these routines. This does not cause a problem because the total
of all cpu counters is summed when reporting stats. Now both
mem_cgroup_charge_statistics() and mem_cgroup_move_account() look like:
this_cpu_xxx()
this_cpu_yyy()Note that on non-x86, these operations themselves actually disable and reenable preemption each time, so you trade a pair of add and sub on x86 - preempt_disable() __this_cpu_xxx() __this_cpu_yyy() - preempt_enable() with preempt_disable() __this_cpu_xxx() + preempt_enable() + preempt_disable() __this_cpu_yyy() preempt_enable() everywhere else. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>