Subject: Re: sendfile()? Re: SO_LINGER dead: I get an immediate RST on 2.6.24?

From: Rick Jones <[email-masked]>
Date: Mon, 12 Jan 2009 23:06:04 -0800

Bill Fink wrote:
> On Tue, 13 Jan 2009, Herbert Xu wrote:
> 
> 
>>Bill Fink <[email-masked]> wrote:
>>
>>>If I understand you correctly, to hit this corner case, just after
>>>the final TCP write, there would have to be no packets in flight
>>>together with a zero TCP window.  To make it more bullet-proof, I
>>>guess after seeing a zero tcpi_unacked, an additional small delay
>>>should be performed, and then rechecking for a zero tcpi_unacked.
>>>I don't see anything else obvious (to me anyway) in the tcp_info
>>>that would be particularly helpful in handling this.
>>
>>What's wrong with idiag_wqueue? Isn't that a much more direct
>>way to get this?
> 
> 
> I'm not familiar with idiag_wqueue, but it sounds like it has something
> to do with INET_DIAG/INET_TCP_DIAG.  It was a long time ago, but I seem
> to recall that using INET_DIAG had a negative impact on performance,
> and since the main point of nuttcp is to measure TCP/UDP performance,
> that would be contrary to its primary purpose.  Also, I don't want to
> rely on something that's not guaranteed to be part of the running kernel.

How likely is it that the "additional small delay" above would be much 
less than waiting for a read return of zero after a shutdown(SHUT_WR) call?

rick jones