Re: [PATCH v3 0/1] mm: introduce put_user_page*(), placeholder versions

From: John Hubbard
Date: Thu Mar 14 2019 - 16:37:12 EST


On 3/14/19 1:25 PM, William Kucharski wrote:


On Mar 14, 2019, at 7:30 AM, Jan Kara <jack@xxxxxxx> wrote:

Well I have some crash reports couple years old and they are not from QA
departments. So I'm pretty confident there are real users that use this in
production... and just reboot their machine in case it crashes.

Do you know what the use case in those crashes actually was?

I'm curious to know they were actually cases of say DMA from a video
capture card or if the uses posited to date are simply theoretical.


It's not merely theoretical. In addition to Jan's bug reports, I've
personally investigated a bug that involved an GPU (acting basically as
an AI accelerator in this case) that was doing DMA to memory that turned
out to be file backed.

The backtrace for that is in the commit description.

As others have mentioned, this works well enough to lure people into
using it, but then fails when you load down a powerful system (and put
it under memory pressure).

I think that as systems get larger, and more highly threaded, we might
see more such failures--maybe even in the Direct IO case someday,
although so far that race window is so small that that one truly is
still theoretical (or, we just haven't been in communication with
anyone who hit it).

thanks,
--
John Hubbard
NVIDIA


It's always good to know who might be doing this and why if for no other
reason than as something to keep in mind when designing future interfaces.