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

Wei Hu (Xavier) xavier.huwei at huawei.com
Thu Sep 26 16:03:04 CEST 2019



On 2019/9/26 15:55, Ferruh Yigit wrote:
> 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.
Hi, Aaron Conole
   I found there was one conflict when performing git operation based on
the latest
next-net because of the recent change in the repository. I will send
PATCH v3 to
fix the conflict, Thanks.

   Regards
Xavier
>> 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