net: page_pool: add page allocation stats for two fast page allocate path

Currently If use page pool allocation stats to analysis a RX performance
degradation problem. These stats only count for pages allocate from
page_pool_alloc_pages. But nic drivers such as hns3 use
page_pool_dev_alloc_frag to allocate pages, so page stats in this API
should also be counted.

Signed-off-by: Jie Wang <wangjie125@huawei.com>
Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: hongrongxuan <hongrongxuan@huawei.com>
This commit is contained in:
Jie Wang 2022-05-12 14:56:31 +08:00 committed by Jianping Liu
parent 6ec340cad1
commit 9e2881148b
1 changed files with 4 additions and 1 deletions

View File

@ -705,9 +705,11 @@ struct page *page_pool_alloc_frag(struct page_pool *pool,
if (page && *offset + size > max_size) { if (page && *offset + size > max_size) {
page = page_pool_drain_frag(pool, page); page = page_pool_drain_frag(pool, page);
if (page) if (page) {
alloc_stat_inc(pool, fast);
goto frag_reset; goto frag_reset;
} }
}
if (!page) { if (!page) {
page = page_pool_alloc_pages(pool, gfp); page = page_pool_alloc_pages(pool, gfp);
@ -728,6 +730,7 @@ frag_reset:
pool->frag_users++; pool->frag_users++;
pool->frag_offset = *offset + size; pool->frag_offset = *offset + size;
alloc_stat_inc(pool, fast);
return page; return page;
} }
EXPORT_SYMBOL(page_pool_alloc_frag); EXPORT_SYMBOL(page_pool_alloc_frag);