From: Daniel Borkmann <daniel@iogearbox.net>
To: Yuval Mintz <Yuval.Mintz@cavium.com>
Cc: davem@davemloft.net, netdev@vger.kernel.org,
alexei.starovoitov@gmail.com
Subject: Re: [PATCH v2 net-next 10/11] qede: Add basic XDP support
Date: Tue, 29 Nov 2016 16:48:50 +0100 [thread overview]
Message-ID: <583DA362.7010702@iogearbox.net> (raw)
In-Reply-To: <1480430830-17671-11-git-send-email-Yuval.Mintz@cavium.com>
On 11/29/2016 03:47 PM, Yuval Mintz wrote:
> Add support for the ndo_xdp callback. This patch would support XDP_PASS,
> XDP_DROP and XDP_ABORTED commands.
>
> This also adds a per Rx queue statistic which counts number of packets
> which didn't reach the stack [due to XDP].
>
> Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
[...]
> @@ -1560,6 +1593,7 @@ static int qede_rx_process_cqe(struct qede_dev *edev,
> struct qede_fastpath *fp,
> struct qede_rx_queue *rxq)
> {
> + struct bpf_prog *xdp_prog = READ_ONCE(rxq->xdp_prog);
> struct eth_fast_path_rx_reg_cqe *fp_cqe;
> u16 len, pad, bd_cons_idx, parse_flag;
> enum eth_rx_cqe_type cqe_type;
> @@ -1596,6 +1630,11 @@ static int qede_rx_process_cqe(struct qede_dev *edev,
> len = le16_to_cpu(fp_cqe->len_on_first_bd);
> pad = fp_cqe->placement_offset;
>
> + /* Run eBPF program if one is attached */
> + if (xdp_prog)
> + if (!qede_rx_xdp(edev, fp, rxq, xdp_prog, bd, fp_cqe))
> + return 1;
> +
You also need to wrap this under rcu_read_lock() (at least I haven't seen
it in your patches) for same reasons as stated in 326fe02d1ed6 ("net/mlx4_en:
protect ring->xdp_prog with rcu_read_lock"), as otherwise xdp_prog could
disappear underneath you. mlx4 and nfp does it correctly, looks like mlx5
doesn't.
next prev parent reply other threads:[~2016-11-29 15:48 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-29 14:46 [PATCH v2 net-next 00/11] qed*: Add XDP support Yuval Mintz
2016-11-29 14:47 ` [PATCH v2 net-next 01/11] qede: Optimize aggregation information size Yuval Mintz
2016-11-29 14:47 ` [PATCH v2 net-next 02/11] qed: Optimize qed_chain datapath usage Yuval Mintz
2016-11-29 14:47 ` [PATCH v2 net-next 03/11] qede: Remove 'num_tc' Yuval Mintz
2016-11-29 14:47 ` [PATCH v2 net-next 04/11] qede: Refactor statistics gathering Yuval Mintz
2016-11-29 14:47 ` [PATCH v2 net-next 05/11] qede: Refactor data-path Rx flow Yuval Mintz
2016-11-29 14:47 ` [PATCH v2 net-next 06/11] qede: Revise state locking scheme Yuval Mintz
2016-11-29 14:47 ` [PATCH v2 net-next 07/11] qed*: Handle-based L2-queues Yuval Mintz
2016-11-29 14:47 ` [PATCH v2 net-next 08/11] qede: Don't check netdevice for rx-hash Yuval Mintz
2016-11-29 14:47 ` [PATCH v2 net-next 09/11] qede: Better utilize the qede_[rt]x_queue Yuval Mintz
2016-11-29 14:47 ` [PATCH v2 net-next 10/11] qede: Add basic XDP support Yuval Mintz
2016-11-29 15:48 ` Daniel Borkmann [this message]
2016-11-29 17:10 ` Jakub Kicinski
2016-11-29 17:51 ` Mintz, Yuval
2016-11-29 18:42 ` Daniel Borkmann
2016-11-29 18:28 ` Daniel Borkmann
2016-11-29 14:47 ` [PATCH v2 net-next 11/11] qede: Add support for XDP_TX Yuval Mintz
2016-11-30 19:32 ` [PATCH v2 net-next 00/11] qed*: Add XDP support David Miller
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=583DA362.7010702@iogearbox.net \
--to=daniel@iogearbox.net \
--cc=Yuval.Mintz@cavium.com \
--cc=alexei.starovoitov@gmail.com \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
/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.