All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
To: Magnus Karlsson <magnus.karlsson@gmail.com>
Cc: Jalal Mostafa <jalal.a.mostapha@gmail.com>,
	<netdev@vger.kernel.org>, <bpf@vger.kernel.org>,
	<bjorn@kernel.org>, <magnus.karlsson@intel.com>,
	<jonathan.lemon@gmail.com>, <davem@davemloft.net>,
	<edumazet@google.com>, <kuba@kernel.org>, <pabeni@redhat.com>,
	<daniel@iogearbox.net>, <linux-kernel@vger.kernel.org>,
	<jalal.mostafa@kit.edu>
Subject: Re: [PATCH bpf v2] xsk: inherit need_wakeup flag for shared sockets
Date: Wed, 21 Sep 2022 14:16:39 +0200	[thread overview]
Message-ID: <YysApyiP4S3xdT8H@boxer> (raw)
In-Reply-To: <CAJ8uoz2D9mGjZzo6SmAWtgbb0A3AB_Nk4eYXajenv3VDBA11=A@mail.gmail.com>

On Tue, Sep 20, 2022 at 03:34:19PM +0200, Magnus Karlsson wrote:
> On Tue, Sep 20, 2022 at 1:58 PM Jalal Mostafa
> <jalal.a.mostapha@gmail.com> wrote:
> >
> > The flag for need_wakeup is not set for xsks with `XDP_SHARED_UMEM`
> > flag and of different queue ids and/or devices. They should inherit
> > the flag from the first socket buffer pool since no flags can be
> > specified once `XDP_SHARED_UMEM` is specified. The issue is fixed
> > by creating a new function `xp_create_and_assign_umem_shared` to
> > create xsk_buff_pool for xsks with the shared umem flag set.

Hi Jalal,

Please update commit msg and remove reference to the new function that you
were creating on v1.

> 
> Thanks!
> 
> Acked-by: Magnus Karlsson <magnus.karlsson@intel.com>
> 
> > Fixes: b5aea28dca134 ("xsk: Add shared umem support between queue ids")
> > Signed-off-by: Jalal Mostafa <jalal.a.mostapha@gmail.com>
> > ---
> >  include/net/xsk_buff_pool.h | 2 +-
> >  net/xdp/xsk.c               | 4 ++--
> >  net/xdp/xsk_buff_pool.c     | 5 +++--
> >  3 files changed, 6 insertions(+), 5 deletions(-)
> >
> > diff --git a/include/net/xsk_buff_pool.h b/include/net/xsk_buff_pool.h
> > index 647722e847b4..f787c3f524b0 100644
> > --- a/include/net/xsk_buff_pool.h
> > +++ b/include/net/xsk_buff_pool.h
> > @@ -95,7 +95,7 @@ struct xsk_buff_pool *xp_create_and_assign_umem(struct xdp_sock *xs,
> >                                                 struct xdp_umem *umem);
> >  int xp_assign_dev(struct xsk_buff_pool *pool, struct net_device *dev,
> >                   u16 queue_id, u16 flags);
> > -int xp_assign_dev_shared(struct xsk_buff_pool *pool, struct xdp_umem *umem,
> > +int xp_assign_dev_shared(struct xsk_buff_pool *pool, struct xdp_sock *umem_xs,
> >                          struct net_device *dev, u16 queue_id);
> >  int xp_alloc_tx_descs(struct xsk_buff_pool *pool, struct xdp_sock *xs);
> >  void xp_destroy(struct xsk_buff_pool *pool);
> > diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c
> > index 5b4ce6ba1bc7..7bada4e8460b 100644
> > --- a/net/xdp/xsk.c
> > +++ b/net/xdp/xsk.c
> > @@ -954,8 +954,8 @@ static int xsk_bind(struct socket *sock, struct sockaddr *addr, int addr_len)
> >                                 goto out_unlock;
> >                         }
> >
> > -                       err = xp_assign_dev_shared(xs->pool, umem_xs->umem,
> > -                                                  dev, qid);
> > +                       err = xp_assign_dev_shared(xs->pool, umem_xs, dev,
> > +                                                  qid);
> >                         if (err) {
> >                                 xp_destroy(xs->pool);
> >                                 xs->pool = NULL;
> > diff --git a/net/xdp/xsk_buff_pool.c b/net/xdp/xsk_buff_pool.c
> > index a71a8c6edf55..ed6c71826d31 100644
> > --- a/net/xdp/xsk_buff_pool.c
> > +++ b/net/xdp/xsk_buff_pool.c
> > @@ -212,17 +212,18 @@ int xp_assign_dev(struct xsk_buff_pool *pool,
> >         return err;
> >  }
> >
> > -int xp_assign_dev_shared(struct xsk_buff_pool *pool, struct xdp_umem *umem,
> > +int xp_assign_dev_shared(struct xsk_buff_pool *pool, struct xdp_sock *umem_xs,
> >                          struct net_device *dev, u16 queue_id)
> >  {
> >         u16 flags;
> > +       struct xdp_umem *umem = umem_xs->umem;
> >
> >         /* One fill and completion ring required for each queue id. */
> >         if (!pool->fq || !pool->cq)
> >                 return -EINVAL;
> >
> >         flags = umem->zc ? XDP_ZEROCOPY : XDP_COPY;
> > -       if (pool->uses_need_wakeup)
> > +       if (umem_xs->pool->uses_need_wakeup)
> >                 flags |= XDP_USE_NEED_WAKEUP;
> >
> >         return xp_assign_dev(pool, dev, queue_id, flags);
> > --
> > 2.34.1
> >

  reply	other threads:[~2022-09-21 12:16 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-20 11:58 [PATCH bpf v2] xsk: inherit need_wakeup flag for shared sockets Jalal Mostafa
2022-09-20 13:34 ` Magnus Karlsson
2022-09-21 12:16   ` Maciej Fijalkowski [this message]
2022-09-21 13:57     ` [PATCH bpf v3] " Jalal Mostafa
2022-09-22 15:20       ` patchwork-bot+netdevbpf

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=YysApyiP4S3xdT8H@boxer \
    --to=maciej.fijalkowski@intel.com \
    --cc=bjorn@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=jalal.a.mostapha@gmail.com \
    --cc=jalal.mostafa@kit.edu \
    --cc=jonathan.lemon@gmail.com \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=magnus.karlsson@gmail.com \
    --cc=magnus.karlsson@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.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.