From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jonathan Lemon Subject: [PATCH net-next] net: Don't return pfmemalloc pages to the page pool. Date: Wed, 19 Dec 2018 12:06:51 -0800 Message-ID: <20181219200651.824962-1-jonathan.lemon@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Cc: , Jonathan Lemon To: Return-path: Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:59890 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728495AbeLSUHV (ORCPT ); Wed, 19 Dec 2018 15:07:21 -0500 Received: from pps.filterd (m0109334.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id wBJK2T5t031176 for ; Wed, 19 Dec 2018 12:07:21 -0800 Received: from mail.thefacebook.com ([199.201.64.23]) by mx0a-00082601.pphosted.com with ESMTP id 2pfume08pe-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Wed, 19 Dec 2018 12:07:21 -0800 Sender: netdev-owner@vger.kernel.org List-ID: Return pfmemalloc pages back to the page allocator, instead of holding them in the page pool. While here, also use the __page_pool_return_page() API. Signed-off-by: Jonathan Lemon --- net/core/page_pool.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/net/core/page_pool.c b/net/core/page_pool.c index 43a932cb609b..091007ff14a3 100644 --- a/net/core/page_pool.c +++ b/net/core/page_pool.c @@ -233,7 +233,7 @@ void __page_pool_put_page(struct page_pool *pool, * * refcnt == 1 means page_pool owns page, and can recycle it. */ - if (likely(page_ref_count(page) == 1)) { + if (likely(page_ref_count(page) == 1 && !page_is_pfmemalloc(page))) { /* Read barrier done in page_ref_count / READ_ONCE */ if (allow_direct && in_serving_softirq()) @@ -259,8 +259,7 @@ void __page_pool_put_page(struct page_pool *pool, * doing refcnt based recycle tricks, meaning another process * will be invoking put_page. */ - __page_pool_clean_page(pool, page); - put_page(page); + __page_pool_return_page(pool, page); } EXPORT_SYMBOL(__page_pool_put_page); -- 2.17.1