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 AC01EA04B7; Tue, 13 Oct 2020 18:21:26 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B3B9A1DAF1; Tue, 13 Oct 2020 18:20:26 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 52A9E1DAC7 for ; Tue, 13 Oct 2020 18:20:23 +0200 (CEST) IronPort-SDR: ICO03/rpXdOL8uEZnfE27KBhDpbZ3nCVuw2NZCuPdIgtSrQzK9YO2xD7UdoKpkhkfOf6BK39NO KFtLKfhfo8yA== X-IronPort-AV: E=McAfee;i="6000,8403,9773"; a="250633425" X-IronPort-AV: E=Sophos;i="5.77,371,1596524400"; d="scan'208";a="250633425" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Oct 2020 09:20:21 -0700 IronPort-SDR: aQhrSQi0US/9TnMzqi0th8bc2InK7bRwuvErjxMO3jKbV73Nbu1qAVVrwusGoL+cIcpM3TW3UJ 1CUPfvpuydAA== X-IronPort-AV: E=Sophos;i="5.77,371,1596524400"; d="scan'208";a="357066432" Received: from bricha3-mobl.ger.corp.intel.com ([10.213.245.209]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-SHA; 13 Oct 2020 09:20:19 -0700 Date: Tue, 13 Oct 2020 17:20:15 +0100 From: Bruce Richardson To: Ruifeng Wang Cc: Omkar Maslekar , "dev@dpdk.org" , "ciara.loftus@intel.com" , "drc@linux.vnet.ibm.com" , "jerinj@marvell.com" , Honnappa Nagarahalli , nd Message-ID: <20201013162015.GF1496@bricha3-MOBL.ger.corp.intel.com> References: <1599700614-22809-1-git-send-email-omkar.maslekar@intel.com> <1602497980-20680-1-git-send-email-omkar.maslekar@intel.com> <1602497980-20680-2-git-send-email-omkar.maslekar@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Subject: Re: [dpdk-dev] [PATCH v6] eal: add cache-line demote support 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 Tue, Oct 13, 2020 at 02:59:24AM +0000, Ruifeng Wang wrote: > > > -----Original Message----- > > From: Omkar Maslekar > > Sent: Monday, October 12, 2020 6:20 PM > > To: dev@dpdk.org > > Cc: bruce.richardson@intel.com; ciara.loftus@intel.com; > > omkar.maslekar@intel.com; drc@linux.vnet.ibm.com; jerinj@marvell.com; > > Ruifeng Wang ; Honnappa Nagarahalli > > > > Subject: [PATCH v6] eal: add cache-line demote support > > > > rte_cldemote is similar to a prefetch hint - in reverse. cldemote(addr) > > enables software to hint to hardware that line is likely to be shared. > > Useful in core-to-core communications where cache-line is likely to be > > shared. ARM and PPC implementation is provided with NOP and can be > > added if any equivalent instructions could be used for implementation on > > those architectures. > > > > Signed-off-by: Omkar Maslekar > > Acked-by: Bruce Richardson > > > > --- > > v6: marked rte_cldemote as experimental > > added rte_cldemote call in existing app/test_prefetch.c > > > > v5: documentation updated > > fixed formatting issue in release notes > > added Acked-by: Bruce Richardson > > * > > v4: updated bold text for title and fixed margin in release notes > > * > > v3: fixed warning regarding whitespace > > * > > v2: documentation updated > > --- > > --- > > > +/** > > + * Demote a cache line to a more distant level of cache from the processor. > > + * > > + * CLDEMOTE hints to hardware to move (demote) a cache line from the > > +closest to > > + * the processor to a level more distant from the processor. It is a > > +hint and > > + * not guarantee. rte_cldemote is intended to move the cache line to > > +the more > > + * remote cache, where it expects sharing to be efficient and to > > +indicate that a > > + * line may be accessed by a different core in the future. > > + * > > + * @param p > > + * Address to demote > > + */ > > +static inline void > > +__rte_experimental > > 1. Experimental tag is only needed in this file. Tags at other places can be removed. I'm not sure that is the case. The generic file is used when preparing the docs, so the experimental tag needs to go there for the docs, but when actually using the function in compiled code the "generic" version is unused. Therefore we need the experimental tag there to trigger a build warning about using the function if the appropriate ALLOW_EXPERIMENTAL_APIS flag is not set. /Bruce