From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f46.google.com (mail-wm0-f46.google.com [74.125.82.46]) by dpdk.org (Postfix) with ESMTP id 4F1B79E3 for ; Wed, 21 Sep 2016 15:12:59 +0200 (CEST) Received: by mail-wm0-f46.google.com with SMTP id b130so91268299wmc.0 for ; Wed, 21 Sep 2016 06:12:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:user-agent:in-reply-to :references:mime-version:content-transfer-encoding; bh=7IGwJrApV8zknKZ/KK0uOpDov2zCkBaZHrrhcxlinTM=; b=QnPf9I58MSfywok5Spi9PWYbW0K5eESyrTlsfd+qvPMObuywKgkF4ZwBit/944vTzc 8Ws/hwD/66XaT+8ynNtc8YKXsWN0wr10qv5cq0pwL64TBMIMrOkmUCTsr0njnHthc2fW e34fDUFd0f1FN3OwFFzqAMppR74QMghQnZWF7GzijN3BCzlpC4NWr1O7tlPKEgQf4ehR +rquTcNRsSWCtGUAiQ6i1zB7FLK6ZMvcV2rT8oSK4o4r5c+cHgJFDTiG1Ha4n4KpAH9r t+f8qVa6T7N/7tqSaxVfk0x3W9d7PPbUsJeZ5e5oKDQm5S5NmVxO0O7ZMyNJ6KYcx2KH 1lwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:user-agent :in-reply-to:references:mime-version:content-transfer-encoding; bh=7IGwJrApV8zknKZ/KK0uOpDov2zCkBaZHrrhcxlinTM=; b=Oi4rmav26Nef5HIdQGbcwxip0RfhIm+XlHN+8pOgihktDDcnI3pV2C0v0JhxhAIGGH OvWqUn8VYgtxnZMjevi0hDyrBuQ2yKDc/rOQdF8CWJucGX5nz1tHkGHceTvOboGtTcC2 xWN/FMMJgXU1d79xumKS3Fb09z/ePf2liKW4uG+GKsa2HwNyDvfx2IBF3ZnhBfYcUGcv m1GCKPzhxcWfJ5Vh10URgW+fuYie1Eq/gIWFYKNwsSHiSHUwCbjvucozbmpTsxajmGMV cgelZT9k8DuvYyBLQ3OJzagt6uLPFcVBAcuuhfilrGJLw44dE2jKGI7uz5Q4xl91NGNi oDXw== X-Gm-Message-State: AE9vXwNVHMTSccowI7CzBNlztTiZe+nTbtJPG9w8tZ/6lpsMkXuMrzYo4sj6Eh5mRasBGdGt X-Received: by 10.194.82.72 with SMTP id g8mr29142774wjy.214.1474463579072; Wed, 21 Sep 2016 06:12:59 -0700 (PDT) Received: from xps13.localnet (guy78-3-82-239-227-177.fbx.proxad.net. [82.239.227.177]) by smtp.gmail.com with ESMTPSA id i78sm4465474wmc.13.2016.09.21.06.12.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 21 Sep 2016 06:12:58 -0700 (PDT) From: Thomas Monjalon To: jozmarti@cisco.com Cc: dev@dpdk.org Date: Wed, 21 Sep 2016 15:12:57 +0200 Message-ID: <2644416.cGCtye7R7u@xps13> User-Agent: KMail/4.14.10 (Linux/4.5.4-1-ARCH; KDE/4.14.11; x86_64; ; ) In-Reply-To: <8519806.gZT5cxUFJR@xps13> References: <1469016644-6521-1-git-send-email-jozmarti@cisco.com> <8519806.gZT5cxUFJR@xps13> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Subject: Re: [dpdk-dev] [PATCH] rte_delay_us can be replaced with user function 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: , X-List-Received-Date: Wed, 21 Sep 2016 13:12:59 -0000 Hi, I think this feature should enter in the release 16.11. We just need to make sure it is implemented with the right API. Do you have any comment about managing several builtin handlers? 2016-09-13 22:04, Thomas Monjalon: > 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)); >