Message ID | 20241119154656.774395-1-bfoster@redhat.com (mailing list archive) |
---|---|
Headers | show |
Series | iomap: zero range folio batch processing prototype | expand |
On Tue, Nov 19, 2024 at 10:46:52AM -0500, Brian Foster wrote: > I thought about using ->private along with a custom ->get_folio(), but I > don't think that really fits the idea of a built-in mechanism. It might > be more appropriate to attach to the iter, but that currently isn't > accessible to ->iomap_begin(). I suppose we could define an > iomap_to_iter() or some such helper that the fill helper could use to > populate the batch, but maybe there are other thoughts/ideas? The iter is the right place, and you can get at it using container_of as already done by btrfs (and osme of my upcoming code): struct iomap_iter *iter = container_of(iomap, struct iomap_iter, iomap);
On Wed, Nov 20, 2024 at 12:37:41AM -0800, Christoph Hellwig wrote: > On Tue, Nov 19, 2024 at 10:46:52AM -0500, Brian Foster wrote: > > I thought about using ->private along with a custom ->get_folio(), but I > > don't think that really fits the idea of a built-in mechanism. It might > > be more appropriate to attach to the iter, but that currently isn't > > accessible to ->iomap_begin(). I suppose we could define an > > iomap_to_iter() or some such helper that the fill helper could use to > > populate the batch, but maybe there are other thoughts/ideas? > > The iter is the right place, and you can get at it using > container_of as already done by btrfs (and osme of my upcoming code): > > struct iomap_iter *iter = container_of(iomap, struct iomap_iter, iomap); > > Ok, yeah.. that's pretty much what I meant by having an iomap_to_iter() helper, I just wasn't aware that some things were already doing that to poke at the iter. Thanks. I'm assuming we'd want this to be a dynamic allocation as well, since folio_batch is fairly large in comparison (256b compared to 208b iomap_iter). Brian
On Wed, Nov 20, 2024 at 09:29:17AM -0500, Brian Foster wrote: > helper, I just wasn't aware that some things were already doing that to > poke at the iter. Thanks. > > I'm assuming we'd want this to be a dynamic allocation as well, since > folio_batch is fairly large in comparison (256b compared to 208b > iomap_iter). Or at least only add a pointer to it in the iter and then point to a separate stack allocation for it.