Messages in this thread Patch in this message | ![/](/images/icornerl.gif) | | Date | Sun, 9 Nov 2003 17:04:05 -0500 | Subject | Re: NFS on 2.6.0-test9: | From | Trond Myklebust <> |
| |
OK. That points squarely at the RTO timeout "inheritance" change. There are 2 differences as it stands in 2.6.0 w.r.t. the 2.4.23-pre code: the no upper limit, and the inheritance update algorithm.
Could you therefore try the following patch.
Cheers, Trond
diff -u --recursive --new-file linux-2.6.0-test9/include/linux/sunrpc/timer.h linux/include/linux/sunrpc/timer.h --- linux-2.6.0-test9/include/linux/sunrpc/timer.h 2003-11-07 21:03:45.000000000 -0500 +++ linux/include/linux/sunrpc/timer.h 2003-11-09 16:55:43.000000000 -0500 @@ -25,9 +25,18 @@ static inline void rpc_set_timeo(struct rpc_rtt *rt, int timer, int ntimeo) { + int *t; if (!timer) return; - rt->ntimeouts[timer-1] = ntimeo; + t = &rt->ntimeouts[timer-1]; + if (ntimeo < *t) { + if (*t > 0) + (*t)--; + } else { + if (ntimeo > 8) + ntimeo = 8; + *t = ntimeo; + } } static inline int rpc_ntimeo(struct rpc_rtt *rt, int timer) diff -u --recursive --new-file linux-2.6.0-test9/net/sunrpc/timer.c linux/net/sunrpc/timer.c --- linux-2.6.0-test9/net/sunrpc/timer.c 2003-11-07 21:06:11.000000000 -0500 +++ linux/net/sunrpc/timer.c 2003-11-09 16:57:15.000000000 -0500 @@ -40,6 +40,7 @@ rt->srtt[i] = init; rt->sdrtt[i] = RPC_RTO_INIT; } + memset(rt->ntimeouts, 0, sizeof(rt->ntimeouts)); } /* - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| ![\](/images/icornerr.gif) |