Hey, > -----Original Message----- > From: Varghese, Vipin > Sent: Thursday, March 1, 2018 7:35 PM > To: dev@dpdk.org; Van Haaren, Harry <harry.van.haa...@intel.com> > Cc: Varghese, Vipin <vipin.vargh...@intel.com> > Subject: [PATCH 1/2] event/sw: code refractor to reduce the fetch stall > > With rearranging the code to prefetch the contents before > loop check increases performance from single and multistage > atomic pipeline. > > Signed-off-by: Vipin Varghese <vipin.vargh...@intel.com>
There seems to be a compilation issue with this, see "const" in flow_id. The flow_id variable is updated later, so it can't be marked const. After the compilation fix, I see a small performance improvement here, so you can include my Ack for V2 of this patch: Acked-by: Harry van Haaren <harry.van.haa...@intel.com > --- > drivers/event/sw/sw_evdev_scheduler.c | 18 +++++++++++++----- > 1 file changed, 13 insertions(+), 5 deletions(-) > > diff --git a/drivers/event/sw/sw_evdev_scheduler.c > b/drivers/event/sw/sw_evdev_scheduler.c > index e3a41e0..70d1970 100644 > --- a/drivers/event/sw/sw_evdev_scheduler.c > +++ b/drivers/event/sw/sw_evdev_scheduler.c > @@ -44,12 +44,13 @@ sw_schedule_atomic_to_cq(struct sw_evdev *sw, struct > sw_qid * const qid, > uint32_t qid_id = qid->id; > > iq_dequeue_burst(sw, &qid->iq[iq_num], qes, count); > - for (i = 0; i < count; i++) { > - const struct rte_event *qe = &qes[i]; > - const uint16_t flow_id = SW_HASH_FLOWID(qes[i].flow_id); > - struct sw_fid_t *fid = &qid->fids[flow_id]; > - int cq = fid->cq; > > + const struct rte_event *qe = &qes[0]; > + const uint16_t flow_id = SW_HASH_FLOWID(qes[0].flow_id); ^^^^^^ remove the const here.