Re: [PATCH v2 0/2] Add a seqcount between gup_fast and copy_page_range()
From: Ahmed S. Darwish
Date: Mon Nov 02 2020 - 18:18:32 EST
On Mon, Nov 02, 2020 at 02:39:49PM -0800, Linus Torvalds wrote:
> On Mon, Nov 2, 2020 at 2:19 PM Ahmed S. Darwish <a.darwish@xxxxxxxxxxxxx> wrote:
> >
> > Disabling preemption for seqcount_t write-side critical sections was
> > never a new requirement. It has always been this way, for the reasons
> > explained at Documentation/locking/seqlock.rst, "Introduction" section.
>
> Note that that is only true if you spin on the reading side (either of
> the two kinds of spinning: (a) spinning to wait for it to become even,
> or (b) repeating if they don't match)
>
> Which this code doesn't do, it just fails.
>
> I'm not sure how to perhaps document that.
>
Sure, and this is one of the reasons the lockdep non-preemptibility
check is only added to the non-raw variants of the seqcount write APIs.
Presumably, users of the raw_*() part of the API know what they're
doing, and they don't need to read seqlock.rst :)
(I'm in progress of replying to patch #2, which touches a bit on this
and other points)..
> Linus
Thanks,
--
Ahmed S. Darwish
Linutronix GmbH