From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerin Jacob Subject: Re: [PATCH v3 06/12] event/octeontx: add multiproducer timer arm and cancel Date: Sun, 8 Apr 2018 13:29:23 +0530 Message-ID: <20180408075922.GD6880@jerin> References: <20180216213700.3415-1-pbhagavatula@caviumnetworks.com> <20180403150514.24201-1-pbhagavatula@caviumnetworks.com> <20180403150514.24201-7-pbhagavatula@caviumnetworks.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: santosh.shukla@caviumnetworks.com, erik.g.carrillo@intel.com, dev@dpdk.org To: Pavan Nikhilesh Return-path: Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0042.outbound.protection.outlook.com [104.47.41.42]) by dpdk.org (Postfix) with ESMTP id C16E61B41E for ; Sun, 8 Apr 2018 09:59:46 +0200 (CEST) Content-Disposition: inline In-Reply-To: <20180403150514.24201-7-pbhagavatula@caviumnetworks.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" -----Original Message----- > Date: Tue, 3 Apr 2018 20:35:08 +0530 > From: Pavan Nikhilesh > To: jerin.jacob@caviumnetworks.com, santosh.shukla@caviumnetworks.com, > erik.g.carrillo@intel.com > Cc: dev@dpdk.org, Pavan Nikhilesh > Subject: [dpdk-dev] [PATCH v3 06/12] event/octeontx: add multiproducer > timer arm and cancel > X-Mailer: git-send-email 2.16.3 > > Signed-off-by: Pavan Nikhilesh > --- > +static inline int16_t > +timr_bkt_get_rem(struct tim_mem_bucket *bktp) > +{ > + return __atomic_load_n((int16_t *)&bktp->chunk_remainder, > + __ATOMIC_ACQUIRE); > +} > + > +static inline void > +timr_bkt_set_rem(struct tim_mem_bucket *bktp, uint16_t v) > +{ > + __atomic_store_n((int16_t *)&bktp->chunk_remainder, v, typecast is not required for __atomic_* gcc atomic builtins functions. > + __ATOMIC_RELEASE); > +} > + > +static inline void > +timr_bkt_sub_rem(struct tim_mem_bucket *bktp, uint16_t v) > +{ > + __atomic_fetch_sub((int16_t *)&bktp->chunk_remainder, v, > + __ATOMIC_RELEASE); > +} > + > +{ > + > +/* Multi producer functions. */ > +static inline int > +timvf_add_entry_mp(struct timvf_ring * const timr, const uint32_t rel_bkt, > + struct rte_event_timer * const tim, > + const struct tim_mem_entry * const pent) > +{ > + uint8_t lock_cnt; > + int16_t rem; > + uint64_t lock_sema; > + struct tim_mem_bucket *bkt; > + struct tim_mem_entry *chunk; > + > +__retry: > + bkt = timvf_get_target_bucket(timr, rel_bkt); > + /* Bucket related checks. */ > + /*Get Bucket sema*/ > + lock_sema = timr_bkt_fetch_sema_lock(bkt); > + if (unlikely(timr_bkt_get_shbt(lock_sema))) { > + timr_bkt_dec_lock(bkt); > + goto __retry; > + } > + > + RTE_SET_USED(lock_cnt); lock_cnt not been used. Remove it. With above changes: Acked-by: Jerin Jacob