Messages in this thread | | | Subject | Re: [PATCH] net: tcp: Fix a PTO timing granularity issue | From | Eric Dumazet <> | Date | Wed, 27 May 2015 09:23:36 -0700 |
| |
On Wed, 2015-05-27 at 11:23 -0400, Ido Yariv wrote:
> Signed-off-by: Ido Yariv <idox.yariv@intel.com> > --- > include/net/tcp.h | 9 +++++++++ > net/ipv4/tcp_output.c | 2 +- > 2 files changed, 10 insertions(+), 1 deletion(-) > > diff --git a/include/net/tcp.h b/include/net/tcp.h > index 2bb2bad..86090b6 100644 > --- a/include/net/tcp.h > +++ b/include/net/tcp.h > @@ -1751,4 +1751,13 @@ static inline void skb_set_tcp_pure_ack(struct sk_buff *skb) > skb->truesize = 2; > } > > +/* Convert msecs to jiffies, ensuring that the return value is always at least > + * 2. This can be used when setting tick-based timers to guarantee that they > + * won't expire right away. > + */ > +static inline unsigned long tcp_safe_msecs_to_jiffies(const unsigned int m) > +{ > + return max_t(u32, 2, msecs_to_jiffies(m)); > +}
Note that you can do slightly better if m is a constant at compile time ;)
if (__builtin_constant_p(m) && m * 1000 >= 2 * HZ) return msecs_to_jiffies(m); return max_t(u32, 2, msecs_to_jiffies(m));
Or something like that ?
| |