All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Björn Töpel" <bjorn.topel@gmail.com>
To: Jakub Kicinski <jakub.kicinski@netronome.com>
Cc: "Alexei Starovoitov" <alexei.starovoitov@gmail.com>,
	"Daniel Borkmann" <daniel@iogearbox.net>,
	oss-drivers@netronome.com, Netdev <netdev@vger.kernel.org>,
	"Björn Töpel" <bjorn.topel@intel.com>
Subject: Re: [PATCH bpf] net: xsk: don't return frames via the allocator on error
Date: Mon, 30 Jul 2018 13:04:38 +0200	[thread overview]
Message-ID: <CAJ+HfNic_Agm2YepOnB_YGC5Hkgknv3LXUH8vKcYni3PgJxEBw@mail.gmail.com> (raw)
In-Reply-To: <20180728032008.23402-1-jakub.kicinski@netronome.com>

Den lör 28 juli 2018 kl 05:21 skrev Jakub Kicinski
<jakub.kicinski@netronome.com>:
>
> xdp_return_buff() is used when frame has been successfully
> handled (transmitted) or if an error occurred during delayed
> processing and there is no way to report it back to
> xdp_do_redirect().
>
> In case of __xsk_rcv_zc() error is propagated all the way
> back to the driver, so there is no need to call
> xdp_return_buff().  Driver will recycle the frame anyway
> after seeing that error happened.
>
> Fixes: 173d3adb6f43 ("xsk: add zero-copy support for Rx")
> Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
> ---
> Patch could as well be applied to bpf-next, since there are no drivers
> for AF_XDP in tree, yet.  xdp_umem_get_dma() and xdp_umem_get_data() are
> not even exported.  But one could reimplent those...
>
> As I mentioned I think this makes the entire MEM_TYPE_ZERO_COPY allocator
> handling dead code now :(
>

Nice Jakub!

Indeed, as you state, there's no ZC driver implementation yet. So,
either bpf or bpf-next.

Acked-by: Björn Töpel <bjorn.topel@intel.com>

>  net/xdp/xsk.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c
> index 72335c2e8108..4e937cd7c17d 100644
> --- a/net/xdp/xsk.c
> +++ b/net/xdp/xsk.c
> @@ -84,10 +84,8 @@ static int __xsk_rcv_zc(struct xdp_sock *xs, struct xdp_buff *xdp, u32 len)
>  {
>         int err = xskq_produce_batch_desc(xs->rx, (u64)xdp->handle, len);
>
> -       if (err) {
> -               xdp_return_buff(xdp);
> +       if (err)
>                 xs->rx_dropped++;
> -       }
>
>         return err;
>  }
> --
> 2.17.1
>

  reply	other threads:[~2018-07-30 12:39 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-28  3:20 [PATCH bpf] net: xsk: don't return frames via the allocator on error Jakub Kicinski
2018-07-30 11:04 ` Björn Töpel [this message]
2018-07-31  0:05 ` Daniel Borkmann

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=CAJ+HfNic_Agm2YepOnB_YGC5Hkgknv3LXUH8vKcYni3PgJxEBw@mail.gmail.com \
    --to=bjorn.topel@gmail.com \
    --cc=alexei.starovoitov@gmail.com \
    --cc=bjorn.topel@intel.com \
    --cc=daniel@iogearbox.net \
    --cc=jakub.kicinski@netronome.com \
    --cc=netdev@vger.kernel.org \
    --cc=oss-drivers@netronome.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.