netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jakub Kicinski <kuba@kernel.org>
To: Gal Pressman <gal@nvidia.com>
Cc: Saeed Mahameed <saeed@kernel.org>,
	"David S. Miller" <davem@davemloft.net>,
	Paolo Abeni <pabeni@redhat.com>,
	Eric Dumazet <edumazet@google.com>,
	Saeed Mahameed <saeedm@nvidia.com>,
	netdev@vger.kernel.org, Tariq Toukan <tariqt@nvidia.com>
Subject: Re: [net-next 10/15] net/mlx5e: Let channels be SD-aware
Date: Tue, 9 Jan 2024 08:00:36 -0800	[thread overview]
Message-ID: <20240109080036.65634705@kernel.org> (raw)
In-Reply-To: <d0ce07a6-2ca7-4604-84a8-550b1c87f602@nvidia.com>

On Tue, 9 Jan 2024 16:15:50 +0200 Gal Pressman wrote:
> >> I'm confused, how are RX queues related to XPS?  
> > 
> > Separate sentence, perhaps I should be more verbose..  
> 
> Sorry, yes, your understanding is correct.
> If a packet is received on RQ 0 then it is from PF 0, RQ 1 came from PF
> 1, etc. Though this is all from the same wire/port.
> 
> You can enable arfs for example, which will make sure that packets that
> are destined to a certain CPU will be received by the PF that is closer
> to it.

Got it.

> >> XPS shouldn't be affected, we just make sure that whatever queue XPS
> >> chose will go out through the "right" PF.  
> > 
> > But you said "correct" to queue 0 going to PF 0 and queue 1 to PF 1.
> > The queue IDs in my question refer to the queue mapping form the stacks
> > perspective. If user wants to send everything to queue 0 will it use
> > both PFs?  
> 
> If all traffic is transmitted through queue 0, it will go out from PF 0
> (the PF that is closer to CPU 0 numa).

Okay, but earlier you said: "whatever queue XPS chose will go out
through the "right" PF." - which I read as PF will be chosen based
on CPU locality regardless of XPS logic.

If queue 0 => PF 0, then user has to set up XPS to make CPUs from NUMA
node which has PF 0 use even number queues, and PF 1 to use odd number
queues. Correct?

> >> So for example, XPS will choose a queue according to the CPU, and the
> >> driver will make sure that packets transmitted from this SQ are going
> >> out through the PF closer to that NUMA.  
> > 
> > Sounds like queue 0 is duplicated in both PFs, then?  
> 
> Depends on how you look at it, each PF has X queues, the netdev has 2X
> queues.

I'm asking how it looks from the user perspective, to be clear.
From above I gather than the answer is no - queue 0 maps directly 
to PF 0 / queue 0, nothing on PF 1 will ever see traffic of queue 0.

> >> Can you share a link please?  
> > 
> > commit a90d56049acc45802f67cd7d4c058ac45b1bc26f  
> 
> Thanks, will take a look.
> 
> >> All the logic is internal to the driver, so I expect it to be fine, but
> >> I'd like to double check.
> > 
> > Herm, "internal to the driver" is a bit of a landmine. It will be fine
> > for iperf testing but real users will want to configure the NIC.
> 
> What kind of configuration are you thinking of?

Well, I was hoping you'd do the legwork and show how user configuration
logic has to be augmented for all relevant stack features to work with
multi-PF devices. I can list the APIs that come to mind while writing
this email, but that won't be exhaustive :(

  reply	other threads:[~2024-01-09 16:00 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-21  0:57 [pull request][net-next 00/15] mlx5 updates 2023-12-20 Saeed Mahameed
2023-12-21  0:57 ` [net-next 01/15] net/mlx5e: Use the correct lag ports number when creating TISes Saeed Mahameed
2023-12-29 22:40   ` patchwork-bot+netdevbpf
2023-12-21  0:57 ` [net-next 02/15] net/mlx5: Fix query of sd_group field Saeed Mahameed
2023-12-21  0:57 ` [net-next 03/15] net/mlx5: SD, Introduce SD lib Saeed Mahameed
2023-12-21  0:57 ` [net-next 04/15] net/mlx5: SD, Implement basic query and instantiation Saeed Mahameed
2024-01-05 12:15   ` Jiri Pirko
2024-01-25  7:34     ` Tariq Toukan
2024-01-29  9:21       ` Jiri Pirko
2023-12-21  0:57 ` [net-next 05/15] net/mlx5: SD, Implement devcom communication and primary election Saeed Mahameed
2023-12-21  0:57 ` [net-next 06/15] net/mlx5: SD, Implement steering for primary and secondaries Saeed Mahameed
2023-12-21  0:57 ` [net-next 07/15] net/mlx5: SD, Add informative prints in kernel log Saeed Mahameed
2024-01-05 12:12   ` Jiri Pirko
2024-01-25  7:42     ` Tariq Toukan
2024-01-29  9:20       ` Jiri Pirko
2023-12-21  0:57 ` [net-next 08/15] net/mlx5e: Create single netdev per SD group Saeed Mahameed
2024-01-08 13:36   ` Aishwarya TCV
2024-01-08 13:50     ` Gal Pressman
2024-01-08 15:54       ` Mark Brown
2024-01-08 16:00         ` Gal Pressman
2023-12-21  0:57 ` [net-next 09/15] net/mlx5e: Create EN core HW resources for all secondary devices Saeed Mahameed
2023-12-21  0:57 ` [net-next 10/15] net/mlx5e: Let channels be SD-aware Saeed Mahameed
2024-01-04 22:50   ` Jakub Kicinski
2024-01-08 12:30     ` Gal Pressman
2024-01-09  3:08       ` Jakub Kicinski
2024-01-09 14:15         ` Gal Pressman
2024-01-09 16:00           ` Jakub Kicinski [this message]
2024-01-10 14:09             ` Gal Pressman
2024-01-25  8:01               ` Tariq Toukan
2024-01-26  2:40                 ` Jakub Kicinski
2023-12-21  0:57 ` [net-next 11/15] net/mlx5e: Support cross-vhca RSS Saeed Mahameed
2023-12-21  0:57 ` [net-next 12/15] net/mlx5e: Support per-mdev queue counter Saeed Mahameed
2023-12-21  0:57 ` [net-next 13/15] net/mlx5e: Block TLS device offload on combined SD netdev Saeed Mahameed
2023-12-21  0:57 ` [net-next 14/15] net/mlx5: Enable SD feature Saeed Mahameed
2023-12-21  0:57 ` [net-next 15/15] net/mlx5: Implement management PF Ethernet profile Saeed Mahameed
2023-12-21  2:45   ` Nelson, Shannon
2023-12-21 22:25     ` Saeed Mahameed
2024-01-04 22:44       ` Jakub Kicinski
2024-01-08 23:22         ` Saeed Mahameed
2024-01-09  2:58           ` Jakub Kicinski
2024-01-17  7:37             ` Saeed Mahameed
2024-01-18  2:04               ` Jakub Kicinski
2024-01-04 22:47 ` [pull request][net-next 00/15] mlx5 updates 2023-12-20 Jakub Kicinski
2024-01-08  1:19   ` Jakub Kicinski
2024-01-08 23:14     ` Saeed Mahameed

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=20240109080036.65634705@kernel.org \
    --to=kuba@kernel.org \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=gal@nvidia.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=saeed@kernel.org \
    --cc=saeedm@nvidia.com \
    --cc=tariqt@nvidia.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).