v2: * Addressed both comments from Yi He * Fixed a clang compilation issue
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 | 599 ++++++++++++--------- 2 files changed, 338 insertions(+), 266 deletions(-) -- 2.8.1