#
f8a4217d |
| 13-Mar-2024 |
Wei Hu <weh@microsoft.com> |
net/mana: support VLAN tagging
For Tx path, use LONG_PACKET_FORMAT if VLAN tag is present. For Rx, extract VLAN id from oob, put into mbuf and set the VLAN flags in mbuf.
Signed-off-by: Wei Hu <weh
net/mana: support VLAN tagging
For Tx path, use LONG_PACKET_FORMAT if VLAN tag is present. For Rx, extract VLAN id from oob, put into mbuf and set the VLAN flags in mbuf.
Signed-off-by: Wei Hu <weh@microsoft.com> Acked-by: Long Li <longli@microsoft.com>
show more ...
|
#
eeb37809 |
| 09-Feb-2024 |
Long Li <longli@microsoft.com> |
net/mana: use bulk mbuf allocation for Rx WQEs
Instead of allocating mbufs one by one during RX, use rte_pktmbuf_alloc_bulk() to allocate them in a batch.
With this patch, there are no measurable p
net/mana: use bulk mbuf allocation for Rx WQEs
Instead of allocating mbufs one by one during RX, use rte_pktmbuf_alloc_bulk() to allocate them in a batch.
With this patch, there are no measurable performance improvements in benchmarks. However, this patch should improve CPU cycles and reduce potential locking conflicts in real-world applications.
Signed-off-by: Long Li <longli@microsoft.com>
show more ...
|
#
7d79530e |
| 20-Jan-2024 |
Long Li <longli@microsoft.com> |
net/mana: rename function that returns memory region
The function name mana_find_pmd_mr() is misleading as there might be allocations to get a MR. Change function name to mana_alloc_pmd_mr().
Signe
net/mana: rename function that returns memory region
The function name mana_find_pmd_mr() is misleading as there might be allocations to get a MR. Change function name to mana_alloc_pmd_mr().
Signed-off-by: Long Li <longli@microsoft.com>
show more ...
|
#
319855c9 |
| 07-Jul-2023 |
Long Li <longli@microsoft.com> |
net/mana: set queue state
Set the queue state when queue is started/stopped
Signed-off-by: Long Li <longli@microsoft.com>
|
#
26c6bdf3 |
| 21-Sep-2023 |
Wei Hu <weh@microsoft.com> |
net/mana: add 32-bit short doorbell
Add 32-bit short doorbell support. Ring short doorbell when running in 32-bit applications.
Both 32-bit and 64-bit doorbells are supported by mana hardware on sa
net/mana: add 32-bit short doorbell
Add 32-bit short doorbell support. Ring short doorbell when running in 32-bit applications.
Both 32-bit and 64-bit doorbells are supported by mana hardware on same platform. 32-bit applications cannot use 64-bit doorbells. 64-bit applications can use 32-bit doorbells, however the performance would greatly suffer and it is not recommended.
Cc: stable@dpdk.org
Signed-off-by: Wei Hu <weh@microsoft.com> Acked-by: Long Li <longli@microsoft.com>
show more ...
|
#
304ad326 |
| 10-Jul-2023 |
Long Li <longli@microsoft.com> |
net/mana: fix WQE count for ringing RQ doorbell
The hardware specification specifies that WQE_COUNT should set to 0 for the Receive Queue. Although currently the hardware doesn't enforce the check,
net/mana: fix WQE count for ringing RQ doorbell
The hardware specification specifies that WQE_COUNT should set to 0 for the Receive Queue. Although currently the hardware doesn't enforce the check, in the future releases it may check on this value.
Cc: stable@dpdk.org
Signed-off-by: Long Li <longli@microsoft.com>
show more ...
|
#
8a56ff3d |
| 10-Jul-2023 |
Long Li <longli@microsoft.com> |
net/mana: fix counter overflow for posted WQE
This counter should set to uint16_t, the same type as pkt_received. Otherwise, it may overflow when pkt_received goes over 256.
Thanks Xinhao Kong <t-k
net/mana: fix counter overflow for posted WQE
This counter should set to uint16_t, the same type as pkt_received. Otherwise, it may overflow when pkt_received goes over 256.
Thanks Xinhao Kong <t-kongxinhao@microsoft.com> for debugging this.
Fixes: 517ed6e2d590 ("net/mana: add basic driver with build environment") Cc: stable@dpdk.org
Signed-off-by: Long Li <longli@microsoft.com>
show more ...
|
#
ae220ee5 |
| 07-Jul-2023 |
Long Li <longli@microsoft.com> |
net/mana: fix deadlock on coalescing CQE error
On a fatal CQE error when coalescing is used, update the correct index and allow proceeding to the next CQE.
Fixes: 3409e0f172f6 ("net/mana: implement
net/mana: fix deadlock on coalescing CQE error
On a fatal CQE error when coalescing is used, update the correct index and allow proceeding to the next CQE.
Fixes: 3409e0f172f6 ("net/mana: implement Rx CQE coalescing")
Signed-off-by: Long Li <longli@microsoft.com>
show more ...
|
#
3409e0f1 |
| 06-May-2023 |
Long Li <longli@microsoft.com> |
net/mana: implement Rx CQE coalescing
With RX coalescing, one CQE entry can be used to indicate up to 4 packets on the receive queue. This saves processing time and PCI bandwidth over the CQ.
Signe
net/mana: implement Rx CQE coalescing
With RX coalescing, one CQE entry can be used to indicate up to 4 packets on the receive queue. This saves processing time and PCI bandwidth over the CQ.
Signed-off-by: Long Li <longli@microsoft.com>
show more ...
|
#
31124619 |
| 17-Mar-2023 |
Long Li <longli@microsoft.com> |
net/mana: optimize completion queue by batch processing
We can poll completion queues in a batch to speed up completion processing. Also, the completion data doesn't need to be copied out of the har
net/mana: optimize completion queue by batch processing
We can poll completion queues in a batch to speed up completion processing. Also, the completion data doesn't need to be copied out of the hardware queue and they can be passed as pointers to be consumed by the RX/TX code.
Fixes: 517ed6e2d590 ("net/mana: add basic driver with build environment") Cc: stable@dpdk.org
Signed-off-by: Long Li <longli@microsoft.com>
show more ...
|
#
b5dfcaec |
| 17-Mar-2023 |
Long Li <longli@microsoft.com> |
net/mana: avoid unnecessary assignments in data path
Unnecessary assignments involve memset and waste CPU cycles. Removing them to reduce CPU usage.
Fixes: 517ed6e2d590 ("net/mana: add basic driver
net/mana: avoid unnecessary assignments in data path
Unnecessary assignments involve memset and waste CPU cycles. Removing them to reduce CPU usage.
Fixes: 517ed6e2d590 ("net/mana: add basic driver with build environment") Cc: stable@dpdk.org
Signed-off-by: Long Li <longli@microsoft.com>
show more ...
|
#
e2d3a3c0 |
| 21-Feb-2023 |
Long Li <longli@microsoft.com> |
net/mana: use datapath logging
Change all the logging statements on the datapath to use RTE_LOG_DP() to reduce CPU overhead when logging is not enabled for datapath.
Fixes: 517ed6e2d590 ("net/mana:
net/mana: use datapath logging
Change all the logging statements on the datapath to use RTE_LOG_DP() to reduce CPU overhead when logging is not enabled for datapath.
Fixes: 517ed6e2d590 ("net/mana: add basic driver with build environment") Cc: stable@dpdk.org
Signed-off-by: Long Li <longli@microsoft.com>
show more ...
|
#
afd5d170 |
| 05-Oct-2022 |
Long Li <longli@microsoft.com> |
net/mana: support Rx interrupts
mana can receive Rx interrupts from kernel through RDMA verbs interface. Implement Rx interrupts in the driver.
Signed-off-by: Long Li <longli@microsoft.com>
|
#
eb9994dd |
| 05-Oct-2022 |
Long Li <longli@microsoft.com> |
net/mana: receive packets
With all the RX queues created, MANA can use those queues to receive packets.
Signed-off-by: Long Li <longli@microsoft.com>
|
#
5f705ac2 |
| 05-Oct-2022 |
Long Li <longli@microsoft.com> |
net/mana: start/stop Rx queues
MANA allocates device queues through the IB layer when starting Rx queues. When device is stopped all the queues are unmapped and freed.
Signed-off-by: Long Li <longl
net/mana: start/stop Rx queues
MANA allocates device queues through the IB layer when starting Rx queues. When device is stopped all the queues are unmapped and freed.
Signed-off-by: Long Li <longli@microsoft.com>
show more ...
|