Message ID | 20210225120144.2591-1-pbhagavatula@marvell.com (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Jerin Jacob |
Headers | show |
Series | app/eventdev: fix timeout accuracy | expand |
Context | Check | Description |
---|---|---|
ci/iol-abi-testing | success | Testing PASS |
ci/iol-testing | success | Testing PASS |
ci/iol-mellanox-Functional | success | Functional Testing PASS |
ci/github-robot | success | github build: passed |
ci/travis-robot | fail | travis build: failed |
ci/iol-mellanox-Performance | success | Performance Testing PASS |
ci/iol-intel-Performance | success | Performance Testing PASS |
ci/intel-Testing | success | Testing PASS |
ci/iol-intel-Functional | success | Functional Testing PASS |
ci/Intel-compilation | success | Compilation OK |
ci/checkpatch | warning | coding style issues |
Hi Pavan, > -----Original Message----- > From: dev <dev-bounces@dpdk.org> On Behalf Of > pbhagavatula@marvell.com > Sent: Thursday, February 25, 2021 6:02 AM > To: jerinj@marvell.com > Cc: dev@dpdk.org; Pavan Nikhilesh <pbhagavatula@marvell.com>; > stable@dpdk.org > Subject: [dpdk-dev] [PATCH] app/eventdev: fix timeout accuracy > > From: Pavan Nikhilesh <pbhagavatula@marvell.com> > > Round timeout ticks when converting from nanoseconds, this prevents loss > of accuracy and deviation from requested timeout value. > > Fixes: d008f20bce23 ("app/eventdev: add event timer adapter as a > producer") > Cc: stable@dpdk.org > > Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com> This looks good to me: Reviewed-by: Erik Gabriel Carrillo <erik.g.carrillo@intel.com> Thanks, Erik
On Wed, Mar 17, 2021 at 11:30 PM Carrillo, Erik G <erik.g.carrillo@intel.com> wrote: > > Hi Pavan, > > > -----Original Message----- > > From: dev <dev-bounces@dpdk.org> On Behalf Of > > pbhagavatula@marvell.com > > Sent: Thursday, February 25, 2021 6:02 AM > > To: jerinj@marvell.com > > Cc: dev@dpdk.org; Pavan Nikhilesh <pbhagavatula@marvell.com>; > > stable@dpdk.org > > Subject: [dpdk-dev] [PATCH] app/eventdev: fix timeout accuracy > > > > From: Pavan Nikhilesh <pbhagavatula@marvell.com> > > > > Round timeout ticks when converting from nanoseconds, this prevents loss > > of accuracy and deviation from requested timeout value. > > > > Fixes: d008f20bce23 ("app/eventdev: add event timer adapter as a > > producer") > > Cc: stable@dpdk.org > > > > Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com> > > This looks good to me: > > Reviewed-by: Erik Gabriel Carrillo <erik.g.carrillo@intel.com> Applied to dpdk-next-net-eventdev/for-main. Thanks > > Thanks, > Erik
diff --git a/app/test-eventdev/test_perf_common.c b/app/test-eventdev/test_perf_common.c index 34cded373..cc100650c 100644 --- a/app/test-eventdev/test_perf_common.c +++ b/app/test-eventdev/test_perf_common.c @@ -2,6 +2,8 @@ * Copyright(c) 2017 Cavium, Inc */ +#include <math.h> + #include "test_perf_common.h" int @@ -95,11 +97,13 @@ perf_event_timer_producer(void *arg) uint64_t timeout_ticks = opt->expiry_nsec / opt->timer_tick_nsec; memset(&tim, 0, sizeof(struct rte_event_timer)); - timeout_ticks = opt->optm_timer_tick_nsec ? - (timeout_ticks * opt->timer_tick_nsec) - / opt->optm_timer_tick_nsec : timeout_ticks; + timeout_ticks = + opt->optm_timer_tick_nsec + ? ceil((double)(timeout_ticks * opt->timer_tick_nsec) / + opt->optm_timer_tick_nsec) + : timeout_ticks; timeout_ticks += timeout_ticks ? 0 : 1; - tim.ev.event_type = RTE_EVENT_TYPE_TIMER; + tim.ev.event_type = RTE_EVENT_TYPE_TIMER; tim.ev.op = RTE_EVENT_OP_NEW; tim.ev.sched_type = t->opt->sched_type_list[0]; tim.ev.queue_id = p->queue_id; @@ -159,11 +163,13 @@ perf_event_timer_producer_burst(void *arg) uint64_t timeout_ticks = opt->expiry_nsec / opt->timer_tick_nsec; memset(&tim, 0, sizeof(struct rte_event_timer)); - timeout_ticks = opt->optm_timer_tick_nsec ? - (timeout_ticks * opt->timer_tick_nsec) - / opt->optm_timer_tick_nsec : timeout_ticks; + timeout_ticks = + opt->optm_timer_tick_nsec + ? ceil((double)(timeout_ticks * opt->timer_tick_nsec) / + opt->optm_timer_tick_nsec) + : timeout_ticks; timeout_ticks += timeout_ticks ? 0 : 1; - tim.ev.event_type = RTE_EVENT_TYPE_TIMER; + tim.ev.event_type = RTE_EVENT_TYPE_TIMER; tim.ev.op = RTE_EVENT_OP_NEW; tim.ev.sched_type = t->opt->sched_type_list[0]; tim.ev.queue_id = p->queue_id;