Wei Hu (Xavier)
5cf7a75b2c
net/hns3: remove one IO barrier in Rx
When receiving a packet, hns3 hardware network engine firstly writes the packet content to the memory pointed by the 'addr' field of the Rx Buffer Descriptor, secondly fills the result of parsing the packet include the valid field into the Rx Buffer Descriptor in one write operation, and thirdly writes the number of the Buffer Descriptor not processed by the driver to the HNS3_RING_RX_FBDNUM_REG register. This patch optimizes the Rx performance by removing one rte_io_rmb call in the '.rx_pkt_burst' ops implementation function named hns3_recv_pkts. The change as follows: 1. Driver no longer read HNS3_RING_RX_FBDNUM_REG register, so remove one rte_io_rmb call, and directly read the valid flag of Rx Buffer Descriptor to check whether the BD is ready. 2. Delete the non_vld_descs field from the statistic information of the hns3 driver because now it has become a common case that the valid flag of Rx Buffer Descriptor read by the driver is invalid. Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
DPDK is a set of libraries and drivers for fast packet processing. It supports many processor architectures and both FreeBSD and Linux. The DPDK uses the Open Source BSD-3-Clause license for the core libraries and drivers. The kernel components are GPL-2.0 licensed. Please check the doc directory for release notes, API documentation, and sample application information. For questions and usage discussions, subscribe to: users@dpdk.org Report bugs and issues to the development mailing list: dev@dpdk.org
Description
Languages
C
99.1%
Meson
0.5%
Python
0.2%
Shell
0.1%