Thread (39 messages) 39 messages, 4 authors, 2025-05-29

Re: [PATCH v2 15/16] netdevsim: use netmem descriptor and APIs for page pool

From: Mina Almasry <hidden>
Date: 2025-05-28 03:26:09
Also in: bpf, linux-mm, linux-rdma, lkml

On Tue, May 27, 2025 at 7:29 PM Byungchul Park [off-list ref] wrote:
quoted hunk ↗ jump to hunk
To simplify struct page, the effort to separate its own descriptor from
struct page is required and the work for page pool is on going.

Use netmem descriptor and APIs for page pool in netdevsim code.

Signed-off-by: Byungchul Park <byungchul@sk.com>
---
 drivers/net/netdevsim/netdev.c    | 19 ++++++++++---------
 drivers/net/netdevsim/netdevsim.h |  2 +-
 2 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/drivers/net/netdevsim/netdev.c b/drivers/net/netdevsim/netdev.c
index af545d42961c..d134a6195bfa 100644
--- a/drivers/net/netdevsim/netdev.c
+++ b/drivers/net/netdevsim/netdev.c
@@ -821,7 +821,7 @@ nsim_pp_hold_read(struct file *file, char __user *data,
        struct netdevsim *ns = file->private_data;
        char buf[3] = "n\n";

-       if (ns->page)
+       if (ns->netmem)
                buf[0] = 'y';

        return simple_read_from_buffer(data, count, ppos, buf, 2);
@@ -841,18 +841,19 @@ nsim_pp_hold_write(struct file *file, const char __user *data,

        rtnl_lock();
        ret = count;
-       if (val == !!ns->page)
+       if (val == !!ns->netmem)
                goto exit;

        if (!netif_running(ns->netdev) && val) {
                ret = -ENETDOWN;
        } else if (val) {
-               ns->page = page_pool_dev_alloc_pages(ns->rq[0]->page_pool);
-               if (!ns->page)
+               ns->netmem = page_pool_alloc_netmems(ns->rq[0]->page_pool,
+                                                    GFP_ATOMIC | __GFP_NOWARN);
Can we add a page_pool_dev_alloc_netmems instead of doing this GFP at
the callsite? Other drivers will be interested in using
_dev_alloc_netmems as well.

-- 
Thanks,
Mina
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help