> -----Original Message-----
> From: pbhagavat...@marvell.com <pbhagavat...@marvell.com>
> Sent: Sunday, June 2, 2019 12:24 AM
> To: Jerin Jacob Kollanukkaran <jer...@marvell.com>; Pavan Nikhilesh
> Bhagavatula <pbhagavat...@marvell.com>
> Cc: dev@dpdk.org
> Subject: [dpdk-dev] [PATCH 32/44] event/octeontx2: add devargs to modify
> chunk slots
> 
> From: Pavan Nikhilesh <pbhagavat...@marvell.com>
> 
> Add devargs support to modify number of chunk slots. Chunks are used to store
> event timers, a chunk can be visualised as an array where the last element 
> points
> to the next chunk and rest of them are used to store events. TIM traverses the
> list of chunks and enqueues the event timers to SSO.
> If no argument is passed then a default value of 255 is taken.
> Example:
> 
>       --dev "0002:0e:00.0,tim_chnk_slots=511"
> 
> Signed-off-by: Pavan Nikhilesh <pbhagavat...@marvell.com>
> ---
>  drivers/event/octeontx2/otx2_tim_evdev.c | 11 ++++++++++-
> drivers/event/octeontx2/otx2_tim_evdev.h |  2 ++
>  2 files changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/event/octeontx2/otx2_tim_evdev.c
> b/drivers/event/octeontx2/otx2_tim_evdev.c
> index 9cceafd77..bba6cc609 100644
> --- a/drivers/event/octeontx2/otx2_tim_evdev.c
> +++ b/drivers/event/octeontx2/otx2_tim_evdev.c
> @@ -240,7 +240,7 @@ otx2_tim_ring_create(struct rte_event_timer_adapter
> *adptr)
>       tim_ring->tck_nsec = RTE_ALIGN_MUL_CEIL(rcfg->timer_tick_ns, 10);
>       tim_ring->max_tout = rcfg->max_tmo_ns;
>       tim_ring->nb_bkts = (tim_ring->max_tout / tim_ring->tck_nsec);
> -     tim_ring->chunk_sz = OTX2_TIM_RING_DEF_CHNK_SZ;
> +     tim_ring->chunk_sz = dev->chunk_sz;
>       nb_timers = rcfg->nb_timers;
>       tim_ring->disable_npa = dev->disable_npa;
> 
> @@ -355,6 +355,7 @@ otx2_tim_caps_get(const struct rte_eventdev *evdev,
> uint64_t flags,  }
> 
>  #define OTX2_TIM_DISABLE_NPA "tim_disable_npa"
> +#define OTX2_TIM_CHNK_SLOTS  "tim_chnk_slots"
> 
>  static void
>  tim_parse_devargs(struct rte_devargs *devargs, struct otx2_tim_evdev *dev)
> @@ -370,6 +371,8 @@ tim_parse_devargs(struct rte_devargs *devargs, struct
> otx2_tim_evdev *dev)
> 
>       rte_kvargs_process(kvlist, OTX2_TIM_DISABLE_NPA,
>                          &parse_kvargs_flag, &dev->disable_npa);
> +     rte_kvargs_process(kvlist, OTX2_TIM_CHNK_SLOTS,
> +                        &parse_kvargs_value, &dev->chunk_slots);
>  }
> 
>  void
> @@ -423,6 +426,12 @@ otx2_tim_init(struct rte_pci_device *pci_dev, struct
> otx2_dev *cmn_dev)
>               goto mz_free;
>       }
> 
> +     if (!dev->chunk_slots)
> +             dev->chunk_sz = OTX2_TIM_RING_DEF_CHNK_SZ;
> +     else
> +             dev->chunk_sz = (dev->chunk_slots + 1) *
> +                     OTX2_TIM_CHUNK_ALIGNMENT;

Please check the chuck_sz upper bound also.


Reply via email to