[dpdk-dev] [PATCH v3 08/12] event/octeontx: add burst mode for timer arm

Jerin Jacob jerin.jacob at caviumnetworks.com
Sun Apr 8 10:06:16 CEST 2018


-----Original Message-----
> Date: Tue,  3 Apr 2018 20:35:10 +0530
> From: Pavan Nikhilesh <pbhagavatula at caviumnetworks.com>
> To: jerin.jacob at caviumnetworks.com, santosh.shukla at caviumnetworks.com,
>  erik.g.carrillo at intel.com
> Cc: dev at dpdk.org, Pavan Nikhilesh <pbhagavatula at caviumnetworks.com>
> Subject: [dpdk-dev] [PATCH v3 08/12] event/octeontx: add burst mode for
>  timer arm
> X-Mailer: git-send-email 2.16.3
> 
> Signed-off-by: Pavan Nikhilesh <pbhagavatula at caviumnetworks.com>
> ---
>  drivers/event/octeontx/timvf_evdev.c  |  1 +
>  drivers/event/octeontx/timvf_evdev.h  |  3 ++
>  drivers/event/octeontx/timvf_worker.c | 38 ++++++++++++++
>  drivers/event/octeontx/timvf_worker.h | 95 +++++++++++++++++++++++++++++++++++
>  4 files changed, 137 insertions(+)
> 
> diff --git a/drivers/event/octeontx/timvf_evdev.c b/drivers/event/octeontx/timvf_evdev.c
> index a32892107..b23500e0d 100644
> --- a/drivers/event/octeontx/timvf_evdev.c
> +++ b/drivers/event/octeontx/timvf_evdev.c
> @@ -333,6 +333,7 @@ timvf_timer_adapter_caps_get(const struct rte_eventdev *dev, uint64_t flags,
>  	else
>  		timvf_ops.arm_burst = timvf_timer_reg_burst_mp;
>  
> +	timvf_ops.arm_tmo_tick_burst = timvf_timer_reg_brst;

IMO, To inline with spec name, may we could use arm_burst/cancel_burst instead of
reg_brst or unreg_burst.

>  	timvf_ops.cancel_burst = timvf_timer_unreg_burst;
>  
>  	*caps = RTE_EVENT_TIMER_ADAPTER_CAP_INTERNAL_PORT;
> diff --git a/drivers/event/octeontx/timvf_evdev.h b/drivers/event/octeontx/timvf_evdev.h
> index ab2de678f..d8a6d111f 100644
> --- a/drivers/event/octeontx/timvf_evdev.h
> +++ b/drivers/event/octeontx/timvf_evdev.h
> @@ -200,6 +200,9 @@ uint16_t timvf_timer_reg_burst_sp(const struct rte_event_timer_adapter *adptr,
>  		struct rte_event_timer **tim, const uint16_t nb_timers);
>  uint16_t timvf_timer_reg_burst_mp(const struct rte_event_timer_adapter *adptr,
>  		struct rte_event_timer **tim, const uint16_t nb_timers);
> +uint16_t timvf_timer_reg_brst(const struct rte_event_timer_adapter *adptr,
> +		struct rte_event_timer **tim, const uint64_t timeout_tick,
> +		const uint16_t nb_timers);
>  void timvf_set_chunk_refill(struct timvf_ring * const timr);
>  
>  #endif /* __TIMVF_EVDEV_H__ */
> diff --git a/drivers/event/octeontx/timvf_worker.c b/drivers/event/octeontx/timvf_worker.c
> index 139dfdc07..f4f40d150 100644
> --- a/drivers/event/octeontx/timvf_worker.c
> +++ b/drivers/event/octeontx/timvf_worker.c
> @@ -113,6 +113,44 @@ timvf_timer_reg_burst_mp(const struct rte_event_timer_adapter *adptr,
>  	return index;
>  }
>  
> +/* Burst mode functions */
> +static inline int
> +timvf_add_entry_brst(struct timvf_ring * const timr, const uint16_t rel_bkt,
> +		struct rte_event_timer ** const tim,
> +		const struct tim_mem_entry *ents,
> +		const uint16_t nb_timers)
> +{
> +	int16_t rem;
> +	int16_t crem = 0;
> +	uint8_t lock_cnt;
> +	uint16_t index = 0;
> +	uint16_t chunk_remainder = 0;

Looks like above all assignments to 'zero' is unnecessary.



More information about the dev mailing list