On 1/24/19 1:04 AM, Jan Kara wrote: > This is a joint proposal with Dan Williams, John Hubbard, and Jérôme > Glisse. > > Last year we've talked with Dan about issues we have with filesystems and > GUP [1]. The crux of the problem lies in the fact that there is no > coordination (or even awareness) between filesystem working on a page (such > as doing writeback) and GUP user modifying page contents and setting it > dirty. This can (and we have user reports of this) lead to data corruption, > kernel crashes, and other fun. > > Since last year we have worked together on solving these problems and we > have explored couple dead ends as well as hopefully found solutions to some > of the partial problems. So I'd like to give some overview of where we > stand and what remains to be solved and get thoughts from wider community > about proposed solutions / problems to be solved. > > In particular we hope to have reasonably robust mechanism of identifying > pages pinned by GUP (patches will be posted soon) - I'd like to run that by > MM folks (unless discussion happens on mailing lists before LSF/MM). We > also have ideas how filesystems should react to pinned page in their > writepages methods - there will be some changes needed in some filesystems > to bounce the page if they need stable page contents. So I'd like to > explain why we chose to do bouncing to fs people (i.e., why we cannot just > wait, skip the page, do something else etc.) to save us from the same > discussion with each fs separately and also hash out what the API for > filesystems to do this should look like. Finally we plan to keep pinned > page permanently dirty - again something I'd like to explain why we do this > and gather input from other people. > > This should be ideally shared MM + FS session. > > [1] https://lwn.net/Articles/753027/ > Yes! I'd like to attend and discuss this, for sure. Meanwhile, as usual, I'm a bit late on posting an updated RFC for the page identification part, but that's coming very soon. thanks, -- John Hubbard NVIDIA