[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1135BD67-4CCB-4700-8150-44E7E323D385@lca.pw>
Date: Thu, 30 Jan 2020 06:50:27 -0500
From: Qian Cai <cai@....pw>
To: Matthew Wilcox <willy@...radead.org>
Cc: akpm@...ux-foundation.org, dennis@...nel.org, tj@...nel.org,
cl@...ux.com, elver@...gle.com, linux-mm@...ck.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] mm/util: fix a data race in __vm_enough_memory()
> On Jan 29, 2020, at 11:20 PM, Matthew Wilcox <willy@...radead.org> wrote:
>
> I'm really not a fan of exposing the internals of a percpu_counter outside
> the percpu_counter.h file. Why shouldn't this be fixed by putting the
> READ_ONCE() inside percpu_counter_read()?
It is because not all places suffer from a data race. For example, in __wb_update_bandwidth(), it was protected by a lock. I was a bit worry about blindly adding READ_ONCE() inside percpu_counter_read() might has unexpected side-effect. For example, it is unnecessary to have READ_ONCE() for a volatile variable. So, I thought just to keep the change minimal with a trade off by exposing a bit internal details as you mentioned.
However, I had also copied the percpu maintainers to see if they have any preferences?
Powered by blists - more mailing lists