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-boun...@dpdk.org> On Behalf Of Xiaoyun wang
Sent: Thursday, October 10, 2019 10:52 PM
To: ferruh.yi...@intel.com
Cc: dev@dpdk.org; xuanziya...@huawei.com; shahar.bel...@huawei.com;
luoxian...@huawei.com; tanya.brokh...@huawei.com;
zhouguoy...@huawei.com; Xiaoyun wang
<cloud.wangxiao...@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.wangxiao...@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;
}