[ovs-dev] [PATCH] netdev_afxdp: Detects combined channels and aborts wrong config

Ben Pfaff blp at ovn.org
Thu Jan 9 18:22:27 UTC 2020


OK.  I guess that "combined" is what I would would have called "duplex":
going in both directions.

If there's a need to configure this kind of thing, then I think that the
documentation should summarize the kinds of channels and point to
further documentation.

On Wed, Jan 08, 2020 at 05:59:59PM -0800, Yi-Hung Wei wrote:
> Hi Ben,
> 
> After taking closer look at different driver implementations, I found
> that the use of combined channels is actually driver dependent.
> 
> From ethtool (8), a channel is an IRQ and the set of queues that can
> trigger that IRQ.  I tend to think channel as rx/tx queues from
> software's point of view.  There are 4 types of channels that ethtool
> can configure, rx, tx, other, and combined.
> 
> For Intel NICs, (at least for NICs that use ixgbe, i40 driver), we can
> only configure channels through 'combined' parameter. It will set both
> rx and tx channel to N with the following command.
> $ ethool -L eth0 combined N
> 
> However, it does not support configuring rx and tx channel separately.
> We can only set/get number of combined channel, but not rx or tx
> channel.
> For example,
> $ ethtool -l eth0
> Channel parameters for eth0:
> Pre-set maximums:
> RX:        0
> TX:        0
> Other:        1
> Combined:    63
> Current hardware settings:
> RX:        0
> TX:        0
> Other:        1
> Combined:    8
> 
> On the other hand, NICs that use Broadcom tg3 drivers can configure
> its rx and tx channel individually, but can not set with 'combined'
> parameter. For Mellanox, mlx4 driver supports set/get rx/tx channels,
> but mlx5 driver can only configured through combined channel.
> 
> Another ethtool example with Broadcom NetXtreme BCM5720 NIC.
> $ ethtool -L eno1 rx 2 tx 1
> $ ethtool -l eno1
> Channel parameters for eno1:
> Pre-set maximums:
> RX:             4
> TX:             4
> Other:          0
> Combined:       0
> Current hardware settings:
> RX:             2
> TX:             1
> Other:          0
> Combined:       0
> 
> Back to this patch, what I was trying to do is to make sure that the
> number of rx channels reported from ethtool is equal to n_rxq in
> AF_XDP's port setting.  Since, I was using a testbed with Intel NIC, I
> assume to get # of rx channels from 'combined'.  To support other
> types of NICs, in the next version, I will first compare n_rxq with
> 'rx'. In case of 'rx' is 0,  'combined' will be used.  I will update
> the related documentation as well.
> 
> Thanks,
> 
> -Yi-Hung
> 
> 
> On Mon, Jan 6, 2020 at 2:15 PM Ben Pfaff <blp at ovn.org> wrote:
> >
> > On Mon, Dec 23, 2019 at 11:33:57AM -0800, Yi-Hung Wei wrote:
> > > This patches detects the number of combined channels on a AF_XDP port
> > > via using ethtool interface.  If the number of combined channels
> > > is different from the n_rxq, netdev_afxdp will not be able to get
> > > all the packets from that port.  Thus, abort the port setup when
> > > the case is detected.
> > >
> > > Signed-off-by: Yi-Hung Wei <yihung.wei at gmail.com>
> > > ---
> > > Travis CI: https://travis-ci.org/YiHungWei/ovs/builds/627972465
> >
> > I don't know what a combined channel is.  Should the documentation talk
> > about this?


More information about the dev mailing list