On Wed, 12 Dec 2018, Jerome Glisse wrote: > On Thu, Dec 13, 2018 at 11:51:19AM +1100, Dave Chinner wrote: > > > > > [O1] Avoid write back from a page still being written by either a > > > > > device or some direct I/O or any other existing user of GUP. > > > > IOWs, you need to mark pages being written to by a GUP as > > PageWriteback, so all attempts to write the page will block on > > wait_on_page_writeback() before trying to write the dirty page. > > No you don't and you can't for the simple reasons is that the GUP > of some device driver can last days, weeks, months, years ... so > it is not something you want to do. Here is what happens today: I think it would be better to use the established way to block access that Dave suggests. Maybe deal with the issue of threads being blocked for a long time instead? Introduce a way to abort these attempts in a controlled fashion that also allows easy debugging of these conflicts?