net/ena/base: fix doorbell evaluation for the LLQ case

Message ID 20200812163729.4933-1-ar@semihalf.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series net/ena/base: fix doorbell evaluation for the LLQ case |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS

Commit Message

Artur Rojek Aug. 12, 2020, 4:37 p.m. UTC
  From: Michal Krawczyk <mk@semihalf.com>

This patch adds a missing LLQ-related check in the
ena_com_is_doorbell_needed() routine, which is relevant for the feature
supported by the next generation HW of the ENA.

Fixes: b2b02edeb0d6 ("net/ena/base: upgrade HAL for new HW features")
CC: stable@dpdk.org

Signed-off-by: Michal Krawczyk <mk@semihalf.com>
[Extracted from a bigger patch]
Signed-off-by: Artur Rojek <ar@semihalf.com>
---
 drivers/net/ena/base/ena_eth_com.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
  

Comments

Ferruh Yigit Aug. 18, 2020, 3:26 p.m. UTC | #1
On 8/13/2020 7:07 PM, Marcin Wojtas wrote:
> Hi,
> 
> śr., 12 sie 2020 o 18:37 Artur Rojek <ar@semihalf.com> napisał(a):
>>
>> From: Michal Krawczyk <mk@semihalf.com>
>>
>> This patch adds a missing LLQ-related check in the
>> ena_com_is_doorbell_needed() routine, which is relevant for the feature
>> supported by the next generation HW of the ENA.
>>
>> Fixes: b2b02edeb0d6 ("net/ena/base: upgrade HAL for new HW features")
>> CC: stable@dpdk.org
>>
>> Signed-off-by: Michal Krawczyk <mk@semihalf.com>
>> [Extracted from a bigger patch]
>> Signed-off-by: Artur Rojek <ar@semihalf.com>
> 
> Reviewed-by: Marcin Wojtas <mw@semihalf.com>
> 

Applied to dpdk-next-net/main, thanks.
  

Patch

diff --git a/drivers/net/ena/base/ena_eth_com.h b/drivers/net/ena/base/ena_eth_com.h
index e37b642d4..3d66237b8 100644
--- a/drivers/net/ena/base/ena_eth_com.h
+++ b/drivers/net/ena/base/ena_eth_com.h
@@ -133,7 +133,8 @@  static inline bool ena_com_is_doorbell_needed(struct ena_com_io_sq *io_sq,
 	llq_info = &io_sq->llq_info;
 	num_descs = ena_tx_ctx->num_bufs;
 
-	if (unlikely(ena_com_meta_desc_changed(io_sq, ena_tx_ctx)))
+	if (llq_info->disable_meta_caching ||
+	    unlikely(ena_com_meta_desc_changed(io_sq, ena_tx_ctx)))
 		++num_descs;
 
 	if (num_descs > llq_info->descs_num_before_header) {