Re: [PATCH net-next 04/13] net/sched: taprio: allow user input of per-tc max SDU
flat view
From: Vladimir Oltean <vladimir.oltean@nxp.com>
Date: 2022-09-14 23:12:06
Also in:
lkml
On Wed, Sep 14, 2022 at 04:03:26PM -0700, Vinicius Costa Gomes wrote:
Could you please add an example of the 'tc' command syntax you are thinking about?
I was working with this, as a matter of fact: #!/bin/bash h1=eno0 h2=eno2 swp1=swp0 swp2=swp4 ip link set $h2 address 00:01:02:03:04:05 ip link set $h1 up ip link set $h2 up tc qdisc del dev $swp1 root || : ip link del br0 || : ip link add br0 type bridge && ip link set br0 up ip link set $swp1 master br0 && ip link set $swp1 up ip link set $swp2 master br0 && ip link set $swp2 up tc qdisc replace dev $swp1 root taprio \ num_tc 8 \ map 0 1 2 3 4 5 6 7 \ queues 1@0 1@1 1@2 1@3 1@4 1@5 1@6 1@7 \ base-time 0 \ sched-entry S 0x7f 990000 \ sched-entry S 0x80 10000 \ max-sdu 0 0 0 0 0 0 0 200 \ flags 0x2 echo "Run:" echo "isochron rcv --interface $h1 &" echo "isochron send --interface $h2 --client 127.0.0.1 --cycle-time 0.001 --frame-size 60 --omit-sync --num-frames 10 --priority 7 --vid 0" I've also tested it in software mode, and at least on my system, a 10 us interval is not really enough for the qdisc to make forward progress and dequeue any packet. My application freezes until I destroy the qdisc and re-create it using a larger interval for TC7. I'll debug that some more. I was thinking, after the basic queueMaxSDU feature is merged, maybe taprio could automatically further limit queueMaxSDU based on the smallest intervals from the schedule. Something like a generalization of vsc9959_tas_guard_bands_update(), basically.
Another point to think about: does it make sense to allow 'only' the max-sdu to be changed, i.e. the user doesn't set an a schedule, nor a map, only the max-sdu information.
Maybe, I haven't tried. I think iproute2 doesn't currently support skipping TCA_TAPRIO_ATTR_SCHED_ENTRY_LIST.