Signed-off-by: speech_white <humin29@huawei.com> (cherry picked from commit 39c2c5154122fef74060ffd6dbbe8cd4fdd9d21b)
46 lines
1.6 KiB
Diff
46 lines
1.6 KiB
Diff
From ec0147b5690e6cae2cc4555f78b87defee59c946 Mon Sep 17 00:00:00 2001
|
|
From: Huisong Li <lihuisong@huawei.com>
|
|
Date: Thu, 5 May 2022 20:27:03 +0800
|
|
Subject: [PATCH] net/hns3: fix pseudo-sharing between threads
|
|
|
|
Some fields in the end of 'struct hns3_rx_queue' and
|
|
'struct hns3_tx_queue' are not accessed in the I/O path.
|
|
But these fields may be accessed in other threads, which may lead to the
|
|
problem of cache pseudo-sharing of IO threads. This patch add a
|
|
cacheline alignment to avoid it.
|
|
|
|
Fixes: 9261fd3caf1f ("net/hns3: improve IO path data cache usage")
|
|
Cc: stable@dpdk.org
|
|
|
|
Signed-off-by: Huisong Li <lihuisong@huawei.com>
|
|
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
|
|
---
|
|
drivers/net/hns3/hns3_rxtx.h | 4 ++--
|
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/drivers/net/hns3/hns3_rxtx.h b/drivers/net/hns3/hns3_rxtx.h
|
|
index a000318357..62efc854e4 100644
|
|
--- a/drivers/net/hns3/hns3_rxtx.h
|
|
+++ b/drivers/net/hns3/hns3_rxtx.h
|
|
@@ -348,7 +348,7 @@ struct hns3_rx_queue {
|
|
* The following fields are not accessed in the I/O path, so they are
|
|
* placed at the end.
|
|
*/
|
|
- void *io_base;
|
|
+ void *io_base __rte_cache_aligned;
|
|
struct hns3_adapter *hns;
|
|
uint64_t rx_ring_phys_addr; /* RX ring DMA address */
|
|
const struct rte_memzone *mz;
|
|
@@ -521,7 +521,7 @@ struct hns3_tx_queue {
|
|
* The following fields are not accessed in the I/O path, so they are
|
|
* placed at the end.
|
|
*/
|
|
- void *io_base;
|
|
+ void *io_base __rte_cache_aligned;
|
|
struct hns3_adapter *hns;
|
|
uint64_t tx_ring_phys_addr; /* TX ring DMA address */
|
|
const struct rte_memzone *mz;
|
|
--
|
|
2.33.0
|
|
|