• V
    net/sched: taprio: warn about missing size table · a3d91b2c
    Vladimir Oltean 提交于
    Vinicius intended taprio to take the L1 overhead into account when
    estimating packet transmission time through user input, specifically
    through the qdisc size table (man tc-stab).
    
    Something like this:
    
    tc qdisc replace dev $eth root stab overhead 24 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 0x7e 9000000 \
    	sched-entry S 0x82 1000000 \
    	max-sdu 0 0 0 0 0 0 0 200 \
    	flags 0x0 clockid CLOCK_TAI
    
    Without the overhead being specified, transmission times will be
    underestimated and will cause late transmissions. For an offloading
    driver, it might even cause TX hangs if there is no open gate large
    enough to send the maximum sized packets for that TC (including L1
    overhead). Properly knowing the L1 overhead will ensure that we are able
    to auto-calculate the queueMaxSDU per traffic class just right, and
    avoid these hangs due to head-of-line blocking.
    
    We can't make the stab mandatory due to existing setups, but we can warn
    the user that it's important with a warning netlink extack.
    
    Link: https://patchwork.kernel.org/project/netdevbpf/patch/20220505160357.298794-1-vladimir.oltean@nxp.com/Signed-off-by: NVladimir Oltean <vladimir.oltean@nxp.com>
    Reviewed-by: NKurt Kanzenbach <kurt@linutronix.de>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    a3d91b2c
sch_taprio.c 59.1 KB