On Thu, May 9, 2024 at 8:40 PM Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote: > > > + unsigned long budgt = inode->i_sb->s_bdev ? > > + blk_throttle_budgt(inode->i_sb->s_bdev) : 0; > > The readahead code is used for all file systems, you can't just call > into block layer code here. > ok. I would like to know any suggestions on introducing throttle budget control into readahead which actually works as a negative feedback path. IMO, negative feedback is a good methodology which has been used in scheduler(EAS) and thermal control(IPA) and memory(MGLRU). I would like to suggest to have a try on have it work cross the boundary of memory and block layer. vfs_read / page fault | readahead <---------| | | aops->readpages | | | block_layer------------