On Thu, 27 Jan 2022 at 03:47, NeilBrown [off-list ref] wrote:
inode_congested() reports if the backing-device for the inode is
congested. Few bdi report congestion any more, only ceph, fuse, and
nfs. Having support just for those is unlikely to be useful.
The places which test inode_congested() or it variants like
inode_write_congested(), avoid initiating IO if congestion is present.
We now have to rely on other places in the stack to back off, or abort
requests - we already do for everything except these 3 filesystems.
So remove inode_congested() and related functions, and remove the call
sites, assuming that inode_congested() always returns 'false'.
Looks to me this is going to "break" fuse; e.g. readahead path will go
ahead and try to submit more requests, even if the queue is getting
congested. In this case the readahead submission will eventually
block, which is counterproductive.
I think we should *first* make sure all call sites are substituted
with appropriate mechanisms in the affected filesystems and as a last
step remove the superfluous bdi congestion mechanism.
You are saying that all fs except these three already have such
mechanisms in place, right? Can you elaborate on that?
Thanks,
Miklos