diff options
author | Igor Russkikh <Igor.Russkikh@aquantia.com> | 2019-03-23 15:23:32 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-03-23 22:16:53 -0400 |
commit | 46f4c29d9de6e4a9d4ed7de9a37dd42501d89f86 (patch) | |
tree | 9bbd725ffda30a004eb12042e4af410cbbfee01d /drivers/net/ethernet/aquantia/atlantic/aq_cfg.h | |
parent | 7e2698c4fd35f30fd3e5932ca2825fe5a461e265 (diff) | |
download | linux-46f4c29d9de6e4a9d4ed7de9a37dd42501d89f86.tar.gz linux-46f4c29d9de6e4a9d4ed7de9a37dd42501d89f86.tar.bz2 linux-46f4c29d9de6e4a9d4ed7de9a37dd42501d89f86.zip |
net: aquantia: optimize rx performance by page reuse strategy
We introduce internal aq_rxpage wrapper over regular page
where extra field is tracked: rxpage offset inside of allocated page.
This offset allows to reuse one page for multiple packets.
When needed (for example with large frames processing), allocated
pageorder could be customized. This gives even larger page reuse
efficiency.
page_ref_count is used to track page users. If during rx refill
underlying page has users, we increase pg_off by rx frame size
thus the top half of the page is reused.
Signed-off-by: Igor Russkikh <igor.russkikh@aquantia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/aquantia/atlantic/aq_cfg.h')
-rw-r--r-- | drivers/net/ethernet/aquantia/atlantic/aq_cfg.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_cfg.h b/drivers/net/ethernet/aquantia/atlantic/aq_cfg.h index aba550770adf..80c16ab87771 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_cfg.h +++ b/drivers/net/ethernet/aquantia/atlantic/aq_cfg.h @@ -40,6 +40,8 @@ #define AQ_CFG_RX_HDR_SIZE 256U +#define AQ_CFG_RX_PAGEORDER 0U + /* LRO */ #define AQ_CFG_IS_LRO_DEF 1U |