On 10/18/23 11:52, Vlastimil Babka wrote: >> + >> + return objcg; >> +} >> + >> __always_inline struct obj_cgroup *get_obj_cgroup_from_current(void) >> { >> struct mem_cgroup *memcg; >> @@ -3008,19 +3054,26 @@ __always_inline struct obj_cgroup *get_obj_cgroup_from_current(void) >> >> if (in_task()) { >> memcg = current->active_memcg; >> + if (unlikely(memcg)) >> + goto from_memcg; >> >> - /* Memcg to charge can't be determined. */ >> - if (likely(!memcg) && (!current->mm || (current->flags & PF_KTHREAD))) > The checks for current->mm and PF_KTHREAD seem to be gone completely after > the patch, was that intended and why? And also they are not present in the new flavor that's current_obj_cgroup().