sched: fix grinder bug
authorStephen Hemminger <stephen@networkplumber.org>
Wed, 14 May 2014 16:25:27 +0000 (09:25 -0700)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Thu, 22 May 2014 14:14:36 +0000 (16:14 +0200)
commit1f1f3a0078c449e82f81be3d934c7f24441e3db4
tree8b048548e6b5219bf5f27ebe642581f6dc51b2ad
parentdc05cabd98e06b96a21b715e9841bb32e57a41ad
sched: fix grinder bug

The rte_scheduler will get stuck and not deliver any more packets
if there are two active subports and then one of them stops enqueing
more packets. This is because of a bug in how the grinder state machines
are managed.

If a non-zero grinder is assigned (but not yet active), then the dequeue
would miss it and always return zero packets. The cure is to always
do a first pass over all grinders.

Signed-off-by: Stephen Hemminger <shemming@brocade.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
lib/librte_sched/rte_sched.c