Messages in this thread Patch in this message | | | From | "huangjie.albert" <> | Subject | [RFC Optimizing veth xsk performance 01/10] veth: Implement ethtool's get_ringparam() callback | Date | Thu, 3 Aug 2023 22:04:27 +0800 |
| |
some xsk libary calls get_ringparam() API to get the queue length to init the xsk umem.
Implement that in veth so those scenarios can work properly.
Signed-off-by: huangjie.albert <huangjie.albert@bytedance.com> --- drivers/net/veth.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)
diff --git a/drivers/net/veth.c b/drivers/net/veth.c index 614f3e3efab0..c2b431a7a017 100644 --- a/drivers/net/veth.c +++ b/drivers/net/veth.c @@ -255,6 +255,17 @@ static void veth_get_channels(struct net_device *dev, static int veth_set_channels(struct net_device *dev, struct ethtool_channels *ch); +static void veth_get_ringparam(struct net_device *dev, + struct ethtool_ringparam *ring, + struct kernel_ethtool_ringparam *kernel_ring, + struct netlink_ext_ack *extack) +{ + ring->rx_max_pending = VETH_RING_SIZE; + ring->tx_max_pending = VETH_RING_SIZE; + ring->rx_pending = VETH_RING_SIZE; + ring->tx_pending = VETH_RING_SIZE; +} + static const struct ethtool_ops veth_ethtool_ops = { .get_drvinfo = veth_get_drvinfo, .get_link = ethtool_op_get_link, @@ -265,6 +276,7 @@ static const struct ethtool_ops veth_ethtool_ops = { .get_ts_info = ethtool_op_get_ts_info, .get_channels = veth_get_channels, .set_channels = veth_set_channels, + .get_ringparam = veth_get_ringparam, }; /* general routines */ -- 2.20.1
| |