tcp_cubic: enable high resolution ack time if needed
authorstephen hemminger <shemminger@vyatta.com>
Mon, 14 Mar 2011 07:52:16 +0000 (07:52 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 14 Mar 2011 22:54:40 +0000 (15:54 -0700)
This is a refined version of an earlier patch by Lucas Nussbaum.
Cubic needs RTT values in milliseconds. If HZ < 1000 then
the values will be too coarse.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Reported-by: Lucas Nussbaum <lucas.nussbaum@loria.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_cubic.c

index f4fb2d4..5e0491d 100644 (file)
@@ -459,6 +459,10 @@ static int __init cubictcp_register(void)
        /* divide by bic_scale and by constant Srtt (100ms) */
        do_div(cube_factor, bic_scale * 10);
 
+       /* hystart needs ms clock resolution */
+       if (hystart && HZ < 1000)
+               cubictcp.flags |= TCP_CONG_RTT_STAMP;
+
        return tcp_register_congestion_control(&cubictcp);
 }