On Sun, Jan 28, 2024 at 10:25:22PM +0800, Ming Lei wrote: > Since commit 6d2be915e589 ("mm/readahead.c: fix readahead failure for > memoryless NUMA nodes and limit readahead max_pages"), ADV_WILLNEED > only tries to readahead 512 pages, and the remained part in the advised > range fallback on normal readahead. Does the MAINTAINERS file mean nothing any more? > If bdi->ra_pages is set as small, readahead will perform not efficient > enough. Increasing read ahead may not be an option since workload may > have mixed random and sequential I/O. I thik there needs to be a lot more explanation than this about what's going on before we jump to "And therefore this patch is the right answer". > @@ -972,6 +974,7 @@ struct file_ra_state { > unsigned int ra_pages; > unsigned int mmap_miss; > loff_t prev_pos; > + struct maple_tree *need_mt; No. Embed the struct maple tree. Don't allocate it. What made you think this was the right approach?