[dpdk-dev] [PATCH] event/octeontx2: use wfe while waiting for head

Honnappa Nagarahalli Honnappa.Nagarahalli at arm.com
Wed Dec 18 18:42:07 CET 2019


<snip>

> >> >>
> >> >>  static __rte_always_inline void
> >> >> -otx2_ssogws_head_wait(struct otx2_ssogws *ws, const uint8_t
> >> >wait_flag)
> >> >> +otx2_ssogws_head_wait(struct otx2_ssogws *ws)
> >> >>  {
> >> >> -	while (wait_flag && !(otx2_read64(ws->tag_op) &
> >> >BIT_ULL(35)))
> >> >> +#ifdef RTE_ARCH_ARM64
> >> >> +	uint64_t tag;
> >> >> +
> >> >> +	asm volatile (
> >> >> +			"	ldr %[tag], [%[tag_op]]		\n"
> >> >"ldxr" should be used, exclusive-load is required to "monitor" the
> >> >location, then a write to the location will cause clear of the
> >> >exclusive monitor, thus a wake up event is generated implicitly.
> >>
> >> As I have mentioned in the commit log:
> >> "SSO signals EVENTI to allow cores to exit from wfe when they are
> >> waiting for specific operations in which one of them is setting HEAD
> >> bit in GWS_TAG."
> >If you have other expected wake up sources, that is ok. Just curious is
> >this signal explicitly sent to quit WFE?
> 
> AFAIK yes, explicitly sent to quit WFE.
Pavan, is the wake up event sent to the particular core that is waiting on this head or is it sent to all the cores?


More information about the dev mailing list