From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [PATCH] rte_delay_us can be replaced with user function Date: Tue, 13 Sep 2016 22:04:38 +0200 Message-ID: <8519806.gZT5cxUFJR@xps13> References: <1469016644-6521-1-git-send-email-jozmarti@cisco.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: dev@dpdk.org To: jozmarti@cisco.com Return-path: Received: from mail-wm0-f45.google.com (mail-wm0-f45.google.com [74.125.82.45]) by dpdk.org (Postfix) with ESMTP id 47C9072FB for ; Tue, 13 Sep 2016 22:04:41 +0200 (CEST) Received: by mail-wm0-f45.google.com with SMTP id i130so14004877wmf.0 for ; Tue, 13 Sep 2016 13:04:41 -0700 (PDT) In-Reply-To: <1469016644-6521-1-git-send-email-jozmarti@cisco.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hi, Sorry for late review. This patch was in a summer hole :/ First a general comment: please check your patch with scripts/checkpatches.sh. In order to ease tracking of this patch, please increment the version when sending a new one in the same thread: git send-email -1 -v3 --annotate --to dev@dpdk.org \ --in-reply-to 1469016644-6521-1-git-send-email-jozmarti@cisco.com More comments below. 2016-07-20 14:10, jozmarti@cisco.com: > +void rte_delay_us_callback_register(void (*userfunc)(unsigned)) > +{ > + if (userfunc == NULL) > + rte_delay_us = rte_delay_us_block; Here you are creating an exception for rte_delay_us_block which is mapped as a NULL handler. What will happen if we need to provide more builtin handlers? I still think that rte_delay_us_block can be exported and initialized as the default handler. Other opinions are obviously welcome. > + else > + rte_delay_us = userfunc; > +} > + > +static void __attribute__((constructor)) > +rte_timer_init(void) > +{ > + /* set rte_delay_us_block as a delay function */ > + rte_delay_us_callback_register(NULL); > +} > diff --git a/lib/librte_eal/common/include/generic/rte_cycles.h b/lib/librte_eal/common/include/generic/rte_cycles.h > index 8cc21f2..7a45b58 100644 > --- a/lib/librte_eal/common/include/generic/rte_cycles.h > +++ b/lib/librte_eal/common/include/generic/rte_cycles.h > @@ -182,13 +182,16 @@ rte_get_timer_hz(void) > } > > /** > + * useless newline > * Wait at least us microseconds. > + * This function can be replaced with user-defined function using > + * rte_delay_us_callback_register I think you can use @see to point to rte_delay_us_callback_register. > * > * @param us > * The number of microseconds to wait. > */ > void > -rte_delay_us(unsigned us); > +(*rte_delay_us)(unsigned us); > > /** > * Wait at least ms milliseconds. > @@ -202,4 +205,14 @@ rte_delay_ms(unsigned ms) > rte_delay_us(ms * 1000); > } > > +/** > + * Replace rte_delay_us with user defined function. > + * > + * @param userfunc > + * User function which replaces rte_delay_us. NULL restores > + * buildin block delay function. buildin -> builtin ? > + */ > +void rte_delay_us_callback_register(void(*userfunc)(unsigned));