On Thu, Aug 13, 2020 at 07:33:07PM -0700, Andrew Morton wrote: > On Fri, 14 Aug 2020 10:20:11 +0800 Zhaoyang Huang <huangzhaoyang@xxxxxxxxx> wrote: > > No, What I want to fix is the file within one process's context keeps > > using the initialized value when it is opened and not sync with new > > value when bdi->ra_pages changes. > > So you're saying that > > echo xxx > /sys/block/dm/queue/read_ahead_kb > > does not affect presently-open files, and you believe that it should do > so? > > I guess that could be a reasonable thing to want - it's reasonable for > a user to expect that writing to a global tunable will take immediate > global effect. I guess. But it's also reasonable for someone to have written an application assuming that the current behaviour won't change. As I understand it, if we change net.ipv4.tcp_window_scaling, that will take effect only for new connections, and not for existing ones. I think the _real_ problem is that readahead never scales down, except for EIO. I don't have time to take on another project right now, but I think this patch is too simplistic and has too many downsides. Someone needs to really think the readahead situation through properly.