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:
parent
6ec340cad1
commit
9e2881148b
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue