]> git.baikalelectronics.ru Git - kernel.git/commit
net: thunderx: Support for page recycling
authorSunil Goutham <sgoutham@cavium.com>
Tue, 2 May 2017 13:06:50 +0000 (18:36 +0530)
committerDavid S. Miller <davem@davemloft.net>
Tue, 2 May 2017 19:41:20 +0000 (15:41 -0400)
commit68a40f45cb60fd6398d9a8073e9ca8af1e3cd352
tree2a3878ca7264b93ecbfbd64d82dfd660d5c4055c
parentb40a1e8babf029ceeaf7f41b9ee321a056174dad
net: thunderx: Support for page recycling

Adds support for page recycling for allocating receive buffers
to reduce cost of refilling RBDR ring. Also got rid of using
compound pages when pagesize is 4K, only order-0 pages now.

Only page is recycled, DMA mappings still needs to be done for
every receive buffer allocated due to following constraints
- Cannot have just one receive buffer per 64KB page.
- There is just one buffer ring shared across 8 Rx queues, so
  buffers of same page can go to any Rx queue.
- HW gives buffer address where packet has been DMA'ed and not
  the index into buffer ring.
This makes it not possible to resue DMA mapping info. So unfortunately
have to go through costly mapping route for every buffer.

Signed-off-by: Sunil Goutham <sgoutham@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/cavium/thunder/nic.h
drivers/net/ethernet/cavium/thunder/nicvf_ethtool.c
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
drivers/net/ethernet/cavium/thunder/nicvf_queues.h