diff options
| author | John Daley <[email protected]> | 2025-02-05 23:54:15 +0000 |
|---|---|---|
| committer | Jakub Kicinski <[email protected]> | 2025-02-07 01:17:01 +0000 |
| commit | d24cb52b2d8abc89739694ac0be7f0bc2da58e37 (patch) | |
| tree | 700e92b15a0b19dfbf261117d75f74e31981331d /drivers/fpga/altera-fpga2sdram.c | |
| parent | enic: Simplify RX handler function (diff) | |
| download | kernel-d24cb52b2d8abc89739694ac0be7f0bc2da58e37.tar.gz kernel-d24cb52b2d8abc89739694ac0be7f0bc2da58e37.zip | |
enic: Use the Page Pool API for RX
The Page Pool API improves bandwidth and CPU overhead by recycling pages
instead of allocating new buffers in the driver. Make use of page pool
fragment allocation for smaller MTUs so that multiple packets can share
a page. For MTUs larger than PAGE_SIZE, adjust the 'order' page
parameter so that contiguous pages can be used to receive the larger
packets.
The RQ descriptor field 'os_buf' is repurposed to hold page pointers
allocated from page_pool instead of SKBs. When packets arrive, SKBs are
allocated and the page pointers are attached instead of preallocating SKBs.
'alloc_fail' netdev statistic is incremented when page_pool_dev_alloc()
fails.
Co-developed-by: Nelson Escobar <[email protected]>
Signed-off-by: Nelson Escobar <[email protected]>
Co-developed-by: Satish Kharat <[email protected]>
Signed-off-by: Satish Kharat <[email protected]>
Signed-off-by: John Daley <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Jakub Kicinski <[email protected]>
Diffstat (limited to 'drivers/fpga/altera-fpga2sdram.c')
0 files changed, 0 insertions, 0 deletions
