Changes in v6
- Add the new APIs odp_schedule_order_copy(), odp_schedule_order_sustain(),
  and odp_order_sustain_set() to define and implement order copying and
  the sustain attribute. An event that sustains order does not satisfy
  ordering when enqueued, permitting multiple events to share the same
  order. By default events do not sustain order, and hence satisfy order
  when enqueued. These APIs permit ordered handling of fragmentation.

Changes in v5
- Document the chaining support added to odp_queue_enq_multi() added in v4

Changes in v4
- Extend odp_queue_enq_multi() to support chained enqs for ordered queues.
  This allows, e.g., packets to be fragmented and retain order as the
  fragments progress through the system.  If an element in the event
  list passed to odp_queue_enq_multi() originates from an ordered queue,
  then subsequent unordered elements following it in the list will be chained
  to the ordered element such that they participate in its ordering relative
  to other events originating from its source queue.

Changes in v3
- Refine API for odp_schedule_release_ordered() and implement it
- Numerous bug fixes and cleanup

--
Changes in v2
- Incorporate Stuart's review comments
- Add odp_schedule_group_count() API to return the count of threads belonging
  to a schedule group

--
This patch series implements (most of) Petri's latest scheduler changes.
Major changes include:

1. Implement scheduler groups, including additional APIs to lookup, join,
   and leave scheduler groups.

2. Implement ordered queues.

Bill Fischofer (11):
  api: schedule: additional scheduler group functions
  validation: schedule: initialize queue and pool parameters
  linux-generic: schedule: implement scheduler groups
  linux-generic: queue: implement ordered queues
  api: schedule: revised definition of odp_schedule_release_ordered
  linux-generic: schedule: implement odp_schedule_release_ordered()
  linux-generic: schedule: implement odp_schedule_prefetch()
  api: queue: document ordered chain enq support
  linux-generic: queue: add ordered chain enq support
  api: schedule: add APIs for order copying and sustaining
  linux-generic: schedule: implement order copying and sustaining

 include/odp/api/config.h                           |   5 +
 include/odp/api/queue.h                            |  23 ++
 include/odp/api/schedule.h                         | 144 ++++++-
 .../include/odp/plat/schedule_types.h              |   4 +
 .../linux-generic/include/odp_buffer_internal.h    |  10 +
 .../linux-generic/include/odp_queue_internal.h     |   4 +
 .../linux-generic/include/odp_schedule_internal.h  |   2 +-
 platform/linux-generic/odp_pool.c                  |   3 +
 platform/linux-generic/odp_queue.c                 | 431 +++++++++++++++++++--
 platform/linux-generic/odp_schedule.c              | 187 ++++++++-
 platform/linux-generic/odp_thread.c                |  25 +-
 test/validation/scheduler/scheduler.c              |   4 +
 12 files changed, 788 insertions(+), 54 deletions(-)

-- 
2.1.4

_______________________________________________
lng-odp mailing list
lng-odp@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to