From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 8326FAD9D for ; Thu, 12 Feb 2015 14:12:36 +0100 (CET) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga101.jf.intel.com with ESMTP; 12 Feb 2015 05:11:41 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.09,565,1418112000"; d="scan'208";a="676914218" Received: from bricha3-mobl3.ger.corp.intel.com ([10.243.20.46]) by fmsmga002.fm.intel.com with SMTP; 12 Feb 2015 05:11:38 -0800 Received: by (sSMTP sendmail emulation); Thu, 12 Feb 2015 13:11:37 +0025 Date: Thu, 12 Feb 2015 13:11:37 +0000 From: Bruce Richardson To: "Ananyev, Konstantin" Message-ID: <20150212131136.GA14596@bricha3-MOBL3> References: <1422842559-13617-1-git-send-email-cunming.liang@intel.com> <1423728996-3004-1-git-send-email-cunming.liang@intel.com> <1423728996-3004-19-git-send-email-cunming.liang@intel.com> <54DC8B78.2040009@6wind.com> <2601191342CEEE43887BDE71AB977258213E5500@irsmsx105.ger.corp.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <2601191342CEEE43887BDE71AB977258213E5500@irsmsx105.ger.corp.intel.com> Organization: Intel Shannon Ltd. User-Agent: Mutt/1.5.23 (2014-03-12) Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] [PATCH v5 18/19] ring: add sched_yield to avoid spin forever 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: Thu, 12 Feb 2015 13:12:37 -0000 On Thu, Feb 12, 2015 at 01:08:43PM +0000, Ananyev, Konstantin wrote: > > > > -----Original Message----- > > From: Liang, Cunming > > Sent: Thursday, February 12, 2015 1:05 PM > > To: Olivier MATZ; dev@dpdk.org > > Cc: Ananyev, Konstantin > > Subject: RE: [PATCH v5 18/19] ring: add sched_yield to avoid spin forever > > > > Hi, > > > > > -----Original Message----- > > > From: Olivier MATZ [mailto:olivier.matz@6wind.com] > > > Sent: Thursday, February 12, 2015 7:16 PM > > > To: Liang, Cunming; dev@dpdk.org > > > Cc: Ananyev, Konstantin > > > Subject: Re: [PATCH v5 18/19] ring: add sched_yield to avoid spin forever > > > > > > Hi, > > > > > > On 02/12/2015 09:16 AM, Cunming Liang wrote: > > > > Add a sched_yield() syscall if the thread spins for too long, waiting other thread > > > to finish its operations on the ring. > > > > That gives pre-empted thread a chance to proceed and finish with ring > > > enqnue/dequeue operation. > > > > The purpose is to reduce contention on the ring. By ring_perf_test, it doesn't > > > shows additional perf penalty. > > > > > > > > Signed-off-by: Cunming Liang > > > > --- > > > > v5 changes: > > > > add RTE_RING_PAUSE_REP to config file > > > > > > > > v4 changes: > > > > update and add more comments on sched_yield() > > > > > > > > v3 changes: > > > > new patch adding sched_yield() in rte_ring to avoid long spin > > > > > > > > config/common_bsdapp | 1 + > > > > config/common_linuxapp | 1 + > > > > lib/librte_ring/rte_ring.h | 31 +++++++++++++++++++++++++++---- > > > > 3 files changed, 29 insertions(+), 4 deletions(-) > > > > > > > > diff --git a/config/common_bsdapp b/config/common_bsdapp > > > > index 57bacb8..52c5143 100644 > > > > --- a/config/common_bsdapp > > > > +++ b/config/common_bsdapp > > > > @@ -234,6 +234,7 @@ CONFIG_RTE_PMD_PACKET_PREFETCH=y > > > > CONFIG_RTE_LIBRTE_RING=y > > > > CONFIG_RTE_LIBRTE_RING_DEBUG=n > > > > CONFIG_RTE_RING_SPLIT_PROD_CONS=n > > > > +CONFIG_RTE_RING_PAUSE_REP=n > > > > > > Maybe it's better to use CONFIG_RTE_RING_PAUSE_REP=0 instead? > > > If I understand well, it has to be set to an integer value to > > > enable it, am I correct? > > [LCM] If RTE_RING_PAUSE_REP=N (no define), by default will use 0. If it's set to 'y'(=1), will issue yield in the most frequent rate. > > It also can set as integer to assign any number. All cases works for this configure. > > One point is in configure file, just demonstrate the default way to use it. > > It can't prevent to use anything unexpected. Except we rule the n & y illegal for this option. > > The meaningful value of it can write in the doc. > > I also think that it is better avoid 'y' and 'n' (though as you said it would work), but use integers for all cases. > Less confusion for the users. > Konstantin > +1 Also expand "REP" to "REP_COUNT" to make it clear that it's a numeric value. /Bruce