[dpdk-dev] [PATCH 32/44] event/octeontx2: add devargs to modify chunk slots
Jerin Jacob Kollanukkaran
jerinj at marvell.com
Mon Jun 17 10:24:05 CEST 2019
> -----Original Message-----
> From: pbhagavatula at marvell.com <pbhagavatula at marvell.com>
> Sent: Sunday, June 2, 2019 12:24 AM
> To: Jerin Jacob Kollanukkaran <jerinj at marvell.com>; Pavan Nikhilesh
> Bhagavatula <pbhagavatula at marvell.com>
> Cc: dev at dpdk.org
> Subject: [dpdk-dev] [PATCH 32/44] event/octeontx2: add devargs to modify
> chunk slots
>
> From: Pavan Nikhilesh <pbhagavatula at 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 <pbhagavatula at 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.
More information about the dev
mailing list