From: Stephen Hemminger <stephen@networkplumber.org>
To: Tomasz Kulasek <tomaszx.kulasek@intel.com>
Cc: dev@dpdk.org
Subject: Re: [PATCH 0/6] add Tx preparation
Date: Fri, 26 Aug 2016 10:31:14 -0700 [thread overview]
Message-ID: <20160826103114.5b547cef@xeon-e3> (raw)
In-Reply-To: <1472228578-6980-1-git-send-email-tomaszx.kulasek@intel.com>
On Fri, 26 Aug 2016 18:22:52 +0200
Tomasz Kulasek <tomaszx.kulasek@intel.com> wrote:
> As discussed in that thread:
>
> http://dpdk.org/ml/archives/dev/2015-September/023603.html
>
> Different NIC models depending on HW offload requested might impose
> different requirements on packets to be TX-ed in terms of:
>
> - Max number of fragments per packet allowed
> - Max number of fragments per TSO segments
> - The way pseudo-header checksum should be pre-calculated
> - L3/L4 header fields filling
> - etc.
>
>
> MOTIVATION:
> -----------
>
> 1) Some work cannot (and didn't should) be done in rte_eth_tx_burst.
> However, this work is sometimes required, and now, it's an
> application issue.
Why not? You are adding an additional API burden on every application.
>
> 2) Different hardware may have different requirements for TX offloads,
> other subset can be supported and so on.
These need to be reported by API so that application can handle it.
Doing these transformations in tx_prep seems late in the process.
>
> 3) Some parameters (e.g. number of segments in ixgbe driver) may hung
> device. These parameters may be vary for different devices.
>
> For example i40e HW allows 8 fragments per packet, but that is after
> TSO segmentation. While ixgbe has a 38-fragment pre-TSO limit.
Seems better to handle these limits as exceptions in i40e_tx_burst etc;
rather than a pre-step. Look at how Linux driver API works, several drivers
have to have an exception linearize path.
>
> 4) Fields in packet may require different initialization (like e.g. will
> require pseudo-header checksum precalculation, sometimes in a
> different way depending on packet type, and so on). Now application
> needs to care about it.
Once again, the driver should do this in Tx.
>
> 5) Using additional API (rte_eth_tx_prep) before rte_eth_tx_burst let to
> prepare packet burst in acceptable form for specific device.
>
> 6) Some additional checks may be done in debug mode keeping tx_burst
> implementation clean.
Most of this could be done by refactoring existing tx_burst in drivers.
Much of the code seems to be written as the "let's write a 2000 line
function because that is most efficient" rather than "let's write
small steps and let the compiler optimize it"
next prev parent reply other threads:[~2016-08-26 17:31 UTC|newest]
Thread overview: 261+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-26 16:22 [PATCH 0/6] add Tx preparation Tomasz Kulasek
2016-08-26 16:22 ` [PATCH 1/6] ethdev: " Tomasz Kulasek
2016-09-08 7:28 ` Jerin Jacob
2016-09-08 16:09 ` Kulasek, TomaszX
2016-09-09 5:58 ` Jerin Jacob
2016-08-26 16:22 ` [PATCH 2/6] e1000: " Tomasz Kulasek
2016-08-26 16:22 ` [PATCH 3/6] fm10k: " Tomasz Kulasek
2016-08-26 16:22 ` [PATCH 4/6] i40e: " Tomasz Kulasek
2016-08-26 16:22 ` [PATCH 5/6] ixgbe: " Tomasz Kulasek
2016-08-26 16:22 ` [PATCH 6/6] testpmd: add txprep engine Tomasz Kulasek
2016-08-26 17:31 ` Stephen Hemminger [this message]
2016-08-31 12:34 ` [PATCH 0/6] add Tx preparation Ananyev, Konstantin
2016-09-12 14:44 ` [PATCH v2 " Tomasz Kulasek
2016-09-12 14:44 ` [PATCH v2 1/6] ethdev: " Tomasz Kulasek
2016-09-19 13:03 ` Ananyev, Konstantin
2016-09-19 15:29 ` Kulasek, TomaszX
2016-09-19 16:06 ` Jerin Jacob
2016-09-20 9:06 ` Ananyev, Konstantin
2016-09-21 8:29 ` Jerin Jacob
2016-09-22 9:36 ` Ananyev, Konstantin
2016-09-22 9:59 ` Jerin Jacob
2016-09-23 9:41 ` Ananyev, Konstantin
2016-09-23 10:29 ` Jerin Jacob
2016-09-12 14:44 ` [PATCH v2 2/6] e1000: " Tomasz Kulasek
2016-09-12 14:44 ` [PATCH v2 3/6] fm10k: " Tomasz Kulasek
2016-09-12 14:44 ` [PATCH v2 4/6] i40e: " Tomasz Kulasek
2016-09-12 14:44 ` [PATCH v2 5/6] ixgbe: " Tomasz Kulasek
2016-09-19 12:54 ` Ananyev, Konstantin
2016-09-19 13:58 ` Kulasek, TomaszX
2016-09-19 15:23 ` Ananyev, Konstantin
2016-09-20 7:15 ` Ananyev, Konstantin
2016-09-12 14:44 ` [PATCH v2 6/6] testpmd: add txprep engine Tomasz Kulasek
2016-09-19 12:59 ` Ananyev, Konstantin
2016-09-28 11:10 ` [PATCH v3 0/6] add Tx preparation Tomasz Kulasek
2016-09-28 11:10 ` [PATCH v3 1/6] ethdev: " Tomasz Kulasek
2016-09-29 10:40 ` Ananyev, Konstantin
2016-09-29 13:04 ` Kulasek, TomaszX
2016-09-29 13:57 ` Ananyev, Konstantin
2016-09-28 11:10 ` [PATCH v3 2/6] e1000: " Tomasz Kulasek
2016-09-28 11:10 ` [PATCH v3 3/6] fm10k: " Tomasz Kulasek
2016-09-28 11:10 ` [PATCH v3 4/6] i40e: " Tomasz Kulasek
2016-09-28 11:10 ` [PATCH v3 5/6] ixgbe: " Tomasz Kulasek
2016-09-29 11:09 ` Ananyev, Konstantin
2016-09-29 15:12 ` Kulasek, TomaszX
2016-09-29 17:01 ` Ananyev, Konstantin
2016-09-28 11:10 ` [PATCH v3 6/6] testpmd: use Tx preparation in csum engine Tomasz Kulasek
2016-09-30 9:00 ` [PATCH v4 0/6] add Tx preparation Tomasz Kulasek
2016-09-30 9:00 ` [PATCH v4 1/6] ethdev: " Tomasz Kulasek
2016-10-10 14:08 ` Thomas Monjalon
2016-10-13 7:08 ` Thomas Monjalon
2016-10-13 10:47 ` Kulasek, TomaszX
2016-09-30 9:00 ` [PATCH v4 2/6] e1000: " Tomasz Kulasek
2016-09-30 9:00 ` [PATCH v4 3/6] fm10k: " Tomasz Kulasek
2016-09-30 9:00 ` [PATCH v4 4/6] i40e: " Tomasz Kulasek
2016-10-10 14:02 ` Wu, Jingjing
2016-10-10 17:20 ` Kulasek, TomaszX
2016-09-30 9:00 ` [PATCH v4 5/6] ixgbe: " Tomasz Kulasek
2016-09-30 9:00 ` [PATCH v4 6/6] testpmd: use Tx preparation in csum engine Tomasz Kulasek
2016-09-30 9:55 ` [PATCH v4 0/6] add Tx preparation Ananyev, Konstantin
2016-10-13 17:36 ` [PATCH v5 " Tomasz Kulasek
2016-10-13 17:36 ` [PATCH v5 1/6] ethdev: " Tomasz Kulasek
2016-10-13 19:21 ` Thomas Monjalon
2016-10-14 14:02 ` Kulasek, TomaszX
2016-10-14 14:20 ` Thomas Monjalon
2016-10-17 16:25 ` Kulasek, TomaszX
2016-10-13 17:36 ` [PATCH v5 2/6] e1000: " Tomasz Kulasek
2016-10-13 17:36 ` [PATCH v5 3/6] fm10k: " Tomasz Kulasek
2016-10-13 17:37 ` [PATCH v5 4/6] i40e: " Tomasz Kulasek
2016-10-13 17:37 ` [PATCH v5 5/6] ixgbe: " Tomasz Kulasek
2016-10-13 17:37 ` [PATCH v5 6/6] testpmd: use Tx preparation in csum engine Tomasz Kulasek
2016-10-14 15:05 ` [PATCH v6 0/6] add Tx preparation Tomasz Kulasek
2016-10-14 15:05 ` [PATCH v6 1/6] ethdev: " Tomasz Kulasek
2016-10-18 14:57 ` Olivier Matz
2016-10-19 15:42 ` Kulasek, TomaszX
2016-10-19 22:07 ` Ananyev, Konstantin
2016-10-14 15:05 ` [PATCH v6 2/6] e1000: " Tomasz Kulasek
2016-10-14 15:05 ` [PATCH v6 3/6] fm10k: " Tomasz Kulasek
2016-10-14 15:05 ` [PATCH v6 4/6] i40e: " Tomasz Kulasek
2016-10-14 15:05 ` [PATCH v6 5/6] ixgbe: " Tomasz Kulasek
2016-10-14 15:05 ` [PATCH v6 6/6] testpmd: use Tx preparation in csum engine Tomasz Kulasek
2016-10-18 12:28 ` [PATCH v6 0/6] add Tx preparation Ananyev, Konstantin
2016-10-21 13:42 ` [PATCH v7 " Tomasz Kulasek
2016-10-21 13:42 ` [PATCH v7 1/6] ethdev: " Tomasz Kulasek
2016-10-21 13:42 ` [PATCH v7 2/6] e1000: " Tomasz Kulasek
2016-10-21 13:42 ` [PATCH v7 3/6] fm10k: " Tomasz Kulasek
2016-10-21 13:42 ` [PATCH v7 4/6] i40e: " Tomasz Kulasek
2016-10-21 13:42 ` [PATCH v7 5/6] ixgbe: " Tomasz Kulasek
2016-10-21 13:42 ` [PATCH v7 6/6] testpmd: use Tx preparation in csum engine Tomasz Kulasek
2016-10-21 14:46 ` [PATCH v8 0/6] add Tx preparation Tomasz Kulasek
2016-10-21 14:46 ` [PATCH v8 1/6] ethdev: " Tomasz Kulasek
2016-10-24 12:14 ` Ananyev, Konstantin
2016-10-24 12:49 ` Kulasek, TomaszX
2016-10-24 12:56 ` Ananyev, Konstantin
2016-10-24 14:12 ` Kulasek, TomaszX
2016-10-21 14:46 ` [PATCH v8 2/6] e1000: " Tomasz Kulasek
2016-10-21 14:46 ` [PATCH v8 3/6] fm10k: " Tomasz Kulasek
2016-10-21 14:46 ` [PATCH v8 4/6] i40e: " Tomasz Kulasek
2016-10-21 14:46 ` [PATCH v8 5/6] ixgbe: " Tomasz Kulasek
2016-10-21 14:46 ` [PATCH v8 6/6] testpmd: use Tx preparation in csum engine Tomasz Kulasek
2016-10-24 14:05 ` [PATCH v9 0/6] add Tx preparation Tomasz Kulasek
2016-10-24 14:05 ` [PATCH v9 1/6] ethdev: " Tomasz Kulasek
2016-10-24 14:05 ` [PATCH v9 2/6] e1000: " Tomasz Kulasek
2016-10-24 14:05 ` [PATCH v9 3/6] fm10k: " Tomasz Kulasek
2016-10-24 14:05 ` [PATCH v9 4/6] i40e: " Tomasz Kulasek
2016-10-24 14:05 ` [PATCH v9 5/6] ixgbe: " Tomasz Kulasek
2016-10-24 14:05 ` [PATCH v9 6/6] testpmd: use Tx preparation in csum engine Tomasz Kulasek
2016-10-24 16:51 ` [PATCH v10 0/6] add Tx preparation Tomasz Kulasek
2016-10-24 16:51 ` [PATCH v10 1/6] ethdev: " Tomasz Kulasek
2016-10-25 14:41 ` Olivier Matz
2016-10-25 17:28 ` Kulasek, TomaszX
2016-10-24 16:51 ` [PATCH v10 2/6] e1000: " Tomasz Kulasek
2016-10-24 16:51 ` [PATCH v10 3/6] fm10k: " Tomasz Kulasek
2016-10-24 16:51 ` [PATCH v10 4/6] i40e: " Tomasz Kulasek
2016-10-24 16:51 ` [PATCH v10 5/6] ixgbe: " Tomasz Kulasek
2016-10-24 16:51 ` [PATCH v10 6/6] testpmd: use Tx preparation in csum engine Tomasz Kulasek
2016-10-24 17:26 ` [PATCH v10 0/6] add Tx preparation Ananyev, Konstantin
2016-10-26 12:56 ` [PATCH v11 " Tomasz Kulasek
2016-10-26 12:56 ` [PATCH v11 1/6] ethdev: " Tomasz Kulasek
2016-10-27 12:38 ` Olivier Matz
2016-10-27 15:01 ` Thomas Monjalon
2016-10-27 15:52 ` Ananyev, Konstantin
2016-10-27 16:02 ` Thomas Monjalon
2016-10-27 16:24 ` Ananyev, Konstantin
2016-10-27 16:39 ` Thomas Monjalon
2016-10-28 11:29 ` Ananyev, Konstantin
2016-10-28 11:34 ` Ananyev, Konstantin
2016-10-28 12:23 ` Thomas Monjalon
2016-10-28 12:59 ` Ananyev, Konstantin
2016-10-28 13:42 ` Thomas Monjalon
2016-11-01 12:57 ` Ananyev, Konstantin
2016-11-04 11:35 ` Thomas Monjalon
2016-10-27 16:39 ` Kulasek, TomaszX
2016-10-28 10:15 ` Ananyev, Konstantin
2016-10-28 10:22 ` Kulasek, TomaszX
2016-10-28 10:22 ` Thomas Monjalon
2016-10-28 10:28 ` Ananyev, Konstantin
2016-10-28 11:02 ` Richardson, Bruce
2016-10-28 11:14 ` Jerin Jacob
2016-10-27 16:29 ` Kulasek, TomaszX
2016-10-26 12:56 ` [PATCH v11 2/6] e1000: " Tomasz Kulasek
2016-10-26 12:56 ` [PATCH v11 3/6] fm10k: " Tomasz Kulasek
2016-10-26 12:56 ` [PATCH v11 4/6] i40e: " Tomasz Kulasek
2016-10-26 12:56 ` [PATCH v11 5/6] ixgbe: " Tomasz Kulasek
2016-10-26 12:56 ` [PATCH v11 6/6] testpmd: use Tx preparation in csum engine Tomasz Kulasek
2016-11-23 17:36 ` [PATCH v12 0/6] add Tx preparation Tomasz Kulasek
2016-11-23 17:36 ` [PATCH v12 1/6] ethdev: " Tomasz Kulasek
2016-11-28 10:54 ` Thomas Monjalon
2016-12-01 16:24 ` Thomas Monjalon
2016-12-01 19:20 ` Kulasek, TomaszX
2016-12-01 19:52 ` Thomas Monjalon
2016-12-01 21:56 ` Jerin Jacob
2016-12-01 22:31 ` Kulasek, TomaszX
2016-12-01 23:50 ` Thomas Monjalon
2016-12-09 13:25 ` Kulasek, TomaszX
2016-12-02 0:10 ` Ananyev, Konstantin
2016-12-22 13:14 ` Thomas Monjalon
2016-12-22 13:37 ` Jerin Jacob
2016-12-01 16:26 ` Thomas Monjalon
2016-12-01 16:28 ` Thomas Monjalon
2016-12-02 1:06 ` Ananyev, Konstantin
2016-12-02 8:24 ` Olivier Matz
2016-12-02 16:17 ` Ananyev, Konstantin
2016-12-08 17:24 ` Olivier Matz
2016-12-09 17:19 ` Kulasek, TomaszX
2016-12-12 11:51 ` Ananyev, Konstantin
2016-12-22 13:30 ` Thomas Monjalon
2016-12-22 14:11 ` Ananyev, Konstantin
2016-11-23 17:36 ` [PATCH v12 2/6] e1000: " Tomasz Kulasek
2016-11-23 17:36 ` [PATCH v12 3/6] fm10k: " Tomasz Kulasek
2016-11-23 17:36 ` [PATCH v12 4/6] i40e: " Tomasz Kulasek
2016-11-23 17:36 ` [PATCH v12 5/6] ixgbe: " Tomasz Kulasek
2016-11-23 17:36 ` [PATCH v12 6/6] testpmd: use Tx preparation in csum engine Tomasz Kulasek
2016-12-07 11:13 ` Ferruh Yigit
2016-12-07 12:00 ` Mcnamara, John
2016-12-07 12:12 ` Kulasek, TomaszX
2016-12-07 12:49 ` Ananyev, Konstantin
2016-12-07 12:00 ` Kulasek, TomaszX
2016-11-28 11:03 ` [PATCH v12 0/6] add Tx preparation Thomas Monjalon
2016-11-30 5:48 ` John Daley (johndale)
2016-11-30 10:59 ` Ananyev, Konstantin
2016-11-30 7:40 ` Adrien Mazarguil
2016-11-30 8:50 ` Thomas Monjalon
2016-11-30 10:30 ` Kulasek, TomaszX
2016-12-01 7:19 ` Adrien Mazarguil
2016-11-30 10:54 ` Ananyev, Konstantin
2016-12-01 7:15 ` Adrien Mazarguil
2016-12-01 8:58 ` Thomas Monjalon
2016-12-01 22:03 ` Jerin Jacob
2016-12-02 1:00 ` Ananyev, Konstantin
2016-12-05 15:03 ` Adrien Mazarguil
2016-12-05 16:43 ` Ananyev, Konstantin
2016-12-05 18:10 ` Adrien Mazarguil
2016-12-06 10:56 ` Ananyev, Konstantin
2016-12-06 13:59 ` Adrien Mazarguil
2016-12-06 20:31 ` Ananyev, Konstantin
2016-12-07 10:08 ` Adrien Mazarguil
2016-11-30 16:34 ` Harish Patil
2016-11-30 17:42 ` Ananyev, Konstantin
2016-11-30 18:26 ` Thomas Monjalon
2016-11-30 21:01 ` Jerin Jacob
2016-12-01 10:50 ` Ferruh Yigit
2016-12-02 23:55 ` Yong Wang
2016-12-04 12:11 ` Ananyev, Konstantin
2016-12-06 18:25 ` Yong Wang
2016-12-07 9:57 ` Ferruh Yigit
2016-12-07 10:03 ` Ananyev, Konstantin
2016-12-07 14:31 ` Alejandro Lucero
2016-12-08 18:20 ` Yong Wang
2016-12-09 14:40 ` Jan Mędala
2016-12-12 15:02 ` Ananyev, Konstantin
2016-12-16 0:15 ` Ananyev, Konstantin
2016-12-16 13:53 ` Jan Mędala
2016-12-16 15:27 ` Ananyev, Konstantin
2016-12-16 15:37 ` Jan Mędala
2016-12-12 17:29 ` Ananyev, Konstantin
2016-11-30 18:39 ` Harish Patil
2016-11-30 19:37 ` Ajit Khaparde
2016-12-01 8:24 ` Rahul Lakkireddy
2016-12-06 15:53 ` Ferruh Yigit
2016-12-07 7:55 ` Andrew Rybchenko
2016-12-07 8:11 ` Yuanhan Liu
2016-12-07 10:13 ` Ananyev, Konstantin
2016-12-07 10:18 ` Yuanhan Liu
2016-12-07 10:22 ` Ananyev, Konstantin
2016-12-13 11:59 ` Ferruh Yigit
2016-12-13 17:41 ` [PATCH v13 0/7] " Tomasz Kulasek
2016-12-13 17:41 ` [PATCH v13 1/7] ethdev: " Tomasz Kulasek
2016-12-13 17:41 ` [PATCH v13 2/7] e1000: " Tomasz Kulasek
2016-12-13 17:41 ` [PATCH v13 3/7] fm10k: " Tomasz Kulasek
2016-12-13 17:41 ` [PATCH v13 4/7] i40e: " Tomasz Kulasek
2016-12-13 17:41 ` [PATCH v13 5/7] ixgbe: " Tomasz Kulasek
2016-12-13 17:41 ` [PATCH v13 6/7] vmxnet3: " Tomasz Kulasek
2016-12-13 18:15 ` Yong Wang
2016-12-20 13:36 ` Ferruh Yigit
2016-12-22 13:10 ` Thomas Monjalon
2016-12-13 17:41 ` [PATCH v13 7/7] testpmd: use Tx preparation in csum engine Tomasz Kulasek
2016-12-22 13:05 ` [PATCH v14 0/8] add Tx preparation Tomasz Kulasek
2016-12-22 13:05 ` [PATCH v14 1/8] ethdev: " Tomasz Kulasek
2016-12-22 14:24 ` Thomas Monjalon
2016-12-23 18:49 ` Kulasek, TomaszX
2016-12-22 13:05 ` [PATCH v14 2/8] e1000: " Tomasz Kulasek
2016-12-22 13:05 ` [PATCH v14 3/8] fm10k: " Tomasz Kulasek
2016-12-22 13:05 ` [PATCH v14 4/8] i40e: " Tomasz Kulasek
2016-12-22 13:05 ` [PATCH v14 5/8] ixgbe: " Tomasz Kulasek
2016-12-22 13:05 ` [PATCH v14 6/8] vmxnet3: " Tomasz Kulasek
2016-12-22 17:59 ` Yong Wang
2016-12-22 13:05 ` [PATCH v14 7/8] ena: " Tomasz Kulasek
2016-12-22 13:05 ` [PATCH v14 8/8] testpmd: use Tx preparation in csum engine Tomasz Kulasek
2016-12-22 14:28 ` Thomas Monjalon
2016-12-23 18:40 ` [PATCH v15 0/8] add Tx preparation Tomasz Kulasek
2016-12-23 18:40 ` [PATCH v15 1/8] ethdev: " Tomasz Kulasek
2016-12-23 18:40 ` [PATCH v15 2/8] e1000: " Tomasz Kulasek
2016-12-23 18:40 ` [PATCH v15 3/8] fm10k: " Tomasz Kulasek
2016-12-23 18:40 ` [PATCH v15 4/8] i40e: " Tomasz Kulasek
2016-12-23 18:40 ` [PATCH v15 5/8] ixgbe: " Tomasz Kulasek
2016-12-23 18:40 ` [PATCH v15 6/8] vmxnet3: " Tomasz Kulasek
2016-12-23 18:40 ` [PATCH v15 7/8] ena: " Tomasz Kulasek
2016-12-23 18:40 ` [PATCH v15 8/8] testpmd: use Tx preparation in csum engine Tomasz Kulasek
2017-01-04 19:41 ` [PATCH v15 0/8] add Tx preparation Thomas Monjalon
2017-01-05 15:43 ` Avi Kivity
-- strict thread matches above, loose matches on Subject: below --
2016-08-26 16:05 [PATCH 0/6] " Tomasz Kulasek
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=20160826103114.5b547cef@xeon-e3 \
--to=stephen@networkplumber.org \
--cc=dev@dpdk.org \
--cc=tomaszx.kulasek@intel.com \
/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.