[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200528194831.GA2017@chrisdown.name>
Date: Thu, 28 May 2020 20:48:31 +0100
From: Chris Down <chris@...isdown.name>
To: Shakeel Butt <shakeelb@...gle.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>,
Johannes Weiner <hannes@...xchg.org>,
Tejun Heo <tj@...nel.org>, Michal Hocko <mhocko@...nel.org>,
Linux MM <linux-mm@...ck.org>,
Cgroups <cgroups@...r.kernel.org>,
LKML <linux-kernel@...r.kernel.org>,
Kernel Team <kernel-team@...com>
Subject: Re: [PATCH] mm, memcg: reclaim more aggressively before high
allocator throttling
Shakeel Butt writes:
>What was the initial reason to have different behavior in the first place?
This differing behaviour is simply a mistake, it was never intended to be this
deviate from what happens elsewhere. To that extent this patch is as much a bug
fix as it is an improvement.
>> static void high_work_func(struct work_struct *work)
>> @@ -2378,16 +2384,20 @@ void mem_cgroup_handle_over_high(void)
>> {
>> unsigned long penalty_jiffies;
>> unsigned long pflags;
>> + unsigned long nr_reclaimed;
>> unsigned int nr_pages = current->memcg_nr_pages_over_high;
>
>Is there any benefit to keep current->memcg_nr_pages_over_high after
>this change? Why not just use SWAP_CLUSTER_MAX?
I don't feel strongly either way, but current->memcg_nr_pages_over_high can be
very large for large allocations.
That said, maybe we should just reclaim `max(SWAP_CLUSTER_MAX, current - high)`
for each loop? I agree that with this design it looks like perhaps we don't
need it any more.
Johannes, what do you think?
Powered by blists - more mailing lists