From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <bricha3@ecsmtp.ir.intel.com>
Received: from mga02.intel.com (mga02.intel.com [134.134.136.20])
 by dpdk.org (Postfix) with ESMTP id D402538EB
 for <dev@dpdk.org>; Wed,  3 Sep 2014 17:45:05 +0200 (CEST)
Received: from orsmga001.jf.intel.com ([10.7.209.18])
 by orsmga101.jf.intel.com with ESMTP; 03 Sep 2014 08:49:40 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.04,458,1406617200"; d="scan'208";a="567777822"
Received: from irvmail001.ir.intel.com ([163.33.26.43])
 by orsmga001.jf.intel.com with ESMTP; 03 Sep 2014 08:49:39 -0700
Received: from sivswdev02.ir.intel.com (sivswdev02.ir.intel.com
 [10.237.217.46])
 by irvmail001.ir.intel.com (8.14.3/8.13.6/MailSET/Hub) with ESMTP id
 s83FncFI025379; Wed, 3 Sep 2014 16:49:38 +0100
Received: from sivswdev02.ir.intel.com (localhost [127.0.0.1])
 by sivswdev02.ir.intel.com with ESMTP id s83Fncs7010409;
 Wed, 3 Sep 2014 16:49:38 +0100
Received: (from bricha3@localhost)
 by sivswdev02.ir.intel.com with  id s83FnccB010404;
 Wed, 3 Sep 2014 16:49:38 +0100
From: Bruce Richardson <bruce.richardson@intel.com>
To: dev@dpdk.org
Date: Wed,  3 Sep 2014 16:49:25 +0100
Message-Id: <1409759378-10113-1-git-send-email-bruce.richardson@intel.com>
X-Mailer: git-send-email 1.7.0.7
Subject: [dpdk-dev] [PATCH 00/13] Mbuf Structure Rework, part 2
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: patches and discussions about DPDK <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Wed, 03 Sep 2014 15:45:06 -0000

This patch set continues on from the changes in part 1, and depends
upon that patch set.

This patch set reorders the fields in the mbuf structure and splits
the structure across two cache lines, given lots of new space for new
fields to be added. This set uses some of that space by expanding the 
ol_flags field and by adding in a packet_type field. A part 3 patchset
is planned to introduce other new fields into the new mbuf structure.

With the splitting of the mbuf across multiple cache lines, performance
degradations are seen inside the drivers, both fast-path and slow path.
For the fast-path, this patchset reworks the way in which the pool pointer
is used to free packets post-TX, which removes the perf regression. For
the slow path, an alternative approach is taken - a new scattered packets
RX function is introduced into the vector PMD. Using this function,
throughput for the slow path RX-TX using testpmd is increased by up to 20%
over the original baseline.

Bruce Richardson (12):
  mbuf: reorder fields by time of use
  mbuf: add packet_type field
  mbuf: expand ol_flags field to 64-bits
  mbuf: introduce a flag to indicate a control mbuf
  mbuf: minor changes for readability
  mbuf: use macros only to access the mbuf metadata
  mbuf: add named points inside the mbuf structure
  ixgbe: rework vector pmd following mbuf changes
  mbuf: split mbuf across two cache lines.
  mbuf: move l2_len and l3_len to second cache line
  ixgbe: Fix perf regression due to moved pool ptr
  ixgbe: Improve slow-path perf: vector scattered RX

Olivier Matz (1):
  mbuf: replace data pointer by an offset

 app/test-pmd/csumonly.c                     |   2 +-
 app/test-pmd/flowgen.c                      |   2 +-
 app/test-pmd/icmpecho.c                     |   2 +-
 app/test-pmd/ieee1588fwd.c                  |   4 +-
 app/test-pmd/macfwd-retry.c                 |   2 +-
 app/test-pmd/macfwd.c                       |   2 +-
 app/test-pmd/macswap.c                      |   2 +-
 app/test-pmd/rxonly.c                       |   2 +-
 app/test-pmd/testpmd.c                      |   2 +-
 app/test-pmd/txonly.c                       |   7 +-
 app/test/packet_burst_generator.c           |   7 +-
 app/test/test_mbuf.c                        |   8 +-
 app/test/test_table_acl.c                   |   7 +-
 app/test/test_table_pipeline.c              |   8 +-
 examples/exception_path/main.c              |   3 +-
 examples/vhost/main.c                       |  37 +--
 examples/vhost_xen/main.c                   |  14 +-
 lib/librte_ip_frag/rte_ipv4_fragmentation.c |   6 +-
 lib/librte_ip_frag/rte_ipv6_fragmentation.c |   6 +-
 lib/librte_mbuf/rte_mbuf.c                  |  10 +-
 lib/librte_mbuf/rte_mbuf.h                  | 127 +++++----
 lib/librte_pmd_bond/rte_eth_bond_pmd.c      |   4 +-
 lib/librte_pmd_e1000/em_rxtx.c              |  12 +-
 lib/librte_pmd_e1000/igb_rxtx.c             |  13 +-
 lib/librte_pmd_i40e/i40e_rxtx.c             |  17 +-
 lib/librte_pmd_ixgbe/ixgbe_rxtx.c           |  56 ++--
 lib/librte_pmd_ixgbe/ixgbe_rxtx.h           |  22 +-
 lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c       | 390 +++++++++++++++++-----------
 lib/librte_pmd_pcap/rte_eth_pcap.c          |   9 +-
 lib/librte_pmd_virtio/virtio_rxtx.c         |  10 +-
 lib/librte_pmd_virtio/virtqueue.h           |   3 +-
 lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c       |   5 +-
 lib/librte_pmd_xenvirt/rte_eth_xenvirt.c    |   2 +-
 33 files changed, 466 insertions(+), 337 deletions(-)

-- 
1.9.3