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 22154A0679 for ; Wed, 3 Apr 2019 15:09:23 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 0FB371B3BC; Wed, 3 Apr 2019 15:09:22 +0200 (CEST) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by dpdk.org (Postfix) with ESMTP id 265711B3BB for ; Wed, 3 Apr 2019 15:09:19 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Apr 2019 06:09:19 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,304,1549958400"; d="scan'208";a="139795089" Received: from fyigit-mobl.ger.corp.intel.com (HELO [10.237.221.46]) ([10.237.221.46]) by fmsmga007.fm.intel.com with ESMTP; 03 Apr 2019 06:09:17 -0700 To: Luca Boccassi , Ye Xiaolong Cc: dev@dpdk.org, Karlsson Magnus , Topel Bjorn References: <20190301080947.91086-1-xiaolong.ye@intel.com> <20190402154653.711-1-xiaolong.ye@intel.com> <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> From: Ferruh Yigit Openpgp: preference=signencrypt Autocrypt: addr=ferruh.yigit@intel.com; prefer-encrypt=mutual; keydata= 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 vM8= Message-ID: <5bc49c51-04f4-6f73-889d-d3c0ff749784@intel.com> Date: Wed, 3 Apr 2019 14:09:17 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: <37073834d0b9a9f5a6e9f39bac3adc5eb29779ab.camel@debian.org> Content-Type: text/plain; charset="UTF-8" Content-Language: en-US Content-Transfer-Encoding: 8bit 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: <20190403130917.ODYHq5dg0D0MHWYlUGsEhvGVlG9AtdKzgAelH8a_IKg@z> On 4/3/2019 12:35 PM, Luca Boccassi wrote: > On Wed, 2019-04-03 at 12:18 +0100, Ferruh Yigit wrote: >> On 4/3/2019 11:42 AM, Luca Boccassi wrote: >>> On Wed, 2019-04-03 at 11:36 +0100, Luca Boccassi wrote: >>>> On Wed, 2019-04-03 at 17:59 +0800, Ye Xiaolong wrote: >>>>> Hi, Luca >>>>> >>>>> On 04/02, Luca Boccassi wrote: >>>>>> On Tue, 2019-04-02 at 23:46 +0800, Xiaolong Ye wrote: >>>>>>> diff --git a/drivers/net/af_xdp/Makefile >>>>>>> b/drivers/net/af_xdp/Makefile >>>>>>> new file mode 100644 >>>>>>> index 000000000..8343e3016 >>>>>>> --- /dev/null >>>>>>> +++ b/drivers/net/af_xdp/Makefile >>>>>>> @@ -0,0 +1,32 @@ >>>>>>> +# SPDX-License-Identifier: BSD-3-Clause >>>>>>> +# Copyright(c) 2019 Intel Corporation >>>>>>> + >>>>>>> +include $(RTE_SDK)/mk/rte.vars.mk >>>>>>> + >>>>>>> +# >>>>>>> +# library name >>>>>>> +# >>>>>>> +LIB = librte_pmd_af_xdp.a >>>>>>> + >>>>>>> +EXPORT_MAP := rte_pmd_af_xdp_version.map >>>>>>> + >>>>>>> +LIBABIVER := 1 >>>>>>> + >>>>>>> +CFLAGS += -O3 >>>>>>> + >>>>>>> +# require kernel version >= v5.1-rc1 >>>>>>> +CFLAGS += -I$(RTE_KERNELDIR)/tools/include >>>>>>> +CFLAGS += -I$(RTE_KERNELDIR)/tools/lib/bpf >>>>>> >>>>>> Sorry for not noticing this before, but doesn't this require >>>>>> the >>>>>> full >>>>>> kernel tree rather than just the typical headers package? >>>>>> Requiring >>>>>> the >>>>>> full kernel tree to be available at build time will make this >>>>>> unbuildable on distros that still use makefiles, like RHEL >>>>>> and >>>>>> SUSE. At >>>>>> least on Debian and Ubuntu, the kernel headers packages >>>>>> distributed >>>>>> do >>>>>> not include the full kernel tree, only the headers, so >>>>>> there's no >>>>>> tools/lib or tools/include. >>>>> >>>>> Currently we do have dependencies on the kernel src tree, as >>>>> xsk.h >>>>> and >>>>> asm/barrier wouldn't be installed by libbpf, so before libbpf >>>>> handles >>>>> these >>>>> properly, can we keep the current RTE_KERNELDIR in Makefile for >>>>> now, >>>>> and mention >>>>> the dependencies in document, also suggest users to config >>>>> RTE_KERNELDIR to correct >>>>> kernel src tree if they want to use af_xdp pmd? >>>>> >>>>> Something like: >>>>> >>>>> dependencies: >>>>> - kernel source code (>= v5.1-rc1) >>>>> - build libbfp and install >>>>> >>>>> Thanks, >>>>> Xiaolong >>>> >>>> asm/barrier.h is installed by the kernel headers packages so it >>>> would >>>> be fine (although not ideal) and not need the full source tree. >>>> xsk.h is a bit more worrying, as it looks like an internal header >>>> from >>>> here. >>>> >>>> Is it really necessary for external applications to use an >>>> internal- >>>> only header and a kernel header to be able to use libbpf? >>> >>> Actually, xsk.h is now installed by the library makefile: >>> >>> https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf.git/commit/?id=379e2014c95b >>> >> >> Good to have this one. But again it is in BPF tree and it won't be in >> 5.1. > > It looks like a small and required bug fix to me, and 5.1 is still in > RC state, so perhaps there's still time. > > Bjorn and Magnus, any chance the above makefile install fix could be > sent for inclusion in 5.1-rc4? > >> I suggested changing code as following for now, it would help to keep >> changes >> small when above patch merged into kernel: >> CFLAGS += -I$(RTE_KERNELDIR)/tools/lib [in makefile] >> #include [in .c file] >> >>> So the full kernel source tree is no longer required. >>> >>> Is asm/barrier.h really required? Isn't there an userspace >>> alternative? >> >> The 'asm/barrier.h' in the kernel headers and the >> 'tools/include/asm/barrier.h' >> looks different, the one in the kernel source has dependency to other >> kernel >> headers. >> >> I wonder same thing, what is used from 'tools/include/asm/barrier.h' >> and if it >> can be avoided. 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? [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? >>> >> >>