tcp failing to recover from a packet loss under 8.2-RELEASE?

Steven Hartland killing at multiplay.co.uk
Tue Aug 2 10:22:40 UTC 2011


----- Original Message ----- 
From: "Andre Oppermann" <andre at freebsd.org>
...
>> I believe this is tcps_rcvmemdrop in tcp_reass.c to which there's the
>> following comment:-
>>
>> * XXXLAS: Using sbspace(so->so_rcv) instead of so->so_rcv.sb_hiwat
>> * should work but causes packets to be dropped when they shouldn't.
>>
>> I notice this code is relatively new, so I'm wondering if this may be
>> something to do with what we're seeing, possibly still dropping packets
>> it shouldn't?
>>
>> @Lawrence apologies' for the direct mail, but I believe you where the
>> original author this particular change so wondered if you may be
>> able to shed any light on this?
>
> You could be onto something here. Please try this patch:
>  http://people.freebsd.org/~andre/tcp_reass.c-logdebug-20110802.diff
>
> You can enable the log output with
>  sysctl net.inet.tcp.log_debug=1
> and report the log output (comes at LOG_DEBUG level).

Thanks for the response Andre, I've applied the patch and I'm seeing
lots of the following during the test which is:-
1. scp from local host (10.10.1.30) -> tcptest (10.10.1.20) reciever
   which gets ~ 64MB/s
2. scp from remote host (10.10.1.10) -> tcptest (10.10.1.20) reciever
   which gets ~ 10MB/s (line has packet loss)

Aug  2 11:08:50 tcptest kernel: TCP: [10.10.1.30]:60811 to [10.10.1.20]:22 tcpflags 0x10<ACK>; tcp_reass: global zone limit 
reached, segment dropped
Aug  2 11:08:50 tcptest kernel: TCP: [10.10.1.30]:60811 to [10.10.1.20]:22 tcpflags 0x10<ACK>; tcp_reass: global zone limit 
reached, segment dropped
Aug  2 11:08:50 tcptest kernel: TCP: [10.10.1.30]:60811 to [10.10.1.20]:22 tcpflags 0x10<ACK>; tcp_reass: global zone limit 
reached, segment dropped
Aug  2 11:08:50 tcptest kernel: TCP: [10.10.1.30]:60811 to [10.10.1.20]:22 tcpflags 0x10<ACK>; tcp_reass: global zone limit 
reached, segment dropped, would have drained queue!
Aug  2 11:08:50 tcptest kernel: TCP: [10.10.1.30]:60811 to [10.10.1.20]:22 tcpflags 0x10<ACK>; tcp_reass: global zone limit 
reached, segment dropped
Aug  2 11:08:50 tcptest kernel: TCP: [10.10.1.30]:60811 to [10.10.1.20]:22 tcpflags 0x10<ACK>; tcp_reass: global zone limit 
reached, segment dropped
Aug  2 11:08:50 tcptest kernel: TCP: [10.10.1.30]:60811 to [10.10.1.20]:22 tcpflags 0x10<ACK>; tcp_reass: global zone limit 
reached, segment dropped, would have drained queue!
Aug  2 11:08:50 tcptest kernel: TCP: [10.10.1.10]:32416 to [10.10.1.20]:22 tcpflags 0x10<ACK>; tcp_reass: global zone limit 
reached, segment dropped, would have drained queue!
Aug  2 11:08:50 tcptest kernel: TCP: [10.10.1.30]:60811 to [10.10.1.20]:22 tcpflags 0x10<ACK>; tcp_reass: global zone limit 
reached, segment dropped, would have drained queue!
Aug  2 11:08:50 tcptest kernel: TCP: [10.10.1.30]:60811 to [10.10.1.20]:22 tcpflags 0x10<ACK>; tcp_reass: global zone limit 
reached, segment dropped
Aug  2 11:08:50 tcptest kernel: TCP: [10.10.1.30]:60811 to [10.10.1.20]:22 tcpflags 0x10<ACK>; tcp_reass: global zone limit 
reached, segment dropped

    Regards
    Steve 


================================================
This e.mail is private and confidential between Multiplay (UK) Ltd. and the person or entity to whom it is addressed. In the event of misdirection, the recipient is prohibited from using, copying, printing or otherwise disseminating it or any information contained in it. 

In the event of misdirection, illegible or incomplete transmission please telephone +44 845 868 1337
or return the E.mail to postmaster at multiplay.co.uk.



More information about the freebsd-net mailing list