Messages in this thread | | | Date | Wed, 21 Nov 2012 10:02:34 +0900 | From | Kamezawa Hiroyuki <> | Subject | Re: [patch] mm, memcg: avoid unnecessary function call when memcg is disabled |
| |
(2012/11/21 6:49), Andrew Morton wrote: > On Mon, 19 Nov 2012 17:44:34 -0800 (PST) > David Rientjes <rientjes@google.com> wrote: > >> While profiling numa/core v16 with cgroup_disable=memory on the command >> line, I noticed mem_cgroup_count_vm_event() still showed up as high as >> 0.60% in perftop. >> >> This occurs because the function is called extremely often even when memcg >> is disabled. >> >> To fix this, inline the check for mem_cgroup_disabled() so we avoid the >> unnecessary function call if memcg is disabled. >> >> ... >> >> diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h >> --- a/include/linux/memcontrol.h >> +++ b/include/linux/memcontrol.h >> @@ -181,7 +181,14 @@ unsigned long mem_cgroup_soft_limit_reclaim(struct zone *zone, int order, >> gfp_t gfp_mask, >> unsigned long *total_scanned); >> >> -void mem_cgroup_count_vm_event(struct mm_struct *mm, enum vm_event_item idx); >> +void __mem_cgroup_count_vm_event(struct mm_struct *mm, enum vm_event_item idx); >> +static inline void mem_cgroup_count_vm_event(struct mm_struct *mm, >> + enum vm_event_item idx) >> +{ >> + if (mem_cgroup_disabled() || !mm) >> + return; >> + __mem_cgroup_count_vm_event(mm, idx); >> +} > > Does the !mm case occur frequently enough to justify inlining it, or > should that test remain out-of-line? > I think this should be out-of-line.
Thanks, -Kame
| |