muvarov replied on github web page: platform/linux-generic/odp_schedule_basic.c @@ -846,19 +846,19 @@ static inline int do_schedule_grp(odp_queue_t *out_queue, odp_event_t out_ev[], * priorities. Stop scheduling queue when pktio * has been stopped. */ if (pktin) { - int atomic = queue_is_atomic(qi); - int num_pkt = poll_pktin(qi, atomic); + int stash = !ordered; + int num_pkt = poll_pktin(qi, stash); if (odp_unlikely(num_pkt < 0)) continue; - if (num_pkt == 0 || !atomic) { + if (num_pkt == 0 || !stash) {
Comment: it can be if (num_pkt == 0 || ordered), stash variable looks like not needed in this patch. > Bill Fischofer(Bill-Fischofer-Linaro) wrote: > That makes sense. >> Petri Savolainen(psavol) wrote: >> Line is was not changed but moved. Anyway, added name in v2. >>> Petri Savolainen(psavol) wrote: >>> ODP_DBG() added in v2 >>>> Petri Savolainen(psavol) wrote: >>>> I wanted to be conservative and not change synchronization of parallel >>>> queues yet. I'll do another patch on top, so that it's easy to undo >>>> parallel optimization later if necessary. >>>>> Bill Fischofer(Bill-Fischofer-Linaro) wrote: >>>>> Worth an `ODP_DBG()` here? At minimum I'd think we'd want to capture some >>>>> sort of statistic for these drops. >>>>> >>>>> Same comment for the rest of the similar drops in this commit. >>>>>> Bill Fischofer(Bill-Fischofer-Linaro) wrote: >>>>>> If we relax this to cover atomic and parallel queues then this would >>>>>> simply be: >>>>>> ``` >>>>>> int use_stash = !queue_is_ordered(qi); >>>>>> ``` >>>>>>> Bill Fischofer(Bill-Fischofer-Linaro) wrote: >>>>>>> Is it really necessary to restrict this optimization to atomic queues? >>>>>>> Ordered obviously cannot be stashed, but parallel queues make no >>>>>>> ordering guarantees so accelerating them like this would also seem >>>>>>> reasonable. In that case the `atomic` variable to this function would >>>>>>> be better named something like `use_stash` . >>>>>>>> Bill Fischofer(Bill-Fischofer-Linaro) wrote: >>>>>>>> Might be nice to say which interface wasn't started here for debug >>>>>>>> purposes since many could be in play. https://github.com/Linaro/odp/pull/504#discussion_r171871292 updated_at 2018-03-02 15:08:55