[dpdk-dev] [PATCH v4 01/19] net/hinic/base: add mbox command channel for SRIOV
Wangxiaoyun (Cloud, Network Chip Application Development Dept)
cloud.wangxiaoyun at huawei.com
Tue Oct 29 07:57:06 CET 2019
Hi Gavin,
Thanks for your comments, I will fix the code style issue in Patch v5, and the bit operation for
hinic_test_bit and others has beed replaced with common rte_io_XX_bit APIs by Joyce Kong's pathces, I will check
other remained bit operations and replace it with the common one.
Best Regards
Xiaoyun Wang
在 2019/10/11 17:37, Gavin Hu (Arm Technology China) 写道:
> Hi Xiaoyun,
>
> Please pay attention to the coding style issue, and some other inline comments.
> For the bit operation functions, we are consolidating the bit operations functions into a common eal API family, when it is ready,
> the cpu_to_be32 and vice versa APIs scattered here and there can be replaced with the common one. This can
> largely reduce code duplications. The work was started and is ongoing, I don't intend to block the proceeding of your patches,
> Just keep an eye on it and please do the replacement after the common bit APIs are accepted.
> /Gavin
>
>> -----Original Message-----
>> From: dev <dev-bounces at dpdk.org> On Behalf Of Xiaoyun wang
>> Sent: Thursday, October 10, 2019 10:52 PM
>> To: ferruh.yigit at intel.com
>> Cc: dev at dpdk.org; xuanziyang2 at huawei.com; shahar.belkar at huawei.com;
>> luoxianjun at huawei.com; tanya.brokhman at huawei.com;
>> zhouguoyang at huawei.com; Xiaoyun wang
>> <cloud.wangxiaoyun at huawei.com>
>> Subject: [dpdk-dev] [PATCH v4 01/19] net/hinic/base: add mbox command
>> channel for SRIOV
>>
>> Add mbox command channel for SR-IOV, which is used to
>> communicate between VF and VF, VF and PF. This patch
>> introduces data structures, initialization, interfaces
>> and commands of mbox channel.
>>
>> Signed-off-by: Xiaoyun wang <cloud.wangxiaoyun at huawei.com>
>> ---
>> doc/guides/nics/features/hinic.ini | 1 +
>> doc/guides/nics/hinic.rst | 1 +
>> drivers/net/hinic/Makefile | 1 +
>> drivers/net/hinic/base/hinic_compat.h | 36 +-
>> drivers/net/hinic/base/hinic_pmd_hwdev.h | 5 +-
>> drivers/net/hinic/base/hinic_pmd_mbox.c | 937
>> +++++++++++++++++++++++++++++++
>> drivers/net/hinic/base/hinic_pmd_mbox.h | 93 +++
>> drivers/net/hinic/base/meson.build | 1 +
>> 8 files changed, 1070 insertions(+), 5 deletions(-)
>> create mode 100644 drivers/net/hinic/base/hinic_pmd_mbox.c
>> create mode 100644 drivers/net/hinic/base/hinic_pmd_mbox.h
>>
>> diff --git a/doc/guides/nics/features/hinic.ini
>> b/doc/guides/nics/features/hinic.ini
>> index fe063d6..c858411 100644
>> --- a/doc/guides/nics/features/hinic.ini
>> +++ b/doc/guides/nics/features/hinic.ini
>> @@ -19,6 +19,7 @@ RSS hash = Y
>> RSS key update = Y
>> RSS reta update = Y
>> Inner RSS = Y
>> +SR-IOV = Y
>> CRC offload = Y
>> L3 checksum offload = Y
>> L4 checksum offload = Y
>> diff --git a/doc/guides/nics/hinic.rst b/doc/guides/nics/hinic.rst
>> index c9329bc..c3ce101 100644
>> --- a/doc/guides/nics/hinic.rst
>> +++ b/doc/guides/nics/hinic.rst
>> @@ -24,6 +24,7 @@ Features
>> - Link state information
>> - Link flow control
>> - Scattered and gather for TX and RX
>> +- SR-IOV - Partially supported at this point, VFIO only
>>
>> Prerequisites
>> -------------
>> diff --git a/drivers/net/hinic/Makefile b/drivers/net/hinic/Makefile
>> index 42b4a78..20a338e 100644
>> --- a/drivers/net/hinic/Makefile
>> +++ b/drivers/net/hinic/Makefile
>> @@ -59,6 +59,7 @@ SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) +=
>> hinic_pmd_mgmt.c
>> SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_niccfg.c
>> SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_nicio.c
>> SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_wq.c
>> +SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_mbox.c
>>
>> SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_ethdev.c
>> SRCS-$(CONFIG_RTE_LIBRTE_HINIC_PMD) += hinic_pmd_rx.c
>> diff --git a/drivers/net/hinic/base/hinic_compat.h
>> b/drivers/net/hinic/base/hinic_compat.h
>> index f599947..fe26aad 100644
>> --- a/drivers/net/hinic/base/hinic_compat.h
>> +++ b/drivers/net/hinic/base/hinic_compat.h
>> @@ -121,9 +121,7 @@ static inline int hinic_test_bit(int nr, volatile unsigned
>> long *addr)
>> {
>> int res;
>>
>> - rte_mb();
> Why is the barrier removed?
> If the barrier is moved outside, it should also be reflected in the commit log, as this is a critical change.
> /Gavin
>> res = ((*addr) & (1UL << nr)) != 0;
>> - rte_mb();
> Ditto.
>> return res;
>> }
>>
More information about the dev
mailing list