event/octeontx2: relax memory requirement for event timers

Message ID 20200107131738.11932-1-pbhagavatula@marvell.com (mailing list archive)
State Accepted, archived
Delegated to: Jerin Jacob
Headers
Series event/octeontx2: relax memory requirement for event timers |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-testing fail Testing issues
ci/iol-nxp-Performance success Performance Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/travis-robot success Travis build: passed
ci/Intel-compilation fail Compilation issues

Commit Message

Pavan Nikhilesh Bhagavatula Jan. 7, 2020, 1:17 p.m. UTC
  From: Pavan Nikhilesh <pbhagavatula@marvell.com>

Relax memory requirement for event timers when internal mempool used is
octeontx2 mempool.
Add debug log to print the memory used.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
---
 drivers/event/octeontx2/otx2_tim_evdev.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)
  

Comments

Jerin Jacob Jan. 15, 2020, 11:47 a.m. UTC | #1
On Tue, Jan 7, 2020 at 6:47 PM <pbhagavatula@marvell.com> wrote:
>
> From: Pavan Nikhilesh <pbhagavatula@marvell.com>
>
> Relax memory requirement for event timers when internal mempool used is
> octeontx2 mempool.
> Add debug log to print the memory used.
>
> Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>

Applied to dpdk-next-eventdev/master. Thanks.

> ---
>  drivers/event/octeontx2/otx2_tim_evdev.c | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/event/octeontx2/otx2_tim_evdev.c b/drivers/event/octeontx2/otx2_tim_evdev.c
> index b275c6922..cd0dcde24 100644
> --- a/drivers/event/octeontx2/otx2_tim_evdev.c
> +++ b/drivers/event/octeontx2/otx2_tim_evdev.c
> @@ -327,7 +327,11 @@ otx2_tim_ring_create(struct rte_event_timer_adapter *adptr)
>                         tim_optimze_bkt_param(tim_ring);
>         }
>
> -       tim_ring->nb_chunks = tim_ring->nb_chunks * tim_ring->nb_bkts;
> +       if (tim_ring->disable_npa)
> +               tim_ring->nb_chunks = tim_ring->nb_chunks * tim_ring->nb_bkts;
> +       else
> +               tim_ring->nb_chunks = tim_ring->nb_chunks + tim_ring->nb_bkts;
> +
>         /* Create buckets. */
>         tim_ring->bkt = rte_zmalloc("otx2_tim_bucket", (tim_ring->nb_bkts) *
>                                     sizeof(struct otx2_tim_bkt),
> @@ -376,6 +380,11 @@ otx2_tim_ring_create(struct rte_event_timer_adapter *adptr)
>                          RTE_EVENT_TYPE_TIMER);
>         sso_xae_reconfigure(dev->event_dev);
>
> +       otx2_tim_dbg("Total memory used %"PRIu64"MB\n",
> +                       (uint64_t)(((tim_ring->nb_chunks * tim_ring->chunk_sz)
> +                       + (tim_ring->nb_bkts * sizeof(struct otx2_tim_bkt))) /
> +                       BIT_ULL(20)));
> +
>         return rc;
>
>  chnk_mem_err:
> --
> 2.17.1
>
  

Patch

diff --git a/drivers/event/octeontx2/otx2_tim_evdev.c b/drivers/event/octeontx2/otx2_tim_evdev.c
index b275c6922..cd0dcde24 100644
--- a/drivers/event/octeontx2/otx2_tim_evdev.c
+++ b/drivers/event/octeontx2/otx2_tim_evdev.c
@@ -327,7 +327,11 @@  otx2_tim_ring_create(struct rte_event_timer_adapter *adptr)
 			tim_optimze_bkt_param(tim_ring);
 	}
 
-	tim_ring->nb_chunks = tim_ring->nb_chunks * tim_ring->nb_bkts;
+	if (tim_ring->disable_npa)
+		tim_ring->nb_chunks = tim_ring->nb_chunks * tim_ring->nb_bkts;
+	else
+		tim_ring->nb_chunks = tim_ring->nb_chunks + tim_ring->nb_bkts;
+
 	/* Create buckets. */
 	tim_ring->bkt = rte_zmalloc("otx2_tim_bucket", (tim_ring->nb_bkts) *
 				    sizeof(struct otx2_tim_bkt),
@@ -376,6 +380,11 @@  otx2_tim_ring_create(struct rte_event_timer_adapter *adptr)
 			 RTE_EVENT_TYPE_TIMER);
 	sso_xae_reconfigure(dev->event_dev);
 
+	otx2_tim_dbg("Total memory used %"PRIu64"MB\n",
+			(uint64_t)(((tim_ring->nb_chunks * tim_ring->chunk_sz)
+			+ (tim_ring->nb_bkts * sizeof(struct otx2_tim_bkt))) /
+			BIT_ULL(20)));
+
 	return rc;
 
 chnk_mem_err: