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