• Ben Hutchings's avatar
    sfc: Add TX queues for high-priority traffic · 94b274bf
    Ben Hutchings authored
    Implement the ndo_setup_tc() operation with 2 traffic classes.
    
    Current Solarstorm controllers do not implement TX queue priority, but
    they do allow queues to be 'paced' with an enforced delay between
    packets.  Paced and unpaced queues are scheduled in round-robin within
    two separate hardware bins (paced queues with a large delay may be
    placed into a third bin temporarily, but we won't use that).  If there
    are queues in both bins, the TX scheduler will alternate between them.
    
    If we make high-priority queues unpaced and best-effort queues paced,
    and high-priority queues are mostly empty, a single high-priority queue
    can then instantly take 50% of the packet rate regardless of how many
    of the best-effort queues have descriptors outstanding.
    
    We do not actually want an enforced delay between packets on best-
    effort queues, so we set the pace value to a reserved value that
    actually results in a delay of 0.
    Signed-off-by: default avatarBen Hutchings <bhutchings@solarflare.com>
    94b274bf
selftest.c 21.2 KB