[dpdk-dev,1/4] net/dpaa2: stop using software annotation
Checks
Commit Message
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
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
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
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
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
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
>
>
>
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.
@@ -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"
@@ -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) {
@@ -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));