All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Dumazet <eric.dumazet@gmail.com>
To: Chris Friesen <cfriesen@nortel.com>
Cc: netdev@vger.kernel.org, Linux kernel <linux-kernel@vger.kernel.org>
Subject: Re: seeing strange values for tcp sk_rmem_alloc
Date: Tue, 01 Dec 2009 18:52:12 +0100	[thread overview]
Message-ID: <4B1557CC.4060503@gmail.com> (raw)
In-Reply-To: <4B155252.1040604@nortel.com>

Chris Friesen a écrit :

> I realize this.  I sent the data from a socket to itself.  It could just
> as easily be done with two tcp sockets.  The important thing is that I
> control both the tx and rx sides, so I know how much data should be
> present in the rx queue at any point in time.
> 
> The part that surprised me was that I could send multiple chunks of data
> without sk_rmem_alloc changing on the socket to which the data was being
> sent.  Then it would jump up by a large amount (up to 20K) all at once.
> 
> I'm starting to suspect that the discrepency might have something to do
> with the skb_copy_datagram_iovec() call in tcp_data_queue(), and how
> skb_set_owner_r() is only called if "eaten" is <= 0.  This could be
> totally off-base though.
> 

If you dont read() your socket, then skb_copy_datagram_iovec() is not called

But be careful of sender tcp stack : It might be delayed a bit,
because it waits for receiver to open its window (slow start)

You probably need something like

while (1) {
	send(fd1, buffer, 2Kbytes);
	sleep(2); // let tcp stack flush its write buffers
	display_sk_rmem_alloc(fd2);
}


  reply	other threads:[~2009-12-01 17:52 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-01 16:16 seeing strange values for tcp sk_rmem_alloc Chris Friesen
2009-12-01 16:18 ` Chris Friesen
2009-12-01 16:58 ` Eric Dumazet
2009-12-01 17:28   ` Chris Friesen
2009-12-01 17:52     ` Eric Dumazet [this message]
2009-12-03 16:55       ` Chris Friesen
2009-12-03 17:04         ` Eric Dumazet
2009-12-03 21:40           ` Chris Friesen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4B1557CC.4060503@gmail.com \
    --to=eric.dumazet@gmail.com \
    --cc=cfriesen@nortel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.