From: Slava Ovsiienko <viacheslavo@nvidia.com> To: Andrew Rybchenko <Andrew.Rybchenko@oktetlabs.ru>, "NBU-Contact-Thomas Monjalon" <thomas@monjalon.net>, "ferruh.yigit@intel.com" <ferruh.yigit@intel.com> Cc: "dev@dpdk.org" <dev@dpdk.org>, "stephen@networkplumber.org" <stephen@networkplumber.org>, Shahaf Shuler <shahafs@nvidia.com>, "olivier.matz@6wind.com" <olivier.matz@6wind.com>, "jerinjacobk@gmail.com" <jerinjacobk@gmail.com>, "maxime.coquelin@redhat.com" <maxime.coquelin@redhat.com>, "david.marchand@redhat.com" <david.marchand@redhat.com>, Asaf Penso <asafp@nvidia.com> Subject: Re: [dpdk-dev] [RFC] ethdev: introduce Rx buffer split Date: Mon, 12 Oct 2020 16:10:30 +0000 Message-ID: <MWHPR12MB1360789EC0E84A3BA95D3E1FDF070@MWHPR12MB1360.namprd12.prod.outlook.com> (raw) In-Reply-To: <4a7e3bb7-1620-c4eb-3dd3-7449f36eb87d@oktetlabs.ru> > -----Original Message----- > From: Andrew Rybchenko <Andrew.Rybchenko@oktetlabs.ru> > Sent: Monday, October 12, 2020 19:04 > To: NBU-Contact-Thomas Monjalon <thomas@monjalon.net>; > ferruh.yigit@intel.com; Slava Ovsiienko <viacheslavo@nvidia.com> > Cc: dev@dpdk.org; stephen@networkplumber.org; Shahaf Shuler > <shahafs@nvidia.com>; olivier.matz@6wind.com; jerinjacobk@gmail.com; > maxime.coquelin@redhat.com; david.marchand@redhat.com; Asaf Penso > <asafp@nvidia.com> > Subject: Re: [dpdk-dev] [RFC] ethdev: introduce Rx buffer split > > On 10/12/20 6:14 PM, Thomas Monjalon wrote: > > 12/10/2020 11:56, Slava Ovsiienko: > >> Hi, Andrew > >> > >> Thank you for the comments. > >> > >> We have two approaches how to specify multiple segments to split Rx > packets: > >> 1. update queue configuration structure 2. introduce new > >> rx_queue_setup_ex() routine with extra parameters. > >> > >> For [1] my only actual dislike is that we would have multiple places > >> to specify the pool - in rx_queue_setup() and in the config > >> structure. So, we should implement some checking (if we have offload > >> flag set we should check whether mp parameter is NULL and segment > >> descriptions array pointer/size is provided, if no offload flag set - we must > check the description array is empty). > >> > >>> @Thomas, @Ferruh: I'd like to hear what other ethdev maintainers > >>> think about it. > >> > >> Yes, it would be very nice to hear extra opinions. Do we think the > >> providing of extra API function is worse than extending existing > >> structure, introducing some conditional ambiguity and complicating > >> the parameter compliance check? > > > > Let's try listing pros and cons of each approach, so we can conclude. > > > > 1/ update queue config struct > > > > 1.1 pro: keep same queue setup function > > pro: no code duplication > > > 1.2 con: two mempool pointers (struct or function) > > 1.3 con: variable size of segment description array > > > > 2/ new queue setup function > > > > 2.1 con: two functions for queue setup > > con: code duplication or refactoring of existing stable code - no refactoring of existing rte_eth_rx_queue_setup() - it is kept intact - yes, there is some duplication in rte_eth_rxseg_queue_setup, but the large part of code is new - there is very specific check for the split buffer parameters. - no code duplication at PMD level - both ways go to the same internal routine - PMD code must be refactored anyway, no con/pro for this point - updated PMD rx queue setup must handle the new split format, no way to drop it. > > > 2.2 pro: mempool pointer is not redundant > > 2.3 pro: segment description array size defined by the caller > > > > What else I'm missing? > > With best regards, Slava
next prev parent reply other threads:[~2020-10-12 16:10 UTC|newest] Thread overview: 172+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-08-17 17:49 Slava Ovsiienko 2020-09-17 16:55 ` Andrew Rybchenko 2020-10-01 8:54 ` Slava Ovsiienko 2020-10-12 8:45 ` Andrew Rybchenko 2020-10-12 9:56 ` Slava Ovsiienko 2020-10-12 15:14 ` Thomas Monjalon 2020-10-12 15:28 ` Ananyev, Konstantin 2020-10-12 15:34 ` Slava Ovsiienko 2020-10-12 15:56 ` Ananyev, Konstantin 2020-10-12 15:59 ` Slava Ovsiienko 2020-10-12 16:52 ` Thomas Monjalon 2020-10-12 16:03 ` Andrew Rybchenko 2020-10-12 16:10 ` Slava Ovsiienko [this message] 2020-10-13 21:59 ` Ferruh Yigit 2020-10-14 7:17 ` Thomas Monjalon 2020-10-14 7:37 ` Slava Ovsiienko 2020-10-05 6:26 ` [dpdk-dev] [PATCH 0/5] " Viacheslav Ovsiienko 2020-10-05 6:26 ` [dpdk-dev] [PATCH 1/5] " Viacheslav Ovsiienko 2020-10-05 6:26 ` [dpdk-dev] [PATCH 2/5] app/testpmd: add multiple pools per core creation Viacheslav Ovsiienko 2020-10-05 6:26 ` [dpdk-dev] [PATCH 3/5] app/testpmd: add buffer split offload configuration Viacheslav Ovsiienko 2020-10-05 6:26 ` [dpdk-dev] [PATCH 4/5] app/testpmd: add rxpkts commands and parameters Viacheslav Ovsiienko 2020-10-05 6:26 ` [dpdk-dev] [PATCH 5/5] app/testpmd: add extended Rx queue setup Viacheslav Ovsiienko 2020-10-07 15:06 ` [dpdk-dev] [PATCH v2 0/9] ethdev: introduce Rx buffer split Viacheslav Ovsiienko 2020-10-07 15:06 ` [dpdk-dev] [PATCH v2 1/9] " Viacheslav Ovsiienko 2020-10-11 22:17 ` Thomas Monjalon 2020-10-12 9:40 ` Slava Ovsiienko 2020-10-12 10:09 ` Thomas Monjalon 2020-10-07 15:06 ` [dpdk-dev] [PATCH v2 2/9] app/testpmd: add multiple pools per core creation Viacheslav Ovsiienko 2020-10-07 15:06 ` [dpdk-dev] [PATCH v2 3/9] app/testpmd: add buffer split offload configuration Viacheslav Ovsiienko 2020-10-07 15:06 ` [dpdk-dev] [PATCH v2 4/9] app/testpmd: add rxpkts commands and parameters Viacheslav Ovsiienko 2020-10-07 15:06 ` [dpdk-dev] [PATCH v2 5/9] app/testpmd: add extended Rx queue setup Viacheslav Ovsiienko 2020-10-07 15:06 ` [dpdk-dev] [PATCH v2 6/9] net/mlx5: add extended Rx queue setup routine Viacheslav Ovsiienko 2020-10-07 15:06 ` [dpdk-dev] [PATCH v2 7/9] net/mlx5: configure Rx queue to support split Viacheslav Ovsiienko 2020-10-07 15:06 ` [dpdk-dev] [PATCH v2 8/9] net/mlx5: register multiple pool for Rx queue Viacheslav Ovsiienko 2020-10-07 15:06 ` [dpdk-dev] [PATCH v2 9/9] net/mlx5: update Rx datapath to support split Viacheslav Ovsiienko 2020-10-12 16:19 ` [dpdk-dev] [PATCH v3 0/9] ethdev: introduce Rx buffer split Viacheslav Ovsiienko 2020-10-12 16:19 ` [dpdk-dev] [PATCH v3 1/9] " Viacheslav Ovsiienko 2020-10-12 16:38 ` Andrew Rybchenko 2020-10-12 17:03 ` Thomas Monjalon 2020-10-12 17:11 ` Andrew Rybchenko 2020-10-12 20:22 ` Slava Ovsiienko 2020-10-12 17:11 ` Slava Ovsiienko 2020-10-12 16:19 ` [dpdk-dev] [PATCH v3 2/9] app/testpmd: add multiple pools per core creation Viacheslav Ovsiienko 2020-10-12 16:19 ` [dpdk-dev] [PATCH v3 3/9] app/testpmd: add buffer split offload configuration Viacheslav Ovsiienko 2020-10-12 16:19 ` [dpdk-dev] [PATCH v3 4/9] app/testpmd: add rxpkts commands and parameters Viacheslav Ovsiienko 2020-10-12 16:19 ` [dpdk-dev] [PATCH v3 5/9] app/testpmd: add extended Rx queue setup Viacheslav Ovsiienko 2020-10-12 16:19 ` [dpdk-dev] [PATCH v3 6/9] net/mlx5: add extended Rx queue setup routine Viacheslav Ovsiienko 2020-10-12 16:19 ` [dpdk-dev] [PATCH v3 7/9] net/mlx5: configure Rx queue to support split Viacheslav Ovsiienko 2020-10-12 16:19 ` [dpdk-dev] [PATCH v3 8/9] net/mlx5: register multiple pool for Rx queue Viacheslav Ovsiienko 2020-10-12 16:19 ` [dpdk-dev] [PATCH v3 9/9] net/mlx5: update Rx datapath to support split Viacheslav Ovsiienko 2020-10-12 20:09 ` [dpdk-dev] [PATCH v4 0/9] ethdev: introduce Rx buffer split Viacheslav Ovsiienko 2020-10-12 20:09 ` [dpdk-dev] [PATCH v4 1/9] " Viacheslav Ovsiienko 2020-10-12 20:09 ` [dpdk-dev] [PATCH v4 2/9] app/testpmd: add multiple pools per core creation Viacheslav Ovsiienko 2020-10-12 20:09 ` [dpdk-dev] [PATCH v4 3/9] app/testpmd: add buffer split offload configuration Viacheslav Ovsiienko 2020-10-12 20:09 ` [dpdk-dev] [PATCH v4 4/9] app/testpmd: add rxpkts commands and parameters Viacheslav Ovsiienko 2020-10-12 20:09 ` [dpdk-dev] [PATCH v4 5/9] app/testpmd: add extended Rx queue setup Viacheslav Ovsiienko 2020-10-12 20:09 ` [dpdk-dev] [PATCH v4 6/9] net/mlx5: add extended Rx queue setup routine Viacheslav Ovsiienko 2020-10-12 20:10 ` [dpdk-dev] [PATCH v4 7/9] net/mlx5: configure Rx queue to support split Viacheslav Ovsiienko 2020-10-12 20:10 ` [dpdk-dev] [PATCH v4 8/9] net/mlx5: register multiple pool for Rx queue Viacheslav Ovsiienko 2020-10-12 20:10 ` [dpdk-dev] [PATCH v4 9/9] net/mlx5: update Rx datapath to support split Viacheslav Ovsiienko 2020-10-13 19:21 ` [dpdk-dev] [PATCH v5 0/6] ethdev: introduce Rx buffer split Viacheslav Ovsiienko 2020-10-13 19:21 ` [dpdk-dev] [PATCH v5 1/6] " Viacheslav Ovsiienko 2020-10-13 22:34 ` Ferruh Yigit 2020-10-14 13:31 ` Olivier Matz 2020-10-14 14:42 ` Slava Ovsiienko 2020-10-13 19:21 ` [dpdk-dev] [PATCH v5 2/6] app/testpmd: add multiple pools per core creation Viacheslav Ovsiienko 2020-10-13 19:21 ` [dpdk-dev] [PATCH v5 3/6] app/testpmd: add buffer split offload configuration Viacheslav Ovsiienko 2020-10-13 19:21 ` [dpdk-dev] [PATCH v5 4/6] app/testpmd: add rxpkts commands and parameters Viacheslav Ovsiienko 2020-10-13 19:21 ` [dpdk-dev] [PATCH v5 5/6] app/testpmd: add rxoffs " Viacheslav Ovsiienko 2020-10-13 19:21 ` [dpdk-dev] [PATCH v5 6/6] app/testpmd: add extended Rx queue setup Viacheslav Ovsiienko 2020-10-14 18:11 ` [dpdk-dev] [PATCH v6 0/6] ethdev: introduce Rx buffer split Viacheslav Ovsiienko 2020-10-14 18:11 ` [dpdk-dev] [PATCH v6 1/6] " Viacheslav Ovsiienko 2020-10-14 18:57 ` Jerin Jacob 2020-10-15 7:43 ` Slava Ovsiienko 2020-10-15 9:27 ` Jerin Jacob 2020-10-15 10:27 ` Jerin Jacob 2020-10-15 10:51 ` Slava Ovsiienko 2020-10-15 11:26 ` Jerin Jacob 2020-10-15 11:36 ` Ferruh Yigit 2020-10-15 11:49 ` Slava Ovsiienko 2020-10-15 12:49 ` Thomas Monjalon 2020-10-15 13:07 ` Andrew Rybchenko 2020-10-15 13:57 ` Slava Ovsiienko 2020-10-15 20:22 ` Slava Ovsiienko 2020-10-15 9:49 ` Andrew Rybchenko 2020-10-15 10:34 ` Slava Ovsiienko 2020-10-15 11:09 ` Andrew Rybchenko 2020-10-15 14:39 ` Slava Ovsiienko 2020-10-14 22:13 ` Thomas Monjalon 2020-10-14 22:50 ` Ajit Khaparde 2020-10-15 10:11 ` Andrew Rybchenko 2020-10-15 10:19 ` Thomas Monjalon 2020-10-14 18:11 ` [dpdk-dev] [PATCH v6 2/6] app/testpmd: add multiple pools per core creation Viacheslav Ovsiienko 2020-10-14 18:11 ` [dpdk-dev] [PATCH v6 3/6] app/testpmd: add buffer split offload configuration Viacheslav Ovsiienko 2020-10-14 18:12 ` [dpdk-dev] [PATCH v6 4/6] app/testpmd: add rxpkts commands and parameters Viacheslav Ovsiienko 2020-10-14 18:12 ` [dpdk-dev] [PATCH v6 5/6] app/testpmd: add rxoffs " Viacheslav Ovsiienko 2020-10-14 18:12 ` [dpdk-dev] [PATCH v6 6/6] app/testpmd: add extended Rx queue setup Viacheslav Ovsiienko 2020-10-15 0:55 ` [dpdk-dev] [PATCH v2] eal/rte_malloc: add alloc_size() attribute to allocation functions Stephen Hemminger 2020-10-19 14:13 ` Thomas Monjalon 2020-10-19 14:22 ` Thomas Monjalon 2020-10-15 20:17 ` [dpdk-dev] [PATCH v7 0/6] ethdev: introduce Rx buffer split Viacheslav Ovsiienko 2020-10-15 20:17 ` [dpdk-dev] [PATCH v7 1/6] " Viacheslav Ovsiienko 2020-10-15 20:30 ` Jerin Jacob 2020-10-15 20:33 ` Thomas Monjalon 2020-10-15 22:01 ` Ajit Khaparde 2020-10-15 20:17 ` [dpdk-dev] [PATCH v7 2/6] app/testpmd: add multiple pools per core creation Viacheslav Ovsiienko 2020-10-15 20:17 ` [dpdk-dev] [PATCH v7 3/6] app/testpmd: add buffer split offload configuration Viacheslav Ovsiienko 2020-10-15 20:17 ` [dpdk-dev] [PATCH v7 4/6] app/testpmd: add rxpkts commands and parameters Viacheslav Ovsiienko 2020-10-15 20:17 ` [dpdk-dev] [PATCH v7 5/6] app/testpmd: add rxoffs " Viacheslav Ovsiienko 2020-10-15 20:17 ` [dpdk-dev] [PATCH v7 6/6] app/testpmd: add extended Rx queue setup Viacheslav Ovsiienko 2020-10-16 7:48 ` [dpdk-dev] [PATCH v8 0/6] ethdev: introduce Rx buffer split Viacheslav Ovsiienko 2020-10-16 7:48 ` [dpdk-dev] [PATCH v8 1/6] " Viacheslav Ovsiienko 2020-10-16 8:51 ` Andrew Rybchenko 2020-10-16 8:58 ` Andrew Rybchenko 2020-10-16 9:15 ` Slava Ovsiienko 2020-10-16 9:27 ` Andrew Rybchenko 2020-10-16 9:34 ` Slava Ovsiienko 2020-10-16 9:37 ` Thomas Monjalon 2020-10-16 9:38 ` Slava Ovsiienko 2020-10-16 9:19 ` Ferruh Yigit 2020-10-16 9:21 ` Andrew Rybchenko 2020-10-16 9:22 ` Slava Ovsiienko 2020-10-16 7:48 ` [dpdk-dev] [PATCH v8 2/6] app/testpmd: add multiple pools per core creation Viacheslav Ovsiienko 2020-10-16 7:48 ` [dpdk-dev] [PATCH v8 3/6] app/testpmd: add buffer split offload configuration Viacheslav Ovsiienko 2020-10-16 7:48 ` [dpdk-dev] [PATCH v8 4/6] app/testpmd: add rxpkts commands and parameters Viacheslav Ovsiienko 2020-10-16 7:48 ` [dpdk-dev] [PATCH v8 5/6] app/testpmd: add rxoffs " Viacheslav Ovsiienko 2020-10-16 7:48 ` [dpdk-dev] [PATCH v8 6/6] app/testpmd: add extended Rx queue setup Viacheslav Ovsiienko 2020-10-16 10:22 ` [dpdk-dev] [PATCH v9 0/6] ethdev: introduce Rx buffer split Viacheslav Ovsiienko 2020-10-16 10:22 ` [dpdk-dev] [PATCH v9 1/6] " Viacheslav Ovsiienko 2020-10-16 11:21 ` Ferruh Yigit 2020-10-16 13:08 ` Slava Ovsiienko 2020-10-16 10:22 ` [dpdk-dev] [PATCH v9 2/6] app/testpmd: add multiple pools per core creation Viacheslav Ovsiienko 2020-10-16 10:22 ` [dpdk-dev] [PATCH v9 3/6] app/testpmd: add buffer split offload configuration Viacheslav Ovsiienko 2020-10-16 10:22 ` [dpdk-dev] [PATCH v9 4/6] app/testpmd: add rxpkts commands and parameters Viacheslav Ovsiienko 2020-10-16 10:22 ` [dpdk-dev] [PATCH v9 5/6] app/testpmd: add rxoffs " Viacheslav Ovsiienko 2020-10-16 10:22 ` [dpdk-dev] [PATCH v9 6/6] app/testpmd: add extended Rx queue setup Viacheslav Ovsiienko 2020-10-16 12:41 ` [dpdk-dev] [PATCH v10 0/6] ethdev: introduce Rx buffer split Viacheslav Ovsiienko 2020-10-16 12:41 ` [dpdk-dev] [PATCH v10 1/6] " Viacheslav Ovsiienko 2020-10-16 12:41 ` [dpdk-dev] [PATCH v10 2/6] app/testpmd: add multiple pools per core creation Viacheslav Ovsiienko 2020-10-16 12:41 ` [dpdk-dev] [PATCH v10 3/6] app/testpmd: add buffer split offload configuration Viacheslav Ovsiienko 2020-10-16 12:41 ` [dpdk-dev] [PATCH v10 4/6] app/testpmd: add rxpkts commands and parameters Viacheslav Ovsiienko 2020-10-16 12:41 ` [dpdk-dev] [PATCH v10 5/6] app/testpmd: add rxoffs " Viacheslav Ovsiienko 2020-10-16 12:41 ` [dpdk-dev] [PATCH v10 6/6] app/testpmd: add extended Rx queue setup Viacheslav Ovsiienko 2020-10-16 13:39 ` [dpdk-dev] [PATCH v11 0/6] ethdev: introduce Rx buffer split Viacheslav Ovsiienko 2020-10-16 13:39 ` [dpdk-dev] [PATCH v11 1/6] " Viacheslav Ovsiienko 2020-10-16 15:14 ` Thomas Monjalon 2020-10-16 16:18 ` Slava Ovsiienko 2020-10-16 15:47 ` Ferruh Yigit 2020-10-16 16:05 ` Thomas Monjalon 2020-10-16 16:06 ` Ferruh Yigit 2020-10-16 13:39 ` [dpdk-dev] [PATCH v11 2/6] app/testpmd: add multiple pools per core creation Viacheslav Ovsiienko 2020-10-16 15:05 ` Ferruh Yigit 2020-10-16 15:38 ` Ferruh Yigit 2020-10-16 15:48 ` Slava Ovsiienko 2020-10-16 15:52 ` Ferruh Yigit 2020-10-16 15:55 ` Slava Ovsiienko 2020-10-16 15:57 ` Ferruh Yigit 2020-10-16 13:39 ` [dpdk-dev] [PATCH v11 3/6] app/testpmd: add buffer split offload configuration Viacheslav Ovsiienko 2020-10-16 13:39 ` [dpdk-dev] [PATCH v11 4/6] app/testpmd: add rxpkts commands and parameters Viacheslav Ovsiienko 2020-10-16 13:39 ` [dpdk-dev] [PATCH v11 5/6] app/testpmd: add rxoffs " Viacheslav Ovsiienko 2020-10-16 13:39 ` [dpdk-dev] [PATCH v11 6/6] app/testpmd: add extended Rx queue setup Viacheslav Ovsiienko 2020-10-16 16:44 ` [dpdk-dev] [PATCH v12 0/6] ethdev: introduce Rx buffer split Viacheslav Ovsiienko 2020-10-16 16:44 ` [dpdk-dev] [PATCH v12 1/6] " Viacheslav Ovsiienko 2020-10-16 19:22 ` Ferruh Yigit 2020-10-16 21:36 ` Ferruh Yigit 2020-10-16 16:44 ` [dpdk-dev] [PATCH v12 2/6] app/testpmd: add multiple pools per core creation Viacheslav Ovsiienko 2020-10-16 16:44 ` [dpdk-dev] [PATCH v12 3/6] app/testpmd: add buffer split offload configuration Viacheslav Ovsiienko 2020-10-16 16:44 ` [dpdk-dev] [PATCH v12 4/6] app/testpmd: add rxpkts commands and parameters Viacheslav Ovsiienko 2020-10-16 16:44 ` [dpdk-dev] [PATCH v12 5/6] app/testpmd: add rxoffs " Viacheslav Ovsiienko 2020-10-16 16:44 ` [dpdk-dev] [PATCH v12 6/6] app/testpmd: add extended Rx queue setup Viacheslav Ovsiienko 2020-10-16 17:05 ` [dpdk-dev] [PATCH v12 0/6] ethdev: introduce Rx buffer split Ferruh Yigit 2020-10-16 17:07 ` Slava Ovsiienko
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=MWHPR12MB1360789EC0E84A3BA95D3E1FDF070@MWHPR12MB1360.namprd12.prod.outlook.com \ --to=viacheslavo@nvidia.com \ --cc=Andrew.Rybchenko@oktetlabs.ru \ --cc=asafp@nvidia.com \ --cc=david.marchand@redhat.com \ --cc=dev@dpdk.org \ --cc=ferruh.yigit@intel.com \ --cc=jerinjacobk@gmail.com \ --cc=maxime.coquelin@redhat.com \ --cc=olivier.matz@6wind.com \ --cc=shahafs@nvidia.com \ --cc=stephen@networkplumber.org \ --cc=thomas@monjalon.net \ /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
DPDK patches and discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://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/ http://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