Re: [dpdk-dev] [PATCH v2 0/6] implement common rte bit operation APIs in PMDs
From: Gavin Hu (Arm Technology China) <hidden>
Date: 2019-10-31 10:40:15
-----Original Message----- From: Morten Brørup <redacted> Sent: Wednesday, October 30, 2019 9:02 PM To: Jerin Jacob <redacted>; Gavin Hu (Arm Technology China) [off-list ref] Cc: thomas@monjalon.net; Joyce Kong (Arm Technology China) [off-list ref]; dev@dpdk.org; nd [off-list ref]; jerinj@marvell.com; stephen@networkplumber.org; Honnappa Nagarahalli [off-list ref]; ravi1.kumar@amd.com; rmody@marvell.com; shshaikh@marvell.com; xuanziyang2@huawei.com; cloud.wangxiaoyun@huawei.com; zhouguoyang@huawei.com; adrien.mazarguil@6wind.com Subject: RE: [dpdk-dev] [PATCH v2 0/6] implement common rte bit operation APIs in PMDsquoted
-----Original Message----- From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Jerin Jacob Sent: Wednesday, October 30, 2019 1:33 PM On Wed, Oct 30, 2019 at 3:25 PM Gavin Hu (Arm Technology China) [off-list ref] wrote:quoted
Hi Thomas,quoted
-----Original Message----- From: Thomas Monjalon <redacted> Sent: Wednesday, October 30, 2019 12:43 AM 23/10/2019 04:54, Joyce Kong:quoted
There are a lot functions of bit operations scattered in PMDs, consolidate them into a common API family and applied in different PMDs to reduce code duplication.Please, could you look at what Adrien did in the Mellanox PMD?http://code.dpdk.org/dpdk/latest/source/drivers/net/mlx5/mlx5_utils.h#L28quoted
The code has less duplication, but it requires a less natural declarationof variablesquoted
http://code.dpdk.org/dpdk/latest/source/drivers/net/mlx5/mlx5.h#L607 Should we take this way?IMO, We need to consider the MACRO based scheme only as of the last resort.I agree. The EAL library already has an I/O device memory access API, i.e. with functionality closely related to the proposed I/O device bit operation API: http://code.dpdk.org/dpdk/latest/source/lib/librte_eal/common/include/gene ric/rte_io.h I would prefer a similar approach, and API familiarity would be my strongest argument.
Yes, this is a more natural way, and engineers are more familiar with the APIs. We will take this way as more people vote for this. Thanks Thomas also for your comment, we are inspired by this code, we will add assert() also to guarantee the 'bit' argument is in the valid range. We used this common API for some PMDs, but not extensively, the reason is we want to finalize the API firstly(with your comments coming) and then propagate later. /Gavin