Hi, i tried compile your port and i have issue with code ===> Building for dpdk20.11-20.11.5 [ 50% 1/2] /usr/bin/make -f ../kernel/freebsd/BSDmakefile.meson KMOD_OBJDIR=kernel/freebsd KMOD_SRC=../kernel/freebsd/contigmem/contigmem.c KMOD=contigmem 'KMOD_CFLAGS=-I/usr/ports/net/dpdk-20.11/work/dpdk-stable-20.11.5/_build -I/usr/ports/net/dpdk-20.11/work/dpdk-stable-20.11.5/config -include rte_config.h' CC=clang FAILED: kernel/freebsd/contigmem.ko /usr/bin/make -f ../kernel/freebsd/BSDmakefile.meson KMOD_OBJDIR=kernel/freebsd KMOD_SRC=../kernel/freebsd/contigmem/contigmem.c KMOD=contigmem 'KMOD_CFLAGS=-I/usr/ports/net/dpdk-20.11/work/dpdk-stable-20.11.5/_build -I/usr/ports/net/dpdk-20.11/work/dpdk-stable-20.11.5/config -include rte_config.h' CC=clang clang -pipe -g -fno-strict-aliasing -include rte_config.h -Werror -D_KERNEL -DKLD_MODULE -nostdinc -I/usr/ports/net/dpdk-20.11/work/dpdk-stable-20.11.5/_build -I/usr/ports/net/dpdk-20.11/work/dpdk-stable-20.11.5/config -I. -I/usr/src/sys -I/usr/src/sys/contrib/ck/include -fno-common -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -fdebug-prefix-map=./machine=/usr/src/sys/amd64/include -fdebug-prefix-map=./x86=/usr/src/sys/x86/include -MD -MF.depend.contigmem.o -MTcontigmem.o -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fwrapv -fstack-protector -gdwarf-2 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wcast-qual -Wundef -Wno-pointer-sign -D__printf__=__freebsd_kprintf__ -Wmissing-include-dirs -fdiagnostics-show-option -Wno-unknown-pragmas -Wno-error=tautological-compare -Wno-error=empty-body -Wno-error=parentheses-equality -Wno-error=unused-function -Wno-error=pointer-sign -Wno-error=shift-negative-value -Wno-address-of-packed-member -Wno-error=unused-but-set-variable -Wno-format-zero-length -mno-aes -mno-avx -std=iso9899:1999 -c /usr/ports/net/dpdk-20.11/work/dpdk-stable-20.11.5/kernel/freebsd/contigmem/contigmem.c -o contigmem.o /usr/ports/net/dpdk-20.11/work/dpdk-stable-20.11.5/kernel/freebsd/contigmem/contigmem.c:309:50: error: too many arguments to function call, expected 3, have 4 vm_page_replace(page, object, (*mres)->pindex, *mres); ~~~~~~~~~~~~~~~ ^~~~~ /usr/src/sys/vm/vm_page.h:572:11: note: 'vm_page_replace' declared here vm_page_t vm_page_replace(vm_page_t mnew, vm_object_t object, ^
In poudriere without issue =======================<phase: package >============================ ===> Building package for dpdk-19.11.12 =========================================================================== =>> Recording filesystem state for preinst... done =======================<phase: install >============================ ===> Installing for dpdk-19.11.12 ===> Checking if dpdk is already installed ===> Registering installation for dpdk-19.11.12 [freebsd13x64-default] Installing dpdk-19.11.12... The Intel(R) DPDK requires two kernel modules to be loaded in order to run. To load these modules add loading lines to /boot/loader.conf contigmem_load="YES" nic_uio_load="YES" The modules each take a number of parameters. These should be set in loader.conf before the above two lines to load the module. * The "contigmem" module is used to reserve contiguous blocks of physical memory for packet buffer use. It takes parameters for the number and size of blocks to be reserved. An example is below, reserving a single 1G block: hw.contigmem.num_buffers=1 hw.contigmem.buffer_size=1073741824 * The "nic_uio" module is used to expose the network card (NIC) hardware directly to userspace for use with the Intel(R) DPDK. If the NIC ports to be used are in use by an existing driver, the nic_uio module can unbind the port from its existing driver when requested to do so. This is done by passing the relevant PCI bus, device and function settings to the driver as parameters. For example: hw.nic_uio.bdfs="2:0:0,2:0:1" ===> SECURITY REPORT: This port has installed the following files which may act as network servers and may therefore pose a remote security risk to the system. /usr/local/lib/librte_telemetry.a(librte_telemetry_rte_telemetry_parser_test.c.o) /usr/local/lib/librte_telemetry.so.0.200 /usr/local/lib/librte_telemetry.a(librte_telemetry_rte_telemetry.c.o) If there are vulnerabilities in these programs there may be a security risk to the system. FreeBSD makes no guarantee about the security of ports included in the Ports Collection. Please type 'make deinstall' to deinstall the port if this is a concern. For more information, and contact details about the security status of this software, see the following webpage: http://dpdk.org/ =========================================================================== =>> Checking shared library dependencies 0x0000000000000001 NEEDED Shared library: [libc.so.7] 0x0000000000000001 NEEDED Shared library: [libexecinfo.so.1] 0x0000000000000001 NEEDED Shared library: [libjansson.so.4] 0x0000000000000001 NEEDED Shared library: [libm.so.5] 0x0000000000000001 NEEDED Shared library: [libpcap.so.8] 0x0000000000000001 NEEDED Shared library: [librte_acl.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_bbdev.so.0.200] 0x0000000000000001 NEEDED Shared library: [librte_bitratestats.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_bpf.so.0.200] 0x0000000000000001 NEEDED Shared library: [librte_bus_pci.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_bus_vdev.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_cmdline.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_common_octeontx.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_common_octeontx2.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_compressdev.so.0.200] 0x0000000000000001 NEEDED Shared library: [librte_cryptodev.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_eal.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_ethdev.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_eventdev.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_gro.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_gso.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_hash.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_ip_frag.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_ipsec.so.0.200] 0x0000000000000001 NEEDED Shared library: [librte_kvargs.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_latencystats.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_lpm.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_mbuf.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_mempool.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_mempool_octeontx.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_mempool_octeontx2.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_meter.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_metrics.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_net.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_pci.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_pdump.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_pipeline.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_pmd_bbdev_fpga_lte_fec.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_pmd_bnxt.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_pmd_bond.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_pmd_crypto_scheduler.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_pmd_i40e.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_pmd_ixgbe.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_pmd_octeontx.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_pmd_octeontx2.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_port.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_rawdev.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_reorder.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_rib.so.0.200] 0x0000000000000001 NEEDED Shared library: [librte_ring.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_sched.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_security.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_stack.so.0.200] 0x0000000000000001 NEEDED Shared library: [librte_table.so.20.0] 0x0000000000000001 NEEDED Shared library: [librte_telemetry.so.0.200] 0x0000000000000001 NEEDED Shared library: [librte_timer.so.20.0] 0x0000000000000001 NEEDED Shared library: [libthr.so.3] 0x0000000000000001 NEEDED Shared library: [libz.so.6] =======================<phase: deinstall >============================ ===> Deinstalling for dpdk ===> Deinstalling dpdk-19.11.12 Updating database digests format: .......... done Checking integrity... done (0 conflicting) Deinstallation has been requested for the following 1 packages (of 0 packages in the universe): Installed packages to be REMOVED: dpdk: 19.11.12 Number of packages to be removed: 1 The operation will free 30 MiB. [freebsd13x64-default] [1/1] Deinstalling dpdk-19.11.12... [freebsd13x64-default] [1/1] Deleting files for dpdk-19.11.12: .......... done =========================================================================== =>> Checking for extra files and directories [00:05:50] Installing from package [freebsd13x64-default] Installing dpdk-19.11.12... [freebsd13x64-default] Extracting dpdk-19.11.12: .......... done ===== Message from dpdk-19.11.12: -- The Intel(R) DPDK requires two kernel modules to be loaded in order to run. To load these modules add loading lines to /boot/loader.conf contigmem_load="YES" nic_uio_load="YES" The modules each take a number of parameters. These should be set in loader.conf before the above two lines to load the module. * The "contigmem" module is used to reserve contiguous blocks of physical memory for packet buffer use. It takes parameters for the number and size of blocks to be reserved. An example is below, reserving a single 1G block: hw.contigmem.num_buffers=1 hw.contigmem.buffer_size=1073741824 * The "nic_uio" module is used to expose the network card (NIC) hardware directly to userspace for use with the Intel(R) DPDK. If the NIC ports to be used are in use by an existing driver, the nic_uio module can unbind the port from its existing driver when requested to do so. This is done by passing the relevant PCI bus, device and function settings to the driver as parameters. For example: hw.nic_uio.bdfs="2:0:0,2:0:1" [00:05:51] Cleaning up ===> Cleaning for dpdk-19.11.12 [00:05:52] Deinstalling package Updating database digests format: . done Checking integrity... done (0 conflicting) Deinstallation has been requested for the following 1 packages (of 0 packages in the universe): Installed packages to be REMOVED: dpdk: 19.11.12 Number of packages to be removed: 1 The operation will free 30 MiB. [freebsd13x64-default] [1/1] Deinstalling dpdk-19.11.12... [freebsd13x64-default] [1/1] Deleting files for dpdk-19.11.12: .......... done build of net/dpdk | dpdk-19.11.12 ended at Fri Oct 14 23:16:29 CEST 2022
What version of FreeBSD is the build error being seen on? The output from poudriere below seems to be from the "dpdk" port rather than the dpdk-20.11 port, on which error was seen. This may explain why its not seen there.
(In reply to Bruce Richardson from comment #2) My FreeBSD setup is: FreeBSD 13.1-RELEASE-p1 FreeBSD 13.1-RELEASE-p1 GENERIC amd64 and dpdk20.11 is also without issue with poudriere. I am sorry =========================================================================== ====> Running Q/A tests (stage-qa) ====> Checking for pkg-plist issues (check-plist) ===> Parsing plist ===> Checking for items in STAGEDIR missing from pkg-plist ===> Checking for items in pkg-plist which are not in STAGEDIR ===> No pkg-plist issues found (check-plist) =>> Checking for staging violations... done =======================<phase: package >============================ ===> Building package for dpdk20.11-20.11.5 =========================================================================== =>> Recording filesystem state for preinst... done =======================<phase: install >============================ ===> Installing for dpdk20.11-20.11.5 ===> Checking if dpdk20.11 is already installed ===> Registering installation for dpdk20.11-20.11.5 [freebsd13x64-default] Installing dpdk20.11-20.11.5... The Intel(R) DPDK requires two kernel modules to be loaded in order to run. To load these modules add loading lines to /boot/loader.conf contigmem_load="YES" nic_uio_load="YES" The modules each take a number of parameters. These should be set in loader.conf before the above two lines to load the module. * The "contigmem" module is used to reserve contiguous blocks of physical memory for packet buffer use. It takes parameters for the number and size of blocks to be reserved. An example is below, reserving a single 1G block: hw.contigmem.num_buffers=1 hw.contigmem.buffer_size=1073741824 * The "nic_uio" module is used to expose the network card (NIC) hardware directly to userspace for use with the Intel(R) DPDK. If the NIC ports to be used are in use by an existing driver, the nic_uio module can unbind the port from its existing driver when requested to do so. This is done by passing the relevant PCI bus, device and function settings to the driver as parameters. For example: hw.nic_uio.bdfs="2:0:0,2:0:1" ===> SECURITY REPORT:
When testing on a similar FreeBSD 13.1 (13.1-RELEASE-p2) system I also do not see a problem, the 20.11.5 version from latest ports builds without errors. I wonder what could be different in your environment? Would RELEASE-p1 vs p2 have any effective differences here?
(In reply to Bruce Richardson from comment #4) I know now.I have source code kernel set to releng/12.3 and this problem.
(In reply to Bruce Richardson from comment #4) For version kernel 'release/13.1.0' is port ok. I think that you can this bug close..
^Triage: Closing as per OP request.