v3: fix checkpatch.pl errors and warnings.
v2: rebase to Matias' ordered queue impl, fix clang compilation.

This patchset provides an alternate scheduler which can be enabled
with --enable-schedule-iquery configuration option.

Run l2fwd and odp_scheduling performance test programs show equivalent
performance with the improved default scheduler, and can benifit use
cases of fewer queue count such as microservices, etc.

Supported parallel, atomic and ordered queue, with pktio polling.
ordered queue re-uses the algorithm in default scheduler.
pktio polling re-uses the same algorithm in default scheduler.

l2fwd performance: 2 x 10GE, 64B frame, Bi-directional
-- DPDK pktgen --
-- ODP-linux l2fwd (DPDK pktio) --
2 x E5-2650 v3 @ 2.30GHz 40 cores

     "DIRECT (REFERENCE)"      PARALLEL         ATOMIC
core default (improved, Petri) default  iquery  default  iquery
1    20%                       16%      16%     16%      16%
2    38%                       27%      28%     26%      24%
4    37%                       16%      16%     5%       5%

* Multi-core scaling downgrade may be related to software DPDK pktgen receive 
issue

Yi He (4):
  linux-gen: sched: solve ordered context inversion
  linux-gen: sched: add unsched_queue callback
  linux-gen: add generic bitmaps and iterators
  linux-gen: add interests query (iquery) scheduler

 platform/linux-generic/Makefile.am                 |    3 +
 .../linux-generic/include/odp_bitmap_internal.h    |  320 ++++
 platform/linux-generic/include/odp_schedule_if.h   |    5 +
 platform/linux-generic/m4/odp_schedule.m4          |    7 +
 platform/linux-generic/odp_bitmap.c                |  315 ++++
 platform/linux-generic/odp_queue.c                 |    7 +-
 platform/linux-generic/odp_schedule.c              |   13 +-
 platform/linux-generic/odp_schedule_if.c           |    6 +
 platform/linux-generic/odp_schedule_iquery.c       | 1523 ++++++++++++++++++++
 platform/linux-generic/odp_schedule_sp.c           |   13 +-
 10 files changed, 2209 insertions(+), 3 deletions(-)
 create mode 100644 platform/linux-generic/include/odp_bitmap_internal.h
 create mode 100644 platform/linux-generic/odp_bitmap.c
 create mode 100644 platform/linux-generic/odp_schedule_iquery.c

--
2.7.4

Reply via email to