From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 17FE41B4E2 for ; Wed, 3 Apr 2019 18:02:34 +0200 (CEST) X-Amp-Result: UNSCANNABLE X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Apr 2019 09:02:34 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,305,1549958400"; d="scan'208";a="312852956" Received: from yexl-server.sh.intel.com (HELO localhost) ([10.67.110.206]) by orsmga005.jf.intel.com with ESMTP; 03 Apr 2019 09:02:32 -0700 Date: Wed, 3 Apr 2019 23:57:41 +0800 From: Ye Xiaolong To: Ferruh Yigit Cc: Luca Boccassi , dev@dpdk.org, Karlsson Magnus , Topel Bjorn Message-ID: <20190403155741.GE36385@intel.com> References: <20190402154653.711-2-xiaolong.ye@intel.com> <20190403095939.GA32340@intel.com> <56ce5855b02d47a085a8d36451561c400f0b039c.camel@debian.org> <0dde8c20e9992047f29d39ad45dcf511244a5297.camel@debian.org> <80c81c0c-cf64-59f8-a592-26cd865fbd89@intel.com> <37073834d0b9a9f5a6e9f39bac3adc5eb29779ab.camel@debian.org> <5bc49c51-04f4-6f73-889d-d3c0ff749784@intel.com> <20190403142217.GA36385@intel.com> <6f660657-d488-1121-126a-a38c9744b1eb@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <6f660657-d488-1121-126a-a38c9744b1eb@intel.com> User-Agent: Mutt/1.9.4 (2018-02-28) Subject: Re: [dpdk-dev] [PATCH v9 1/1] net/af_xdp: introduce AF XDP PMD driver 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: , X-List-Received-Date: Wed, 03 Apr 2019 16:02:35 -0000 On 04/03, Ferruh Yigit wrote: >On 4/3/2019 3:22 PM, Ye Xiaolong wrote: >> On 04/03, Ferruh Yigit wrote: >> [snip] >>> >>> It seems, 'tools/include/asm/barrier.h' is required for 'smp_wmb()' & >>> 'smp_rmb()' in 'xsk.h'. >>> We have equivalents of these in DPDK [1], and perhaps it can be possible to use >>> them and not include this header at all. >>> >>> in 'rte_eth_af_xdp.c', before including 'xsk.h', we can include an local >>> compatibility header which does following should work: >>> #define smp_rmb() rte_rmb() >>> #define smp_wmb() rte_wmb() >>> >>> @Xiaolong, what do you think? >> >> It sounds perfect to me, I'll take it in my next version. >> Something to confirm, So we can now assume af_xdp pmd user would use kernel (say v5.1-rc4) >> that contains fixes regarding to xsk.h and libelf, I still need to do following >> changes. >> >> 1. I shall use as xsk.h should be installed in system folders. >> 2. `-lelf` is not needed in rte.app.mk >> 3. I need to document the libbpf build and install steps in af_xdp.rst >> 4. add the above two defines before including xsk.h > >Looks good to me, >only for item 4) instead of putting those defines into .c file directly, can >create a private header in driver folder, put those lines and I assume will need >a few includes for rte_rmb as well, and include that header before xsk.h. Sounds better, will do. Thanks, Xiaolong > >> >> Thanks, >> Xiaolong >> >> >>> >>> [1] >>> https://git.dpdk.org/dpdk/tree/lib/librte_eal/common/include/arch/x86/rte_atomic.h?h=v19.02#n30 >>> >>>> >>>> The one in tools/include also is GPL-2.0 only so it cannot be included >>>> from the PMD, which is BSD-3-clause only (and it recursively includes >>>> the other arch-specific kernel headers) >>>> >>>>> Anyway, as Xiaolong mentioned, following is working, can it work from >>>>> a distro >>>>> point of view: >>>>> - get kernel source code (>= v5.1-rc1) >>>>> - build libbfp and install >>>>> - set 'RTE_KERNELDIR' to point kernel source path >>>>> - build dpdk with af_xdp enabled >>>> >>>> As long as the full kernel tree is required, we cannot enable it in >>>> Debian and Ubuntu - we can't have it at build time on the build >>>> workers, and also there's the licensing problem. >>> >>> Got it. >>> >>> In above steps, 'libbpf' also build from kernel source tree, will it be problem >>> in you builds to not have it build from source? >>> >>> If not, taking into account that xsk.h also will be fixed, only >>> 'tools/include/asm/barrier.h' remains the problem, and it looks like it can be >>> solved, please check above. >>> >>> >>>> >>>>>> Also, the license in asm/barrier.h is GPL-2.0 only. It is not a >>>>>> userspace header so it is not covered by the userspace exception, >>>>>> which >>>>>> means at the very least the af_xdp PMD shared object is also >>>>>> licensed >>>>>> under GPL-2.0 only, isn't it? >>>>>> >>>>> >>>>> >>> > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id 75746A0679 for ; Wed, 3 Apr 2019 18:02:41 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 65C121B4E2; Wed, 3 Apr 2019 18:02:37 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 17FE41B4E2 for ; Wed, 3 Apr 2019 18:02:34 +0200 (CEST) X-Amp-Result: UNSCANNABLE X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Apr 2019 09:02:34 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,305,1549958400"; d="scan'208";a="312852956" Received: from yexl-server.sh.intel.com (HELO localhost) ([10.67.110.206]) by orsmga005.jf.intel.com with ESMTP; 03 Apr 2019 09:02:32 -0700 Date: Wed, 3 Apr 2019 23:57:41 +0800 From: Ye Xiaolong To: Ferruh Yigit Cc: Luca Boccassi , dev@dpdk.org, Karlsson Magnus , Topel Bjorn Message-ID: <20190403155741.GE36385@intel.com> References: <20190402154653.711-2-xiaolong.ye@intel.com> <20190403095939.GA32340@intel.com> <56ce5855b02d47a085a8d36451561c400f0b039c.camel@debian.org> <0dde8c20e9992047f29d39ad45dcf511244a5297.camel@debian.org> <80c81c0c-cf64-59f8-a592-26cd865fbd89@intel.com> <37073834d0b9a9f5a6e9f39bac3adc5eb29779ab.camel@debian.org> <5bc49c51-04f4-6f73-889d-d3c0ff749784@intel.com> <20190403142217.GA36385@intel.com> <6f660657-d488-1121-126a-a38c9744b1eb@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Disposition: inline In-Reply-To: <6f660657-d488-1121-126a-a38c9744b1eb@intel.com> User-Agent: Mutt/1.9.4 (2018-02-28) Subject: Re: [dpdk-dev] [PATCH v9 1/1] net/af_xdp: introduce AF XDP PMD driver 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" Message-ID: <20190403155741.yGMw7YM8_IHUTgt_FumTIoK3YQBsifmhY6hptXPxEWM@z> On 04/03, Ferruh Yigit wrote: >On 4/3/2019 3:22 PM, Ye Xiaolong wrote: >> On 04/03, Ferruh Yigit wrote: >> [snip] >>> >>> It seems, 'tools/include/asm/barrier.h' is required for 'smp_wmb()' & >>> 'smp_rmb()' in 'xsk.h'. >>> We have equivalents of these in DPDK [1], and perhaps it can be possible to use >>> them and not include this header at all. >>> >>> in 'rte_eth_af_xdp.c', before including 'xsk.h', we can include an local >>> compatibility header which does following should work: >>> #define smp_rmb() rte_rmb() >>> #define smp_wmb() rte_wmb() >>> >>> @Xiaolong, what do you think? >> >> It sounds perfect to me, I'll take it in my next version. >> Something to confirm, So we can now assume af_xdp pmd user would use kernel (say v5.1-rc4) >> that contains fixes regarding to xsk.h and libelf, I still need to do following >> changes. >> >> 1. I shall use as xsk.h should be installed in system folders. >> 2. `-lelf` is not needed in rte.app.mk >> 3. I need to document the libbpf build and install steps in af_xdp.rst >> 4. add the above two defines before including xsk.h > >Looks good to me, >only for item 4) instead of putting those defines into .c file directly, can >create a private header in driver folder, put those lines and I assume will need >a few includes for rte_rmb as well, and include that header before xsk.h. Sounds better, will do. Thanks, Xiaolong > >> >> Thanks, >> Xiaolong >> >> >>> >>> [1] >>> https://git.dpdk.org/dpdk/tree/lib/librte_eal/common/include/arch/x86/rte_atomic.h?h=v19.02#n30 >>> >>>> >>>> The one in tools/include also is GPL-2.0 only so it cannot be included >>>> from the PMD, which is BSD-3-clause only (and it recursively includes >>>> the other arch-specific kernel headers) >>>> >>>>> Anyway, as Xiaolong mentioned, following is working, can it work from >>>>> a distro >>>>> point of view: >>>>> - get kernel source code (>= v5.1-rc1) >>>>> - build libbfp and install >>>>> - set 'RTE_KERNELDIR' to point kernel source path >>>>> - build dpdk with af_xdp enabled >>>> >>>> As long as the full kernel tree is required, we cannot enable it in >>>> Debian and Ubuntu - we can't have it at build time on the build >>>> workers, and also there's the licensing problem. >>> >>> Got it. >>> >>> In above steps, 'libbpf' also build from kernel source tree, will it be problem >>> in you builds to not have it build from source? >>> >>> If not, taking into account that xsk.h also will be fixed, only >>> 'tools/include/asm/barrier.h' remains the problem, and it looks like it can be >>> solved, please check above. >>> >>> >>>> >>>>>> Also, the license in asm/barrier.h is GPL-2.0 only. It is not a >>>>>> userspace header so it is not covered by the userspace exception, >>>>>> which >>>>>> means at the very least the af_xdp PMD shared object is also >>>>>> licensed >>>>>> under GPL-2.0 only, isn't it? >>>>>> >>>>> >>>>> >>> >