[Cerowrt-devel] instruction traps on tcp_rcv - bug 360 regression - reopened
Robert Bradley
robert.bradley1 at gmail.com
Sun Dec 22 14:26:33 PST 2013
On 22/12/13 21:35, Dave Taht wrote:
> http://www.bufferbloat.net/issues/360
>
> I would be very reluctant to take seriously any benchmarks going to
> the router until this one is quashed. Really bad behavior (I put a
> plot up on the bug)
>
> Stuff going through the router appears to be sane, but if you are monitoring
> the router at the same time (like via ssh or a web page) there are
> side effects visible at higher rates.
>
> I am hopefully getting setup to do ipv6 again soon so as to make sure
> all those bugs remain squashed too....
>
It looks like tcp_parse_aligned_timestamp() in net/ipv4/tcp_input.c has
acquired an if(*ptr) statement between 3.8 and 3.10. That bug had been
annoying me for a while...
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index 3d67689..c6496eb 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -3632,7 +3632,7 @@ static bool tcp_parse_aligned_timestamp(struct
tcp_sock *tp, const struct tcphdr
++ptr;
tp->rx_opt.rcv_tsval = get_unaligned_be32(ptr);
++ptr;
- if (*ptr)
+ if (net_hdr_word(ptr))
tp->rx_opt.rcv_tsecr = get_unaligned_be32(ptr) -
tp->tsoffset;
else
--
Robert Bradley
More information about the Cerowrt-devel
mailing list