[dpdk-dev] [PATCH v2 00/22] add hns3 ethernet PMD driver

Ferruh Yigit ferruh.yigit at intel.com
Thu Sep 26 09:55:10 CEST 2019


On 9/25/2019 3:30 AM, Wei Hu (Xavier) wrote:
> 
> 
> On 2019/9/25 4:34, Aaron Conole wrote:
>> "Wei Hu (Xavier)" <xavier.huwei at huawei.com> writes:
>>
>>> Hi, Ferruh Yigit
>>>
>>> I sent out patch V2 yesterday.  And I found that the following page
>>> indicates that there is a compilation error.
>>>
>>>     http://mails.dpdk.org/archives/test-report/2019-September/098385.html
>>>
>>> The relevant sections in the log:
>>>
>>> <...>
>>>
>>> *Meson Build Failed #1: OS: FC30-64 Target:build-gcc-static FAILED:
>>> drivers/a715181@@tmp_rte_pmd_hns3 at sta
>>> <https://mails.dpdk.org/listinfo/test-report>/net_hns3_hns3_ethdev_vf.c.o
>>>
>>> <...>
>>>
>>> ../drivers/net/hns3/hns3_ethdev_vf.c:1552:24: error: initialization of
>>> ‘void (*)(struct rte_eth_dev *, struct rte_eth_dev_info *)’ from
>>> incompatible pointer type ‘int (*)(struct rte_eth_dev *, struct
>>> rte_eth_dev_info *)’ [-Werror=incompatible-pointer-types] 1552 |
>>> .dev_infos_get = hns3vf_dev_infos_get, | ^~~~~~~~~~~~~~~~~~~~
>>> ../drivers/net/hns3/hns3_ethdev_vf.c:1552:24: note: (near initialization
>>> for ‘hns3vf_eth_dev_ops.dev_infos_get’) cc1: all warnings being treated
>>> as errors
>>>
>>> <...>
>>>
>>> But I found that perhaps the reason for this compilation error is that
>>> the following patch was not built on CI,
>>>
>>> and it had been in the latest branch of the repository:
>>> http://dpdk.org/git/next/dpdk-next-net
>> The patch you reference is still not present.  I guess perhaps it might
>> have been clobbered in a rebase?
> Hi, Aaron Conole
>    
>     The patch is still in the repository now, but the commit id has been
> changed. The detail information as below:
> 
> repo: http://dpdk.org/git/next/dpdk-next-net
> branch: master
> 
> commit b90f5e9b44c088d0bfa77d0458f5b28045935835
> Author: Ivan Ilchenko <ivan.ilchenko at oktetlabs.com>
> Date:   Thu Sep 12 17:42:28 2019 +0100
> 
>     ethdev: change device info get callback to return int
> 
>     Change eth_dev_infos_get_t return value from void to int.
>     Make eth_dev_infos_get_t implementations across all drivers to return
>     negative errno values if case of error conditions.
> 
>     Signed-off-by: Ivan Ilchenko <ivan.ilchenko at oktetlabs.com>
>     Signed-off-by: Andrew Rybchenko <arybchenko at solarflare.com>
>     Reviewed-by: Ferruh Yigit <ferruh.yigit at intel.com>
> 
> <...>

Hi Xavier,

The recent ethdev patches affects the drivers, please double check if you driver
is based on latest next-net? If it is, you can ignore the related build warnings
for now, it will settle down.

> 
> diff --git a/lib/librte_ethdev/rte_ethdev_core.h
> b/lib/librte_ethdev/rte_ethdev_core.h
> index 2922d5b..2394b32 100644
> --- a/lib/librte_ethdev/rte_ethdev_core.h
> +++ b/lib/librte_ethdev/rte_ethdev_core.h
> @@ -103,8 +103,8 @@ typedef int (*eth_queue_stats_mapping_set_t)(struct
> rte_eth_dev *dev,
>                                              uint8_t is_rx);
>  /**< @internal Set a queue statistics mapping for a tx/rx queue of an
> Ethernet device. */
> 
> -typedef void (*eth_dev_infos_get_t)(struct rte_eth_dev *dev,
> -                                   struct rte_eth_dev_info *dev_info);
> +typedef int (*eth_dev_infos_get_t)(struct rte_eth_dev *dev,
> +                                  struct rte_eth_dev_info *dev_info);
> 
>     Thanks for your comment.
> 
>     Regards
> Xavier
> 
>>> The information of the relevant patch as below:
>>>
>>> commit 84c4620318b642aea9b5388aa7fbc79a4fe6f29e
>>> Author: Ivan Ilchenko <ivan.ilchenko at oktetlabs.com>
>>> Date:   Thu Sep 12 17:42:28 2019 +0100
>>>
>>>     ethdev: change device info get callback to return int
>>>
>>> diff --git a/lib/librte_ethdev/rte_ethdev_core.h
>>> b/lib/librte_ethdev/rte_ethdev_core.h
>>> index 2922d5b..2394b32 100644
>>> --- a/lib/librte_ethdev/rte_ethdev_core.h
>>> +++ b/lib/librte_ethdev/rte_ethdev_core.h
>>> @@ -103,8 +103,8 @@ typedef int (*eth_queue_stats_mapping_set_t)(struct
>>> rte_eth_dev *dev,
>>>                                              uint8_t is_rx);
>>>  /**< @internal Set a queue statistics mapping for a tx/rx queue of an
>>> Ethernet device. */
>>>
>>> -typedef void (*eth_dev_infos_get_t)(struct rte_eth_dev *dev,
>>> -                               struct rte_eth_dev_info *dev_info);
>>> +typedef int (*eth_dev_infos_get_t)(struct rte_eth_dev *dev,
>>> +                            struct rte_eth_dev_info *dev_info);
>>>  /**< @internal Get specific information of an Ethernet device. */
>>>
>>>
>>>     Regards
>>> Xavier
>>>
>>> On 2019/9/20 21:25, Wei Hu (Xavier) wrote:
>>>> The Hisilicon Network Subsystem is a long term evolution IP which is
>>>> supposed to be used in Hisilicon ICT SoCs such as Kunpeng 920.
>>>>
>>>> This series add DPDK rte_ethdev poll mode driver for Hisilicon
>>>> Network Subsystem 3(hns3) network engine.
>>>>
>>>> Wei Hu (Xavier) (22):
>>>>   net/hns3: add hns3 build and doc infrastructure
>>>>   net/hns3: add hardware registers definition
>>>>   net/hns3: add some definitions for data structure and macro
>>>>   net/hns3: register hns3 PMD driver and add the log interface
>>>>     definition
>>>>   net/hns3: add support for cmd of hns3 PMD driver
>>>>   net/hns3: add the initialization of hns3 PMD driver
>>>>   net/hns3: add support for MAC address related operations
>>>>   net/hns3: add support for some misc operations
>>>>   net/hns3: add support for link_update operation
>>>>   net/hns3: add support for flow directory of hns3 PMD driver
>>>>   net/hns3: add support for RSS of hns3 PMD driver
>>>>   net/hns3: add support for flow control of hns3 PMD driver
>>>>   net/hns3: add support for vlan of hns3 PMD driver
>>>>   net/hns3: add support for mailbox of hns3 PMD driver
>>>>   net/hns3: add support for hns3 VF PMD driver
>>>>   net/hns3: add RX/TX package burst and queue related operation
>>>>   net/hns3: add start stop configure promiscuous ops
>>>>   net/hns3: add dump register ops for hns3 PMD driver
>>>>   net/hns3: add abnormal interrupt process for hns3 PMD driver
>>>>   net/hns3: add stats related ops for hns3 PMD driver
>>>>   net/hns3: add reset related process for hns3 PMD driver
>>>>   net/hns3: add multiple process support for hns3 PMD driver
>>>>
>>>>  MAINTAINERS                                  |    8 +
>>>>  config/common_base                           |    5 +
>>>>  config/common_linux                          |    5 +
>>>>  config/defconfig_arm-armv7a-linuxapp-gcc     |    1 +
>>>>  config/defconfig_i686-native-linuxapp-gcc    |    5 +
>>>>  config/defconfig_i686-native-linuxapp-icc    |    5 +
>>>>  config/defconfig_ppc_64-power8-linuxapp-gcc  |    1 +
>>>>  config/defconfig_x86_64-native-linuxapp-icc  |    5 +
>>>>  config/defconfig_x86_x32-native-linuxapp-gcc |    5 +
>>>>  doc/guides/nics/features/hns3.ini            |   34 +
>>>>  doc/guides/nics/features/hns3_vf.ini         |   29 +
>>>>  doc/guides/nics/hns3.rst                     |   60 +
>>>>  doc/guides/nics/index.rst                    |    1 +
>>>>  doc/guides/rel_notes/release_19_11.rst       |    5 +
>>>>  drivers/net/Makefile                         |    1 +
>>>>  drivers/net/hns3/Makefile                    |   45 +
>>>>  drivers/net/hns3/hns3_cmd.c                  |  565 +++
>>>>  drivers/net/hns3/hns3_cmd.h                  |  761 ++++
>>>>  drivers/net/hns3/hns3_dcb.c                  | 1642 +++++++++
>>>>  drivers/net/hns3/hns3_dcb.h                  |  166 +
>>>>  drivers/net/hns3/hns3_ethdev.c               | 4939 ++++++++++++++++++++++++++
>>>>  drivers/net/hns3/hns3_ethdev.h               |  645 ++++
>>>>  drivers/net/hns3/hns3_ethdev_vf.c            | 1735 +++++++++
>>>>  drivers/net/hns3/hns3_fdir.c                 | 1059 ++++++
>>>>  drivers/net/hns3/hns3_fdir.h                 |  205 ++
>>>>  drivers/net/hns3/hns3_flow.c                 | 1903 ++++++++++
>>>>  drivers/net/hns3/hns3_intr.c                 | 1166 ++++++
>>>>  drivers/net/hns3/hns3_intr.h                 |   79 +
>>>>  drivers/net/hns3/hns3_logs.h                 |   34 +
>>>>  drivers/net/hns3/hns3_mbx.c                  |  353 ++
>>>>  drivers/net/hns3/hns3_mbx.h                  |  136 +
>>>>  drivers/net/hns3/hns3_mp.c                   |  214 ++
>>>>  drivers/net/hns3/hns3_mp.h                   |   14 +
>>>>  drivers/net/hns3/hns3_regs.c                 |  368 ++
>>>>  drivers/net/hns3/hns3_regs.h                 |   99 +
>>>>  drivers/net/hns3/hns3_rss.c                  |  584 +++
>>>>  drivers/net/hns3/hns3_rss.h                  |  124 +
>>>>  drivers/net/hns3/hns3_rxtx.c                 | 1676 +++++++++
>>>>  drivers/net/hns3/hns3_rxtx.h                 |  317 ++
>>>>  drivers/net/hns3/hns3_stats.c                |  971 +++++
>>>>  drivers/net/hns3/hns3_stats.h                |  152 +
>>>>  drivers/net/hns3/meson.build                 |   37 +
>>>>  drivers/net/hns3/rte_pmd_hns3_version.map    |    3 +
>>>>  drivers/net/meson.build                      |    1 +
>>>>  mk/rte.app.mk                                |    1 +
>>>>  45 files changed, 20164 insertions(+)
>>>>  create mode 100644 doc/guides/nics/features/hns3.ini
>>>>  create mode 100644 doc/guides/nics/features/hns3_vf.ini
>>>>  create mode 100644 doc/guides/nics/hns3.rst
>>>>  create mode 100644 drivers/net/hns3/Makefile
>>>>  create mode 100644 drivers/net/hns3/hns3_cmd.c
>>>>  create mode 100644 drivers/net/hns3/hns3_cmd.h
>>>>  create mode 100644 drivers/net/hns3/hns3_dcb.c
>>>>  create mode 100644 drivers/net/hns3/hns3_dcb.h
>>>>  create mode 100644 drivers/net/hns3/hns3_ethdev.c
>>>>  create mode 100644 drivers/net/hns3/hns3_ethdev.h
>>>>  create mode 100644 drivers/net/hns3/hns3_ethdev_vf.c
>>>>  create mode 100644 drivers/net/hns3/hns3_fdir.c
>>>>  create mode 100644 drivers/net/hns3/hns3_fdir.h
>>>>  create mode 100644 drivers/net/hns3/hns3_flow.c
>>>>  create mode 100644 drivers/net/hns3/hns3_intr.c
>>>>  create mode 100644 drivers/net/hns3/hns3_intr.h
>>>>  create mode 100644 drivers/net/hns3/hns3_logs.h
>>>>  create mode 100644 drivers/net/hns3/hns3_mbx.c
>>>>  create mode 100644 drivers/net/hns3/hns3_mbx.h
>>>>  create mode 100644 drivers/net/hns3/hns3_mp.c
>>>>  create mode 100644 drivers/net/hns3/hns3_mp.h
>>>>  create mode 100644 drivers/net/hns3/hns3_regs.c
>>>>  create mode 100644 drivers/net/hns3/hns3_regs.h
>>>>  create mode 100644 drivers/net/hns3/hns3_rss.c
>>>>  create mode 100644 drivers/net/hns3/hns3_rss.h
>>>>  create mode 100644 drivers/net/hns3/hns3_rxtx.c
>>>>  create mode 100644 drivers/net/hns3/hns3_rxtx.h
>>>>  create mode 100644 drivers/net/hns3/hns3_stats.c
>>>>  create mode 100644 drivers/net/hns3/hns3_stats.h
>>>>  create mode 100644 drivers/net/hns3/meson.build
>>>>  create mode 100644 drivers/net/hns3/rte_pmd_hns3_version.map
>>>>
>> .
>>
> 
> 



More information about the dev mailing list