Re: [PATCH v9 0/3] mm/gup: disallow GUP writing to file-backed mappings by default
From: Lorenzo Stoakes <hidden>
Date: 2023-05-17 07:40:34
Also in:
bpf, linux-fsdevel, linux-mm, linux-perf-users, lkml
On Wed, May 17, 2023 at 09:29:20AM +0200, Jan Kara wrote:
On Mon 15-05-23 14:07:57, Lorenzo Stoakes wrote:quoted
On Mon, May 15, 2023 at 09:12:49AM -0300, Jason Gunthorpe wrote:quoted
On Mon, May 15, 2023 at 12:16:21PM +0100, Lorenzo Stoakes wrote:quoted
Jason will have some thoughts on this I'm sure. I guess the key question here is - is it actually feasible for this to work at all? Once we establish that, the rest are details :)Surely it is, but like Ted said, the FS folks are not interested and they are at least half the solution..:'(Well, I'd phrase this a bit differently - it is a difficult sell to fs maintainers that they should significantly complicate writeback code / VFS with bounce page handling etc. for a thing that is not much used corner case. So if we can get away with forbiding long-term pins, then that's the easiest solution. Dealing with short-term pins is easier as we can just wait for unpinning which is implementable in a localized manner.
Totally understandable. It's unfortunately I feel a case of something we should simply not have allowed.
quoted
quoted
The FS also has to actively not write out the page while it cannot be write protected unless it copies the data to a stable page. The block stack needs the source data to be stable to do checksum/parity/etc stuff. It is a complicated subject.Yes my sense was that being able to write arbitrarily to these pages _at all_ was a big issue, not only the dirty tracking aspect.Yes.quoted
I guess at some level letting filesystems have such total flexibility as to how they implement things leaves us in a difficult position.I'm not sure what you mean by "total flexibility" here. In my opinion it is also about how HW performs checksumming etc.
I mean to say *_ops allow a lot of flexibility in how things are handled. Certainly checksumming is a great example but in theory an arbitrary filesystem could be doing, well, anything and always assuming that only userland mappings should be modifying the underlying data.
Honza -- Jan Kara [off-list ref] SUSE Labs, CR