• Eric Dumazet's avatar
    net_sched: sch_fq: change how @inactive is tracked · ee9af4e1
    Eric Dumazet authored
    Currently, when one fq qdisc has no more packets to send, it can still
    have some flows stored in its RR lists (q->new_flows & q->old_flows)
    
    This was a design choice, but what is a bit disturbing is that
    the inactive_flows counter does not include the count of empty flows
    in RR lists.
    
    As next patch needs to know better if there are active flows,
    this change makes inactive_flows exact.
    
    Before the patch, following command on an empty qdisc could have returned:
    
    lpaa17:~# tc -s -d qd sh dev eth1 | grep inactive
      flows 1322 (inactive 1316 throttled 0)
      flows 1330 (inactive 1325 throttled 0)
      flows 1193 (inactive 1190 throttled 0)
      flows 1208 (inactive 1202 throttled 0)
    
    After the patch, we now have:
    
    lpaa17:~# tc -s -d qd sh dev eth1 | grep inactive
      flows 1322 (inactive 1322 throttled 0)
      flows 1330 (inactive 1330 throttled 0)
      flows 1193 (inactive 1193 throttled 0)
      flows 1208 (inactive 1208 throttled 0)
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    ee9af4e1
sch_fq.c 26.9 KB