Re: [PATCH 04/13] mm/readahead: add readahead_control->uncached member

From: Jens Axboe
Date: Fri Nov 08 2024 - 14:23:14 EST


On 11/8/24 11:21 AM, Matthew Wilcox wrote:
> On Fri, Nov 08, 2024 at 10:43:27AM -0700, Jens Axboe wrote:
>> +++ b/mm/readahead.c
>> @@ -191,7 +191,13 @@ static void read_pages(struct readahead_control *rac)
>> static struct folio *ractl_alloc_folio(struct readahead_control *ractl,
>> gfp_t gfp_mask, unsigned int order)
>> {
>> - return filemap_alloc_folio(gfp_mask, order);
>> + struct folio *folio;
>> +
>> + folio = filemap_alloc_folio(gfp_mask, order);
>> + if (folio && ractl->uncached)
>> + folio_set_uncached(folio);
>
> If we've just allocated it, it should be safe to use
> __folio_set_uncached() here, no?

Indeed, we can use __folio_set_uncached() here. I'll make that change.

> Not that I'm keen on using a folio flag here, but I'm reserving judgement
> on that unti I've got further through this series and see how it's used.
> I can see that it might be necessary.

I knew that'd be one of the more contentious items here... On the read
side, we can get by without the flag. But for writeback we do need it.
I just kept it consistent and used folio_*_uncached() throughout
because of that.

--
Jens Axboe