From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wg0-f47.google.com (mail-wg0-f47.google.com [74.125.82.47]) by dpdk.org (Postfix) with ESMTP id 055BA68A1 for ; Thu, 15 May 2014 23:21:01 +0200 (CEST) Received: by mail-wg0-f47.google.com with SMTP id x12so3994843wgg.18 for ; Thu, 15 May 2014 14:21:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:date:message-id:in-reply-to:references; bh=YZMyPPL44i+GfpW6a/JGcNy6Fh9hsYXYiDa4ucMpLBk=; b=nKJ365Nfl+S5iRJbK8pXToQBfcnXsWmZoH0acjj0uwI8mOCW/sy4sixNDlSy8sNkBU 6ZEfFQLiqhLh4X+FUis2HsC/G92nD6n3NGIJtGhl+CV7f00N0YfBbNgt1OU573wXaJvF nKSGMzx1EYcrQnGeWtSwLMflk7Q6p/99l98THrVAcUAercgUzH4IQLtG+j17SYU1ydiW RJGveF/3gpe+ev8NyLccBIIBRtc2wW8lsEOYnU6Jd6eqU8EIg+k5W000uyZIWRC//k/5 jcfyuDTDOuXJi8QlaWn41ffY+pDK+selAMcC794YsQWzTgj87tFClADhyPvxhfVXnsm8 piog== X-Received: by 10.194.236.232 with SMTP id ux8mr10442736wjc.46.1400188869773; Thu, 15 May 2014 14:21:09 -0700 (PDT) Received: from ubuntu.ubuntu-domain (bzq-79-181-48-4.red.bezeqint.net. [79.181.48.4]) by mx.google.com with ESMTPSA id fs5sm35634257wic.22.2014.05.15.14.21.08 for (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 15 May 2014 14:21:09 -0700 (PDT) From: Vadim Suraev To: dev@dpdk.org Message-Id: <1401830433-25071-2-git-send-email-vadim.suraev@gmail.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1401830433-25071-1-git-send-email-vadim.suraev@gmail.com> References: <1401830433-25071-1-git-send-email-vadim.suraev@gmail.com> Subject: [dpdk-dev] [PATCH 1/2] rte_timer bug fix: pending timers count is not decremented when going running. Fix: decrement pending when going running, increment if reloaded, do nothing if not reloaded Signed-off-by: Vadim Suraev X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Date: Thu, 15 May 2014 21:21:02 -0000 X-Original-Date: Wed, 4 Jun 2014 00:20:32 +0300 X-List-Received-Date: Thu, 15 May 2014 21:21:02 -0000 Signed-off-by: Vadim Suraev --- lib/librte_timer/rte_timer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/librte_timer/rte_timer.c b/lib/librte_timer/rte_timer.c index a3d5cca..f98e904 100755 --- a/lib/librte_timer/rte_timer.c +++ b/lib/librte_timer/rte_timer.c @@ -173,7 +173,7 @@ timer_set_running_state(struct rte_timer *tim) /* timer is not pending anymore */ if (prev_status.state != RTE_TIMER_PENDING) return -1; - + __TIMER_STAT_ADD(pending, -1); /* here, we know that timer is stopped or pending, * mark it atomically as beeing configured */ status.state = RTE_TIMER_RUNNING; @@ -555,7 +555,6 @@ void rte_timer_manage(void) if (tim->period == 0) { /* remove from done list and mark timer as stopped */ - __TIMER_STAT_ADD(pending, -1); status.state = RTE_TIMER_STOP; status.owner = RTE_TIMER_NO_OWNER; rte_wmb(); @@ -564,6 +563,7 @@ void rte_timer_manage(void) else { /* keep it in list and mark timer as pending */ status.state = RTE_TIMER_PENDING; + __TIMER_STAT_ADD(pending, 1); status.owner = (int16_t)lcore_id; rte_wmb(); tim->status.u32 = status.u32; -- 1.7.9.5