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. Cheers, Longman