public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
* TCP: Support configurable delayed-ack parameters
@ 2014-02-28 15:14 Harout Hedeshian
  2014-02-28 15:49 ` Eric Dumazet
  0 siblings, 1 reply; 4+ messages in thread
From: Harout Hedeshian @ 2014-02-28 15:14 UTC (permalink / raw)
  To: davem; +Cc: netdev

Hello David,

I found a thread from June 2012 (subject matches this email) discussing the
addition of parameters to manually tune the delayed TCP ACK parameters, and
add new TCP socket options for application specific tuning. The patch in
question would multiply the receive mss by some constant exposed in /proc.
We have experimented with a similar approach and found significant
improvements in performance when asymmetric links are utilized; specifically
where the hardware is limited in egress packets/sec (but not raw bandwidth).
As an example, in one test we saw a 100% improvement when doing rcv_mss*4.

You had responded to the original patch by stating that you are
fundamentally opposed to the feature. I'm trying to understand specifically
what your objections are. Checking tcp_measure_rcv_mss() current
implementation(as of 3.10),  I do not see any way for rcv_mss to grow beyond
the largest received skb length. 

Thanks,
Harout

--
Harout Hedeshian

Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by
The Linux Foundation

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: TCP: Support configurable delayed-ack parameters
  2014-02-28 15:14 TCP: Support configurable delayed-ack parameters Harout Hedeshian
@ 2014-02-28 15:49 ` Eric Dumazet
  2014-02-28 16:37   ` Harout Hedeshian
  0 siblings, 1 reply; 4+ messages in thread
From: Eric Dumazet @ 2014-02-28 15:49 UTC (permalink / raw)
  To: Harout Hedeshian; +Cc: davem, netdev

On Fri, 2014-02-28 at 08:14 -0700, Harout Hedeshian wrote:
> Hello David,
> 
> I found a thread from June 2012 (subject matches this email) discussing the
> addition of parameters to manually tune the delayed TCP ACK parameters, and
> add new TCP socket options for application specific tuning. The patch in
> question would multiply the receive mss by some constant exposed in /proc.
> We have experimented with a similar approach and found significant
> improvements in performance when asymmetric links are utilized; specifically
> where the hardware is limited in egress packets/sec (but not raw bandwidth).
> As an example, in one test we saw a 100% improvement when doing rcv_mss*4.

Note that we have some bugs in TCP stack, that might explain the
behavior. Please post pcap so that we can really understand your point,
and eventually pinpoint bugs.

For example TSO should_defer() is known to be problematic, and we have a
patch fixing the issue. I'll post it today.

Other bugs included a problem in TCP Small Queue, that was recently
fixed.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: TCP: Support configurable delayed-ack parameters
  2014-02-28 15:49 ` Eric Dumazet
@ 2014-02-28 16:37   ` Harout Hedeshian
  2014-02-28 16:52     ` Eric Dumazet
  0 siblings, 1 reply; 4+ messages in thread
From: Harout Hedeshian @ 2014-02-28 16:37 UTC (permalink / raw)
  To: Eric Dumazet; +Cc: davem, netdev

On 02/28/2014 08:49 AM, Eric Dumazet wrote:
> On Fri, 2014-02-28 at 08:14 -0700, Harout Hedeshian wrote:
>> Hello David,
>>
>> I found a thread from June 2012 (subject matches this email) discussing the
>> addition of parameters to manually tune the delayed TCP ACK parameters, and
>> add new TCP socket options for application specific tuning. The patch in
>> question would multiply the receive mss by some constant exposed in /proc.
>> We have experimented with a similar approach and found significant
>> improvements in performance when asymmetric links are utilized; specifically
>> where the hardware is limited in egress packets/sec (but not raw bandwidth).
>> As an example, in one test we saw a 100% improvement when doing rcv_mss*4.
>
> Note that we have some bugs in TCP stack, that might explain the
> behavior. Please post pcap so that we can really understand your point,
> and eventually pinpoint bugs.
>
> For example TSO should_defer() is known to be problematic, and we have a
> patch fixing the issue. I'll post it today.
>
> Other bugs included a problem in TCP Small Queue, that was recently
> fixed.
>
>
>

Hi Eric,

Disclaimer before I waste peoples' time on a ghost chase: This is running on non-x86 custom hardware where there may be buggy drivers or implementation. Also, 
we are running on 3.10.0 and are unable to move to a newer kernel for reasons beyond my control.

I will capture pcap logs showing the TCP stream under standard configuration, and with mss*4. That said, sharing will be a problem as these files even with 
limited capture size can be several hundred MB (of course attaching to the email won't work).

I will keep an eye out for the should_defer() patch today. I would also appreciate if you could point me to the TCP Small Queue patch. I would like to pull 
these into my build and give them a shot.

Harout

-- 
Harout Hedeshian

Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: TCP: Support configurable delayed-ack parameters
  2014-02-28 16:37   ` Harout Hedeshian
@ 2014-02-28 16:52     ` Eric Dumazet
  0 siblings, 0 replies; 4+ messages in thread
From: Eric Dumazet @ 2014-02-28 16:52 UTC (permalink / raw)
  To: Harout Hedeshian; +Cc: davem, netdev

On Fri, 2014-02-28 at 09:37 -0700, Harout Hedeshian wrote:
> 
> Hi Eric,
> 
> Disclaimer before I waste peoples' time on a ghost chase: This is
> running on non-x86 custom hardware where there may be buggy drivers or
> implementation. Also, 
> we are running on 3.10.0 and are unable to move to a newer kernel for
> reasons beyond my control.
> 
> I will capture pcap logs showing the TCP stream under standard
> configuration, and with mss*4. That said, sharing will be a problem as
> these files even with 
> limited capture size can be several hundred MB (of course attaching to
> the email won't work).
> 
Maybe you can point the relevant part, and shrink the pcap to reasonable
sizes ?

> I will keep an eye out for the should_defer() patch today. I would
> also appreciate if you could point me to the TCP Small Queue patch. I
> would like to pull 
> these into my build and give them a shot.

Please note it was a shout in the dark :)

Anyway here is the patch :
http://git.kernel.org/cgit/linux/kernel/git/davem/net-next.git/commit/?id=bf06200e732de613a1277984bf34d1a21c2de03d

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-02-28 16:52 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-02-28 15:14 TCP: Support configurable delayed-ack parameters Harout Hedeshian
2014-02-28 15:49 ` Eric Dumazet
2014-02-28 16:37   ` Harout Hedeshian
2014-02-28 16:52     ` Eric Dumazet

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox