]> git.droids-corp.org - dpdk.git/commitdiff
net/hns3: fix pseudo-sharing between threads
authorHuisong Li <lihuisong@huawei.com>
Thu, 5 May 2022 12:27:03 +0000 (20:27 +0800)
committerFerruh Yigit <ferruh.yigit@xilinx.com>
Thu, 12 May 2022 08:28:54 +0000 (10:28 +0200)
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

index a000318357abbffe2b424481df2231a15cf08a47..62efc854e4371d08bfb60e0818352e9b3cdabae0 100644 (file)
@@ -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;