From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ezequiel Garcia Subject: [PATCH 0/3] mvneta: software TSO implementation Date: Thu, 10 Apr 2014 19:57:59 -0300 Message-ID: <1397170682-19138-1-git-send-email-ezequiel.garcia@free-electrons.com> Cc: "David S. Miller" , Eric Dumazet , Thomas Petazzoni , Gregory Clement , Simon Guinot , Willy Tarreau , Tawfik Bayouk , Lior Amsalem , Ezequiel Garcia To: Return-path: Received: from top.free-electrons.com ([176.31.233.9]:42457 "EHLO mail.free-electrons.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1759191AbaDJW6j (ORCPT ); Thu, 10 Apr 2014 18:58:39 -0400 Sender: netdev-owner@vger.kernel.org List-ID: This patchset adds a software TSO implementation to our mvneta driver which is already in use on a number platforms. When enabled, the TSO shows both CPU usage reduction and throughput performance improvements. The TSO feature can be completely disabled at runtime using ethtool: $ ethtool -K eth0 tso {on,off} When TSO is disabled the only overhead remaining is the DMA buffers for the TSO headers, allocated when the tx queues are initialized. Follow-up patches can release/re-allocate these buffers upon TSO disabling/re-enabling. In most of my tests I've used iperf where the improvement is most striking, using a Plat'home Openblocks AX/3 board as the iperf client (tx). Measuring the CPU usage with vmstat shows a substantial CPU usage drop when TSO is on (~15% vs. ~25%). HTTP-based tests performed by Willy Tarreau have shown nice performance improvements. The first two patches are trivial cleanups, and the third patch does all the hard work. The TSO implementation was originally prepared by Simon Guinot, and I did some style massage and other cleaning. Any comments about this is much appreciated. Ezequiel Garcia (3): net: mvneta: Factorize feature setting net: mvneta: Clean mvneta_tx() sk_buff handling net: mvneta: Introduce a software TSO implementation drivers/net/ethernet/marvell/mvneta.c | 226 ++++++++++++++++++++++++++++++++-- 1 file changed, 215 insertions(+), 11 deletions(-) -- 1.9.1