Subject: [RFC] ethtool bandwidth per-queue commands

From: ivan <[email-masked]>
Date: Wed, 20 Jul 2016 23:00:31 +0300

Hi everyone.

The ethtool interface has ETHTOOL_PERQUEUE command that is used to
read/set per-queue parameters for multiqueue Ethernet devices.

I want to apply additional per-queue commands like per-queue bandwidth
and per-queue number of descriptors (like number of rings).

Currently only ETHTOOL_G/SCOALESCE sub commands are added for
per-queue interface (but I haven't seen counterpart for ethtool util).

Using ETHTOOL_G/SCOALESCE per-queue command as an example,
I'm going to add 2 additional and 2 known commands for ethtool
per-queue interface:

ETHTOOL_G/SBANDWIDTH     /* Get/Set ethtool per queue bandwidth.
Bandwidth can be set with % or absolute in Mb/s */

ETHTOOL_G/SRINGPARAM     /* is going to be used to control number of
descriptors per queue in my driver */

It's not clear how PERQUEUE command splits rx and tx queues, as
they can have different enumeration and different parameters.

Actually, there are several questions:
- how to split enumeration of rx / tx queues in per queue command,
   as it uses linear bitmap to mirror affected channels.
- where is ethtool util counterpart for per queue command?
- is it correct way to use ethtool to configure h/w shaper?

In my case, by default, multi queue h/w shaper is working in
priority mode. The setting of bandwidth for queues can be used
to switch shaper to throughput aware mode when every queue can be
bandwidth limited.

-- 
Regards,
Ivan Khoronzhuk