Re: [PATCH v6 6/9] mm: multigenerational lru: aging

From: Michal Hocko
Date: Thu Jan 06 2022 - 11:12:22 EST


On Tue 04-01-22 13:22:25, Yu Zhao wrote:
> +static struct lru_gen_mm_walk *alloc_mm_walk(void)
> +{
> + if (!current->reclaim_state || !current->reclaim_state->mm_walk)
> + return kvzalloc(sizeof(struct lru_gen_mm_walk), GFP_KERNEL);
> +
> + return current->reclaim_state->mm_walk;
> +}
> +
> +static void free_mm_walk(struct lru_gen_mm_walk *walk)
> +{
> + if (!current->reclaim_state || !current->reclaim_state->mm_walk)
> + kvfree(walk);
> +}

Do I get it right that you are allocating from the reclaim context? What
prevents this to completely deplete the memory as the reclaim context is
PF_MEMALLOC?
--
Michal Hocko
SUSE Labs