DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 00/13] Mbuf Structure Rework, part 2
@ 2014-09-03 15:49 Bruce Richardson
  2014-09-03 15:49 ` [dpdk-dev] [PATCH 01/13] mbuf: replace data pointer by an offset Bruce Richardson
                   ` (13 more replies)
  0 siblings, 14 replies; 62+ messages in thread
From: Bruce Richardson @ 2014-09-03 15:49 UTC (permalink / raw)
  To: dev

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

^ permalink raw reply	[flat|nested] 62+ messages in thread

end of thread, other threads:[~2014-09-17 22:30 UTC | newest]

Thread overview: 62+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-03 15:49 [dpdk-dev] [PATCH 00/13] Mbuf Structure Rework, part 2 Bruce Richardson
2014-09-03 15:49 ` [dpdk-dev] [PATCH 01/13] mbuf: replace data pointer by an offset Bruce Richardson
2014-09-08  9:52   ` Olivier MATZ
2014-09-08  9:55     ` Olivier MATZ
2014-09-03 15:49 ` [dpdk-dev] [PATCH 02/13] mbuf: reorder fields by time of use Bruce Richardson
2014-09-08 10:17   ` Olivier MATZ
2014-09-03 15:49 ` [dpdk-dev] [PATCH 03/13] mbuf: add packet_type field Bruce Richardson
2014-09-08 10:17   ` Olivier MATZ
2014-09-08 10:33     ` Yerden Zhumabekov
2014-09-08 11:17       ` Olivier MATZ
2014-09-09  3:59         ` Zhang, Helin
     [not found]           ` <540EB428.9060706@6wind.com>
2014-09-09  8:45             ` Zhang, Helin
2014-09-09  9:47             ` Richardson, Bruce
2014-09-09 15:05         ` Jim Thompson
2014-09-03 15:49 ` [dpdk-dev] [PATCH 04/13] mbuf: expand ol_flags field to 64-bits Bruce Richardson
2014-09-08 10:25   ` Olivier MATZ
2014-09-09  9:00     ` Richardson, Bruce
2014-09-03 15:49 ` [dpdk-dev] [PATCH 05/13] mbuf: introduce a flag to indicate a control mbuf Bruce Richardson
2014-09-08 11:53   ` Olivier MATZ
2014-09-03 15:49 ` [dpdk-dev] [PATCH 06/13] mbuf: minor changes for readability Bruce Richardson
2014-09-08 12:03   ` Olivier MATZ
2014-09-03 15:49 ` [dpdk-dev] [PATCH 07/13] mbuf: use macros only to access the mbuf metadata Bruce Richardson
2014-09-08 12:05   ` Olivier MATZ
2014-09-09  9:01     ` Richardson, Bruce
2014-09-12 16:56       ` Dumitrescu, Cristian
2014-09-12 21:02         ` Olivier MATZ
2014-09-16 20:07           ` Dumitrescu, Cristian
2014-09-16 22:06             ` Ramia, Kannan Babu
2014-09-17 10:31               ` Richardson, Bruce
2014-09-17 14:01                 ` Thomas Monjalon
2014-09-10 15:09     ` Bruce Richardson
2014-09-10 15:31       ` Olivier MATZ
2014-09-03 15:49 ` [dpdk-dev] [PATCH 08/13] mbuf: add named points inside the mbuf structure Bruce Richardson
2014-09-08 12:08   ` Olivier MATZ
2014-09-03 15:49 ` [dpdk-dev] [PATCH 09/13] ixgbe: rework vector pmd following mbuf changes Bruce Richardson
2014-09-03 15:49 ` [dpdk-dev] [PATCH 10/13] mbuf: split mbuf across two cache lines Bruce Richardson
2014-09-08 12:10   ` Olivier MATZ
2014-09-03 15:49 ` [dpdk-dev] [PATCH 11/13] mbuf: move l2_len and l3_len to second cache line Bruce Richardson
2014-09-04  5:08   ` Yerden Zhumabekov
2014-09-04 10:27     ` Bruce Richardson
2014-09-04 11:00       ` Yerden Zhumabekov
2014-09-04 11:55         ` Bruce Richardson
2014-09-03 15:49 ` [dpdk-dev] [PATCH 12/13] ixgbe: Fix perf regression due to moved pool ptr Bruce Richardson
2014-09-03 15:49 ` [dpdk-dev] [PATCH 13/13] ixgbe: Improve slow-path perf: vector scattered RX Bruce Richardson
2014-09-11 13:15 ` [dpdk-dev] [PATCH v2 00/13] Mbuf Structure Rework, part 2 Bruce Richardson
2014-09-11 13:15   ` [dpdk-dev] [PATCH v2 01/13] mbuf: replace data pointer by an offset Bruce Richardson
2014-09-11 13:15   ` [dpdk-dev] [PATCH v2 02/13] mbuf: reorder fields by time of use Bruce Richardson
2014-09-15  7:11     ` Liu, Jijiang
2014-09-15  8:19       ` Richardson, Bruce
2014-09-11 13:15   ` [dpdk-dev] [PATCH v2 03/13] mbuf: expand ol_flags field to 64-bits Bruce Richardson
2014-09-11 13:15   ` [dpdk-dev] [PATCH v2 04/13] mbuf: introduce a flag to indicate a control mbuf Bruce Richardson
2014-09-11 13:15   ` [dpdk-dev] [PATCH v2 05/13] mbuf: minor changes for readability Bruce Richardson
2014-09-11 13:15   ` [dpdk-dev] [PATCH v2 06/13] mbuf: use macros only to access the mbuf metadata Bruce Richardson
2014-09-11 13:15   ` [dpdk-dev] [PATCH v2 07/13] mbuf: move metadata macros to rte_port library Bruce Richardson
2014-09-11 13:15   ` [dpdk-dev] [PATCH v2 08/13] mbuf: add named points inside the mbuf structure Bruce Richardson
2014-09-11 13:15   ` [dpdk-dev] [PATCH v2 09/13] ixgbe: rework vector pmd following mbuf changes Bruce Richardson
2014-09-11 13:15   ` [dpdk-dev] [PATCH v2 10/13] mbuf: split mbuf across two cache lines Bruce Richardson
2014-09-11 13:15   ` [dpdk-dev] [PATCH v2 11/13] mbuf: move l2_len and l3_len to second cache line Bruce Richardson
2014-09-11 13:15   ` [dpdk-dev] [PATCH v2 12/13] ixgbe: Fix perf regression due to moved pool ptr Bruce Richardson
2014-09-15 16:20     ` [dpdk-dev] [PATCH v3 " Bruce Richardson
2014-09-11 13:15   ` [dpdk-dev] [PATCH v2 13/13] ixgbe: Improve slow-path perf: vector scattered RX Bruce Richardson
2014-09-17 22:35   ` [dpdk-dev] [PATCH v2 00/13] Mbuf Structure Rework, part 2 Thomas Monjalon

DPDK patches and discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \
		dev@dpdk.org
	public-inbox-index dev

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git