Re: [PATCH v4 2/2] mm/gup/writeback: add callbacks for inaccessible pages

From: Dave Hansen
Date: Thu Apr 16 2020 - 15:03:00 EST


On 4/16/20 9:34 AM, Claudio Imbrenda wrote:
>> Ahh, so this is *just* intended to precede I/O done on the page, when
>> a non-host entity is touching the memory?
> yep

OK, so we've got to do an action that precedes *all* I/O to a page.
That's not too bad.

I still don't understand how this could work generally, though There
are lots of places where I/O is done to a page without either going
through __test_set_page_writeback() or gup() with FOLL_PIN set.

sendfile() is probably the best example of this:

fd = open("/normal/ext4/file", O_RDONLY);
sendfile(socket_fd, fd, &off, count);

There's no gup in sight since the file doesn't have an address and it's
not being written to so there's no writeback.

How does sendfile work?