[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20200630210625.ytur4nwzrekhazvi@bsd-mbp.dhcp.thefacebook.com>
Date: Tue, 30 Jun 2020 14:06:25 -0700
From: Jonathan Lemon <jonathan.lemon@...il.com>
To: Tom Herbert <tom@...bertland.com>
Cc: netdev@...r.kernel.org
Subject: Re: [RFC PATCH 07/11] net: Introduce global queues
On Wed, Jun 24, 2020 at 10:17:46AM -0700, Tom Herbert wrote:
> Global queues, or gqids, are an abstract representation of NIC
> device queues. They are global in the sense that the each gqid
> can be map to a queue in each device, i.e. if there are multiple
> devices in the system, a gqid can map to a different queue, a dqid,
> in each device in a one to many mapping. gqids are used for
> configuring packet steering on both send and receive in a generic
> way not bound to a particular device.
>
> Each transmit or receive device queue may be reversed mapped to
> one gqid. Each device maintains a table mapping gqids to local
> device queues, those tables are used in the data path to convert
> a gqid receive or transmit queue into a device queue relative to
> the sending or receiving device.
I'm confused by this word salad, can it be simplified?
So a RX device queue maps to one global queue, implying that there's a
one way relationship here. But at the same time, the second sentence
implies each device can map a global RX queue to a device queue.
This would logically mean that for a given device, there's a 1:1
relationship between global and device queue, and the only 'one-to-many'
portion is coming from mapping global queues across different devices.
How would I do this:
given device eth0
create new RSS context 200
create RX queues 800, 801, added to RSS context 200
create global RX queue for context 200
attach 4 sockets to context 200
I'm assuming that each socket ends up being flow-assigned to one of the
underlying device queues (800 or 801), correct?
--
Jonathan
Powered by blists - more mailing lists