* Schedule one buffer
 *
 * Like odp_schedule(), but is *quaranteed* to schedule only one buffer at
a time.
 * Each call will perform global scheduling and will reserve one buffer per
 * thread in maximum. When called after other schedule functions, returns
 * locally stored buffers (if any) first, and then continues in the global
 * scheduling mode.
 *
 * This function optimises priority scheduling (over throughput).

As Taras commented, some implementations will not be able to truly schedule
only *one* event at a time. Scheduler implementations could use a pipelined
designed where events are scheduled in advance so that the next event can
be prefetched while the current event is being processed. This will limit
concurrent processing (e.g. an idle core could have received that second
event and process it concurrently, this would have reduced latency for that
event).

odp_schedule_one() has the same functionality as odp_schedule(). However it
is supposed to guarantee only one event at a time is scheduled in order to
prioritize latency to the potential detriment of throughput.

We question whether odp_schedule_one() actually has to *guarantee* only one
event at a time. The functionality provided is the same for these two
calls. One call is focused on throughput (and minimizing overhead, e.g.by
allowing prescheduling and do prefetching), the other is focused on latency
(at the cost of overhead). An ODP implementation could use the same
implementation for both functions (some ODP implementations will always
schedule events in advance, other implementations will always only schedule
one event at a time). odp_schedule_one() just hints the ODP implementations
that latency and concurrent processing is more important but this is not a
strict requirement.

Maybe we only need one schedule call and possibly use a different mechanism
to hint the ODP scheduler whether to optimize for throughput (e.g.
preschedule/prefetch) or latency.

--Ola
_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to