Messages in this thread | | | Date | Tue, 3 Nov 2020 00:18:21 +0100 | From | "Ahmed S. Darwish" <> | Subject | Re: [PATCH v2 0/2] Add a seqcount between gup_fast and copy_page_range() |
| |
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@linutronix.de> 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
| |