From: Huisong Li Date: Thu, 5 May 2022 12:27:03 +0000 (+0800) Subject: net/hns3: fix pseudo-sharing between threads X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=ec0147b5690e6cae2cc4555f78b87defee59c946;p=dpdk.git 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 Signed-off-by: Min Hu (Connor) --- 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;