On 07/29/19 17:06, Waiman Long wrote: > On 7/29/19 4:18 AM, Qais Yousef wrote: > > On 07/27/19 13:10, Waiman Long wrote: > >> It was found that a dying mm_struct where the owning task has exited > >> can stay on as active_mm of kernel threads as long as no other user > >> tasks run on those CPUs that use it as active_mm. This prolongs the > >> life time of dying mm holding up memory and other resources like swap > >> space that cannot be freed. > >> > >> Fix that by forcing the kernel threads to use init_mm as the active_mm > >> if the previous active_mm is dying. > >> > >> The determination of a dying mm is based on the absence of an owning > >> task. The selection of the owning task only happens with the CONFIG_MEMCG > >> option. Without that, there is no simple way to determine the life span > >> of a given mm. So it falls back to the old behavior. > > I don't really know a lot about this code, but does the owner field has to > > depend on CONFIG_MEMCG? ie: can't the owner be always set? > > > Yes, the owner field is only used and defined when CONFIG_MEMCG is on. I guess this is the simpler answer of it's too much work to take it out of CONFIG_MEMCG. Anyway, given the direction of the thread this is moot now :-) Thanks! -- Qais Yousef