On Wed, May 17, 2023 at 09:29:20AM +0200, Jan Kara wrote: > On Mon 15-05-23 14:07:57, Lorenzo Stoakes wrote: > > On Mon, May 15, 2023 at 09:12:49AM -0300, Jason Gunthorpe wrote: > > > On Mon, May 15, 2023 at 12:16:21PM +0100, Lorenzo Stoakes wrote: > > > > 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. > > > 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. > > > 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 <jack@xxxxxxxx> > SUSE Labs, CR