From: Thomas Monjalon <thomas.monjalon@6wind.com>
To: Adrien Mazarguil <adrien.mazarguil@6wind.com>,
Tomasz Kulasek <tomaszx.kulasek@intel.com>
Cc: dev@dpdk.org, konstantin.ananyev@intel.com, olivier.matz@6wind.com
Subject: Re: [PATCH v12 0/6] add Tx preparation
Date: Wed, 30 Nov 2016 09:50:02 +0100 [thread overview]
Message-ID: <2285429.Z7YL4y4ekv@xps13> (raw)
In-Reply-To: <20161130074003.GD10340@6wind.com>
2016-11-30 08:40, Adrien Mazarguil:
[...]
> I understand tx_prep() automates this process, however I'm wondering why
> isn't the TX burst function doing that itself. Using nb_mtu_seg_max as an
> example, tx_prep() has an extra check in case of TSO that the TX burst
> function does not perform. This ends up being much more expensive to
> applications due to the additional loop doing redundant testing on each
> mbuf.
>
> If, say as a performance improvement, we decided to leave the validation
> part to the TX burst function; what remains in tx_prep() is basically heavy
> "preparation" requiring mbuf changes (i.e. erasing checksums, for now).
>
> Following the same logic, why can't such a thing be made part of the TX
> burst function as well (through a direct call to rte_phdr_cksum_fix()
> whenever necessary). From an application standpoint, what are the advantages
> of having to:
>
> if (tx_prep()) // iterate and update mbufs as needed
> tx_burst(); // iterate and send
>
> Compared to:
>
> tx_burst(); // iterate, update as needed and send
>
> Note that PMDs could still provide different TX callbacks depending on the
> set of enabled offloads so performance is not unnecessarily impacted.
>
> In my opinion the second approach is both faster to applications and more
> friendly from a usability perspective, am I missing something obvious?
I think it was not clearly explained in this patchset, but this is
my understanding:
tx_prepare and tx_burst can be called at different stages of a pipeline,
on different cores.
next prev parent reply other threads:[~2016-11-30 8:50 UTC|newest]
Thread overview: 260+ 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 ` [PATCH 0/6] add Tx preparation Stephen Hemminger
2016-08-31 12:34 ` 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 [this message]
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
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=2285429.Z7YL4y4ekv@xps13 \
--to=thomas.monjalon@6wind.com \
--cc=adrien.mazarguil@6wind.com \
--cc=dev@dpdk.org \
--cc=konstantin.ananyev@intel.com \
--cc=olivier.matz@6wind.com \
--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.