Messages in this thread Patch in this message | | | From | Matteo Croce <> | Subject | [PATCH net-next v2 3/3] mvpp2: prefetch frame header | Date | Thu, 24 Oct 2019 19:24:58 +0200 |
| |
When receiving traffic, eth_type_trans() is high up on the perf top list, because it's the first function which access the packet data.
Move the DMA unmap a bit higher, and put a prefetch just after it, so we have more time to load the data into the cache.
The packet rate increase is about 14% with a tc drop test: 1620 => 1853 kpps
Signed-off-by: Matteo Croce <mcroce@redhat.com> --- drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c index 15818e1d6b04..a55de943d5cb 100644 --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c @@ -2963,6 +2963,7 @@ static int mvpp2_rx(struct mvpp2_port *port, struct napi_struct *napi, dma_sync_single_for_cpu(dev->dev.parent, dma_addr, rx_bytes + MVPP2_MH_SIZE, DMA_FROM_DEVICE); + prefetch(data); if (bm_pool->frag_size > PAGE_SIZE) frag_size = 0; -- 2.21.0
| |