Optimized scheduler priority queue and packet IO poll queue implementation 
with a ring based data structure. Scheduler performance is improved tens of 
percents in a typical test case. Also there's no more dependency to pools, 
buffer and queue APIs.


l2fwd packet rate, odp-linux with dpdk, 2 x 10GE
------------------------------------------------
                        cores
mode            1       2       4       8
parallel        +24,1%  +47,2%  +48,1%  +53,2%
atomic          +20,7%  +35,9%  +37,5%  +44,1%
ordered         +9,2%   +18,2%  +38,2%  +39,5%


execution time of odp_scheduling:
---------------------------------
                        cores
                4       8       10      20                      
master          15,3s   62,5s   109s    884,9s
patch           13s     47s     74s     310s
speed up        1,18    1,33    1,47    2,85


Petri Savolainen (6):
  linux-gen: sched: ring based priority queues
  linux-gen: sched: ring based pktio command queues
  linux-gen: sched: increase number of pktin
  linux-gen: sched: pktio poll loop optimization
  linux-gen: sched: increase max dequeue batch size
  linux-gen: sched: call schedule_release_atomic directly

 .../linux-generic/include/odp_schedule_internal.h  |   5 +-
 platform/linux-generic/odp_schedule.c              | 577 +++++++++++----------
 2 files changed, 314 insertions(+), 268 deletions(-)

-- 
2.8.1

Reply via email to