[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20080829.144144.24237103.davem@davemloft.net>
Date: Fri, 29 Aug 2008 14:41:44 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: buytenh@...tstofly.org
Cc: netdev@...r.kernel.org, dale@...nsworth.org, nico@....org
Subject: Re: cpu utilisation improvement when not doing
netif_tx_{stop,wake}_queue()
From: Lennert Buytenhek <buytenh@...tstofly.org>
Date: Thu, 28 Aug 2008 18:46:38 +0200
> I.e. transmitting wire speed gigabit over a single TCP session takes
> around 90% CPU time (measured with cyclesoak) if I have the TX queue
> flow control enabled, but only 70% if I rip the TX queue flow control
> out. (This is on a relatively underpowered ARM box.)
I bet TCP is taking over and doing the flow control for us :)
My suspicion is that TCP adjusts to the initial packet drops when the
TX queue overflows for the first time and simply does not transmit
faster than the NIC's TX queue can push things out.
I bet the TX buffer space usage for the socket and the TCP windows
used are smaller too, another huge win and something that also helps
for CPU utilization and cpu cache hit rates.
Unfortunately, for the sake of dumb protocols like UDP, this isn't
something we can do universally. Although it is very neat!
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists