Re: [RFC PATCH 4/7] memcg: sleep during flushing stats in safe contexts

From: Johannes Weiner
Date: Thu Mar 23 2023 - 11:56:21 EST


On Thu, Mar 23, 2023 at 04:00:34AM +0000, Yosry Ahmed wrote:
> @@ -644,26 +644,26 @@ static void __mem_cgroup_flush_stats(void)
> return;
>
> flush_next_time = jiffies_64 + 2*FLUSH_TIME;
> - cgroup_rstat_flush(root_mem_cgroup->css.cgroup, false);
> + cgroup_rstat_flush(root_mem_cgroup->css.cgroup, may_sleep);

How is it safe to call this with may_sleep=true when it's holding the
stats_flush_lock?

> atomic_set(&stats_flush_threshold, 0);
> spin_unlock(&stats_flush_lock);
> }