On 6/4/24 14:33, Christoph Hellwig wrote: > On Sat, Jun 01, 2024 at 06:51:45PM +0100, Matthew Wilcox wrote: >> On Fri, May 31, 2024 at 10:28:50AM +0900, Damien Le Moal wrote: >>>>> This will stop working at some point. It'll return NULL once we get >>>>> to the memdesc future (because the memdesc will be a slab, not a folio). >>>> >>>> Hmmm, xfs_buf.c plays a similar trick here for sub-page buffers. I'm >>>> assuming that will get ported to ... whatever the memdesc future holds? >> >> I don't think it does, exactly? Are you referring to kmem_to_page()? >> That will continue to work. You're not trying to get a folio from a >> slab allocation; that will start to fail. > > The point is that we doing block I/O on a slab allocation is heavily > used, and zonefs does this. If you dislike going through the folio > we can just keep using pages in zonefs for now. > > Eventually I'll get around lifting the logic to greedily build a bio > from arbitrary kernel virtual addresses from various places in XFS > into common code and we can convert to that. > >> I think you should use read_mapping_folio() for now instead of >> complicating zonefs. Once there's a grand new buffer cache, switch to >> that, but I don't think you're introducing a significant vulnerability >> by using the block device's page cache. > > Please don't add pointless uses of the bdev page cache for users that > don't need caching. This just creates more headaches later on to > untangle it again. OK. Will drop this patch then. -- Damien Le Moal Western Digital Research