From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 3B8E69AF6 for ; Thu, 12 Feb 2015 14:05:33 +0100 (CET) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga103.fm.intel.com with ESMTP; 12 Feb 2015 04:58:22 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.09,565,1418112000"; d="scan'208";a="453670685" Received: from kmsmsx152.gar.corp.intel.com ([172.21.73.87]) by FMSMGA003.fm.intel.com with ESMTP; 12 Feb 2015 04:50:48 -0800 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by KMSMSX152.gar.corp.intel.com (172.21.73.87) with Microsoft SMTP Server (TLS) id 14.3.195.1; Thu, 12 Feb 2015 21:05:28 +0800 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.62]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.161]) with mapi id 14.03.0195.001; Thu, 12 Feb 2015 21:05:27 +0800 From: "Liang, Cunming" To: Olivier MATZ , "dev@dpdk.org" Thread-Topic: [PATCH v5 18/19] ring: add sched_yield to avoid spin forever Thread-Index: AQHQRpxjaUDhSh4DM0WNdsq1D1LcoZzsV0MAgACgBgA= Date: Thu, 12 Feb 2015 13:05:27 +0000 Message-ID: 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> In-Reply-To: <54DC8B78.2040009@6wind.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 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:05:33 -0000 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 >=20 > Hi, >=20 > On 02/12/2015 09:16 AM, Cunming Liang wrote: > > Add a sched_yield() syscall if the thread spins for too long, waiting o= ther 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=3Dy > > CONFIG_RTE_LIBRTE_RING=3Dy > > CONFIG_RTE_LIBRTE_RING_DEBUG=3Dn > > CONFIG_RTE_RING_SPLIT_PROD_CONS=3Dn > > +CONFIG_RTE_RING_PAUSE_REP=3Dn >=20 > Maybe it's better to use CONFIG_RTE_RING_PAUSE_REP=3D0 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=3DN (no define), by default will use 0. If it's= set to 'y'(=3D1), will issue yield in the most frequent rate. It also can set as integer to assign any number. All cases works for this c= onfigure. 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 illeg= al for this option. The meaningful value of it can write in the doc. >=20 > Thanks, > Olivier