Message ID | 20231219210357.4029713-2-dw@davidwei.uk (mailing list archive) |
---|---|
State | RFC |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | Zero copy Rx using io_uring | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Guessing tree name failed - patch did not apply, async |
On Tue, Dec 19, 2023 at 1:04 PM David Wei <dw@davidwei.uk> wrote: > > From: Pavel Begunkov <asml.silence@gmail.com> > > NOT FOR UPSTREAM > > The final version will depend on how ppiov looks like, but add a > convenience helper for now. > Thanks, this patch becomes unnecessary once you pull in the latest version of our changes; you could use net_iov_to_netmem() added here: https://patchwork.kernel.org/project/netdevbpf/patch/20231218024024.3516870-9-almasrymina@google.com/ Not any kind of objection from me, just an FYI. > Signed-off-by: Pavel Begunkov <asml.silence@gmail.com> > Signed-off-by: David Wei <dw@davidwei.uk> > --- > include/net/page_pool/helpers.h | 5 +++++ > net/core/page_pool.c | 2 +- > 2 files changed, 6 insertions(+), 1 deletion(-) > > diff --git a/include/net/page_pool/helpers.h b/include/net/page_pool/helpers.h > index 95f4d579cbc4..92804c499833 100644 > --- a/include/net/page_pool/helpers.h > +++ b/include/net/page_pool/helpers.h > @@ -86,6 +86,11 @@ static inline u64 *page_pool_ethtool_stats_get(u64 *data, void *stats) > > /* page_pool_iov support */ > > +static inline struct page *page_pool_mangle_ppiov(struct page_pool_iov *ppiov) > +{ > + return (struct page *)((unsigned long)ppiov | PP_DEVMEM); > +} > + > static inline struct dmabuf_genpool_chunk_owner * > page_pool_iov_owner(const struct page_pool_iov *ppiov) > { > diff --git a/net/core/page_pool.c b/net/core/page_pool.c > index c0bc62ee77c6..38eff947f679 100644 > --- a/net/core/page_pool.c > +++ b/net/core/page_pool.c > @@ -1074,7 +1074,7 @@ static struct page *mp_dmabuf_devmem_alloc_pages(struct page_pool *pool, > pool->pages_state_hold_cnt++; > trace_page_pool_state_hold(pool, (struct page *)ppiov, > pool->pages_state_hold_cnt); > - return (struct page *)((unsigned long)ppiov | PP_DEVMEM); > + return page_pool_mangle_ppiov(ppiov); > } > > static void mp_dmabuf_devmem_destroy(struct page_pool *pool) > -- > 2.39.3 >
On 12/19/23 23:22, Mina Almasry wrote: > On Tue, Dec 19, 2023 at 1:04 PM David Wei <dw@davidwei.uk> wrote: >> >> From: Pavel Begunkov <asml.silence@gmail.com> >> >> NOT FOR UPSTREAM >> >> The final version will depend on how ppiov looks like, but add a >> convenience helper for now. >> > > Thanks, this patch becomes unnecessary once you pull in the latest > version of our changes; you could use net_iov_to_netmem() added here: > > https://patchwork.kernel.org/project/netdevbpf/patch/20231218024024.3516870-9-almasrymina@google.com/ > > Not any kind of objection from me, just an FYI. Right, that's predicated, and that's why there are disclaimers saying that it depends on your paches final form, and many of such patches will get dropped as unnecessary.
diff --git a/include/net/page_pool/helpers.h b/include/net/page_pool/helpers.h index 95f4d579cbc4..92804c499833 100644 --- a/include/net/page_pool/helpers.h +++ b/include/net/page_pool/helpers.h @@ -86,6 +86,11 @@ static inline u64 *page_pool_ethtool_stats_get(u64 *data, void *stats) /* page_pool_iov support */ +static inline struct page *page_pool_mangle_ppiov(struct page_pool_iov *ppiov) +{ + return (struct page *)((unsigned long)ppiov | PP_DEVMEM); +} + static inline struct dmabuf_genpool_chunk_owner * page_pool_iov_owner(const struct page_pool_iov *ppiov) { diff --git a/net/core/page_pool.c b/net/core/page_pool.c index c0bc62ee77c6..38eff947f679 100644 --- a/net/core/page_pool.c +++ b/net/core/page_pool.c @@ -1074,7 +1074,7 @@ static struct page *mp_dmabuf_devmem_alloc_pages(struct page_pool *pool, pool->pages_state_hold_cnt++; trace_page_pool_state_hold(pool, (struct page *)ppiov, pool->pages_state_hold_cnt); - return (struct page *)((unsigned long)ppiov | PP_DEVMEM); + return page_pool_mangle_ppiov(ppiov); } static void mp_dmabuf_devmem_destroy(struct page_pool *pool)