On Fri, Oct 17, 2008 at 04:51:00PM -0400, Talpey, Thomas wrote: > At 04:36 PM 10/17/2008, J. Bruce Fields wrote: > >On Fri, Oct 17, 2008 at 04:26:18PM -0400, Talpey, Thomas wrote: > >> At 02:59 PM 10/17/2008, Marc Eshel wrote: > >> >linux-nfs-owner@xxxxxxxxxxxxxxx wrote on 10/17/2008 10:44:54 AM: > >> > > >> >> "J. Bruce Fields" <bfields@xxxxxxxxxxxx> > >> >> Requests longer than a page are still not deferred, so large writes that > >> >> trigger upcalls still get an ERR_DELAY. OK, probably no big deal. > >> >> > >> >> I don't think we can apply this until we have some way to track the > >> >> number and size of deferred requests outstanding and fall back on > >> >> ERR_DELAY if it's too much. > >> > > >> >But I thought that the problem here is that the Linux NFS client doesn't > >> >handle this return code properly. > >> > >> Definitely this is an issue. Early clients do one of two things, they either > >> pass the error back to the application, or they enter a buzz loop resending > >> the operation with no delay. Later clients back off, but for a constant > >> five seconds. > > > >I haven't tested it, but from fs/nfs/nfs4proc.c:nfs4_delay() it appears > >to start at a tenth of a second and then do exponential backoff (up to > >15 seconds). Looks to me like the code's been that way since at least > >2.6.19. > > I was referring to NFSv3, actually - also impacted by this codepath. OK, sorry. Hm, taking another look: nfs3_rpc_wrapper() uses a constant 5 second delay, and nfs4_async_handle_error() uses a constant 15 second delay, so it's only nfs4_handle_exception that does the exponential backoff. Maybe we could fix that. --b. > But I'll take the opportunity to point out that we'll get 5 retries from > an NFSv4 client before 2 seconds go by, and only one from NFSv3 > in twice that. In either case, it's a heck of a bad trade to return "I'm > busy" only to have your bell rung repeatedly in response. > > Sorry, I have always hated EJUKEBOX. -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html