From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 36F3DA04BA; Mon, 5 Oct 2020 10:54:58 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 9DACF2BAF; Mon, 5 Oct 2020 10:54:56 +0200 (CEST) Received: from mail-108-mta101.mxroute.com (mail-108-mta101.mxroute.com [136.175.108.101]) by dpdk.org (Postfix) with ESMTP id 03F202952 for ; Mon, 5 Oct 2020 10:54:53 +0200 (CEST) Received: from filter004.mxroute.com ([149.28.56.236] 149.28.56.236.vultr.com) (Authenticated sender: mN4UYu2MZsgR) by mail-108-mta101.mxroute.com (ZoneMTA) with ESMTPSA id 174f7f8757300027ef.001 for (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES128-GCM-SHA256); Mon, 05 Oct 2020 08:54:49 +0000 X-Zone-Loop: 8ef33bc85fdf8656a5a8ab559091896a3f1c6bc2e101 X-Originating-IP: [149.28.56.236] Received: from echo.mxrouting.net (echo.mxrouting.net [116.202.222.109]) by filter004.mxroute.com (Postfix) with ESMTPS id 17CBB3EAD9 for ; Mon, 5 Oct 2020 08:54:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ashroe.eu; s=x; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:MIME-Version:Date: Message-ID:From:References:To:Subject:Sender:Reply-To:Cc:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=U8ngB/BXMg9TieoT6U6EX84p2gbI2vrJtKq0t/BpTI4=; b=liZe5v25gkb+JU3AMt58v2wWqv ojskkL/2vaRyJOHBC0vKS+geqmjmxDFIAZBE0FxNRsYJom2iFJuarU1MQi1gDa0m3vLnk0wBGC6Fm C8O8szibsGx3FzbVBp5CwRScCFv0Z0IGOX9nLJqp9IQoD71fFCfXcyMWtDbg59wdh+Jg0ESc7PMhq X3E6XTyBVvJgvkZJT5S4VNFiTl3fwlNTr4I2bbCG+a3d8fSYe0VxDq7ciXCSuJdmO40SyX2HjwYk9 VVaMK3RiFgh5uETUdv8jFxIGB8EVNrBZPKXr8XDa3DpYGsRwgALIBMAfh2UpVDTfoH5+CoIjRauPd dAMcqvrQ==; To: dev@dpdk.org References: <20200911054534.55378-1-joyce.kong@arm.com> <20200911054534.55378-4-joyce.kong@arm.com> From: "Kinsella, Ray" Autocrypt: addr=mdr@ashroe.eu; keydata= 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 Message-ID: <5054e9e0-a75d-0806-458c-ced195398827@ashroe.eu> Date: Mon, 5 Oct 2020 09:54:46 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.12.0 MIME-Version: 1.0 In-Reply-To: <20200911054534.55378-4-joyce.kong@arm.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-AuthUser: mdr@ashroe.eu Subject: Re: [dpdk-dev] [PATCH 3/4] rcu: remove experimental tag from QSBR mechanism X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 11/09/2020 06:45, Joyce Kong wrote: > RCU library supporting quiescent state was introduced > in 19.05 release and has been around 4 releases, it > should be mature enough to remove the experimental tag. > > Signed-off-by: Joyce Kong > Reviewed-by: Ruifeng Wang > --- > MAINTAINERS | 2 +- > lib/librte_rcu/rte_rcu_qsbr.h | 52 ------------------------------ > lib/librte_rcu/rte_rcu_version.map | 11 +++++-- > 3 files changed, 10 insertions(+), 55 deletions(-) > Some nits on tabing versus spaces below. > diff --git a/MAINTAINERS b/MAINTAINERS > index 0e43a28bf..12f088b62 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -1449,7 +1449,7 @@ M: Olivier Matz > F: lib/librte_kvargs/ > F: app/test/test_kvargs.c > > -RCU - EXPERIMENTAL > +RCU > M: Honnappa Nagarahalli > F: lib/librte_rcu/ > F: app/test/test_rcu* > diff --git a/lib/librte_rcu/rte_rcu_qsbr.h b/lib/librte_rcu/rte_rcu_qsbr.h > index a98e8f0f8..5905c53a5 100644 > --- a/lib/librte_rcu/rte_rcu_qsbr.h > +++ b/lib/librte_rcu/rte_rcu_qsbr.h > @@ -202,9 +202,6 @@ struct rte_rcu_qsbr_dq_parameters { > struct rte_rcu_qsbr_dq; > > /** > - * @warning > - * @b EXPERIMENTAL: this API may change without prior notice > - * > * Return the size of the memory occupied by a Quiescent State variable. > * > * @param max_threads > @@ -215,14 +212,10 @@ struct rte_rcu_qsbr_dq; > * Possible rte_errno codes are: > * - EINVAL - max_threads is 0 > */ > -__rte_experimental > size_t > rte_rcu_qsbr_get_memsize(uint32_t max_threads); > > /** > - * @warning > - * @b EXPERIMENTAL: this API may change without prior notice > - * > * Initialize a Quiescent State (QS) variable. > * > * @param v > @@ -237,14 +230,10 @@ rte_rcu_qsbr_get_memsize(uint32_t max_threads); > * - EINVAL - max_threads is 0 or 'v' is NULL. > * > */ > -__rte_experimental > int > rte_rcu_qsbr_init(struct rte_rcu_qsbr *v, uint32_t max_threads); > > /** > - * @warning > - * @b EXPERIMENTAL: this API may change without prior notice > - * > * Register a reader thread to report its quiescent state > * on a QS variable. > * > @@ -264,14 +253,10 @@ rte_rcu_qsbr_init(struct rte_rcu_qsbr *v, uint32_t max_threads); > * the QS variable. thread_id is a value between 0 and (max_threads - 1). > * 'max_threads' is the parameter passed in 'rte_rcu_qsbr_init' API. > */ > -__rte_experimental > int > rte_rcu_qsbr_thread_register(struct rte_rcu_qsbr *v, unsigned int thread_id); > > /** > - * @warning > - * @b EXPERIMENTAL: this API may change without prior notice > - * > * Remove a reader thread, from the list of threads reporting their > * quiescent state on a QS variable. > * > @@ -286,14 +271,10 @@ rte_rcu_qsbr_thread_register(struct rte_rcu_qsbr *v, unsigned int thread_id); > * Reader thread with this thread ID will stop reporting its quiescent > * state on the QS variable. > */ > -__rte_experimental > int > rte_rcu_qsbr_thread_unregister(struct rte_rcu_qsbr *v, unsigned int thread_id); > > /** > - * @warning > - * @b EXPERIMENTAL: this API may change without prior notice > - * > * Add a registered reader thread, to the list of threads reporting their > * quiescent state on a QS variable. > * > @@ -318,7 +299,6 @@ rte_rcu_qsbr_thread_unregister(struct rte_rcu_qsbr *v, unsigned int thread_id); > * Reader thread with this thread ID will report its quiescent state on > * the QS variable. > */ > -__rte_experimental > static __rte_always_inline void > rte_rcu_qsbr_thread_online(struct rte_rcu_qsbr *v, unsigned int thread_id) > { > @@ -358,9 +338,6 @@ rte_rcu_qsbr_thread_online(struct rte_rcu_qsbr *v, unsigned int thread_id) > } > > /** > - * @warning > - * @b EXPERIMENTAL: this API may change without prior notice > - * > * Remove a registered reader thread from the list of threads reporting their > * quiescent state on a QS variable. > * > @@ -380,7 +357,6 @@ rte_rcu_qsbr_thread_online(struct rte_rcu_qsbr *v, unsigned int thread_id) > * rte_rcu_qsbr_check API will not wait for the reader thread with > * this thread ID to report its quiescent state on the QS variable. > */ > -__rte_experimental > static __rte_always_inline void > rte_rcu_qsbr_thread_offline(struct rte_rcu_qsbr *v, unsigned int thread_id) > { > @@ -399,9 +375,6 @@ rte_rcu_qsbr_thread_offline(struct rte_rcu_qsbr *v, unsigned int thread_id) > } > > /** > - * @warning > - * @b EXPERIMENTAL: this API may change without prior notice > - * > * Acquire a lock for accessing a shared data structure. > * > * This is implemented as a lock-free function. It is multi-thread > @@ -421,7 +394,6 @@ rte_rcu_qsbr_thread_offline(struct rte_rcu_qsbr *v, unsigned int thread_id) > * @param thread_id > * Reader thread id > */ > -__rte_experimental > static __rte_always_inline void > rte_rcu_qsbr_lock(__rte_unused struct rte_rcu_qsbr *v, > __rte_unused unsigned int thread_id) > @@ -436,9 +408,6 @@ rte_rcu_qsbr_lock(__rte_unused struct rte_rcu_qsbr *v, > } > > /** > - * @warning > - * @b EXPERIMENTAL: this API may change without prior notice > - * > * Release a lock after accessing a shared data structure. > * > * This is implemented as a lock-free function. It is multi-thread > @@ -458,7 +427,6 @@ rte_rcu_qsbr_lock(__rte_unused struct rte_rcu_qsbr *v, > * @param thread_id > * Reader thread id > */ > -__rte_experimental > static __rte_always_inline void > rte_rcu_qsbr_unlock(__rte_unused struct rte_rcu_qsbr *v, > __rte_unused unsigned int thread_id) > @@ -477,9 +445,6 @@ rte_rcu_qsbr_unlock(__rte_unused struct rte_rcu_qsbr *v, > } > > /** > - * @warning > - * @b EXPERIMENTAL: this API may change without prior notice > - * > * Ask the reader threads to report the quiescent state > * status. > * > @@ -492,7 +457,6 @@ rte_rcu_qsbr_unlock(__rte_unused struct rte_rcu_qsbr *v, > * - This is the token for this call of the API. This should be > * passed to rte_rcu_qsbr_check API. > */ > -__rte_experimental > static __rte_always_inline uint64_t > rte_rcu_qsbr_start(struct rte_rcu_qsbr *v) > { > @@ -511,9 +475,6 @@ rte_rcu_qsbr_start(struct rte_rcu_qsbr *v) > } > > /** > - * @warning > - * @b EXPERIMENTAL: this API may change without prior notice > - * > * Update quiescent state for a reader thread. > * > * This is implemented as a lock-free function. It is multi-thread safe. > @@ -525,7 +486,6 @@ rte_rcu_qsbr_start(struct rte_rcu_qsbr *v) > * @param thread_id > * Update the quiescent state for the reader with this thread ID. > */ > -__rte_experimental > static __rte_always_inline void > rte_rcu_qsbr_quiescent(struct rte_rcu_qsbr *v, unsigned int thread_id) > { > @@ -683,9 +643,6 @@ __rte_rcu_qsbr_check_all(struct rte_rcu_qsbr *v, uint64_t t, bool wait) > } > > /** > - * @warning > - * @b EXPERIMENTAL: this API may change without prior notice > - * > * Checks if all the reader threads have entered the quiescent state > * referenced by token. > * > @@ -716,7 +673,6 @@ __rte_rcu_qsbr_check_all(struct rte_rcu_qsbr *v, uint64_t t, bool wait) > * - 1 if all reader threads have passed through specified number > * of quiescent states. > */ > -__rte_experimental > static __rte_always_inline int > rte_rcu_qsbr_check(struct rte_rcu_qsbr *v, uint64_t t, bool wait) > { > @@ -740,9 +696,6 @@ rte_rcu_qsbr_check(struct rte_rcu_qsbr *v, uint64_t t, bool wait) > } > > /** > - * @warning > - * @b EXPERIMENTAL: this API may change without prior notice > - * > * Wait till the reader threads have entered quiescent state. > * > * This is implemented as a lock-free function. It is multi-thread safe. > @@ -760,14 +713,10 @@ rte_rcu_qsbr_check(struct rte_rcu_qsbr *v, uint64_t t, bool wait) > * on this QS variable (i.e. the calling thread is also part of the > * readside critical section). If not, pass RTE_QSBR_THRID_INVALID. > */ > -__rte_experimental > void > rte_rcu_qsbr_synchronize(struct rte_rcu_qsbr *v, unsigned int thread_id); > > /** > - * @warning > - * @b EXPERIMENTAL: this API may change without prior notice > - * > * Dump the details of a single QS variables to a file. > * > * It is NOT multi-thread safe. > @@ -782,7 +731,6 @@ rte_rcu_qsbr_synchronize(struct rte_rcu_qsbr *v, unsigned int thread_id); > * Possible rte_errno codes are: > * - EINVAL - NULL parameters are passed > */ > -__rte_experimental > int > rte_rcu_qsbr_dump(FILE *f, struct rte_rcu_qsbr *v); > > diff --git a/lib/librte_rcu/rte_rcu_version.map b/lib/librte_rcu/rte_rcu_version.map > index dfac88a37..e40850350 100644 > --- a/lib/librte_rcu/rte_rcu_version.map > +++ b/lib/librte_rcu/rte_rcu_version.map > @@ -1,5 +1,5 @@ > -EXPERIMENTAL { > - global: > +DPDK_21 { > + global: Tab pls > > rte_rcu_log_type; > rte_rcu_qsbr_dump; > @@ -8,6 +8,13 @@ EXPERIMENTAL { > rte_rcu_qsbr_synchronize; > rte_rcu_qsbr_thread_register; > rte_rcu_qsbr_thread_unregister; > + > + local: *; Tab pls > +}; > + > +EXPERIMENTAL { > + global: > + > rte_rcu_qsbr_dq_create; > rte_rcu_qsbr_dq_enqueue; > rte_rcu_qsbr_dq_reclaim; >