[dpdk-dev,1/4] net/dpaa2: stop using software annotation

Message ID 1492607395-5922-1-git-send-email-hemant.agrawal@nxp.com (mailing list archive)
State Changes Requested, archived
Delegated to: Ferruh Yigit
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Hemant Agrawal April 19, 2017, 1:09 p.m. UTC
  The DPAA2 driver is not using the DPAA2 frame descriptor
software annotation area. This patch reduces the
PTA length to zero and adjust the RX Buffer Layout
accordingly.

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h |  2 +-
 drivers/net/dpaa2/base/dpaa2_hw_dpni.c  | 19 ++++++++++++-------
 drivers/net/dpaa2/dpaa2_ethdev.c        | 25 -------------------------
 3 files changed, 13 insertions(+), 33 deletions(-)
  

Comments

Hemant Agrawal May 15, 2017, 12:37 p.m. UTC | #1
This patchset adds following features to DPAA2 PMD:
1. improved error handling
2. parallel RX DQ requests to improve performance
3. Support for various ethdev operations
4. enable jumbo frames

Hemant Agrawal (20):
  mk: change to cortex-a72
  net/dpaa2: remove port level buffer layout definition
  net/dpaa2: stop using software annotation
  net/dpaa2: improve the error handling in dev init
  bus/fslmc: support for parallel Rx DQ requests
  net/dpaa2: support parallel Rx mode
  bus/fslmc: export qbman results in map file
  net/dpaa2: add support for congestion notification
  net/dpaa2: add support for tail drop on queue
  bus/fslmc: update TAILQ usages in dpaa2 objects
  net/dpaa2: add support for MAC address filtering
  net/dpaa2: add support for multicast promiscuous mode
  net/dpaa2: add support for VLAN filter and offload
  net/dpaa2: add support for VLAN strip
  net/dpaa2: add link status config support
  net/dpaa2: add support for flow control
  net/dpaa2: configure jumbo frames
  bus/fslmc: add support to detect soc version
  net/dpaa2: add support for Firmware Version get
  bus/fslmc: reducing the debug log messages

 config/defconfig_arm64-dpaa2-linuxapp-gcc   |   2 +-
 doc/guides/nics/features/dpaa2.ini          |   6 +
 drivers/bus/fslmc/Makefile                  |   1 +
 drivers/bus/fslmc/fslmc_vfio.c              |  13 +-
 drivers/bus/fslmc/mc/dpmng.c                |  81 ++++
 drivers/bus/fslmc/mc/fsl_dpmng.h            |  99 ++++
 drivers/bus/fslmc/mc/fsl_dpmng_cmd.h        |  54 +++
 drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c    |  30 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.c    |  66 +--
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h     |  44 +-
 drivers/bus/fslmc/rte_bus_fslmc_version.map |  10 +
 drivers/net/dpaa2/base/dpaa2_hw_dpni.c      |  19 +-
 drivers/net/dpaa2/dpaa2_ethdev.c            | 693 +++++++++++++++++++++++++---
 drivers/net/dpaa2/dpaa2_ethdev.h            |  27 +-
 drivers/net/dpaa2/dpaa2_rxtx.c              | 151 ++++--
 drivers/net/dpaa2/mc/dpni.c                 | 298 ++++++++++++
 drivers/net/dpaa2/mc/fsl_dpni.h             | 364 ++++++++++++++-
 drivers/net/dpaa2/mc/fsl_dpni_cmd.h         | 142 ++++++
 mk/machine/dpaa2/rte.vars.mk                |   2 +-
 19 files changed, 1915 insertions(+), 187 deletions(-)
 create mode 100644 drivers/bus/fslmc/mc/dpmng.c
 create mode 100644 drivers/bus/fslmc/mc/fsl_dpmng.h
 create mode 100644 drivers/bus/fslmc/mc/fsl_dpmng_cmd.h
  
Hemant Agrawal May 22, 2017, 9:39 a.m. UTC | #2
This patchset adds following features to DPAA2 PMD:
1. improved error handling
2. parallel RX DQ requests to improve performance
3. Support for various ethdev operations
4. enable jumbo frames

---
v2:
* rebased on next-net
* added additional comments in logs
* fixed issue with shared compilation

Hemant Agrawal (20):
  mk: change to cortex-a72
  net/dpaa2: remove port level buffer layout definition
  net/dpaa2: stop using software annotation
  net/dpaa2: improve the error handling in dev init
  bus/fslmc: support for parallel Rx DQ requests
  net/dpaa2: support parallel Rx in eth pmd
  bus/fslmc: export qbman results in map file
  net/dpaa2: add support for congestion notification
  net/dpaa2: add support for tail drop on queue
  bus/fslmc: update TAILQ usages in dpaa2 objects
  net/dpaa2: add support for MAC address filtering
  net/dpaa2: add support for multicast promiscuous mode
  net/dpaa2: add support for VLAN filter and offload
  net/dpaa2: add support for VLAN strip
  net/dpaa2: add link status config support
  net/dpaa2: add support for flow control
  net/dpaa2: configure jumbo frames
  bus/fslmc: add support to detect soc version
  net/dpaa2: add support for Firmware Version get
  bus/fslmc: reducing the debug log messages

 config/defconfig_arm64-dpaa2-linuxapp-gcc   |   2 +-
 doc/guides/nics/features/dpaa2.ini          |   6 +
 drivers/bus/fslmc/Makefile                  |   1 +
 drivers/bus/fslmc/fslmc_vfio.c              |  43 +-
 drivers/bus/fslmc/mc/dpmng.c                |  81 ++++
 drivers/bus/fslmc/mc/fsl_dpmng.h            |  99 ++++
 drivers/bus/fslmc/mc/fsl_dpmng_cmd.h        |  54 +++
 drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c    |  30 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.c    |  66 +--
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h     |  44 +-
 drivers/bus/fslmc/rte_bus_fslmc_version.map |  10 +
 drivers/net/dpaa2/base/dpaa2_hw_dpni.c      |  19 +-
 drivers/net/dpaa2/dpaa2_ethdev.c            | 694 +++++++++++++++++++++++++---
 drivers/net/dpaa2/dpaa2_ethdev.h            |  27 +-
 drivers/net/dpaa2/dpaa2_rxtx.c              | 151 ++++--
 drivers/net/dpaa2/mc/dpni.c                 | 298 ++++++++++++
 drivers/net/dpaa2/mc/fsl_dpni.h             | 364 ++++++++++++++-
 drivers/net/dpaa2/mc/fsl_dpni_cmd.h         | 142 ++++++
 mk/machine/dpaa2/rte.vars.mk                |   2 +-
 19 files changed, 1931 insertions(+), 202 deletions(-)
 create mode 100644 drivers/bus/fslmc/mc/dpmng.c
 create mode 100644 drivers/bus/fslmc/mc/fsl_dpmng.h
 create mode 100644 drivers/bus/fslmc/mc/fsl_dpmng_cmd.h
  
Ferruh Yigit May 24, 2017, 11:49 a.m. UTC | #3
On 5/22/2017 10:39 AM, Hemant Agrawal wrote:
> This patchset adds following features to DPAA2 PMD:
> 1. improved error handling
> 2. parallel RX DQ requests to improve performance
> 3. Support for various ethdev operations
> 4. enable jumbo frames
> 
> ---
> v2:
> * rebased on next-net
> * added additional comments in logs
> * fixed issue with shared compilation
> 
> Hemant Agrawal (20):
>   mk: change to cortex-a72
>   net/dpaa2: remove port level buffer layout definition
>   net/dpaa2: stop using software annotation
>   net/dpaa2: improve the error handling in dev init
>   bus/fslmc: support for parallel Rx DQ requests
>   net/dpaa2: support parallel Rx in eth pmd
>   bus/fslmc: export qbman results in map file
>   net/dpaa2: add support for congestion notification
>   net/dpaa2: add support for tail drop on queue
>   bus/fslmc: update TAILQ usages in dpaa2 objects
>   net/dpaa2: add support for MAC address filtering
>   net/dpaa2: add support for multicast promiscuous mode
>   net/dpaa2: add support for VLAN filter and offload
>   net/dpaa2: add support for VLAN strip
>   net/dpaa2: add link status config support
>   net/dpaa2: add support for flow control
>   net/dpaa2: configure jumbo frames
>   bus/fslmc: add support to detect soc version
>   net/dpaa2: add support for Firmware Version get
>   bus/fslmc: reducing the debug log messages

Hi Hemant,

Overall patchset looks good to me, except minor issues I already commented.

Thanks,
ferruh
  
Hemant Agrawal May 26, 2017, 6:51 a.m. UTC | #4
This patchset adds following features to DPAA2 PMD:
1. improved error handling
2. parallel RX DQ requests to improve performance
3. Support for various ethdev operations
4. enable jumbo frames

---
v4:
* rebased on next-net
* fixed alignment issues
* added FW-version in dpaa2.ini

v3:
* rebased on next-net
* added additional comments in logs
* fixed issue with shared compilation

v2:
* rebased on next-net
* added additional functional patches


Hemant Agrawal (20):
  mk: change to cortex-a72
  net/dpaa2: remove port level buffer layout definition
  net/dpaa2: stop using software annotation
  net/dpaa2: improve the error handling in dev init
  bus/fslmc: support for parallel Rx DQ requests
  net/dpaa2: support parallel Rx in eth pmd
  bus/fslmc: export qbman results in map file
  net/dpaa2: add support for congestion notification
  net/dpaa2: add support for tail drop on queue
  bus/fslmc: update TAILQ usages in dpaa2 objects
  net/dpaa2: add support for MAC address filtering
  net/dpaa2: add support for multicast promiscuous mode
  net/dpaa2: add support for VLAN filter and offload
  net/dpaa2: add support for VLAN strip
  net/dpaa2: add link status config support
  net/dpaa2: add support for flow control
  net/dpaa2: configure jumbo frames
  bus/fslmc: add support to detect soc version
  net/dpaa2: add support for Firmware Version get
  bus/fslmc: reducing the debug log messages

 config/defconfig_arm64-dpaa2-linuxapp-gcc   |   2 +-
 doc/guides/nics/features/dpaa2.ini          |   7 +
 drivers/bus/fslmc/Makefile                  |   1 +
 drivers/bus/fslmc/fslmc_vfio.c              |  43 +-
 drivers/bus/fslmc/mc/dpmng.c                |  81 ++++
 drivers/bus/fslmc/mc/fsl_dpmng.h            |  99 ++++
 drivers/bus/fslmc/mc/fsl_dpmng_cmd.h        |  54 +++
 drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c    |  30 +-
 drivers/bus/fslmc/portal/dpaa2_hw_dpio.c    |  62 +--
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h     |  48 +-
 drivers/bus/fslmc/rte_bus_fslmc_version.map |  10 +
 drivers/net/dpaa2/base/dpaa2_hw_dpni.c      |  19 +-
 drivers/net/dpaa2/dpaa2_ethdev.c            | 694 +++++++++++++++++++++++++---
 drivers/net/dpaa2/dpaa2_ethdev.h            |  27 +-
 drivers/net/dpaa2/dpaa2_rxtx.c              | 151 ++++--
 drivers/net/dpaa2/mc/dpni.c                 | 299 ++++++++++++
 drivers/net/dpaa2/mc/fsl_dpni.h             | 365 ++++++++++++++-
 drivers/net/dpaa2/mc/fsl_dpni_cmd.h         | 142 ++++++
 mk/machine/dpaa2/rte.vars.mk                |   2 +-
 19 files changed, 1934 insertions(+), 202 deletions(-)
 create mode 100644 drivers/bus/fslmc/mc/dpmng.c
 create mode 100644 drivers/bus/fslmc/mc/fsl_dpmng.h
 create mode 100644 drivers/bus/fslmc/mc/fsl_dpmng_cmd.h
  
Hemant Agrawal May 26, 2017, 7:51 a.m. UTC | #5
On 5/24/2017 5:19 PM, Ferruh Yigit wrote:
> On 5/22/2017 10:39 AM, Hemant Agrawal wrote:
>> This patchset adds following features to DPAA2 PMD:
>> 1. improved error handling
>> 2. parallel RX DQ requests to improve performance
>> 3. Support for various ethdev operations
>> 4. enable jumbo frames
>>
>> ---
>> v2:
>> * rebased on next-net
>> * added additional comments in logs
>> * fixed issue with shared compilation
>>
>> Hemant Agrawal (20):
>>   mk: change to cortex-a72
>>   net/dpaa2: remove port level buffer layout definition
>>   net/dpaa2: stop using software annotation
>>   net/dpaa2: improve the error handling in dev init
>>   bus/fslmc: support for parallel Rx DQ requests
>>   net/dpaa2: support parallel Rx in eth pmd
>>   bus/fslmc: export qbman results in map file
>>   net/dpaa2: add support for congestion notification
>>   net/dpaa2: add support for tail drop on queue
>>   bus/fslmc: update TAILQ usages in dpaa2 objects
>>   net/dpaa2: add support for MAC address filtering
>>   net/dpaa2: add support for multicast promiscuous mode
>>   net/dpaa2: add support for VLAN filter and offload
>>   net/dpaa2: add support for VLAN strip
>>   net/dpaa2: add link status config support
>>   net/dpaa2: add support for flow control
>>   net/dpaa2: configure jumbo frames
>>   bus/fslmc: add support to detect soc version
>>   net/dpaa2: add support for Firmware Version get
>>   bus/fslmc: reducing the debug log messages
>
> Hi Hemant,
>
> Overall patchset looks good to me, except minor issues I already commented.
>
> Thanks,
> ferruh

Hi Ferruh,
	I have updated patches as per your suggestion.

Regards,
Hemant
>
>
>
  
Ferruh Yigit May 26, 2017, 8:47 a.m. UTC | #6
On 5/26/2017 7:51 AM, Hemant Agrawal wrote:
> This patchset adds following features to DPAA2 PMD:
> 1. improved error handling
> 2. parallel RX DQ requests to improve performance
> 3. Support for various ethdev operations
> 4. enable jumbo frames
> 
> ---
> v4:
> * rebased on next-net
> * fixed alignment issues
> * added FW-version in dpaa2.ini
> 
> v3:
> * rebased on next-net
> * added additional comments in logs
> * fixed issue with shared compilation
> 
> v2:
> * rebased on next-net
> * added additional functional patches
> 
> 
> Hemant Agrawal (20):
>   mk: change to cortex-a72
>   net/dpaa2: remove port level buffer layout definition
>   net/dpaa2: stop using software annotation
>   net/dpaa2: improve the error handling in dev init
>   bus/fslmc: support for parallel Rx DQ requests
>   net/dpaa2: support parallel Rx in eth pmd
>   bus/fslmc: export qbman results in map file
>   net/dpaa2: add support for congestion notification
>   net/dpaa2: add support for tail drop on queue
>   bus/fslmc: update TAILQ usages in dpaa2 objects
>   net/dpaa2: add support for MAC address filtering
>   net/dpaa2: add support for multicast promiscuous mode
>   net/dpaa2: add support for VLAN filter and offload
>   net/dpaa2: add support for VLAN strip
>   net/dpaa2: add link status config support
>   net/dpaa2: add support for flow control
>   net/dpaa2: configure jumbo frames
>   bus/fslmc: add support to detect soc version
>   net/dpaa2: add support for Firmware Version get
>   bus/fslmc: reducing the debug log messages

Series applied to dpdk-next-net/master, thanks.
  

Patch

diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
index 41bcf03..a7308ba 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
@@ -65,7 +65,7 @@ 
 
 #define MAX_BPID 256
 #define DPAA2_MBUF_HW_ANNOTATION	64
-#define DPAA2_FD_PTA_SIZE		64
+#define DPAA2_FD_PTA_SIZE		0
 
 #if (DPAA2_MBUF_HW_ANNOTATION + DPAA2_FD_PTA_SIZE) > RTE_PKTMBUF_HEADROOM
 #error "Annotation requirement is more than RTE_PKTMBUF_HEADROOM"
diff --git a/drivers/net/dpaa2/base/dpaa2_hw_dpni.c b/drivers/net/dpaa2/base/dpaa2_hw_dpni.c
index 3dc60cc..547025d 100644
--- a/drivers/net/dpaa2/base/dpaa2_hw_dpni.c
+++ b/drivers/net/dpaa2/base/dpaa2_hw_dpni.c
@@ -306,15 +306,20 @@  int dpaa2_remove_flow_dist(
 	 */
 
 	/* ... rx buffer layout ... */
-	tot_size = DPAA2_HW_BUF_RESERVE + RTE_PKTMBUF_HEADROOM;
-	tot_size = RTE_ALIGN_CEIL(tot_size,
-				  DPAA2_PACKET_LAYOUT_ALIGN);
+	tot_size = RTE_PKTMBUF_HEADROOM;
+	tot_size = RTE_ALIGN_CEIL(tot_size, DPAA2_PACKET_LAYOUT_ALIGN);
 
 	memset(&layout, 0, sizeof(struct dpni_buffer_layout));
-	layout.options = DPNI_BUF_LAYOUT_OPT_DATA_HEAD_ROOM;
-
-	layout.data_head_room =
-		tot_size - DPAA2_FD_PTA_SIZE - DPAA2_MBUF_HW_ANNOTATION;
+	layout.options = DPNI_BUF_LAYOUT_OPT_DATA_HEAD_ROOM |
+			 DPNI_BUF_LAYOUT_OPT_FRAME_STATUS |
+			 DPNI_BUF_LAYOUT_OPT_PARSER_RESULT |
+			 DPNI_BUF_LAYOUT_OPT_PRIVATE_DATA_SIZE;
+
+	layout.pass_frame_status = 1;
+	layout.private_data_size = DPAA2_FD_PTA_SIZE;
+	layout.pass_parser_result = 1;
+	layout.data_head_room = tot_size - DPAA2_FD_PTA_SIZE -
+				DPAA2_MBUF_HW_ANNOTATION;
 	retcode = dpni_set_buffer_layout(dpni, CMD_PRI_LOW, priv->token,
 					 DPNI_QUEUE_RX, &layout);
 	if (retcode) {
diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index 4576442..f4c73de 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -761,7 +761,6 @@  void dpaa2_dev_stats_reset(struct rte_eth_dev *dev)
 	struct dpaa2_dev_priv *priv = eth_dev->data->dev_private;
 	struct dpni_buffer_layout layout;
 	int i, ret, hw_id;
-	int tot_size;
 
 	PMD_INIT_FUNC_TRACE();
 
@@ -854,30 +853,6 @@  void dpaa2_dev_stats_reset(struct rte_eth_dev *dev)
 		return -ret;
 	}
 
-	/* ... rx buffer layout ... */
-	tot_size = DPAA2_HW_BUF_RESERVE + RTE_PKTMBUF_HEADROOM;
-	tot_size = RTE_ALIGN_CEIL(tot_size,
-				  DPAA2_PACKET_LAYOUT_ALIGN);
-
-	memset(&layout, 0, sizeof(struct dpni_buffer_layout));
-	layout.options = DPNI_BUF_LAYOUT_OPT_FRAME_STATUS |
-				DPNI_BUF_LAYOUT_OPT_PARSER_RESULT |
-				DPNI_BUF_LAYOUT_OPT_DATA_HEAD_ROOM |
-				DPNI_BUF_LAYOUT_OPT_PRIVATE_DATA_SIZE;
-
-	layout.pass_frame_status = 1;
-	layout.data_head_room = tot_size
-		- DPAA2_FD_PTA_SIZE - DPAA2_MBUF_HW_ANNOTATION;
-	layout.private_data_size = DPAA2_FD_PTA_SIZE;
-	layout.pass_parser_result = 1;
-	PMD_INIT_LOG(DEBUG, "Tot_size = %d, head room = %d, private = %d",
-		     tot_size, layout.data_head_room, layout.private_data_size);
-	ret = dpni_set_buffer_layout(dpni_dev, CMD_PRI_LOW, priv->token,
-				     DPNI_QUEUE_RX, &layout);
-	if (ret) {
-		PMD_INIT_LOG(ERR, "Err(%d) in setting rx buffer layout", ret);
-		return -1;
-	}
 
 	/* ... tx buffer layout ... */
 	memset(&layout, 0, sizeof(struct dpni_buffer_layout));