• Vladimir Oltean's avatar
    net: enetc: ensure we always have a minimum number of TXQs for stack · 800db2d1
    Vladimir Oltean authored
    Currently it can happen that an mqprio qdisc is installed with num_tc 8,
    and this will reserve 8 (out of 8) TXQs for the network stack. Then we
    can attach an XDP program, and this will crop 2 TXQs, leaving just 6 for
    mqprio. That's not what the user requested, and we should fail it.
    
    On the other hand, if mqprio isn't requested, we still give the 8 TXQs
    to the network stack (with hashing among a single traffic class), but
    then, cropping 2 TXQs for XDP is fine, because the user didn't
    explicitly ask for any number of TXQs, so no expectations are violated.
    
    Simply put, the logic that mqprio should impose a minimum number of TXQs
    for the network never existed. Let's say (more or less arbitrarily) that
    without mqprio, the driver expects a minimum number of TXQs equal to the
    number of CPUs (on NXP LS1028A, that is either 1, or 2). And with mqprio,
    mqprio gives the minimum required number of TXQs.
    Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Reviewed-by: default avatarSimon Horman <simon.horman@corigine.com>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    800db2d1
enetc.h 15 KB