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

Wei Hu (Xavier) xavier.huwei at huawei.com
Wed Sep 25 04:30:58 CEST 2019



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>

<...>

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