DPDK patches and discussions
 help / color / mirror / Atom feed
From: fengchengwen <fengchengwen@huawei.com>
To: Shijith Thotton <sthotton@marvell.com>,
	"Wu, Jingjing" <jingjing.wu@intel.com>,
	"Xing, Beilei" <beilei.xing@intel.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
	"Morten Brørup" <mb@smartsharesystems.com>,
	"Bruce Richardson" <bruce.richardson@intel.com>
Subject: Re: Building DPDK with IOVA_AS_VA
Date: Fri, 9 Dec 2022 17:33:52 +0800	[thread overview]
Message-ID: <a9befb34-a317-dde6-94a0-6af457376617@huawei.com> (raw)
In-Reply-To: <PH0PR18MB44259C13669BDED6D6091313D91A9@PH0PR18MB4425.namprd18.prod.outlook.com>

  The hns3 and idpf both use static_library to build advanced vector (e.g. SVE for hns3 and AVX512 for idpf).
The static-library is still compiled even the PMD is not compiled, and this lead to the compile fail problem.

  Although the following could solve the problem, but is there a better plan?
 +if dpdk_conf.get('RTE_IOVA_AS_PA') == 0
 +    build = false
 +    reason = 'driver does not support disabling IOVA as PA mode'
 +    subdir_done()
 +endif


On 2022/12/7 15:15, Shijith Thotton wrote:
> Hi Jingjing Wu/Beilei Xing.
> 
>> I guess driver may not handle the attribute enable_iova_as_pa well right now.
>> Maybe you can have a try by disabling idpf driver by adding "-
>> Ddisable_drivers=net/idpf".
>>
> 
> Please send a fix. A check can be added similar to hns3 PMD. 
> 
> +if dpdk_conf.get('RTE_IOVA_AS_PA') == 0
> +    build = false
> +    reason = 'driver does not support disabling IOVA as PA mode'
> +    subdir_done()
> +endif
> +
> 
> Thanks,
> Shijith
> 
>>>
>>> +To: Intel idpf maintainers Jingjing Wu, Beilei Xing
>>>
>>>> From: Morten Brørup [mailto:mb@smartsharesystems.com]
>>>> Sent: Tuesday, 6 December 2022 17.58
>>>>
>>>> Bruce,
>>>>
>>>> How do I build with IOVA_AS_VA, to benefit from Shijith Thotton's
>>>> patch? (Bonus question: How do I make the CI build this way?)
>>>>
>>>> When I try this command:
>>>> meson -Dplatform=generic -Dcheck_includes=true -
>>>> Denable_iova_as_pa=false work
>>>>
>>>> It fails with:
>>>> drivers/net/idpf/meson.build:36:8: ERROR: Unknown variable
>>>> "static_rte_common_idpf".
>>>>
>>>> Here is the full output:
>>>>
>>>> The Meson build system
>>>> Version: 0.60.3
>>>> Source dir: /home/morten/upstreaming/dpdk-experiment
>>>> Build dir: /home/morten/upstreaming/dpdk-experiment/work
>>>> Build type: native build
>>>> Program cat found: YES (/usr/bin/cat)
>>>> Project name: DPDK
>>>> Project version: 23.03.0-rc0
>>>> C compiler for the host machine: cc (gcc 9.4.0 "cc (Ubuntu 9.4.0-
>>>> 1ubuntu1~20.04.1) 9.4.0")
>>>> C linker for the host machine: cc ld.bfd 2.34
>>>> Host machine cpu family: x86_64
>>>> Host machine cpu: x86_64
>>>> Message: ## Building in Developer Mode ##
>>>> Program pkg-config pkgconf found: NO
>>>> Program check-symbols.sh found: YES (/home/morten/upstreaming/dpdk-
>>>> experiment/buildtools/check-symbols.sh)
>>>> Program options-ibverbs-static.sh found: YES
>>>> (/home/morten/upstreaming/dpdk-experiment/buildtools/options-ibverbs-
>>>> static.sh)
>>>> Program objdump found: YES (/usr/bin/objdump)
>>>> Program python3 found: YES (/usr/bin/python3)
>>>> Program cat found: YES (/usr/bin/cat)
>>>> Program ../buildtools/symlink-drivers-solibs.sh found: YES (/bin/sh
>>>> /home/morten/upstreaming/dpdk-experiment/config/../buildtools/symlink-
>>>> drivers-solibs.sh)
>>>> Checking for size of "void *" : 8
>>>> Checking for size of "void *" : 8
>>>> Library m found: YES
>>>> Library numa found: YES
>>>> Has header "numaif.h" : YES
>>>> Library libfdt found: NO
>>>> Library libexecinfo found: NO
>>>> Did not find pkg-config by name 'pkg-config'
>>>> Found Pkg-config: NO
>>>> Run-time dependency libarchive found: NO (tried pkgconfig)
>>>> Run-time dependency libbsd found: NO (tried pkgconfig)
>>>> Run-time dependency jansson found: NO (tried pkgconfig)
>>>> Run-time dependency openssl found: NO (tried pkgconfig)
>>>> Run-time dependency libpcap found: NO (tried pkgconfig)
>>>> Library pcap found: YES
>>>> Has header "pcap.h" with dependency -lpcap: YES
>>>> Compiler for C supports arguments -Wcast-qual: YES
>>>> Compiler for C supports arguments -Wdeprecated: YES
>>>> Compiler for C supports arguments -Wformat: YES
>>>> Compiler for C supports arguments -Wformat-nonliteral: YES
>>>> Compiler for C supports arguments -Wformat-security: YES
>>>> Compiler for C supports arguments -Wmissing-declarations: YES
>>>> Compiler for C supports arguments -Wmissing-prototypes: YES
>>>> Compiler for C supports arguments -Wnested-externs: YES
>>>> Compiler for C supports arguments -Wold-style-definition: YES
>>>> Compiler for C supports arguments -Wpointer-arith: YES
>>>> Compiler for C supports arguments -Wsign-compare: YES
>>>> Compiler for C supports arguments -Wstrict-prototypes: YES
>>>> Compiler for C supports arguments -Wundef: YES
>>>> Compiler for C supports arguments -Wwrite-strings: YES
>>>> Compiler for C supports arguments -Wno-address-of-packed-member: YES
>>>> Compiler for C supports arguments -Wno-packed-not-aligned: YES
>>>> Compiler for C supports arguments -Wno-missing-field-initializers: YES
>>>> Compiler for C supports arguments -mavx512f: YES
>>>> Checking if "AVX512 checking" : compiles: YES
>>>> Fetching value of define "__SSE4_2__" : 1
>>>> Fetching value of define "__AES__" :
>>>> Fetching value of define "__AVX__" :
>>>> Fetching value of define "__AVX2__" :
>>>> Fetching value of define "__AVX512BW__" :
>>>> Fetching value of define "__AVX512CD__" :
>>>> Fetching value of define "__AVX512DQ__" :
>>>> Fetching value of define "__AVX512F__" :
>>>> Fetching value of define "__AVX512VL__" :
>>>> Fetching value of define "__PCLMUL__" :
>>>> Fetching value of define "__RDRND__" :
>>>> Fetching value of define "__RDSEED__" :
>>>> Fetching value of define "__VPCLMULQDQ__" :
>>>> Compiler for C supports arguments -Wno-format-truncation: YES
>>>> Message: lib/kvargs: Defining dependency "kvargs"
>>>> Message: lib/telemetry: Defining dependency "telemetry"
>>>> Checking for function "getentropy" : YES
>>>> Message: lib/eal: Defining dependency "eal"
>>>> Message: lib/ring: Defining dependency "ring"
>>>> Message: lib/rcu: Defining dependency "rcu"
>>>> Message: lib/mempool: Defining dependency "mempool"
>>>> Message: lib/mbuf: Defining dependency "mbuf"
>>>> Fetching value of define "__PCLMUL__" :  (cached)
>>>> Fetching value of define "__AVX512F__" :  (cached)
>>>> Compiler for C supports arguments -mpclmul: YES
>>>> Compiler for C supports arguments -maes: YES
>>>> Compiler for C supports arguments -mavx512f: YES (cached)
>>>> Compiler for C supports arguments -mavx512bw: YES
>>>> Compiler for C supports arguments -mavx512dq: YES
>>>> Compiler for C supports arguments -mavx512vl: YES
>>>> Compiler for C supports arguments -mvpclmulqdq: YES
>>>> Compiler for C supports arguments -mavx2: YES
>>>> Compiler for C supports arguments -mavx: YES
>>>> Message: lib/net: Defining dependency "net"
>>>> Message: lib/meter: Defining dependency "meter"
>>>> Message: lib/ethdev: Defining dependency "ethdev"
>>>> Message: lib/pci: Defining dependency "pci"
>>>> Message: lib/cmdline: Defining dependency "cmdline"
>>>> Message: lib/metrics: Defining dependency "metrics"
>>>> Message: lib/hash: Defining dependency "hash"
>>>> Message: lib/timer: Defining dependency "timer"
>>>> Fetching value of define "__AVX2__" :  (cached)
>>>> Compiler for C supports arguments -mavx2: YES (cached)
>>>> Fetching value of define "__AVX512F__" :  (cached)
>>>> Fetching value of define "__AVX512VL__" :  (cached)
>>>> Fetching value of define "__AVX512CD__" :  (cached)
>>>> Fetching value of define "__AVX512BW__" :  (cached)
>>>> Compiler for C supports arguments -mavx512f -mavx512vl -mavx512cd -
>>>> mavx512bw: YES
>>>> Message: lib/acl: Defining dependency "acl"
>>>> Message: lib/bbdev: Defining dependency "bbdev"
>>>> Message: lib/bitratestats: Defining dependency "bitratestats"
>>>> Run-time dependency libelf found: NO (tried pkgconfig)
>>>> lib/bpf/meson.build:36: WARNING: libelf is missing, rte_bpf_elf_load
>>>> API will be disabled
>>>> Message: lib/bpf: Defining dependency "bpf"
>>>> Message: lib/cfgfile: Defining dependency "cfgfile"
>>>> Message: lib/compressdev: Defining dependency "compressdev"
>>>> Message: lib/cryptodev: Defining dependency "cryptodev"
>>>> Message: lib/distributor: Defining dependency "distributor"
>>>> Message: lib/efd: Defining dependency "efd"
>>>> Message: lib/eventdev: Defining dependency "eventdev"
>>>> Message: lib/gpudev: Defining dependency "gpudev"
>>>> Message: lib/gro: Defining dependency "gro"
>>>> Message: lib/gso: Defining dependency "gso"
>>>> Message: lib/ip_frag: Defining dependency "ip_frag"
>>>> Message: lib/jobstats: Defining dependency "jobstats"
>>>> Message: lib/latencystats: Defining dependency "latencystats"
>>>> Message: lib/lpm: Defining dependency "lpm"
>>>> Fetching value of define "__AVX512F__" :  (cached)
>>>> Fetching value of define "__AVX512DQ__" :  (cached)
>>>> Fetching value of define "__AVX512IFMA__" :
>>>> Compiler for C supports arguments -mavx512f -mavx512dq -mavx512ifma:
>>>> YES
>>>> Message: lib/member: Defining dependency "member"
>>>> Message: lib/pcapng: Defining dependency "pcapng"
>>>> Compiler for C supports arguments -Wno-cast-qual: YES
>>>> Message: lib/power: Defining dependency "power"
>>>> Message: lib/rawdev: Defining dependency "rawdev"
>>>> Message: lib/regexdev: Defining dependency "regexdev"
>>>> Message: lib/dmadev: Defining dependency "dmadev"
>>>> Message: lib/rib: Defining dependency "rib"
>>>> Message: lib/reorder: Defining dependency "reorder"
>>>> Message: lib/sched: Defining dependency "sched"
>>>> Message: lib/security: Defining dependency "security"
>>>> Message: lib/stack: Defining dependency "stack"
>>>> Has header "linux/userfaultfd.h" : YES
>>>> Message: lib/vhost: Defining dependency "vhost"
>>>> Message: lib/ipsec: Defining dependency "ipsec"
>>>> Fetching value of define "__AVX512F__" :  (cached)
>>>> Fetching value of define "__AVX512DQ__" :  (cached)
>>>> Compiler for C supports arguments -mavx512f -mavx512dq: YES
>>>> Compiler for C supports arguments -mavx512bw: YES (cached)
>>>> Message: lib/fib: Defining dependency "fib"
>>>> Message: lib/port: Defining dependency "port"
>>>> Message: lib/pdump: Defining dependency "pdump"
>>>> Message: lib/table: Defining dependency "table"
>>>> Message: lib/pipeline: Defining dependency "pipeline"
>>>> Message: lib/graph: Defining dependency "graph"
>>>> Message: lib/node: Defining dependency "node"
>>>> Compiler for C supports arguments -Wno-format-truncation: YES (cached)
>>>> Compiler for C supports arguments -Wno-cast-qual: YES (cached)
>>>> Compiler for C supports arguments -Wno-pointer-arith: YES
>>>> Compiler for C supports arguments -Wno-pointer-to-int-cast: YES
>>>> Run-time dependency libmusdk found: NO (tried pkgconfig)
>>>> Compiler for C supports arguments -Wno-cast-qual: YES (cached)
>>>> Compiler for C supports arguments -Wno-pointer-arith: YES (cached)
>>>> Message: drivers/bus/pci: Defining dependency "bus_pci"
>>>> Message: drivers/bus/vdev: Defining dependency "bus_vdev"
>>>> Message: drivers/common/cnxk: Defining dependency "common_cnxk"
>>>> Compiler for C supports arguments -std=c11: YES
>>>> Compiler for C supports arguments -Wno-strict-prototypes: YES
>>>> Compiler for C supports arguments -D_BSD_SOURCE: YES
>>>> Compiler for C supports arguments -D_DEFAULT_SOURCE: YES
>>>> Compiler for C supports arguments -D_XOPEN_SOURCE=600: YES
>>>> Run-time dependency libmlx5 found: NO (tried pkgconfig)
>>>> Library mlx5 found: NO
>>>> Configuring mlx5_autoconf.h using configuration
>>>> Run-time dependency libcrypto found: NO (tried pkgconfig)
>>>> Library IPSec_MB found: NO
>>>> Run-time dependency libcrypto found: NO (tried pkgconfig)
>>>> Compiler for C supports arguments -Wdisabled-optimization: YES
>>>> Compiler for C supports arguments -Waggregate-return: YES
>>>> Compiler for C supports arguments -Wbad-function-cast: YES
>>>> Compiler for C supports arguments -Wno-sign-compare: YES
>>>> Compiler for C supports arguments -Wno-unused-parameter: YES
>>>> Compiler for C supports arguments -Wno-unused-variable: YES
>>>> Compiler for C supports arguments -Wno-empty-body: YES
>>>> Compiler for C supports arguments -Wno-unused-but-set-variable: YES
>>>> Message: drivers/mempool/bucket: Defining dependency "mempool_bucket"
>>>> Message: drivers/mempool/cnxk: Defining dependency "mempool_cnxk"
>>>> Message: drivers/mempool/ring: Defining dependency "mempool_ring"
>>>> Message: drivers/mempool/stack: Defining dependency "mempool_stack"
>>>> Message: drivers/dma/cnxk: Defining dependency "dma_cnxk"
>>>> Compiler for C supports arguments -Wno-pointer-arith: YES (cached)
>>>> Compiler for C supports arguments -Wno-pointer-arith: YES (cached)
>>>> Message: drivers/dma/skeleton: Defining dependency "dma_skeleton"
>>>> Message: drivers/net/af_packet: Defining dependency "net_af_packet"
>>>> Run-time dependency libxdp found: NO (tried pkgconfig)
>>>> Run-time dependency libbpf found: NO (tried pkgconfig)
>>>> Library bpf found: NO
>>>> Has header "linux/if_xdp.h" : YES
>>>> Run-time dependency zlib found: NO (tried pkgconfig)
>>>> Compiler for C supports arguments -DSUPPORT_CFA_HW_ALL=1: YES
>>>> Fetching value of define "__AVX2__" :  (cached)
>>>> Compiler for C supports arguments -mavx2: YES (cached)
>>>> Message: drivers/net/bonding: Defining dependency "net_bond"
>>>> Compiler for C supports arguments -flax-vector-conversions: YES
>>>> Compiler for C supports arguments -Wno-strict-aliasing: YES
>>>> Message: drivers/net/cnxk: Defining dependency "net_cnxk"
>>>> Compiler for C supports arguments -Wno-pointer-arith: YES (cached)
>>>> Compiler for C supports arguments -Wno-uninitialized: YES
>>>> Compiler for C supports arguments -Wno-unused-parameter: YES (cached)
>>>> Compiler for C supports arguments -Wno-unused-variable: YES (cached)
>>>> Compiler for C supports arguments -Wno-misleading-indentation: YES
>>>> Compiler for C supports arguments -Wno-implicit-fallthrough: YES
>>>> Fetching value of define "__AVX2__" :  (cached)
>>>> Compiler for C supports arguments -mavx2: YES (cached)
>>>> Message: drivers/net/failsafe: Defining dependency "net_failsafe"
>>>> Compiler for C supports arguments -Wno-unused-parameter: YES (cached)
>>>> Compiler for C supports arguments -Wno-unused-value: YES
>>>> Compiler for C supports arguments -Wno-strict-aliasing: YES (cached)
>>>> Compiler for C supports arguments -Wno-format-extra-args: YES
>>>> Compiler for C supports arguments -Wno-unused-variable: YES (cached)
>>>> Compiler for C supports arguments -Wno-implicit-fallthrough: YES
>>>> (cached)
>>>> Compiler for C supports arguments -Wno-sign-compare: YES (cached)
>>>> Compiler for C supports arguments -Wno-unused-value: YES (cached)
>>>> Compiler for C supports arguments -Wno-format: YES
>>>> Compiler for C supports arguments -Wno-format-security: YES
>>>> Compiler for C supports arguments -Wno-format-nonliteral: YES
>>>> Compiler for C supports arguments -Wno-strict-aliasing: YES (cached)
>>>> Compiler for C supports arguments -Wno-unused-but-set-variable: YES
>>>> (cached)
>>>> Compiler for C supports arguments -Wno-unused-parameter: YES (cached)
>>>> Fetching value of define "__AVX2__" :  (cached)
>>>> Compiler for C supports arguments -mavx2: YES (cached)
>>>> Fetching value of define "__AVX512F__" :  (cached)
>>>> Compiler for C supports arguments -mavx512f: YES (cached)
>>>> Compiler for C supports arguments -mavx512bw: YES (cached)
>>>> Compiler for C supports arguments -march=skylake-avx512: YES
>>>> Fetching value of define "__AVX2__" :  (cached)
>>>> Compiler for C supports arguments -mavx2: YES (cached)
>>>> Fetching value of define "__AVX512F__" :  (cached)
>>>> Compiler for C supports arguments -mavx512f: YES (cached)
>>>> Compiler for C supports arguments -mavx512bw: YES (cached)
>>>> Compiler for C supports arguments -march=skylake-avx512: YES (cached)
>>>> Compiler for C supports arguments -Wno-unused-value: YES (cached)
>>>> Compiler for C supports arguments -Wno-unused-but-set-variable: YES
>>>> (cached)
>>>> Compiler for C supports arguments -Wno-unused-variable: YES (cached)
>>>> Compiler for C supports arguments -Wno-unused-parameter: YES (cached)
>>>> Fetching value of define "__AVX2__" :  (cached)
>>>> Compiler for C supports arguments -mavx2: YES (cached)
>>>> Fetching value of define "__AVX512F__" :  (cached)
>>>> Compiler for C supports arguments -mavx512f: YES (cached)
>>>> Compiler for C supports arguments -mavx512bw: YES (cached)
>>>> Compiler for C supports arguments -march=skylake-avx512: YES (cached)
>>>> Fetching value of define "__AVX512F__" :  (cached)
>>>> Compiler for C supports arguments -mavx512f: YES (cached)
>>>> Compiler for C supports arguments -mavx512bw: YES (cached)
>>>> Compiler for C supports arguments -march=skylake-avx512: YES (cached)
>>>>
>>>> drivers/net/idpf/meson.build:36:8: ERROR: Unknown variable
>>>> "static_rte_common_idpf".
>>>>
>>>> A full log can be found at /home/morten/upstreaming/dpdk-
>>>> experiment/work/meson-logs/meson-log.txt
>>>>
>>>>
>>>> Med venlig hilsen / Kind regards,
>>>> -Morten Brørup
>>>>
> 
> .
> 

  parent reply	other threads:[~2022-12-09  9:33 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-06 16:58 Morten Brørup
2022-12-06 18:55 ` Morten Brørup
2022-12-07  6:51   ` Wu, Jingjing
2022-12-07  7:15     ` Shijith Thotton
2022-12-07  7:19       ` Wu, Jingjing
2022-12-09  9:33       ` fengchengwen [this message]
2023-02-19 10:01         ` Thomas Monjalon
2023-02-19 11:05           ` Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a9befb34-a317-dde6-94a0-6af457376617@huawei.com \
    --to=fengchengwen@huawei.com \
    --cc=beilei.xing@intel.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=jingjing.wu@intel.com \
    --cc=mb@smartsharesystems.com \
    --cc=sthotton@marvell.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).