[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <599b167c-deaf-4b92-aa8b-5767b8608483@redhat.com>
Date: Mon, 28 Aug 2023 13:27:23 -0400
From: Waiman Long <longman@...hat.com>
To: Yosry Ahmed <yosryahmed@...gle.com>,
Shakeel Butt <shakeelb@...gle.com>
Cc: Michal Hocko <mhocko@...e.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Johannes Weiner <hannes@...xchg.org>,
Roman Gushchin <roman.gushchin@...ux.dev>,
Muchun Song <muchun.song@...ux.dev>,
Ivan Babrou <ivan@...udflare.com>, Tejun Heo <tj@...nel.org>,
linux-mm@...ck.org, cgroups@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 3/3] mm: memcg: use non-unified stats flushing for
userspace reads
On 8/28/23 13:07, Yosry Ahmed wrote:
>
>> Here I agree with you. Let's go with the approach which is easy to
>> undo for now. Though I prefer the new explicit interface for flushing,
>> that step would be very hard to undo. Let's reevaluate if the proposed
>> approach shows negative impact on production traffic and I think
>> Cloudflare folks can give us the results soon.
> Do you prefer we also switch to using a mutex (with preemption
> disabled) to avoid the scenario Michal described where flushers give
> up the lock and sleep resulting in an unbounded wait time in the worst
> case?
Locking with mutex with preemption disabled is an oxymoron. Use spinlock
if you want to have preemption disabled. The purpose of usiing mutex is
to allow the lock owner to sleep, but you can't sleep with preemption
disabled. You need to enable preemption first. You can disable
preemption for a short time in a non-sleeping section of the lock
critical section, but I would not recommend disabling preemption for the
whole critical section.
Cheers,
Longman
Powered by blists - more mailing lists