On 4/1/2019 3:56 PM, Ferruh Yigit wrote: > On 4/1/2019 3:39 PM, Bruce Richardson wrote: >> On Mon, Apr 01, 2019 at 01:51:38PM +0100, Ferruh Yigit wrote: >>> On 3/31/2019 4:52 PM, Thomas Monjalon wrote: >>>> 26/03/2019 10:50, Ferruh Yigit: >>>>>> Wenzhuo Lu (8): >>>>>> net/ice: fix Tx function setting >>>>>> net/ice: add pointer for queue buffer release >>>>>> net/ice: support vector SSE in RX >>>>>> net/ice: support Rx scatter SSE vector >>>>>> net/ice: support Tx SSE vector >>>>>> net/ice: support Rx AVX2 vector >>>>>> net/ice: support Rx scatter AVX2 vector >>>>>> net/ice: support vector AVX2 in TX >>>>> >>>>> This version (v7) pulled from next-net-intel to next-net. >>>> >>>> I assume these patches have been tested, or at least compiled. >>>> However, when running devtools/test-meson-builds.sh, there is a >>>> compilation error for build-x86-default: >>>> >>>> In file included from ../drivers/net/ice/ice_ethdev.h:10: >>>> rte_ethdev_pci.h:38:10: fatal error: 'rte_pci.h' file not found >>> >>> I tested this with meson but not able to catch the issue. Perhaps for my >>> case >>> dependencies were build fast enough to cause a problem. >>> >> >> That should be a problem with the meson builds. While with make builds, the >> headers files are picked up after they are copied to the "include" >> directory by the build process, in meson no such copying occurs and the >> header files are picked up by having the paths to them passed in the >> "dependency object" to each build. If the dependency does not exist then >> the build will never pass, irrespective of ordering, and if the dependency >> exists, the build will always find the header in its original location. > > I was checking this and recognized that no copying is happening. And I can see > many PMDs are using this header [1], not sure why ice is failing. > >> >> [The biggest benefit of this is that when building with ninja there are no >> dependencies between the individual .c files - each one can be compiled >> in parallel with all the others. It's only at the linking step that we need >> to wait for previous jobs to complete] >> >> In terms of this specific error with the header - did it get root caused? >> Since it occurs on the "default" path, I'd suggest the fallback handling in >> the meson.build file for the absense of AVX may be faulty, e.g. are you >> replacing c flags or dependencies rather than appending to them? > > Trying to find out the root cause, but as you said it occurs on the 'default' > path only, and taking into account that there is not copying dependent > headers, > I am not able to find it yet, checking.
This is meson fallback handling as Bruce guessed ... > > [1] > $ git grep rte_ethdev_pci.h > > > > drivers/net/ark/ark_ethdev.c:#include <rte_ethdev_pci.h> > drivers/net/atlantic/atl_ethdev.c:#include <rte_ethdev_pci.h> > drivers/net/avp/avp_ethdev.c:#include <rte_ethdev_pci.h> > drivers/net/axgbe/axgbe_common.h:#include <rte_ethdev_pci.h> > drivers/net/bnx2x/bnx2x_ethdev.c:#include <rte_ethdev_pci.h> > drivers/net/bnxt/bnxt_ethdev.c:#include <rte_ethdev_pci.h> > drivers/net/cxgbe/cxgbe_ethdev.c:#include <rte_ethdev_pci.h> > drivers/net/cxgbe/cxgbe_main.c:#include <rte_ethdev_pci.h> > drivers/net/cxgbe/cxgbevf_ethdev.c:#include <rte_ethdev_pci.h> > drivers/net/cxgbe/cxgbevf_main.c:#include <rte_ethdev_pci.h> > drivers/net/e1000/em_ethdev.c:#include <rte_ethdev_pci.h> > drivers/net/e1000/igb_ethdev.c:#include <rte_ethdev_pci.h> > drivers/net/e1000/igb_flow.c:#include <rte_ethdev_pci.h> > drivers/net/ena/ena_ethdev.c:#include <rte_ethdev_pci.h> > drivers/net/enetc/enetc_ethdev.c:#include <rte_ethdev_pci.h> > drivers/net/enic/enic_ethdev.c:#include <rte_ethdev_pci.h> > drivers/net/fm10k/fm10k_ethdev.c:#include <rte_ethdev_pci.h> > drivers/net/i40e/i40e_ethdev.c:#include <rte_ethdev_pci.h> > drivers/net/i40e/i40e_ethdev_vf.c:#include <rte_ethdev_pci.h> > drivers/net/iavf/iavf_ethdev.c:#include <rte_ethdev_pci.h> > drivers/net/ice/ice_ethdev.c:#include <rte_ethdev_pci.h> > drivers/net/ixgbe/ixgbe_ethdev.c:#include <rte_ethdev_pci.h> > drivers/net/ixgbe/ixgbe_ipsec.c:#include <rte_ethdev_pci.h> > drivers/net/liquidio/lio_ethdev.c:#include <rte_ethdev_pci.h> > drivers/net/mlx4/mlx4.c:#include <rte_ethdev_pci.h> > drivers/net/mlx5/mlx5.c:#include <rte_ethdev_pci.h> > drivers/net/nfp/nfp_net.c:#include <rte_ethdev_pci.h> > drivers/net/nfp/nfpcore/nfp_cpp.h:#include <rte_ethdev_pci.h> > drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c:#include <rte_ethdev_pci.h> > drivers/net/nfp/nfpcore/nfp_cppcore.c:#include <rte_ethdev_pci.h> > drivers/net/qede/qede_ethdev.h:#include <rte_ethdev_pci.h> > drivers/net/sfc/sfc_ethdev.c:#include <rte_ethdev_pci.h> > drivers/net/szedata2/rte_eth_szedata2.c:#include <rte_ethdev_pci.h> > drivers/net/thunderx/nicvf_ethdev.c:#include <rte_ethdev_pci.h> > drivers/net/virtio/virtio_ethdev.c:#include <rte_ethdev_pci.h> > drivers/net/vmxnet3/vmxnet3_ethdev.c:#include <rte_ethdev_pci.h> >