On Tue, 05 Apr 2022, Trond Myklebust wrote: > On Mon, 2022-04-04 at 15:34 +0000, Chuck Lever III wrote: > > .... > > > > I gotta ask: Why does cache_defer_req() check if thread_wait is zero? > > Is there some code in the kernel now that sets it to zero? I see only > > these two values: > > > > 784 if (!test_bit(SP_CONGESTED, &pool->sp_flags)) > > 785 rqstp->rq_chandle.thread_wait = 5*HZ; > > 786 else > > 787 rqstp->rq_chandle.thread_wait = 1*HZ; > > > That test goes all the way back to commit f16b6e8d838b ("sunrpc/cache: > allow threads to block while waiting for cache update."), so probably > more of a question for Neil. 12 years ago.... the commit message suggests that the "underlying transport" might not approve of sleeping, but I cannot think what that might mean. Probably it seemed to mean something earlier in the design process but I discarded the idea without discarding the code. > I don't see any immediate problems with removing it: even if someone > does set a value of 0, the wait code itself should cope. > Agreed. NeilBrown