[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20201104031711.GA227990@lx-t490>
Date: Wed, 4 Nov 2020 04:17:11 +0100
From: "Ahmed S. Darwish" <a.darwish@...utronix.de>
To: John Hubbard <jhubbard@...dia.com>
Cc: Linus Torvalds <torvalds@...ux-foundation.org>,
Jason Gunthorpe <jgg@...dia.com>, Peter Xu <peterx@...hat.com>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Andrea Arcangeli <aarcange@...hat.com>,
Andrew Morton <akpm@...ux-foundation.org>,
"Aneesh Kumar K.V" <aneesh.kumar@...ux.ibm.com>,
Christoph Hellwig <hch@....de>,
Hugh Dickins <hughd@...gle.com>, Jan Kara <jack@...e.cz>,
Jann Horn <jannh@...gle.com>,
Kirill Shutemov <kirill@...temov.name>,
Kirill Tkhai <ktkhai@...tuozzo.com>,
Leon Romanovsky <leonro@...dia.com>,
Linux-MM <linux-mm@...ck.org>, Michal Hocko <mhocko@...e.com>,
Oleg Nesterov <oleg@...hat.com>,
Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...hat.com>, Will Deacon <will@...nel.org>,
Thomas Gleixner <tglx@...utronix.de>,
Sebastian Siewior <bigeasy@...utronix.de>
Subject: Re: [PATCH v2 2/2] mm: prevent gup_fast from racing with COW during
fork
On Tue, Nov 03, 2020 at 06:01:30PM -0800, John Hubbard wrote:
> On 11/3/20 5:32 PM, Ahmed S. Darwish wrote:
...
> > #define __read_seqcount_retry(s, start) \
> > - __read_seqcount_t_retry(__seqcount_ptr(s), start)
> > + __do___read_seqcount_retry(__seqcount_ptr(s), start)
>
...
> A nit: while various numbers of leading underscores are sometimes used, it's a lot
> less common to use, say, 3 consecutive underscores (as above) *within* the name. And
> I don't think you need it for uniqueness, at least from a quick look around here.
>
...
> But again, either way, I think "do" is helping a *lot* here (as is getting rid
> of the _t_ idea).
The three underscores are needed because there's a do_ version for
read_seqcount_retry(), and another for __read_seqcount_retry().
Similarly for {__,}read_seqcount_begin(). You want to be very careful
with this, and never mistaknely mix the two, because it affects some VFS
hot paths.
Nonetheless, as you mentioned in the later (dropped) part of your
message, I think do_ is better than __do_, so the final result will be:
do___read_seqcount_retry()
do_read_seqcount_retry()
do_raw_write_seqcount_begin()
do_raw_write_seqcount_end()
do_write_seqcount_begin()
...
and so on.
I'll wait for some further feedback on the two patches (possibly from
Linus or PeterZ), then send a mini patch series.
(This shouldn't block a v3 of Jason's mm patch series though, as it will
be using the external seqlock.h APIs anyway...).
Thanks,
--
Ahmed S. Darwish
Linutronix GmbH
Powered by blists - more mailing lists