From: Stanislav Fomichev <sdf@google.com>
To: Saeed Mahameed <saeed@kernel.org>
Cc: "Toke Høiland-Jørgensen" <toke@redhat.com>,
bpf@vger.kernel.org, "John Fastabend" <john.fastabend@gmail.com>,
"David Ahern" <dsahern@gmail.com>,
"Martin KaFai Lau" <martin.lau@linux.dev>,
"Jakub Kicinski" <kuba@kernel.org>,
"Willem de Bruijn" <willemb@google.com>,
"Jesper Dangaard Brouer" <brouer@redhat.com>,
"Anatoly Burakov" <anatoly.burakov@intel.com>,
"Alexander Lobakin" <alexandr.lobakin@intel.com>,
"Magnus Karlsson" <magnus.karlsson@gmail.com>,
"Maryam Tahhan" <mtahhan@redhat.com>,
xdp-hints@xdp-project.net, netdev@vger.kernel.org
Subject: [xdp-hints] Re: [PATCH bpf-next 2/2] mlx5: Support XDP RX metadata
Date: Wed, 23 Nov 2022 14:44:58 -0800 [thread overview]
Message-ID: <CAKH8qBueYO_8h292bayYq1CeS3U4Phv4hr=zjDWz87nmZ9eyhg@mail.gmail.com> (raw)
In-Reply-To: <Y36e0Qt9eLtLZXmO@x130.lan>
On Wed, Nov 23, 2022 at 2:29 PM Saeed Mahameed <saeed@kernel.org> wrote:
>
> On 23 Nov 15:46, Toke Høiland-Jørgensen wrote:
> >Support RX hash and timestamp metadata kfuncs. We need to pass in the cqe
> >pointer to the mlx5e_skb_from* functions so it can be retrieved from the
> >XDP ctx to do this.
> >
> >Cc: John Fastabend <john.fastabend@gmail.com>
> >Cc: David Ahern <dsahern@gmail.com>
> >Cc: Martin KaFai Lau <martin.lau@linux.dev>
> >Cc: Jakub Kicinski <kuba@kernel.org>
> >Cc: Willem de Bruijn <willemb@google.com>
> >Cc: Jesper Dangaard Brouer <brouer@redhat.com>
> >Cc: Anatoly Burakov <anatoly.burakov@intel.com>
> >Cc: Alexander Lobakin <alexandr.lobakin@intel.com>
> >Cc: Magnus Karlsson <magnus.karlsson@gmail.com>
> >Cc: Maryam Tahhan <mtahhan@redhat.com>
> >Cc: Stanislav Fomichev <sdf@google.com>
> >Cc: xdp-hints@xdp-project.net
> >Cc: netdev@vger.kernel.org
> >Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
> >---
> >This goes on top of Stanislav's series, obvioulsy. Verified that it works using
> >the xdp_hw_metadata utility; going to do ome benchmarking and follow up with the
> >results, but figured I'd send this out straight away in case others wanted to
> >play with it.
> >
> >Stanislav, feel free to fold it into the next version of your series if you
> >want!
> >
>
> [...]
>
> > #endif /* __MLX5_EN_XSK_RX_H__ */
> >diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
> >index 14bd86e368d5..015bfe891458 100644
> >--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
> >+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
> >@@ -4890,6 +4890,10 @@ const struct net_device_ops mlx5e_netdev_ops = {
> > .ndo_tx_timeout = mlx5e_tx_timeout,
> > .ndo_bpf = mlx5e_xdp,
> > .ndo_xdp_xmit = mlx5e_xdp_xmit,
> >+ .ndo_xdp_rx_timestamp_supported = mlx5e_xdp_rx_timestamp_supported,
> >+ .ndo_xdp_rx_timestamp = mlx5e_xdp_rx_timestamp,
> >+ .ndo_xdp_rx_hash_supported = mlx5e_xdp_rx_hash_supported,
> >+ .ndo_xdp_rx_hash = mlx5e_xdp_rx_hash,
>
> I hope i am not late to the party.
> but I already expressed my feelings regarding using kfunc for xdp hints,
> @LPC and @netdevconf.
>
> I think it's wrong to use indirect calls, and for many usecases the
> overhead will be higher than just calculating the metadata on the spot.
>
> so you will need two indirect calls per packet per hint..
> some would argue on some systems calculating the hash would be much faster.
> and one major reason to have the hints is to accelerate xdp edge and
> security programs with the hw provided hints.
>
> what happened with just asking the driver to place the data in a specific
> location on the headroom?
Take a look at [0], we are resolving indirect calls. We can also
always go back to unrolling those calls as was done initially in [1].
0: https://lore.kernel.org/bpf/20221121182552.2152891-3-sdf@google.com/
1: https://lore.kernel.org/bpf/20221115030210.3159213-4-sdf@google.com/
kfunc approach seems more flexible than an all-or-nothing approach
with the driver pre-filling all metadata.
prev parent reply other threads:[~2022-11-23 22:45 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-21 18:25 [xdp-hints] [PATCH bpf-next v2 0/8] xdp: hints via kfuncs Stanislav Fomichev
2022-11-21 18:25 ` [xdp-hints] [PATCH bpf-next v2 1/8] bpf: Document XDP RX metadata Stanislav Fomichev
2022-11-21 18:25 ` [xdp-hints] [PATCH bpf-next v2 2/8] bpf: XDP metadata RX kfuncs Stanislav Fomichev
2022-11-21 23:31 ` [xdp-hints] " kernel test robot
2022-11-23 6:34 ` Martin KaFai Lau
2022-11-23 18:43 ` Stanislav Fomichev
2022-11-23 14:24 ` Toke Høiland-Jørgensen
2022-11-23 18:43 ` Stanislav Fomichev
2022-11-24 2:23 ` kernel test robot
2022-11-24 12:19 ` kernel test robot
2022-11-24 13:09 ` kernel test robot
2022-11-25 17:53 ` Toke Høiland-Jørgensen
2022-11-28 18:53 ` Stanislav Fomichev
2022-11-28 19:21 ` Stanislav Fomichev
2022-11-28 22:25 ` Toke Høiland-Jørgensen
2022-11-28 22:10 ` Toke Høiland-Jørgensen
2022-11-30 17:24 ` Larysa Zaremba
2022-11-30 19:06 ` Stanislav Fomichev
2022-11-30 20:17 ` Stanislav Fomichev
2022-12-01 13:52 ` Larysa Zaremba
2022-12-01 17:14 ` Stanislav Fomichev
2022-11-21 18:25 ` [xdp-hints] [PATCH bpf-next v2 3/8] veth: Introduce veth_xdp_buff wrapper for xdp_buff Stanislav Fomichev
2022-11-21 18:25 ` [xdp-hints] [PATCH bpf-next v2 4/8] veth: Support RX XDP metadata Stanislav Fomichev
2022-11-21 18:25 ` [xdp-hints] [PATCH bpf-next v2 5/8] selftests/bpf: Verify xdp_metadata xdp->af_xdp path Stanislav Fomichev
2022-11-29 10:06 ` [xdp-hints] " Anton Protopopov
2022-11-29 18:52 ` Stanislav Fomichev
2022-11-21 18:25 ` [xdp-hints] [PATCH bpf-next v2 6/8] mlx4: Introduce mlx4_xdp_buff wrapper for xdp_buff Stanislav Fomichev
2022-11-22 13:49 ` [xdp-hints] " Tariq Toukan
2022-11-22 18:08 ` Stanislav Fomichev
2022-11-23 14:33 ` Toke Høiland-Jørgensen
2022-11-23 18:26 ` Stanislav Fomichev
2022-11-23 19:14 ` Jakub Kicinski
2022-11-23 19:52 ` sdf
2022-11-23 21:54 ` Maciej Fijalkowski
2022-11-23 21:55 ` Toke Høiland-Jørgensen
2022-11-24 1:47 ` Jakub Kicinski
2022-11-24 14:39 ` Toke Høiland-Jørgensen
2022-11-24 15:17 ` Maciej Fijalkowski
2022-11-24 16:11 ` Maciej Fijalkowski
2022-11-25 0:36 ` Toke Høiland-Jørgensen
2022-11-28 21:58 ` Stanislav Fomichev
2022-11-28 22:11 ` Toke Høiland-Jørgensen
2022-11-21 18:25 ` [xdp-hints] [PATCH bpf-next v2 7/8] mxl4: Support RX XDP metadata Stanislav Fomichev
2022-11-22 13:50 ` [xdp-hints] " Tariq Toukan
2022-11-22 18:08 ` Stanislav Fomichev
2022-11-21 18:25 ` [xdp-hints] [PATCH bpf-next v2 8/8] selftests/bpf: Simple program to dump XDP RX metadata Stanislav Fomichev
2022-11-23 14:26 ` [xdp-hints] " Toke Høiland-Jørgensen
2022-11-23 18:29 ` Stanislav Fomichev
2022-11-23 19:17 ` Jakub Kicinski
2022-11-23 19:54 ` Stanislav Fomichev
2022-11-23 14:46 ` [xdp-hints] [PATCH bpf-next 1/2] xdp: Add drv_priv pointer to struct xdp_buff Toke Høiland-Jørgensen
2022-11-23 14:46 ` [xdp-hints] [PATCH bpf-next 2/2] mlx5: Support XDP RX metadata Toke Høiland-Jørgensen
2022-11-23 22:29 ` [xdp-hints] " Saeed Mahameed
2022-11-23 22:44 ` Stanislav Fomichev [this message]
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
List information: https://lists.xdp-project.net/postorius/lists/xdp-hints.xdp-project.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAKH8qBueYO_8h292bayYq1CeS3U4Phv4hr=zjDWz87nmZ9eyhg@mail.gmail.com' \
--to=sdf@google.com \
--cc=alexandr.lobakin@intel.com \
--cc=anatoly.burakov@intel.com \
--cc=bpf@vger.kernel.org \
--cc=brouer@redhat.com \
--cc=dsahern@gmail.com \
--cc=john.fastabend@gmail.com \
--cc=kuba@kernel.org \
--cc=magnus.karlsson@gmail.com \
--cc=martin.lau@linux.dev \
--cc=mtahhan@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=saeed@kernel.org \
--cc=toke@redhat.com \
--cc=willemb@google.com \
--cc=xdp-hints@xdp-project.net \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox