mbox series

[v1,0/5] implement common rte bit operation APIs in PMDs

Message ID 1571125801-45773-1-git-send-email-joyce.kong@arm.com (mailing list archive)
Headers
Series implement common rte bit operation APIs in PMDs |

Message

Joyce Kong Oct. 15, 2019, 7:49 a.m. UTC
  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.

Joyce Kong (5):
  lib/eal: implement the family of rte bit operation APIs
  net/axgbe: use common rte bit operation APIs instead
  net/bnx2x: use common rte bit operation APIs instead
  net/hinic: use common rte bit operation APIs instead
  net/qede: use common rte bit operation APIs instead

 drivers/net/axgbe/axgbe_common.h           |  29 +----
 drivers/net/axgbe/axgbe_ethdev.c           |  14 +-
 drivers/net/axgbe/axgbe_mdio.c             |  14 +-
 drivers/net/bnx2x/bnx2x.c                  | 202 +++++++++++++----------------
 drivers/net/bnx2x/bnx2x.h                  |   5 +-
 drivers/net/bnx2x/ecore_sp.h               |   8 +-
 drivers/net/hinic/base/hinic_compat.h      |  35 +----
 drivers/net/hinic/hinic_pmd_ethdev.c       |  16 +--
 drivers/net/qede/base/bcm_osal.c           |  20 ---
 drivers/net/qede/base/bcm_osal.h           |  10 +-
 lib/librte_eal/common/Makefile             |   1 +
 lib/librte_eal/common/include/rte_bitops.h |  56 ++++++++
 lib/librte_eal/common/meson.build          |   1 +
 13 files changed, 180 insertions(+), 231 deletions(-)
 create mode 100644 lib/librte_eal/common/include/rte_bitops.h
  

Comments

Stephen Hemminger Oct. 15, 2019, 4:51 p.m. UTC | #1
On Tue, 15 Oct 2019 15:49:56 +0800
Joyce Kong <joyce.kong@arm.com> wrote:

> 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.
> 
> Joyce Kong (5):
>   lib/eal: implement the family of rte bit operation APIs
>   net/axgbe: use common rte bit operation APIs instead
>   net/bnx2x: use common rte bit operation APIs instead
>   net/hinic: use common rte bit operation APIs instead
>   net/qede: use common rte bit operation APIs instead
> 
>  drivers/net/axgbe/axgbe_common.h           |  29 +----
>  drivers/net/axgbe/axgbe_ethdev.c           |  14 +-
>  drivers/net/axgbe/axgbe_mdio.c             |  14 +-
>  drivers/net/bnx2x/bnx2x.c                  | 202 +++++++++++++----------------
>  drivers/net/bnx2x/bnx2x.h                  |   5 +-
>  drivers/net/bnx2x/ecore_sp.h               |   8 +-
>  drivers/net/hinic/base/hinic_compat.h      |  35 +----
>  drivers/net/hinic/hinic_pmd_ethdev.c       |  16 +--
>  drivers/net/qede/base/bcm_osal.c           |  20 ---
>  drivers/net/qede/base/bcm_osal.h           |  10 +-
>  lib/librte_eal/common/Makefile             |   1 +
>  lib/librte_eal/common/include/rte_bitops.h |  56 ++++++++
>  lib/librte_eal/common/meson.build          |   1 +
>  13 files changed, 180 insertions(+), 231 deletions(-)
>  create mode 100644 lib/librte_eal/common/include/rte_bitops.h
> 


This is a really good idea, and should have been done long ago.
Could you add tests for these as well?
  
Joyce Kong Oct. 18, 2019, 9:01 a.m. UTC | #2
> -----Original Message-----
> From: Stephen Hemminger <stephen@networkplumber.org>
> Sent: Wednesday, October 16, 2019 12:51 AM
> To: Joyce Kong (Arm Technology China) <Joyce.Kong@arm.com>
> Cc: dev@dpdk.org; nd <nd@arm.com>; thomas@monjalon.net;
> jerinj@marvell.com; ravi1.kumar@amd.com; xuanziyang2@huawei.com;
> cloud.wangxiaoyun@huawei.com; zhouguoyang@huawei.com;
> rmody@marvell.com; shshaikh@marvell.com; Honnappa Nagarahalli
> <Honnappa.Nagarahalli@arm.com>; Gavin Hu (Arm Technology China)
> <Gavin.Hu@arm.com>
> Subject: Re: [dpdk-dev] [PATCH v1 0/5] implement common rte bit operation
> APIs in PMDs
> 
> On Tue, 15 Oct 2019 15:49:56 +0800
> Joyce Kong <joyce.kong@arm.com> wrote:
> 
> > 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.
> >
> > Joyce Kong (5):
> >   lib/eal: implement the family of rte bit operation APIs
> >   net/axgbe: use common rte bit operation APIs instead
> >   net/bnx2x: use common rte bit operation APIs instead
> >   net/hinic: use common rte bit operation APIs instead
> >   net/qede: use common rte bit operation APIs instead
> >
> >  drivers/net/axgbe/axgbe_common.h           |  29 +----
> >  drivers/net/axgbe/axgbe_ethdev.c           |  14 +-
> >  drivers/net/axgbe/axgbe_mdio.c             |  14 +-
> >  drivers/net/bnx2x/bnx2x.c                  | 202 +++++++++++++----------------
> >  drivers/net/bnx2x/bnx2x.h                  |   5 +-
> >  drivers/net/bnx2x/ecore_sp.h               |   8 +-
> >  drivers/net/hinic/base/hinic_compat.h      |  35 +----
> >  drivers/net/hinic/hinic_pmd_ethdev.c       |  16 +--
> >  drivers/net/qede/base/bcm_osal.c           |  20 ---
> >  drivers/net/qede/base/bcm_osal.h           |  10 +-
> >  lib/librte_eal/common/Makefile             |   1 +
> >  lib/librte_eal/common/include/rte_bitops.h |  56 ++++++++
> >  lib/librte_eal/common/meson.build          |   1 +
> >  13 files changed, 180 insertions(+), 231 deletions(-)  create mode
> > 100644 lib/librte_eal/common/include/rte_bitops.h
> >
> 
> 
> This is a really good idea, and should have been done long ago.
> Could you add tests for these as well?

Yes. Will add some tests for these APIs in next version.