Re: [PATCH v9 00/10] ref_tracker: add ability to register a debugfs file for a ref_tracker_dir

2025-05-09 Thread Jakub Kicinski
On Fri, 09 May 2025 11:53:36 -0400 Jeff Layton wrote: > This one just fixes a typo in the ref_tracker_dir_init() kerneldoc > header. I'm only resending so the CI will pick it up. We got a bunch of: [0.457561][T0] ref_tracker: ref_tracker: unable to create debugfs file for net_refcnt@

Re: [PATCH v8 10/10] ref_tracker: eliminate the ref_tracker_dir name field

2025-05-09 Thread Jakub Kicinski
On Fri, 09 May 2025 09:36:57 -0400 Jeff Layton wrote: > On Wed, 2025-05-07 at 20:01 -0700, Jakub Kicinski wrote: > > On Wed, 07 May 2025 09:06:35 -0400 Jeff Layton wrote: > > > + * @quarantime_count: max number of entries to be tracked > > > > quarantime > &

Re: [PATCH v8 10/10] ref_tracker: eliminate the ref_tracker_dir name field

2025-05-07 Thread Jakub Kicinski
On Wed, 07 May 2025 09:06:35 -0400 Jeff Layton wrote: > + * @quarantime_count: max number of entries to be tracked quarantime ^ :( -- pw-bot: cr

Re: [PATCH v5 04/10] ref_tracker: allow pr_ostream() to print directly to a seq_file

2025-04-30 Thread Jakub Kicinski
On Tue, 29 Apr 2025 19:18:01 -0700 Jeff Layton wrote: > On Tue, 2025-04-29 at 16:27 -0700, Jakub Kicinski wrote: > > On Mon, 28 Apr 2025 11:26:27 -0700 Jeff Layton wrote: > > > Allow pr_ostream to also output directly to a seq_file without an > > > intermediate buffe

Re: [PATCH v5 06/10] ref_tracker: automatically register a file in debugfs for a ref_tracker_dir

2025-04-29 Thread Jakub Kicinski
On Mon, 28 Apr 2025 11:26:29 -0700 Jeff Layton wrote: > +/** > + * ref_tracker_dir_debugfs - create debugfs file for ref_tracker_dir > + * @dir: ref_tracker_dir to be associated with debugfs file > + * @fmt: format string for filename > + * @...: arguments for the format string > + * > + * Call thi

Re: [PATCH v5 04/10] ref_tracker: allow pr_ostream() to print directly to a seq_file

2025-04-29 Thread Jakub Kicinski
On Mon, 28 Apr 2025 11:26:27 -0700 Jeff Layton wrote: > Allow pr_ostream to also output directly to a seq_file without an > intermediate buffer. > > Reviewed-by: Andrew Lunn > Signed-off-by: Jeff Layton lib/ref_tracker.c:316:12: warning: unused function 'ref_tracker_dir_seq_print' [-Wunused-fu

Re: [PATCH v5 00/10] ref_tracker: add ability to register a debugfs file for a ref_tracker_dir

2025-04-29 Thread Jakub Kicinski
On Mon, 28 Apr 2025 11:26:23 -0700 Jeff Layton wrote: > This one is quite a bit of a change from the last set. I've gone back to > auto-registering the debugfs files for every ref_tracker_dir. With this, > the callers should pass in a static string as a classname instead of an > individual name str

Re: [PATCH v3 00/19] Converge on using secs_to_jiffies()

2024-12-10 Thread Jakub Kicinski
On Tue, 10 Dec 2024 18:50:40 -0800 Andrew Morton wrote: > > > Very unlikely, and any such conflict will be trivial. > > > > Agreed, mainly I don't understand why we'd make an exception > > and take the patchset via a special tree. > > It saves work for everyone? > > The patches are super-sim

Re: [PATCH v3 00/19] Converge on using secs_to_jiffies()

2024-12-10 Thread Jakub Kicinski
On Tue, 10 Dec 2024 18:31:30 -0800 Andrew Morton wrote: > > > I'll just grab everything and see if anyone complains ;) > > > > I may, if this leads to a conflict :( > > Very unlikely, and any such conflict will be trivial. Agreed, mainly I don't understand why we'd make an exception and take

Re: [PATCH v3 00/19] Converge on using secs_to_jiffies()

2024-12-10 Thread Jakub Kicinski
On Tue, 10 Dec 2024 15:36:04 -0800 Andrew Morton wrote: > > I have the same question as before: How do you expect these to land? > > Do you now have a maintainer who will take all of them? > > Or do you want individual maintainers to take the ones applicable to them? > > I'll just grab everythin

Re: [PATCH net-next v25 10/13] net: add SO_DEVMEM_DONTNEED setsockopt to release RX frags

2024-10-11 Thread Jakub Kicinski
On Thu, 10 Oct 2024 12:05:38 -0700 Mina Almasry wrote: > diff --git a/net/core/sock.c b/net/core/sock.c > index 083d438d8b6f..cb3d8b19de14 100644 > --- a/net/core/sock.c > +++ b/net/core/sock.c > @@ -1071,11 +1071,11 @@ sock_devmem_dontneed(struct sock *sk, > sockptr_t optval, unsigned int optlen)

Re: [PATCH net-next v25 00/13] Device Memory TCP

2024-09-10 Thread Jakub Kicinski
On Mon, 9 Sep 2024 05:43:05 + Mina Almasry wrote: > Device memory TCP (devmem TCP) is a proposal for transferring data to and/or > from device memory efficiently, without bouncing the data to a host memory > buffer. Mina, if you'd like to see this in v6.12 -- please fix the nits and repost AS

Re: [PATCH net-next v25 10/13] net: add SO_DEVMEM_DONTNEED setsockopt to release RX frags

2024-09-09 Thread Jakub Kicinski
On Mon, 9 Sep 2024 05:43:15 + Mina Almasry wrote: > --- a/include/uapi/linux/uio.h > +++ b/include/uapi/linux/uio.h > @@ -33,6 +33,10 @@ struct dmabuf_cmsg { >*/ > }; > > +struct dmabuf_token { > + __u32 token_start; > + __u32 token_count; > +}; > /*

Re: [PATCH net-next v25 08/13] net: add support for skbs with unreadable frags

2024-09-09 Thread Jakub Kicinski
a Almasry > Reviewed-by: Eric Dumazet I'm sure we'll find more cases which need a check but I can't think of any now, so: Reviewed-by: Jakub Kicinski

Re: [PATCH net-next v25 06/13] memory-provider: dmabuf devmem memory provider

2024-09-09 Thread Jakub Kicinski
t; @@ -11,6 +11,7 @@ > #include > #include > > +#include > #include > #include > > @@ -24,8 +25,10 @@ > > #include > > +#include "mp_dmabuf_devmem.h" > #include "netmem_priv.h" > #include "page_pool_priv.h" > +#include "mp_dmabuf_devmem.h" nit: duplicate include With that: Reviewed-by: Jakub Kicinski -- pw-bot: cr

Re: [PATCH net-next v24 11/13] net: add devmem TCP documentation

2024-09-03 Thread Jakub Kicinski
On Sat, 31 Aug 2024 00:43:11 + Mina Almasry wrote: > +The socket must be flow steered to the dmabuf bound RX queue:: > + > + ethtool -N eth1 flow-type tcp4 ... queue 15, nit: tailing comma here > +Devmem payloads are inaccessible to the kernel processing the packets. This > +results in a

Re: [PATCH net-next v24 08/13] net: add support for skbs with unreadable frags

2024-09-03 Thread Jakub Kicinski
On Sat, 31 Aug 2024 00:43:08 + Mina Almasry wrote: > static inline bool tcp_skb_can_collapse_to(const struct sk_buff *skb) > { > - return likely(!TCP_SKB_CB(skb)->eor); > + return likely(!TCP_SKB_CB(skb)->eor && skb_frags_readable(skb)); Do you remember why this is here? Both for Rx

Re: [PATCH net-next v24 07/13] net: support non paged skb frags

2024-09-03 Thread Jakub Kicinski
On Sat, 31 Aug 2024 00:43:07 + Mina Almasry wrote: > Make skb_frag_page() fail in the case where the frag is not backed > by a page, and fix its relevant callers to handle this case. > > Signed-off-by: Mina Almasry > Reviewed-by: Eric Dumazet Reviewed-by: Jakub Kicinski

Re: [PATCH net-next v24 06/13] memory-provider: dmabuf devmem memory provider

2024-09-03 Thread Jakub Kicinski
On Sat, 31 Aug 2024 00:43:06 + Mina Almasry wrote: > diff --git a/include/net/mp_dmabuf_devmem.h b/include/net/mp_dmabuf_devmem.h > new file mode 100644 > index ..6d1cf2a77f6b > --- /dev/null > +++ b/include/net/mp_dmabuf_devmem.h this header can live under net/core/ like netmem_pr

Re: [PATCH net-next v24 03/13] netdev: support binding dma-buf to netdevice

2024-09-03 Thread Jakub Kicinski
es an indicator in struct netdev_rx_queue > that the given queue is bound, and the binding is actuated by resetting > the rx queue using the queue API. > > The netdev_dmabuf_binding struct is refcounted, and releases its > resources only when all the refs are released. Reviewed-by: Jakub Kicinski

Re: [PATCH net-next v23 03/13] netdev: support binding dma-buf to netdevice

2024-08-30 Thread Jakub Kicinski
On Thu, 29 Aug 2024 22:41:17 -0700 Mina Almasry wrote: > Thank you, I think the right fix here is to reacquire rtnl_lock before > the `goto err_unbind;`, since err_unbind expects rtnl to be locked at > this point. FWIW it's best to keep the error path a mirror image of the success path, so I'd add

Re: [PATCH net-next v23 06/13] memory-provider: dmabuf devmem memory provider

2024-08-29 Thread Jakub Kicinski
On Thu, 29 Aug 2024 06:01:19 + Mina Almasry wrote: > + if (WARN_ON_ONCE(atomic_long_read(netmem_get_pp_ref_count_ref(netmem)) > != > + 1)) nit: temporary variable for this refcount, please

Re: [PATCH net-next v23 13/13] netdev: add dmabuf introspection

2024-08-29 Thread Jakub Kicinski
On Thu, 29 Aug 2024 06:01:26 + Mina Almasry wrote: > + binding = (struct net_devmem_dmabuf_binding *) > + rxq->mp_params.mp_priv; > + if (binding) { > + if (nla_put_u32(rsp, NETDEV_A_QUEUE_DMABUF, > +

Re: [PATCH net-next v23 03/13] netdev: support binding dma-buf to netdevice

2024-08-29 Thread Jakub Kicinski
On Thu, 29 Aug 2024 12:38:13 -0700 Mina Almasry wrote: > BTW I submitted 2 iterations already this week, Sunday and Wednesday. > This is easily fixable and I can resend before the end of the week, > but if I'm stressing NIPA too much with reposts of this large series I > can wait until next week. S

Re: [PATCH net-next v23 03/13] netdev: support binding dma-buf to netdevice

2024-08-29 Thread Jakub Kicinski
On Thu, 29 Aug 2024 06:01:16 + Mina Almasry wrote: > @@ -9376,6 +9376,9 @@ int dev_xdp_propagate(struct net_device *dev, struct > netdev_bpf *bpf) > if (!dev->netdev_ops->ndo_bpf) > return -EOPNOTSUPP; > > + if (dev_get_min_mp_channel_count(dev)) there's an extack in

Re: [PATCH net-next v23 03/13] netdev: support binding dma-buf to netdevice

2024-08-29 Thread Jakub Kicinski
On Thu, 29 Aug 2024 06:01:16 + Mina Almasry wrote: > + if (NL_REQ_ATTR_CHECK(info->extack, attr, tb, > NETDEV_A_QUEUE_ID) || > + NL_REQ_ATTR_CHECK(info->extack, attr, tb, > NETDEV_A_QUEUE_TYPE) || > + nla_get_u32(tb[NETDEV_A_QUEUE_TYPE]) != > NETDE

Re: [PATCH net-next v23 03/13] netdev: support binding dma-buf to netdevice

2024-08-29 Thread Jakub Kicinski
On Thu, 29 Aug 2024 06:01:16 + Mina Almasry wrote: > + if (dev_xdp_prog_count(netdev)) { > + NL_SET_ERR_MSG(info->extack, "netdevice has xdp program > attached"); > + return -EEXIST; > + } goto err_unlock

Re: [PATCH net-next v23 03/13] netdev: support binding dma-buf to netdevice

2024-08-29 Thread Jakub Kicinski
On Thu, 29 Aug 2024 06:01:16 + Mina Almasry wrote: > + err = genlmsg_reply(rsp, info); > + if (err) > + goto err_unbind; > + > return 0; > + > +err_unbind: rtnl_lock() > + net_devmem_unbind_dmabuf(binding); > +err_unlock: > + rtnl_unlock();

Re: [PATCH net-next v22 04/13] netdev: netdevice devmem allocator

2024-08-28 Thread Jakub Kicinski
On Wed, 28 Aug 2024 00:20:23 -0700 Mina Almasry wrote: > > On Sun, 25 Aug 2024 04:15:02 + Mina Almasry wrote: > > > +void net_devmem_free_dmabuf(struct net_iov *niov) > > > +{ > > > + struct net_devmem_dmabuf_binding *binding = net_iov_binding(niov); > > > + unsigned long dma_addr = n

Re: [PATCH net-next v22 05/13] page_pool: devmem support

2024-08-27 Thread Jakub Kicinski
if we're allocating * system memory. Memory providers (which give us net_iovs) * choose for us. */ Some of the code moves could be a separate patch, but either way: Acked-by: Jakub Kicinski

Re: [PATCH net-next v22 04/13] netdev: netdevice devmem allocator

2024-08-27 Thread Jakub Kicinski
l_has_addr(binding->chunk_pool, dma_addr, PAGE_SIZE)) > + gen_pool_free(binding->chunk_pool, dma_addr, PAGE_SIZE); Is the check necessary for correctness? Should it perhaps be a WARN under DEBUG_NET instead? The rest LGTM: Reviewed-by: Jakub Kicinski

Re: [PATCH net-next v22 03/13] netdev: support binding dma-buf to netdevice

2024-08-27 Thread Jakub Kicinski
On Sun, 25 Aug 2024 04:15:01 + Mina Almasry wrote: > +u32 dev_get_min_mp_channel_count(const struct net_device *dev) > +{ > + u32 i, max = 0; > + > + ASSERT_RTNL(); > + > + for (i = 0; i < dev->real_num_rx_queues; i++) > + if (dev->_rx[i].mp_params.mp_priv) > +

Re: [PATCH net-next v19 03/13] netdev: support binding dma-buf to netdevice

2024-08-21 Thread Jakub Kicinski
On Wed, 21 Aug 2024 11:36:31 -0400 Mina Almasry wrote: > Additionally I'm wondering if we should disable adding mp-bound > devices as slaves completely, regardless of xdp. My concern is that if > the lower device is using unreadable memory, then the upper device may > see unreadable memory in its c

Re: [PATCH net-next v19 03/13] netdev: support binding dma-buf to netdevice

2024-08-20 Thread Jakub Kicinski
On Tue, 20 Aug 2024 13:11:20 -0400 Mina Almasry wrote: > > Protecting the stack from unreadable memory is *the* challenge > > in this series. The rest is a fairly straightforward. > > Understandable. I pulled the trigger on v21 with the build fix last > night after reading your response on the o

Re: [PATCH net-next v19 03/13] netdev: support binding dma-buf to netdevice

2024-08-20 Thread Jakub Kicinski
On Tue, 20 Aug 2024 00:01:02 -0400 Mina Almasry wrote: > Took a bit of a look here. Forgive me, I'm not that familiar with XDP > and virtual interfaces, so I'm a bit unsure what to do here. > > For veth, it seems, the device behind the veth is stored in > veth_priv->peer, so it seems maybe a dev_g

Re: [PATCH net-next v19 03/13] netdev: support binding dma-buf to netdevice

2024-08-19 Thread Jakub Kicinski
On Mon, 19 Aug 2024 00:44:27 +0900 Taehee Yoo wrote: > > @@ -9537,6 +9540,10 @@ static int dev_xdp_attach(struct net_device *dev, > > struct netlink_ext_ack *extack > > NL_SET_ERR_MSG(extack, "Native and generic XDP > > can't be active at the same time"); > >

Re: [PATCH net-next v20 00/13] Device Memory TCP

2024-08-19 Thread Jakub Kicinski
On Mon, 19 Aug 2024 16:38:32 -0400 Mina Almasry wrote: > Looks like in this iteration I resolved the previous test failure, but > introduced a build regression with certain configs: > > ld: vmlinux.o: in function `netdev_rx_queue_restart': > (.text+0x6a4133): undefined reference to `page_pool_chec

Re: [PATCH net-next v19 06/13] memory-provider: dmabuf devmem memory provider

2024-08-16 Thread Jakub Kicinski
On Fri, 16 Aug 2024 08:20:44 -0400 Mina Almasry wrote: > > I'd keep the current check with a WARN_ON_ONCE(), tho. > > Given the absence of tests driver developers can use. > > Especially those who _aren't_ supporting the feature. > > Yes what I have locally is the driver setting > netdev_rx_queue-

Re: [PATCH net-next v19 06/13] memory-provider: dmabuf devmem memory provider

2024-08-15 Thread Jakub Kicinski
On Wed, 14 Aug 2024 17:32:53 +0100 Pavel Begunkov wrote: > > This is where I get a bit confused. Jakub did mention that it is > > desirable for core to verify that the driver did the right thing, > > instead of trusting that a driver did the right thing without > > verifying. Relying on a flag from

Re: [PATCH net-next v19 06/13] memory-provider: dmabuf devmem memory provider

2024-08-15 Thread Jakub Kicinski
On Tue, 13 Aug 2024 21:13:08 + Mina Almasry wrote: > +EXPORT_SYMBOL(page_pool_mem_providers); not sure if this export is needed, but it doesn't appear to be needed by this patch?

Re: [PATCH net-next v19 03/13] netdev: support binding dma-buf to netdevice

2024-08-15 Thread Jakub Kicinski
On Tue, 13 Aug 2024 21:13:05 + Mina Almasry wrote: > + if (NL_REQ_ATTR_CHECK(info->extack, attr, tb, > + NETDEV_A_QUEUE_ID)) { > + err = -EINVAL; > + goto err_unlock; > + } > + > + if (

Re: [PATCH net-next v19 03/13] netdev: support binding dma-buf to netdevice

2024-08-15 Thread Jakub Kicinski
On Tue, 13 Aug 2024 21:13:05 + Mina Almasry wrote: > +int dev_get_max_mp_channel(const struct net_device *dev) > +{ > + int i, max = -1; I presume the bug from yesterday is self evident once reported? :) > + ASSERT_RTNL(); > + > + for (i = 0; i < dev->real_num_rx_queues; i++) > +

Re: [PATCH net-next v19 00/13] Device Memory TCP

2024-08-14 Thread Jakub Kicinski
On Tue, 13 Aug 2024 21:13:02 + Mina Almasry wrote: > v18 got a thorough review (thanks!), and this iteration addresses the > feedback. > > Major changes: > - Prevent deactivating mp bound queues. > - Prevent installing xdp on mp bound netdevs, or installing mps on xdp > installed netdevs. >

Re: [PATCH net-next v18 07/14] memory-provider: dmabuf devmem memory provider

2024-08-13 Thread Jakub Kicinski
On Tue, 13 Aug 2024 16:11:15 +0100 Pavel Begunkov wrote: > On 8/13/24 15:39, Jakub Kicinski wrote: > > On Tue, 13 Aug 2024 03:31:13 +0100 Pavel Begunkov wrote: > >> I'm getting lost, so repeating myself a bit. What I think > >> would be a good approach is if we

Re: [PATCH net-next v18 07/14] memory-provider: dmabuf devmem memory provider

2024-08-13 Thread Jakub Kicinski
On Tue, 13 Aug 2024 03:31:13 +0100 Pavel Begunkov wrote: > I'm getting lost, so repeating myself a bit. What I think > would be a good approach is if we get an error back from > the driver if it doesn't support netiov / providers. > > netdev_rx_queue_restart() { > ... > err = dev->queu

Re: [PATCH net-next v18 07/14] memory-provider: dmabuf devmem memory provider

2024-08-13 Thread Jakub Kicinski
On Tue, 13 Aug 2024 04:39:47 -0400 Mina Almasry wrote: > On Mon, Aug 12, 2024 at 8:15 PM Jakub Kicinski wrote: > > BTW, Mina, the core should probably also check that XDP isn't installed > > before / while the netmem is bound to a queue. > > Sorry if noob question, bu

Re: [PATCH net-next v18 07/14] memory-provider: dmabuf devmem memory provider

2024-08-12 Thread Jakub Kicinski
On Mon, 12 Aug 2024 20:04:41 +0100 Pavel Begunkov wrote: > >> Also don't see the upside of the explicit "non-capable" flag, > >> but I haven't thought of that. Is there any use? > > Or maybe I don't get what you're asking, I explained > why to have that "PP_IGNORE_PROVIDERS" on top of the flag >

Re: [PATCH net-next v18 07/14] memory-provider: dmabuf devmem memory provider

2024-08-12 Thread Jakub Kicinski
On Mon, 12 Aug 2024 20:10:39 +0100 Pavel Begunkov wrote: > > 1. Drivers need to be able to say "I support unreadable netmem". > > Failure to report unreadable netmem support should cause the netlink > > API to fail when the user tries to bind dmabuf/io uring memory. > > > > 2. Drivers need to be a

Re: [PATCH net-next v18 07/14] memory-provider: dmabuf devmem memory provider

2024-08-12 Thread Jakub Kicinski
On Sun, 11 Aug 2024 22:51:13 +0100 Pavel Begunkov wrote: > > I think we're talking about 2 slightly different flags, AFAIU.> > > Pavel and I are suggesting the driver reports "I support memory > > providers" directly to core (via the queue-api or what not), and we > > check that flag directly in ne

Re: [PATCH net-next v18 07/14] memory-provider: dmabuf devmem memory provider

2024-08-09 Thread Jakub Kicinski
On Fri, 9 Aug 2024 16:45:50 +0100 Pavel Begunkov wrote: > > I think this is good, and it doesn't seem hacky to me, because we can > > check the page_pools of the netdev while we hold rtnl, so we can be > > sure nothing is messing with the pp configuration in the meantime. > > Like you say below it

Re: [PATCH net-next v18 07/14] memory-provider: dmabuf devmem memory provider

2024-08-08 Thread Jakub Kicinski
On Thu, 8 Aug 2024 16:36:24 -0400 Mina Almasry wrote: > > How do you know that the driver: > > - supports net_iov at all (let's not make implicit assumptions based > >on presence of queue API); > > - supports net_iov in current configuration (eg header-data split is > >enabled) > > - sup

Re: [PATCH net-next v18 07/14] memory-provider: dmabuf devmem memory provider

2024-08-06 Thread Jakub Kicinski
On Mon, 5 Aug 2024 21:25:20 + Mina Almasry wrote: > + if (pool->p.queue) { > + /* We rely on rtnl_lock()ing to make sure netdev_rx_queue > + * configuration doesn't change while we're initializing the > + * page_pool. > + */ > +

Re: [PATCH net-next v18 04/14] netdev: netdevice devmem allocator

2024-08-06 Thread Jakub Kicinski
On Mon, 5 Aug 2024 21:25:17 + Mina Almasry wrote: > +struct net_iov * > +net_devmem_alloc_dmabuf(struct net_devmem_dmabuf_binding *binding) > +{ > + struct dmabuf_genpool_chunk_owner *owner; > + unsigned long dma_addr; > + struct net_iov *niov; > + ssize_t offset; > + ssize

Re: [PATCH net-next v18 05/14] page_pool: move dmaddr helpers to .c file

2024-08-06 Thread Jakub Kicinski
On Mon, 5 Aug 2024 21:25:18 + Mina Almasry wrote: > +dma_addr_t page_pool_get_dma_addr_netmem(netmem_ref netmem) > +{ > + struct page *page = netmem_to_page(netmem); > + > + dma_addr_t ret = page->dma_addr; > + > + if (PAGE_POOL_32BIT_ARCH_WITH_64BIT_DMA) > + ret <<= PA

Re: [PATCH net-next v18 03/14] netdev: support binding dma-buf to netdevice

2024-08-06 Thread Jakub Kicinski
On Mon, 5 Aug 2024 21:25:16 + Mina Almasry wrote: > +/* Protected by rtnl_lock() */ > +static DEFINE_XARRAY_FLAGS(net_devmem_dmabuf_bindings, XA_FLAGS_ALLOC1); nit: global variable declarations before any code > +void net_devmem_unbind_dmabuf(struct net_devmem_dmabuf_binding *binding) > +{ >

Re: [PATCH net-next v16 05/13] page_pool: devmem support

2024-07-11 Thread Jakub Kicinski
On Thu, 11 Jul 2024 13:57:01 -0700 Mina Almasry wrote: > > > Sorry none of those are only used by net/core/*. Pretty much all of > > > these are used by include/net/page_pool/helpers.h, and some have > > > callers in net/core/devmem.c or net/core/skbuff.c > > > > > > Would you like me to move these

Re: [PATCH net-next v16 13/13] netdev: add dmabuf introspection

2024-07-10 Thread Jakub Kicinski
On Wed, 10 Jul 2024 00:17:46 + Mina Almasry wrote: > Add dmabuf information to page_pool stats: > > $ ./cli.py --spec ../netlink/specs/netdev.yaml --dump page-pool-get Aha, thanks! Reviewed-by: Jakub Kicinski

Re: [PATCH net-next v16 05/13] page_pool: devmem support

2024-07-10 Thread Jakub Kicinski
On Wed, 10 Jul 2024 16:42:04 -0700 Mina Almasry wrote: > > > +static inline void netmem_set_pp(netmem_ref netmem, struct page_pool > > > *pool) > > > +{ > > > + __netmem_clear_lsb(netmem)->pp = pool; > > > +} > > > > Why is all this stuff in the main header? It's really low level. > > Please

Re: [PATCH net-next v16 05/13] page_pool: devmem support

2024-07-10 Thread Jakub Kicinski
On Wed, 10 Jul 2024 13:29:03 -0700 Mina Almasry wrote: > If we want to add __skb_frag_ref() support for net_iov I suggest something > like: > > diff --git a/include/linux/skbuff_ref.h b/include/linux/skbuff_ref.h > index 0f3c58007488a..02f7f4c7d4821 100644 > --- a/include/linux/skbuff_ref.h > +++

Re: [PATCH net-next v16 04/13] netdev: netdevice devmem allocator

2024-07-10 Thread Jakub Kicinski
On Wed, 10 Jul 2024 12:29:58 -0700 Mina Almasry wrote: > On Wed, Jul 10, 2024 at 9:37 AM Jakub Kicinski wrote: > > On Wed, 10 Jul 2024 00:17:37 + Mina Almasry wrote: > > > + net_devmem_dmabuf_binding_get(binding); > > > > Why does every iov need to hold

Re: [PATCH net-next v16 05/13] page_pool: devmem support

2024-07-10 Thread Jakub Kicinski
On Wed, 10 Jul 2024 00:17:38 + Mina Almasry wrote: > @@ -68,17 +107,103 @@ static inline netmem_ref page_to_netmem(struct page > *page) > > static inline int netmem_ref_count(netmem_ref netmem) > { > + /* The non-pp refcount of net_iov is always 1. On net_iov, we only > + * suppor

Re: [PATCH net-next v16 04/13] netdev: netdevice devmem allocator

2024-07-10 Thread Jakub Kicinski
On Wed, 10 Jul 2024 00:17:37 + Mina Almasry wrote: > + net_devmem_dmabuf_binding_get(binding); Why does every iov need to hold a ref? pp holds a ref and does its own accounting, so it won't disappear unless all the pages are returned.

Re: [PATCH net-next v16 03/13] netdev: support binding dma-buf to netdevice

2024-07-10 Thread Jakub Kicinski
On Wed, 10 Jul 2024 00:17:36 + Mina Almasry wrote: > + err = gen_pool_add_owner(binding->chunk_pool, dma_addr, > + dma_addr, len, dev_to_node(&dev->dev), > + owner); > + if (err) { kfree(o

Re: [PATCH net-next v16 02/13] net: netdev netlink api to bind dma-buf to a net device

2024-07-10 Thread Jakub Kicinski
On Wed, 10 Jul 2024 00:17:35 + Mina Almasry wrote: > API takes the dma-buf fd as input, and binds it to the netdevice. The > user can specify the rx queues to bind the dma-buf to. > > Suggested-by: Stanislav Fomichev > Signed-off-by: Mina Almasry Reviewed-by: Jakub Kicinski

Re: [PATCH net-next v16 01/13] netdev: add netdev_rx_queue_restart()

2024-07-10 Thread Jakub Kicinski
On Wed, 10 Jul 2024 00:17:34 + Mina Almasry wrote: > + DEBUG_NET_WARN_ON_ONCE(!rtnl_is_locked()); ASSERT_RTNL() ?

Re: [PATCH net-next v15 03/14] netdev: support binding dma-buf to netdevice

2024-07-03 Thread Jakub Kicinski
On Wed, 3 Jul 2024 09:56:45 -0700 Mina Almasry wrote: > > Is this really sufficient in terms of locking? @binding is not > > RCU-protected and neither is the reader guaranteed to be in > > an RCU critical section. Actually the "reader" tries to take a ref > > and use this struct so it's not even a

Re: [PATCH net-next v15 00/14] Device Memory TCP

2024-07-02 Thread Jakub Kicinski
On Fri, 28 Jun 2024 00:32:37 + Mina Almasry wrote: > v15: > https://patchwork.kernel.org/project/netdevbpf/list/?series=865481&state=* I'll pick up a couple of patches unlikely to change.

Re: [PATCH net-next v15 03/14] netdev: support binding dma-buf to netdevice

2024-07-02 Thread Jakub Kicinski
On Fri, 28 Jun 2024 00:32:40 + Mina Almasry wrote: > +/* Protected by rtnl_lock() */ > +static DEFINE_XARRAY_FLAGS(net_devmem_dmabuf_bindings, XA_FLAGS_ALLOC1); > + > +void net_devmem_unbind_dmabuf(struct net_devmem_dmabuf_binding *binding) > +{ > + struct netdev_rx_queue *rxq; > + unsi

Re: [PATCH net-next v15 02/14] net: netdev netlink api to bind dma-buf to a net device

2024-07-02 Thread Jakub Kicinski
On Fri, 28 Jun 2024 00:32:39 + Mina Almasry wrote: > API takes the dma-buf fd as input, and binds it to the netdevice. The > user can specify the rx queues to bind the dma-buf to. > > Suggested-by: Stanislav Fomichev > Signed-off-by: Mina Almasry > diff --git a/Documentation/netlink/specs/n

Re: [PATCH net-next v15 01/14] netdev: add netdev_rx_queue_restart()

2024-07-02 Thread Jakub Kicinski
On Fri, 28 Jun 2024 00:32:38 + Mina Almasry wrote: > Add netdev_rx_queue_restart() function to netdev_rx_queue.h > > Signed-off-by: David Wei > Signed-off-by: Mina Almasry > Reviewed-by: Pavel Begunkov Reviewed-by: Jakub Kicinski

Re: [PATCH net-next v14 13/13] selftests: add ncdevmem, netcat for devmem TCP

2024-06-27 Thread Jakub Kicinski
On Thu, 27 Jun 2024 13:36:57 -0700 Mina Almasry wrote: > `make -C ./tools/testing/selftests/net TARGETS=ncdevmem`, which works. AFAIU the most supported incantation would have to be something rather insane, like: make -C tools/testing/selftests TARGETS=net TEST_GEN_PROGS="$(pwd)/tools/testing/se

Re: [PATCH net-next v14 13/13] selftests: add ncdevmem, netcat for devmem TCP

2024-06-27 Thread Jakub Kicinski
On Thu, 27 Jun 2024 12:55:38 -0700 Mina Almasry wrote: > `git clean -fdx && make headers_install && make -C > ./tools/testing/selftests/net` works > > `git clean -fdx && make headers_install && make -C > ./tools/testing/selftests/net ncdevmem` doesn't work with this error: Hm, I haven't tested

Re: [PATCH net-next v14 13/13] selftests: add ncdevmem, netcat for devmem TCP

2024-06-26 Thread Jakub Kicinski
On Wed, 26 Jun 2024 15:08:22 -0700 Jakub Kicinski wrote: > On Tue, 25 Jun 2024 19:54:01 + Mina Almasry wrote: > > +CFLAGS += -I../../../net/ynl/generated/ > > +CFLAGS += -I../../../net/ynl/lib/ > > + > > +LDLIBS += ../../../net/ynl/lib/ynl.a ../../../net/ynl/gener

Re: [PATCH net-next v14 13/13] selftests: add ncdevmem, netcat for devmem TCP

2024-06-26 Thread Jakub Kicinski
On Tue, 25 Jun 2024 19:54:01 + Mina Almasry wrote: > +CFLAGS += -I../../../net/ynl/generated/ > +CFLAGS += -I../../../net/ynl/lib/ > + > +LDLIBS += ../../../net/ynl/lib/ynl.a ../../../net/ynl/generated/protos.a Not as easy as this.. Please add this commit to your series: https://github.com/kub

Re: [PATCH net-next v13 00/13] Device Memory TCP

2024-06-25 Thread Jakub Kicinski
On Tue, 25 Jun 2024 07:16:00 -0700 Mina Almasry wrote: > What happened here is that I sync'd to net-next, ran all the tests > including the allmodconfig build which took a few hours, then posted > the series. In the meantime 34 patches got merged to net-next, and one > of those patches seems to gen

Re: [PATCH 09/15] net: hbl_en: add habanalabs Ethernet driver

2024-06-20 Thread Jakub Kicinski
On Thu, 20 Jun 2024 08:43:34 + Omer Shpigelman wrote: > > You support 400G, you really need to give the user the ability > > to access higher pages. > > Actually the 200G and 400G modes in the ethtool code should be removed > from this patch set. They are not relevant for Gaudi2. I'll fix it

Re: [PATCH 09/15] net: hbl_en: add habanalabs Ethernet driver

2024-06-19 Thread Jakub Kicinski
On Wed, 19 Jun 2024 07:16:20 + Omer Shpigelman wrote: > >> Are you referring to get_module_eeprom_by_page()? if so, then it is not > >> supported by our FW, we read the entire data on device load. > >> However, I can hide that behind the new API and return only the > >> requested page if that's

Re: [PATCH net-next v12 00/13] Device Memory TCP

2024-06-13 Thread Jakub Kicinski
On Thu, 13 Jun 2024 01:35:37 + Mina Almasry wrote: > v12: > https://patchwork.kernel.org/project/netdevbpf/list/?series=859747&state=* patches 5 and 6 transiently break the build ../include/trace/events/page_pool.h:65:23: error: use of undeclared identifier 'NET_IOV' 65 |

Re: [PATCH net-next v11 05/13] page_pool: convert to use netmem

2024-06-12 Thread Jakub Kicinski
On Fri, 7 Jun 2024 00:51:15 + Mina Almasry wrote: > Abstrace the memory type from the page_pool so we can later add support > for new memory types. Convert the page_pool to use the new netmem type > abstraction, rather than use struct page directly. > > As of this patch the netmem type is a n

Re: [linux-next:master] BUILD REGRESSION 6dc544b66971c7f9909ff038b62149105272d26a

2024-05-28 Thread Jakub Kicinski
On Wed, 29 May 2024 02:19:47 +0800 kernel test robot wrote: > | `-- > net-ipv6-route.c-rt6_fill_node()-error:we-previously-assumed-dst-could-be-null-(see-line-) Is there a way for us to mark this as false positive?

Re: [PATCH v3 0/2] Fix Kernel CI issues

2024-05-17 Thread Jakub Kicinski
On Fri, 3 May 2024 20:25:49 +0300 Tomi Valkeinen wrote: > > I think the second patch also needs to go to drm-misc-next-fixes? The > > clang warning fixed by it has returned in next-20240503 because it > > appears that for-linux-next was switch from drm-misc-next to > > drm-misc-next-fixes, as I see

Re: [PATCH net-next v9 00/14] Device Memory TCP

2024-05-13 Thread Jakub Kicinski
On Fri, 10 May 2024 16:21:11 -0700 Mina Almasry wrote: > Device Memory TCP Sorry Mina, this is too big to apply during the merge window :( -- pw-bot: defer

Re: [PATCH v1 10/12] sfc: falcon: Make I2C terminology more inclusive

2024-05-03 Thread Jakub Kicinski
On Tue, 30 Apr 2024 17:38:09 + Easwar Hariharan wrote: > I2C v7, SMBus 3.2, and I3C 1.1.1 specifications have replaced "master/slave" > with more appropriate terms. Inspired by and following on to Wolfram's > series to fix drivers/i2c/[1], fix the terminology for users of > I2C_ALGOBIT bitbangi

Re: [PATCH net-next v8 3/3] net: ethernet: ti: am65-cpsw: Add minimal XDP support

2024-04-10 Thread Jakub Kicinski
On Wed, 10 Apr 2024 16:02:00 +0200 Julien Panis wrote: > > You shouldn't build the skb upfront any more. Give the page to the HW, > > once HW sends you a completion - build the skbs. If build fails > > (allocation failure) just give the page back to HW. If it succeeds, > > however, you'll get a skb

Re: [PATCH net-next v8 2/3] net: ethernet: ti: Add desc_infos member to struct k3_cppi_desc_pool

2024-04-10 Thread Jakub Kicinski
On Wed, 10 Apr 2024 10:36:16 +0200 Julien Panis wrote: > Also, about mem alloc failures, shouldn't we free 'pool' on kstrdup_const() > error at the beginning of k3_cppi_desc_pool_create_name() ? > I mean, it's not visible in my patch but I now wonder if this was done > properly even before I modify

Re: [PATCH net-next v8 3/3] net: ethernet: ti: am65-cpsw: Add minimal XDP support

2024-04-09 Thread Jakub Kicinski
On Mon, 08 Apr 2024 11:38:04 +0200 Julien Panis wrote: > +static struct sk_buff *am65_cpsw_alloc_skb(struct am65_cpsw_rx_chn *rx_chn, > +struct net_device *ndev, > +unsigned int len, > +

Re: [PATCH net-next v8 2/3] net: ethernet: ti: Add desc_infos member to struct k3_cppi_desc_pool

2024-04-09 Thread Jakub Kicinski
On Mon, 08 Apr 2024 11:38:03 +0200 Julien Panis wrote: > goto gen_pool_create_fail; > } > > + pool->desc_infos = kcalloc(pool->num_desc, > +sizeof(*pool->desc_infos), GFP_KERNEL); > + if (!pool->desc_infos) { > + ret = -ENOME

Re: [PATCH v3 06/15] net: kunit: Suppress lock warning noise at end of dev_addr_lists tests

2024-04-03 Thread Jakub Kicinski
On Wed, 3 Apr 2024 06:19:27 -0700 Guenter Roeck wrote: > dev_addr_lists_test generates lock warning noise at the end of tests > if lock debugging is enabled. There are two sets of warnings. > > WARNING: CPU: 0 PID: 689 at kernel/locking/mutex.c:923 > __mutex_unlock_slowpath.constprop.0+0x13c/0x3

Re: [PATCH 0/9] enabled -Wformat-truncation for clang

2024-03-26 Thread Jakub Kicinski
On Tue, 26 Mar 2024 23:37:59 +0100 Arnd Bergmann wrote: > I hope that the patches can get picked up by platform maintainers > directly, so the final patch can go in later on. platform == subsystem? :)

Re: [RFC PATCH net-next v6 02/15] net: page_pool: create hooks for custom page providers

2024-03-22 Thread Jakub Kicinski
On Fri, 22 Mar 2024 10:40:26 -0700 Mina Almasry wrote: > Other designs for this hugepage use case are possible, I'm just > describing Jakub's idea for it as a potential use-case for these > hooks. I made it ops because I had 4 different implementations with different recycling algorithms. I think

Re: [RFC PATCH net-next v6 05/15] netdev: support binding dma-buf to netdevice

2024-03-07 Thread Jakub Kicinski
On Mon, 4 Mar 2024 18:01:40 -0800 Mina Almasry wrote: > + if (!dev || !dev->netdev_ops) > + return -EINVAL; too defensive > + if (!dev->netdev_ops->ndo_queue_stop || > + !dev->netdev_ops->ndo_queue_mem_free || > + !dev->netdev_ops->ndo_queue_mem_alloc || > +

Re: [RFC PATCH net-next v6 01/15] queue_api: define queue api

2024-03-07 Thread Jakub Kicinski
On Thu, 7 Mar 2024 18:08:24 -0800 Mina Almasry wrote: > On Thu, Mar 7, 2024 at 5:30 PM Jakub Kicinski wrote: > > On Mon, 4 Mar 2024 18:01:36 -0800 Mina Almasry wrote: > > > + * void *(*ndo_queue_mem_alloc)(struct net_device *dev, int idx); > > > + * Allocate

Re: [RFC PATCH net-next v6 14/15] net: add devmem TCP documentation

2024-03-07 Thread Jakub Kicinski
On Mon, 4 Mar 2024 18:01:49 -0800 Mina Almasry wrote: > +Intro > += > + > +Device memory TCP (devmem TCP) enables receiving data directly into device > +memory (dmabuf). The feature is currently implemented for TCP sockets. > + > + > +Opportunity > +--- > + > +A large amount of data tr

Re: [RFC PATCH net-next v6 01/15] queue_api: define queue api

2024-03-07 Thread Jakub Kicinski
On Mon, 4 Mar 2024 18:01:36 -0800 Mina Almasry wrote: > + * void *(*ndo_queue_mem_alloc)(struct net_device *dev, int idx); > + * Allocate memory for an RX queue. The memory returned in the form of > + * a void * can be passed to ndo_queue_mem_free() for freeing or to > + * ndo_queue_start to

Re: [net-next v1 05/16] net: netdev netlink api to bind dma-buf to a net device

2023-12-13 Thread Jakub Kicinski
On Thu, 7 Dec 2023 16:52:36 -0800 Mina Almasry wrote: > +name: type > +doc: rx or tx queue > +type: u8 > +enum: queue-type nit: the queue/napi GET was applied to net-next, would be good to stick to the same types (s/u8/u32)

Re: [net-next v1 03/16] queue_api: define queue api

2023-12-13 Thread Jakub Kicinski
On Thu, 7 Dec 2023 16:52:34 -0800 Mina Almasry wrote: > This API enables the net stack to reset the queues used for devmem. Nice, thanks for moving this forward. FWIW when I started hacking on it the API looked more like: https://github.com/kuba-moo/linux/commit/7af8abfa4fdff248e21fc76aecc334004a

Re: [RFC PATCH v3 12/12] selftests: add ncdevmem, netcat for devmem TCP

2023-11-13 Thread Jakub Kicinski
On Sun, 12 Nov 2023 20:08:10 -0800 Mina Almasry wrote: > 1. For (b), would it be OK to implement a very minimal version of > queue_[stop|start]/queue_mem_[alloc|free], which I use for the sole > purpose of reposting buffers to an individual queue, and then later > whoever picks up your queue API ef

Re: [RFC PATCH v3 08/12] net: support non paged skb frags

2023-11-13 Thread Jakub Kicinski
On Sun, 12 Nov 2023 22:05:30 -0800 Mina Almasry wrote: > My issue here is that all these skb helpers call each other so I end > up having to move a lot of the unrelated skb helpers to this new > header (maybe that is acceptable but it feels weird). Splitting pp headers again is not an option, we a

Re: [RFC PATCH v3 02/12] net: page_pool: create hooks for custom page providers

2023-11-13 Thread Jakub Kicinski
On Sun, 12 Nov 2023 19:28:52 -0800 Mina Almasry wrote: > My issue with this is that if the driver doesn't support dmabuf then > the driver will accidentally use the pp backed by the dmabuf, allocate > a page from it, then call page_address() on it or something, and > crash. > > Currently I avoid t

Re: [RFC PATCH v3 12/12] selftests: add ncdevmem, netcat for devmem TCP

2023-11-10 Thread Jakub Kicinski
On Fri, 10 Nov 2023 18:27:08 -0800 Mina Almasry wrote: > Thanks for the clear requirement. I clearly had something different in mind. > > Might be dumb suggestions, but instead of creating a new ndo that we > maybe end up wanting to deprecate once the queue API is ready, how > about we use either

  1   2   >