Messages in this thread | | | Date | Mon, 15 Feb 2021 10:39:30 +0100 | From | Michal Hocko <> | Subject | Re: [PATCH 3/4] mm: memcontrol: bail out early when id is zero |
| |
On Sat 13-02-21 01:01:58, Muchun Song wrote: > The memcg ID cannot be zero, but we can pass zero to mem_cgroup_from_id, > so idr_find() is pointless and wastes CPU cycles.
Is this possible at all to happen? If not why should we add a test for _all_ invocations?
> > Signed-off-by: Muchun Song <songmuchun@bytedance.com> > --- > mm/memcontrol.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index a3f26522765a..68ed4b297c13 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -5173,6 +5173,9 @@ static inline void mem_cgroup_id_put(struct mem_cgroup *memcg) > struct mem_cgroup *mem_cgroup_from_id(unsigned short id) > { > WARN_ON_ONCE(!rcu_read_lock_held()); > + /* The memcg ID cannot be zero. */ > + if (id == 0) > + return NULL; > return idr_find(&mem_cgroup_idr, id); > } > > -- > 2.11.0
-- Michal Hocko SUSE Labs
| |