]> git.baikalelectronics.ru Git - kernel.git/commit
net: stmmac: Introducing support for Page Pool
authorJose Abreu <Jose.Abreu@synopsys.com>
Tue, 9 Jul 2019 08:03:00 +0000 (10:03 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 9 Jul 2019 19:20:08 +0000 (12:20 -0700)
commit71911be94d098f30ca454942d00427adc56907ed
treeda32c00b9208e27b5f109d917e4c0a0ab9a9d8dd
parentf58856b3385d62c81fa6ec57aac2f7d15581af06
net: stmmac: Introducing support for Page Pool

Mapping and unmapping DMA region is an high bottleneck in stmmac driver,
specially in the RX path.

This commit introduces support for Page Pool API and uses it in all RX
queues. With this change, we get more stable troughput and some increase
of banwidth with iperf:
- MAC1000 - 950 Mbps
- XGMAC: 9.22 Gbps

Changes from v3:
- Use page_pool_destroy() (Ilias)
Changes from v2:
- Uncoditionally call page_pool_free() (Jesper)
Changes from v1:
- Use page_pool_get_dma_addr() (Jesper)
- Add a comment (Jesper)
- Add page_pool_free() call (Jesper)
- Reintroduce sync_single_for_device (Arnd / Ilias)

Signed-off-by: Jose Abreu <joabreu@synopsys.com>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/stmicro/stmmac/Kconfig
drivers/net/ethernet/stmicro/stmmac/stmmac.h
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c