On Fri, Apr 05, 2019 at 04:31:16PM +0100, Ferruh Yigit wrote:
> On 4/5/2019 4:23 PM, Bruce Richardson wrote:
> > On Fri, Apr 05, 2019 at 11:05:25PM +0800, Ye Xiaolong wrote:
> >> Hi, Ferruh
> >>
> >> On 04/05, Ferruh Yigit wrote:
> >>> On 4/4/2019 9:51 AM, Xiaolong Ye wrote:
> >>>> Add a new PMD driver for AF_XDP which is a proposed faster version of
> >>>> AF_PACKET interface in Linux. More info about AF_XDP, please refer to [1]
> >>>> [2].
> >>>>
> >>>> This is the vanilla version PMD which just uses a raw buffer registered 
> >>>> as
> >>>> the umem.
> >>>>
> >>>> [1] https://fosdem.org/2018/schedule/event/af_xdp/
> >>>> [2] https://lwn.net/Articles/745934/
> >>>>
> >>>> Signed-off-by: Xiaolong Ye <xiaolong...@intel.com>
> >>>
> >>> <...>
> >>>
> >>>> diff --git a/drivers/net/af_xdp/meson.build 
> >>>> b/drivers/net/af_xdp/meson.build
> >>>> new file mode 100644
> >>>> index 000000000..840c93728
> >>>> --- /dev/null
> >>>> +++ b/drivers/net/af_xdp/meson.build
> >>>> @@ -0,0 +1,19 @@
> >>>> +# SPDX-License-Identifier: BSD-3-Clause
> >>>> +# Copyright(c) 2019 Intel Corporation
> >>>> +
> >>>> +if host_machine.system() == 'linux'
> >>>> +        bpf_dep = dependency('libbpf', required: false)
> >>>> +        if bpf_dep.found()
> >>>> +                build = true
> >>>> +        else
> >>>> +                bpf_dep = cc.find_library('bpf', required: false)
> >>>> +                if bpf_dep.found() and cc.has_header('bpf/xsk.h', 
> >>>> dependencies: bpf_dep) and cc.has_header('linux/if_xdp.h')
> >>>> +                        build = true
> >>>> +                        pkgconfig_extra_libs += '-lbpf'
> >>>> +                else
> >>>> +                        build = false
> >>>> +                endif
> >>>> +        endif
> >>>> +        ext_deps += bpf_dep
> >>>> +endif
> >>>> +sources = files('rte_eth_af_xdp.c')
> >>>
> >>> if system is not 'linux', by default build will be 'true', right, so will 
> >>> it try
> >>> to build the driver in that case?
> >>> What about setting "build = false" before the linux check, so won't need 
> >>> to set
> >>> it false again in the if block, only set it true if dependencies found?
> >>
> >> This is a good catch, we do need to initialize build = false first, 
> >> otherwise
> >> meson/ninja would just try to build af_xdp pmd if system is not linux, 
> >> which is
> >> undesired. Do I need to send a separate patch for this so you can squash 
> >> it into
> >> af_xdp pmd patch?
> >>
> >>> And can 'ext_deps' go out of if block?
> >>
> >> If we move `ext_deps += bpf_dep` out of if block and build system is not 
> >> linux, there
> >> would be error "ERROR: Unknown variable "bpf_dep".", so we need either 
> >> initialize
> >> bpf_dep (to value like NULL?) first or keep `ext_deps += bpf_dep` inside 
> >> the if 
> >> block, I'd prefer keep it as it is, what's you opinion?
> > 
> > Actually, a suggestion - rather than limiting the build to linux, why not
> > just limit the build to the presence of libbpf, and not bother checking the
> > OS?
> 
> If this won't cause a problem for other OS in case they have the library, I 
> have
> no objection.
>
Well, they shouldn't have, and we also check for the header file
"linux/if_xdp.h", so I don't think an additional check for linux itself is
required. Generally, I think it's better to check for the requirements of a
driver directly, rather than assuming that only certain environments would
ever have them.
Just sent my suggested patch: http://patches.dpdk.org/patch/52357/

/Bruce

Reply via email to