• Vladimir Oltean's avatar
    net/sched: taprio: don't segment unnecessarily · 39b02d6d
    Vladimir Oltean authored
    Improve commit 497cc002 ("taprio: Handle short intervals and large
    packets") to only perform segmentation when skb->len exceeds what
    taprio_dequeue() expects.
    
    In practice, this will make the biggest difference when a traffic class
    gate is always open in the schedule. This is because the max_frm_len
    will be U32_MAX, and such large skb->len values as Kurt reported will be
    sent just fine unsegmented.
    
    What I don't seem to know how to handle is how to make sure that the
    segmented skbs themselves are smaller than the maximum frame size given
    by the current queueMaxSDU[tc]. Nonetheless, we still need to drop
    those, otherwise the Qdisc will hang.
    Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Reviewed-by: Kurt Kanzenbach's avatarKurt Kanzenbach <kurt@linutronix.de>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    39b02d6d
sch_taprio.c 61.5 KB