From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from e23smtp03.au.ibm.com (e23smtp03.au.ibm.com [202.81.31.145]) by dpdk.org (Postfix) with ESMTP id 153397E74 for ; Mon, 13 Oct 2014 04:30:24 +0200 (CEST) Received: from /spool/local by e23smtp03.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 13 Oct 2014 12:37:58 +1000 Received: from d23dlp03.au.ibm.com (202.81.31.214) by e23smtp03.au.ibm.com (202.81.31.209) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Mon, 13 Oct 2014 12:37:56 +1000 Received: from d23relay05.au.ibm.com (d23relay05.au.ibm.com [9.190.235.152]) by d23dlp03.au.ibm.com (Postfix) with ESMTP id A3AEB357804F for ; Mon, 13 Oct 2014 13:37:56 +1100 (EST) Received: from d23av01.au.ibm.com (d23av01.au.ibm.com [9.190.234.96]) by d23relay05.au.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id s9D2DP3v8978668 for ; Mon, 13 Oct 2014 13:13:25 +1100 Received: from d23av01.au.ibm.com (localhost [127.0.0.1]) by d23av01.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id s9D2buqw031663 for ; Mon, 13 Oct 2014 13:37:56 +1100 Received: from d23ml028.cn.ibm.com (d23ml028.cn.ibm.com [9.119.32.184]) by d23av01.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id s9D2blhY031453; Mon, 13 Oct 2014 13:37:55 +1100 In-Reply-To: References: <1411724018-7738-1-git-send-email-bjzhuc@cn.ibm.com> To: David Marchand MIME-Version: 1.0 X-KeepSent: 3B41D047:186FED13-48257D70:000E42BD; type=4; name=$KeepSent X-Mailer: IBM Notes Release 9.0.1SHF211 December 19, 2013 Message-ID: From: Chao CH Zhu Date: Mon, 13 Oct 2014 10:36:41 +0800 X-MIMETrack: Serialize by Router on d23ml028/23/M/IBM(Release 8.5.3FP6HF485 | May 7, 2014) at 10/13/2014 10:36:50, Serialize complete at 10/13/2014 10:36:50 X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 14101302-0009-0000-0000-0000006DB1B1 Content-Type: text/plain; charset="US-ASCII" X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] [PATCH 0/7] Patches to split architecture specific operations from DPDK 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: Mon, 13 Oct 2014 02:30:27 -0000 David, I'll update the patches acccording to your comments. Thanks! Best Regards! ------------------------------ Chao Zhu From: David Marchand To: Chao CH Zhu/China/IBM@IBMCN Cc: "dev@dpdk.org" Date: 2014/10/03 21:21 Subject: Re: [dpdk-dev] [PATCH 0/7] Patches to split architecture specific operations from DPDK Hello Chao, On Fri, Sep 26, 2014 at 11:33 AM, Chao Zhu wrote: The set of patches split x86 architecture specific operations from DPDK and put them to the arch directories of i686 and x86_64 architecture. This will make the adpotion of DPDK much easier on other computer architecture. For a new architecture, just add an architecture specific directory and necessary building configuration files, then DPDK can support it. Here is a different approach for the headers splitting. If we are going to support multiple architectures, the best would be to have a specific header for each arch which implements a common API (no need for any _arch suffix). These headers would be located in lib/librte_eal/common/include/arch/$arch/ rather than lib/librte_eal/common/include/$arch/arch/ (which looks odd to me). Makefiles can add some -I for dpdk to build itself (and we can remove those symlinks from the makefiles). Makefiles only install the specific headers in RTE_SDK/include for use by applications. For common code and documentation, we can add a "generic" directory in lib/librte_eal/common/include (or "arch-generic", or "shared" ... any better idea ?). DPDK makefiles installs the generic headers in RTE_SDK/include/generic. arch headers (like rte_atomic.h) include the generic one (). These generic headers can be implemented using compiler intrinsics when possible. They also include the doxygen stuff in a single place. This would look like something like this, for rte_atomic.h : - in DPDK sources $ ls lib/librte_eal/common/include/*/rte_atomic.h lib/librte_eal/common/include/i686/rte_atomic.h lib/librte_eal/common/include/x86_64/rte_atomic.h lib/librte_eal/common/include/generic/rte_atomic.h - in installed RTE_SDK $ ls RTE_SDK/include/{,*/}rte_atomic.h RTE_SDK/include/rte_atomic.h RTE_SDK/include/generic/rte_atomic.h Comments ? I am only focusing on the first patchset at the moment, but if we can find consensus here, a respin of the two patchsets would be great. Thanks. -- David Marchand