From: Matteo Croce <mcroce@linux.microsoft.com>
To: netdev@vger.kernel.org, linux-mm@kvack.org
Cc: Ayush Sawal <ayush.sawal@chelsio.com>,
Vinay Kumar Yadav <vinay.yadav@chelsio.com>,
Rohit Maheshwari <rohitm@chelsio.com>,
"David S. Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
Marcin Wojtas <mw@semihalf.com>,
Russell King <linux@armlinux.org.uk>,
Mirko Lindner <mlindner@marvell.com>,
Stephen Hemminger <stephen@networkplumber.org>,
Tariq Toukan <tariqt@nvidia.com>,
Jesper Dangaard Brouer <hawk@kernel.org>,
Ilias Apalodimas <ilias.apalodimas@linaro.org>,
Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
John Fastabend <john.fastabend@gmail.com>,
Boris Pismenny <borisp@nvidia.com>, Arnd Bergmann <arnd@arndb.de>,
Andrew Morton <akpm@linux-foundation.org>,
"Peter Zijlstra (Intel)" <peterz@infradead.org>,
Vlastimil Babka <vbabka@suse.cz>, Yu Zhao <yuzhao@google.com>,
Will Deacon <will@kernel.org>,
Michel Lespinasse <walken@google.com>,
Fenghua Yu <fenghua.yu@intel.com>, Roman Gushchin <guro@fb.com>,
Hugh Dickins <hughd@google.com>, Peter Xu <peterx@redhat.com>,
Jason Gunthorpe <jgg@ziepe.ca>,
Jonathan Lemon <jonathan.lemon@gmail.com>,
Alexander Lobakin <alobakin@pm.me>,
Cong Wang <cong.wang@bytedance.com>, wenxu <wenxu@ucloud.cn>,
Kevin Hao <haokexin@gmail.com>,
Jakub Sitnicki <jakub@cloudflare.com>,
Marco Elver <elver@google.com>,
Willem de Bruijn <willemb@google.com>,
Miaohe Lin <linmiaohe@huawei.com>,
Yunsheng Lin <linyunsheng@huawei.com>,
Guillaume Nault <gnault@redhat.com>,
linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org,
bpf@vger.kernel.org, Matthew Wilcox <willy@infradead.org>,
Eric Dumazet <edumazet@google.com>,
David Ahern <dsahern@gmail.com>,
Lorenzo Bianconi <lorenzo@kernel.org>,
Saeed Mahameed <saeedm@nvidia.com>, Andrew Lunn <andrew@lunn.ch>,
Paolo Abeni <pabeni@redhat.com>,
Sven Auhagen <sven.auhagen@voleatech.de>
Subject: [PATCH net-next v4 1/4] mm: add a signature in struct page
Date: Tue, 11 May 2021 15:31:15 +0200 [thread overview]
Message-ID: <20210511133118.15012-2-mcroce@linux.microsoft.com> (raw)
In-Reply-To: <20210511133118.15012-1-mcroce@linux.microsoft.com>
From: Matteo Croce <mcroce@microsoft.com>
This is needed by the page_pool to avoid recycling a page not allocated
via page_pool.
Signed-off-by: Matteo Croce <mcroce@microsoft.com>
---
include/linux/mm_types.h | 1 +
include/net/page_pool.h | 2 ++
net/core/page_pool.c | 4 ++++
3 files changed, 7 insertions(+)
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
index 5aacc1c10a45..77c04210e474 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -101,6 +101,7 @@ struct page {
* 32-bit architectures.
*/
unsigned long dma_addr[2];
+ unsigned long signature;
};
struct { /* slab, slob and slub */
union {
diff --git a/include/net/page_pool.h b/include/net/page_pool.h
index b4b6de909c93..9814e36becc1 100644
--- a/include/net/page_pool.h
+++ b/include/net/page_pool.h
@@ -63,6 +63,8 @@
*/
#define PP_ALLOC_CACHE_SIZE 128
#define PP_ALLOC_CACHE_REFILL 64
+#define PP_SIGNATURE 0x20210303
+
struct pp_alloc_cache {
u32 count;
struct page *cache[PP_ALLOC_CACHE_SIZE];
diff --git a/net/core/page_pool.c b/net/core/page_pool.c
index 3c4c4c7a0402..2e5e2b8c3a02 100644
--- a/net/core/page_pool.c
+++ b/net/core/page_pool.c
@@ -221,6 +221,8 @@ static struct page *__page_pool_alloc_page_order(struct page_pool *pool,
return NULL;
}
+ page->signature = PP_SIGNATURE;
+
/* Track how many pages are held 'in-flight' */
pool->pages_state_hold_cnt++;
trace_page_pool_state_hold(pool, page, pool->pages_state_hold_cnt);
@@ -341,6 +343,8 @@ void page_pool_release_page(struct page_pool *pool, struct page *page)
DMA_ATTR_SKIP_CPU_SYNC);
page_pool_set_dma_addr(page, 0);
skip_dma_unmap:
+ page->signature = 0;
+
/* This may be the last page returned, releasing the pool, so
* it is not safe to reference pool afterwards.
*/
--
2.31.1
next prev parent reply other threads:[~2021-05-11 13:32 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-11 13:31 [PATCH net-next v4 0/4] page_pool: recycle buffers Matteo Croce
2021-05-11 13:31 ` Matteo Croce [this message]
2021-05-11 13:45 ` [PATCH net-next v4 1/4] mm: add a signature in struct page Matthew Wilcox
2021-05-11 14:11 ` Ilias Apalodimas
2021-05-11 14:18 ` Matthew Wilcox
2021-05-11 14:25 ` Ilias Apalodimas
2021-05-12 15:57 ` Matthew Wilcox
2021-05-12 16:09 ` Eric Dumazet
2021-05-12 16:26 ` Matthew Wilcox
2021-05-12 16:47 ` Ilias Apalodimas
2021-05-13 2:15 ` Yunsheng Lin
2021-05-13 2:35 ` Matthew Wilcox
2021-05-13 3:25 ` Yunsheng Lin
2021-05-11 13:31 ` [PATCH net-next v4 2/4] page_pool: Allow drivers to hint on SKB recycling Matteo Croce
2021-05-11 15:24 ` Eric Dumazet
2021-05-12 9:50 ` Ilias Apalodimas
2021-05-12 14:09 ` Eric Dumazet
2021-05-12 14:39 ` Ilias Apalodimas
2021-05-11 13:31 ` [PATCH net-next v4 3/4] mvpp2: recycle buffers Matteo Croce
2021-05-11 13:31 ` [PATCH net-next v4 4/4] mvneta: " Matteo Croce
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210511133118.15012-2-mcroce@linux.microsoft.com \
--to=mcroce@linux.microsoft.com \
--cc=akpm@linux-foundation.org \
--cc=alobakin@pm.me \
--cc=andrew@lunn.ch \
--cc=arnd@arndb.de \
--cc=ast@kernel.org \
--cc=ayush.sawal@chelsio.com \
--cc=borisp@nvidia.com \
--cc=bpf@vger.kernel.org \
--cc=cong.wang@bytedance.com \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=dsahern@gmail.com \
--cc=edumazet@google.com \
--cc=elver@google.com \
--cc=fenghua.yu@intel.com \
--cc=gnault@redhat.com \
--cc=guro@fb.com \
--cc=haokexin@gmail.com \
--cc=hawk@kernel.org \
--cc=hughd@google.com \
--cc=ilias.apalodimas@linaro.org \
--cc=jakub@cloudflare.com \
--cc=jgg@ziepe.ca \
--cc=john.fastabend@gmail.com \
--cc=jonathan.lemon@gmail.com \
--cc=kuba@kernel.org \
--cc=linmiaohe@huawei.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-rdma@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=linyunsheng@huawei.com \
--cc=lorenzo@kernel.org \
--cc=mlindner@marvell.com \
--cc=mw@semihalf.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=peterx@redhat.com \
--cc=peterz@infradead.org \
--cc=rohitm@chelsio.com \
--cc=saeedm@nvidia.com \
--cc=stephen@networkplumber.org \
--cc=sven.auhagen@voleatech.de \
--cc=tariqt@nvidia.com \
--cc=thomas.petazzoni@bootlin.com \
--cc=vbabka@suse.cz \
--cc=vinay.yadav@chelsio.com \
--cc=walken@google.com \
--cc=wenxu@ucloud.cn \
--cc=will@kernel.org \
--cc=willemb@google.com \
--cc=willy@infradead.org \
--cc=yuzhao@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.