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 <[email protected]> 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 <[email protected]> > > --- > > 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? _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
