Re: [RFC PATCH net-next v4 2/6] devlink: Extend devlink-rate api with queues and new parameters
From: Wilczynski, Michal <hidden>
Date: 2022-09-22 11:45:42
On 9/22/2022 1:33 AM, Jakub Kicinski wrote:
On Thu, 15 Sep 2022 20:41:52 +0200 Wilczynski, Michal wrote:quoted
In our use case we are trying to find a way to expose hardware Tx scheduler tree that is defined per port to user. Obviously if the tree is defined per physical port, all the scheduling nodes will reside on the same tree.Can you give some examples of what the resulting hierarchy would look like?
Hi, Below I'll paste the output of how initially the topology looks like for our hardware. If the devlink_port objects are present (as in switchdev mode), there should also be vport nodes represented. It is NOT a requirement for a queue to have a vport as it's ancestor. In this example we have two VF's created with 16 queues per VF, and 72 PF queues. User is free to reassign queues to other parents and delete the nodes, example: # Add new node devlink port function rate add pci/0000:4b:00.0/node_custom parent node_199 # Reassign queue devlink port function rate set pci/0000:4b:00.0/queue/100 parent node_custom node_0 represents a port and doesn't have any parent. [root@moradin iproute2-next]# devlink port function rate show pci/0000:4b:00.0/node_200: type node parent node_198 pci/0000:4b:00.0/node_199: type node parent node_198 pci/0000:4b:00.0/node_198: type node parent vport_2 pci/0000:4b:00.0/node_196: type node parent node_194 pci/0000:4b:00.0/node_195: type node parent node_194 pci/0000:4b:00.0/node_194: type node parent vport_1 pci/0000:4b:00.0/node_185: type node parent node_184 pci/0000:4b:00.0/node_184: type node parent node_0 pci/0000:4b:00.0/node_192: type node parent node_191 pci/0000:4b:00.0/node_191: type node parent node_190 pci/0000:4b:00.0/node_190: type node parent node_16 pci/0000:4b:00.0/node_14: type node parent node_5 pci/0000:4b:00.0/node_5: type node parent node_3 pci/0000:4b:00.0/node_13: type node parent node_4 pci/0000:4b:00.0/node_12: type node parent node_4 pci/0000:4b:00.0/node_11: type node parent node_4 pci/0000:4b:00.0/node_10: type node parent node_4 pci/0000:4b:00.0/node_9: type node parent node_4 pci/0000:4b:00.0/node_8: type node parent node_4 pci/0000:4b:00.0/node_7: type node parent node_4 pci/0000:4b:00.0/node_6: type node parent node_4 pci/0000:4b:00.0/node_4: type node parent node_3 pci/0000:4b:00.0/node_3: type node parent node_16 pci/0000:4b:00.0/node_16: type node parent node_15 pci/0000:4b:00.0/node_15: type node parent node_0 pci/0000:4b:00.0/node_2: type node parent node_1 pci/0000:4b:00.0/node_1: type node parent node_0 pci/0000:4b:00.0/node_0: type node pci/0000:4b:00.0/queue/0: type queue parent node_6 pci/0000:4b:00.0/queue/9: type queue parent node_6 pci/0000:4b:00.0/queue/18: type queue parent node_6 pci/0000:4b:00.0/queue/27: type queue parent node_6 pci/0000:4b:00.0/queue/36: type queue parent node_6 pci/0000:4b:00.0/queue/45: type queue parent node_6 pci/0000:4b:00.0/queue/54: type queue parent node_6 pci/0000:4b:00.0/queue/63: type queue parent node_6 pci/0000:4b:00.0/queue/1: type queue parent node_7 pci/0000:4b:00.0/queue/10: type queue parent node_7 pci/0000:4b:00.0/queue/19: type queue parent node_7 pci/0000:4b:00.0/queue/28: type queue parent node_7 pci/0000:4b:00.0/queue/37: type queue parent node_7 pci/0000:4b:00.0/queue/46: type queue parent node_7 pci/0000:4b:00.0/queue/55: type queue parent node_7 pci/0000:4b:00.0/queue/64: type queue parent node_7 pci/0000:4b:00.0/queue/2: type queue parent node_8 pci/0000:4b:00.0/queue/11: type queue parent node_8 pci/0000:4b:00.0/queue/20: type queue parent node_8 pci/0000:4b:00.0/queue/29: type queue parent node_8 pci/0000:4b:00.0/queue/38: type queue parent node_8 pci/0000:4b:00.0/queue/47: type queue parent node_8 pci/0000:4b:00.0/queue/56: type queue parent node_8 pci/0000:4b:00.0/queue/65: type queue parent node_8 pci/0000:4b:00.0/queue/3: type queue parent node_9 pci/0000:4b:00.0/queue/12: type queue parent node_9 pci/0000:4b:00.0/queue/21: type queue parent node_9 pci/0000:4b:00.0/queue/30: type queue parent node_9 pci/0000:4b:00.0/queue/39: type queue parent node_9 pci/0000:4b:00.0/queue/48: type queue parent node_9 pci/0000:4b:00.0/queue/57: type queue parent node_9 pci/0000:4b:00.0/queue/66: type queue parent node_9 pci/0000:4b:00.0/queue/4: type queue parent node_10 pci/0000:4b:00.0/queue/13: type queue parent node_10 pci/0000:4b:00.0/queue/22: type queue parent node_10 pci/0000:4b:00.0/queue/31: type queue parent node_10 pci/0000:4b:00.0/queue/40: type queue parent node_10 pci/0000:4b:00.0/queue/49: type queue parent node_10 pci/0000:4b:00.0/queue/58: type queue parent node_10 pci/0000:4b:00.0/queue/67: type queue parent node_10 pci/0000:4b:00.0/queue/5: type queue parent node_11 pci/0000:4b:00.0/queue/14: type queue parent node_11 pci/0000:4b:00.0/queue/23: type queue parent node_11 pci/0000:4b:00.0/queue/32: type queue parent node_11 pci/0000:4b:00.0/queue/41: type queue parent node_11 pci/0000:4b:00.0/queue/50: type queue parent node_11 pci/0000:4b:00.0/queue/59: type queue parent node_11 pci/0000:4b:00.0/queue/68: type queue parent node_11 pci/0000:4b:00.0/queue/6: type queue parent node_12 pci/0000:4b:00.0/queue/15: type queue parent node_12 pci/0000:4b:00.0/queue/24: type queue parent node_12 pci/0000:4b:00.0/queue/33: type queue parent node_12 pci/0000:4b:00.0/queue/42: type queue parent node_12 pci/0000:4b:00.0/queue/51: type queue parent node_12 pci/0000:4b:00.0/queue/60: type queue parent node_12 pci/0000:4b:00.0/queue/69: type queue parent node_12 pci/0000:4b:00.0/queue/7: type queue parent node_13 pci/0000:4b:00.0/queue/16: type queue parent node_13 pci/0000:4b:00.0/queue/25: type queue parent node_13 pci/0000:4b:00.0/queue/34: type queue parent node_13 pci/0000:4b:00.0/queue/43: type queue parent node_13 pci/0000:4b:00.0/queue/52: type queue parent node_13 pci/0000:4b:00.0/queue/61: type queue parent node_13 pci/0000:4b:00.0/queue/70: type queue parent node_13 pci/0000:4b:00.0/queue/8: type queue parent node_14 pci/0000:4b:00.0/queue/17: type queue parent node_14 pci/0000:4b:00.0/queue/26: type queue parent node_14 pci/0000:4b:00.0/queue/35: type queue parent node_14 pci/0000:4b:00.0/queue/44: type queue parent node_14 pci/0000:4b:00.0/queue/53: type queue parent node_14 pci/0000:4b:00.0/queue/62: type queue parent node_14 pci/0000:4b:00.0/queue/71: type queue parent node_14 pci/0000:4b:00.0/queue/104: type queue parent node_192 pci/0000:4b:00.0/queue/105: type queue parent node_192 pci/0000:4b:00.0/1: type vport parent node_185 pci/0000:4b:00.0/queue/72: type queue parent node_195 pci/0000:4b:00.0/queue/74: type queue parent node_195 pci/0000:4b:00.0/queue/76: type queue parent node_195 pci/0000:4b:00.0/queue/78: type queue parent node_195 pci/0000:4b:00.0/queue/80: type queue parent node_195 pci/0000:4b:00.0/queue/82: type queue parent node_195 pci/0000:4b:00.0/queue/84: type queue parent node_195 pci/0000:4b:00.0/queue/86: type queue parent node_195 pci/0000:4b:00.0/queue/73: type queue parent node_196 pci/0000:4b:00.0/queue/75: type queue parent node_196 pci/0000:4b:00.0/queue/77: type queue parent node_196 pci/0000:4b:00.0/queue/79: type queue parent node_196 pci/0000:4b:00.0/queue/81: type queue parent node_196 pci/0000:4b:00.0/queue/83: type queue parent node_196 pci/0000:4b:00.0/queue/85: type queue parent node_196 pci/0000:4b:00.0/queue/87: type queue parent node_196 pci/0000:4b:00.0/2: type vport parent node_185 pci/0000:4b:00.0/queue/88: type queue parent node_199 pci/0000:4b:00.0/queue/90: type queue parent node_199 pci/0000:4b:00.0/queue/92: type queue parent node_199 pci/0000:4b:00.0/queue/94: type queue parent node_199 pci/0000:4b:00.0/queue/96: type queue parent node_199 pci/0000:4b:00.0/queue/98: type queue parent node_199 pci/0000:4b:00.0/queue/100: type queue parent node_199 pci/0000:4b:00.0/queue/102: type queue parent node_199 pci/0000:4b:00.0/queue/89: type queue parent node_200 pci/0000:4b:00.0/queue/91: type queue parent node_200 pci/0000:4b:00.0/queue/93: type queue parent node_200 pci/0000:4b:00.0/queue/95: type queue parent node_200 pci/0000:4b:00.0/queue/97: type queue parent node_200 pci/0000:4b:00.0/queue/99: type queue parent node_200 pci/0000:4b:00.0/queue/101: type queue parent node_200 pci/0000:4b:00.0/queue/103: type queue parent node_200 BR, Michał