All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lorenzo Bianconi <lorenzo@kernel.org>
To: Jesper Dangaard Brouer <jbrouer@redhat.com>
Cc: bpf@vger.kernel.org, brouer@redhat.com, ast@kernel.org,
	daniel@iogearbox.net, andrii@kernel.org, netdev@vger.kernel.org,
	davem@davemloft.net, kuba@kernel.org, edumazet@google.com,
	pabeni@redhat.com, hawk@kernel.org, john.fastabend@gmail.com,
	lorenzo.bianconi@redhat.com
Subject: Re: [PATCH bpf-next] xdp: report rx queue index in xdp_frame
Date: Wed, 17 Aug 2022 14:35:53 +0200	[thread overview]
Message-ID: <YvzgqWUDWpu9bxNN@lore-desk> (raw)
In-Reply-To: <ccccfb6b-b72f-382f-48f6-c639b8b0b2cd@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 2411 bytes --]

> 
> On 25/07/2022 12.56, Lorenzo Bianconi wrote:
> > Report rx queue index in xdp_frame according to the xdp_buff xdp_rxq_info
> > pointer. xdp_frame queue_index is currently used in cpumap code to covert
> > the xdp_frame into a xdp_buff.
> 
> Hmm, I'm unsure about this change, because the XDP-hints will also
> contain the rx_queue number.

ack, but in this way each driver needs to fill this info, right? Maybe we can
keep rx_queue number here and remove it from XDP-hints metadata?

> 
> I do think it is relevant for the BPF-prog to get access to the rx_queue
> index, because it can be used for scaling the workload.
> 
> > xdp_frame size is not increased adding queue_index since an alignment padding
> > in the structure is used to insert queue_index field.
> 
> The rx_queue could be reduced from u32 to u16, but it might be faster to
> keep it u32, and reduce it when others need the space.

ack, agree.

Regards,
Lorenzo

> 
> > Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
> > ---
> >   include/net/xdp.h   | 2 ++
> >   kernel/bpf/cpumap.c | 2 +-
> >   2 files changed, 3 insertions(+), 1 deletion(-)
> > 
> > diff --git a/include/net/xdp.h b/include/net/xdp.h
> > index 04c852c7a77f..3567866b0af5 100644
> > --- a/include/net/xdp.h
> > +++ b/include/net/xdp.h
> > @@ -172,6 +172,7 @@ struct xdp_frame {
> >   	struct xdp_mem_info mem;
> >   	struct net_device *dev_rx; /* used by cpumap */
> >   	u32 flags; /* supported values defined in xdp_buff_flags */
> > +	u32 queue_index;
> >   };
> >   static __always_inline bool xdp_frame_has_frags(struct xdp_frame *frame)
> > @@ -301,6 +302,7 @@ struct xdp_frame *xdp_convert_buff_to_frame(struct xdp_buff *xdp)
> >   	/* rxq only valid until napi_schedule ends, convert to xdp_mem_info */
> >   	xdp_frame->mem = xdp->rxq->mem;
> > +	xdp_frame->queue_index = xdp->rxq->queue_index;
> >   	return xdp_frame;
> >   }
> > diff --git a/kernel/bpf/cpumap.c b/kernel/bpf/cpumap.c
> > index f4860ac756cd..09a792d088b3 100644
> > --- a/kernel/bpf/cpumap.c
> > +++ b/kernel/bpf/cpumap.c
> > @@ -228,7 +228,7 @@ static int cpu_map_bpf_prog_run_xdp(struct bpf_cpu_map_entry *rcpu,
> >   		rxq.dev = xdpf->dev_rx;
> >   		rxq.mem = xdpf->mem;
> > -		/* TODO: report queue_index to xdp_rxq_info */
> > +		rxq.queue_index = xdpf->queue_index;
> >   		xdp_convert_frame_to_buff(xdpf, &xdp);
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

      reply	other threads:[~2022-08-17 12:36 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-25 10:56 [PATCH bpf-next] xdp: report rx queue index in xdp_frame Lorenzo Bianconi
2022-08-16  9:45 ` Lorenzo Bianconi
2022-08-16  9:54   ` Daniel Borkmann
2022-08-16  9:56     ` Lorenzo Bianconi
2022-08-17 11:17 ` Jesper Dangaard Brouer
2022-08-17 12:35   ` Lorenzo Bianconi [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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YvzgqWUDWpu9bxNN@lore-desk \
    --to=lorenzo@kernel.org \
    --cc=andrii@kernel.org \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=brouer@redhat.com \
    --cc=daniel@iogearbox.net \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=hawk@kernel.org \
    --cc=jbrouer@redhat.com \
    --cc=john.fastabend@gmail.com \
    --cc=kuba@kernel.org \
    --cc=lorenzo.bianconi@redhat.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.