Message ID | 1605874101-30893-11-git-send-email-juraj.linkes@pantheon.tech (mailing list archive) |
---|---|
State | Superseded, archived |
Delegated to: | Thomas Monjalon |
Headers | show |
Series | Arm build options rework | expand |
Context | Check | Description |
---|---|---|
ci/checkpatch | success | coding style OK |
> On Nov 20, 2020, at 7:08 AM, Juraj Linkeš <juraj.linkes@pantheon.tech> wrote: > > Some Arm SoCs are not NUMA systems. Add the capability to disable NUMA > for cross build and disable NUMA in Arm cross files. > > Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> > Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com> > --- > config/arm/arm64_armada_linux_gcc | 1 + > config/arm/arm64_bluefield_linux_gcc | 1 + > config/arm/arm64_dpaa_linux_gcc | 1 + > config/arm/arm64_graviton2_linux_gcc | 1 + > config/arm/arm64_n1sdp_linux_gcc | 1 + > config/arm/arm64_octeontx2_linux_gcc | 1 + > config/arm/arm64_stingray_linux_gcc | 1 + > config/arm/meson.build | 2 -- > config/meson.build | 19 +++++++++++++------ > .../linux_gsg/cross_build_dpdk_for_arm64.rst | 4 ++++ > 10 files changed, 24 insertions(+), 8 deletions(-) > > ... > diff --git a/config/meson.build b/config/meson.build > index 2bff6137f..9583be4ab 100644 > --- a/config/meson.build > +++ b/config/meson.build > @@ -142,12 +142,19 @@ endif > > # check for libraries used in multiple places in DPDK > has_libnuma = 0 > -numa_dep = cc.find_library('numa', required: false) > -if numa_dep.found() and cc.has_header('numaif.h') > - dpdk_conf.set10('RTE_HAS_LIBNUMA', true) > - has_libnuma = 1 > - add_project_link_arguments('-lnuma', language: 'c') > - dpdk_extra_ldflags += '-lnuma' > +find_libnuma = true > +if meson.is_cross_build() and not meson.get_cross_property('numa', true) > + # don't look for libnuma if explicitly disabled in cross build > + check_libnuma = false > +endif Looks like ‘check_libnuma’ should be ‘find_libnuma’. There are no other references to ‘check_libnuma’. -Andrew > +if find_libnuma > + numa_dep = cc.find_library('numa', required: false) > + if numa_dep.found() and cc.has_header('numaif.h') > + dpdk_conf.set10('RTE_HAS_LIBNUMA', true) > + has_libnuma = 1 > + add_project_link_arguments('-lnuma', language: 'c') > + dpdk_extra_ldflags += '-lnuma' > + endif > endif > > ...
> -----Original Message----- > From: Andrew Boyer <aboyer@pensando.io> > Sent: Monday, January 11, 2021 9:23 PM > To: Juraj Linkeš <juraj.linkes@pantheon.tech> > Cc: Bruce Richardson <bruce.richardson@intel.com>; Ruifeng Wang > <Ruifeng.Wang@arm.com>; Honnappa.Nagarahalli@arm.com; > Phil.Yang@arm.com; vcchunga@amazon.com; Dharmik.Thakkar@arm.com; > jerinjacobk@gmail.com; hemant.agrawal@nxp.com; > ajit.khaparde@broadcom.com; ferruh.yigit@intel.com; dev@dpdk.org > Subject: Re: [dpdk-dev] [PATCH v13 10/12] build: disable libnuma in cross builds > > > > > On Nov 20, 2020, at 7:08 AM, Juraj Linkeš <juraj.linkes@pantheon.tech> > wrote: > > > > Some Arm SoCs are not NUMA systems. Add the capability to disable NUMA > > for cross build and disable NUMA in Arm cross files. > > > > Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> > > Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com> > > --- > > config/arm/arm64_armada_linux_gcc | 1 + > > config/arm/arm64_bluefield_linux_gcc | 1 + > > config/arm/arm64_dpaa_linux_gcc | 1 + > > config/arm/arm64_graviton2_linux_gcc | 1 + > > config/arm/arm64_n1sdp_linux_gcc | 1 + > > config/arm/arm64_octeontx2_linux_gcc | 1 + > > config/arm/arm64_stingray_linux_gcc | 1 + > > config/arm/meson.build | 2 -- > > config/meson.build | 19 +++++++++++++------ > > .../linux_gsg/cross_build_dpdk_for_arm64.rst | 4 ++++ > > 10 files changed, 24 insertions(+), 8 deletions(-) > > > > ... > > diff --git a/config/meson.build b/config/meson.build index > > 2bff6137f..9583be4ab 100644 > > --- a/config/meson.build > > +++ b/config/meson.build > > @@ -142,12 +142,19 @@ endif > > > > # check for libraries used in multiple places in DPDK has_libnuma = 0 > > -numa_dep = cc.find_library('numa', required: false) -if > > numa_dep.found() and cc.has_header('numaif.h') > > - dpdk_conf.set10('RTE_HAS_LIBNUMA', true) > > - has_libnuma = 1 > > - add_project_link_arguments('-lnuma', language: 'c') > > - dpdk_extra_ldflags += '-lnuma' > > +find_libnuma = true > > +if meson.is_cross_build() and not meson.get_cross_property('numa', true) > > + # don't look for libnuma if explicitly disabled in cross build > > + check_libnuma = false > > +endif > > Looks like ‘check_libnuma’ should be ‘find_libnuma’. There are no other > references to ‘check_libnuma’. > I thought I fixed this already, but it is in v14 as well, good catch. > -Andrew > > > +if find_libnuma > > + numa_dep = cc.find_library('numa', required: false) > > + if numa_dep.found() and cc.has_header('numaif.h') > > + dpdk_conf.set10('RTE_HAS_LIBNUMA', true) > > + has_libnuma = 1 > > + add_project_link_arguments('-lnuma', language: 'c') > > + dpdk_extra_ldflags += '-lnuma' > > + endif > > endif > > > > ... >
diff --git a/config/arm/arm64_armada_linux_gcc b/config/arm/arm64_armada_linux_gcc index e365f61d0..487cb2923 100644 --- a/config/arm/arm64_armada_linux_gcc +++ b/config/arm/arm64_armada_linux_gcc @@ -18,4 +18,5 @@ implementer_id = '0x56' part_number = '0xd08' max_lcores = 16 max_numa_nodes = 1 +numa = false disabled_drivers = ['bus/dpaa', 'bus/fslmc', 'common/dpaax'] diff --git a/config/arm/arm64_bluefield_linux_gcc b/config/arm/arm64_bluefield_linux_gcc index 4f56790c5..6bef87fbd 100644 --- a/config/arm/arm64_bluefield_linux_gcc +++ b/config/arm/arm64_bluefield_linux_gcc @@ -17,3 +17,4 @@ implementer_id = '0x41' part_number = '0xd08' max_lcores = 16 max_numa_nodes = 1 +numa = false diff --git a/config/arm/arm64_dpaa_linux_gcc b/config/arm/arm64_dpaa_linux_gcc index 8641fee63..37398c762 100644 --- a/config/arm/arm64_dpaa_linux_gcc +++ b/config/arm/arm64_dpaa_linux_gcc @@ -18,3 +18,4 @@ implementer_id = 'dpaa' part_number = '0xd08' max_lcores = 16 max_numa_nodes = 1 +numa = false diff --git a/config/arm/arm64_graviton2_linux_gcc b/config/arm/arm64_graviton2_linux_gcc index d0bfec87d..cfe239797 100644 --- a/config/arm/arm64_graviton2_linux_gcc +++ b/config/arm/arm64_graviton2_linux_gcc @@ -17,3 +17,4 @@ implementor_id = '0x41' implementor_pn = '0xd0c' max_lcores = 64 max_numa_nodes = 1 +numa = false diff --git a/config/arm/arm64_n1sdp_linux_gcc b/config/arm/arm64_n1sdp_linux_gcc index 138ae08c3..b00f2d1ef 100644 --- a/config/arm/arm64_n1sdp_linux_gcc +++ b/config/arm/arm64_n1sdp_linux_gcc @@ -17,3 +17,4 @@ implementer_id = '0x41' part_number = '0xd0c' max_lcores = 4 max_numa_nodes = 1 +numa = false diff --git a/config/arm/arm64_octeontx2_linux_gcc b/config/arm/arm64_octeontx2_linux_gcc index 26cf471ad..593769709 100644 --- a/config/arm/arm64_octeontx2_linux_gcc +++ b/config/arm/arm64_octeontx2_linux_gcc @@ -17,3 +17,4 @@ implementer_id = '0x43' part_number = '0xb2' max_lcores = 36 max_numa_nodes = 1 +numa = false diff --git a/config/arm/arm64_stingray_linux_gcc b/config/arm/arm64_stingray_linux_gcc index 4f56790c5..6bef87fbd 100644 --- a/config/arm/arm64_stingray_linux_gcc +++ b/config/arm/arm64_stingray_linux_gcc @@ -17,3 +17,4 @@ implementer_id = '0x41' part_number = '0xd08' max_lcores = 16 max_numa_nodes = 1 +numa = false diff --git a/config/arm/meson.build b/config/arm/meson.build index 7db343b8a..f5e1ad20c 100644 --- a/config/arm/meson.build +++ b/config/arm/meson.build @@ -61,8 +61,6 @@ part_number_config_arm = { ['RTE_MACHINE', '"neoverse-n1"'], ['RTE_ARM_FEATURE_ATOMICS', true], ['RTE_USE_C11_MEM_MODEL', true], - ['RTE_EAL_NUMA_AWARE_HUGEPAGES', false], - ['RTE_LIBRTE_VHOST_NUMA', false], ['RTE_MAX_MEM_MB', 1048576], ['RTE_CACHE_LINE_SIZE', 64], ['RTE_MAX_LCORE', 64], diff --git a/config/meson.build b/config/meson.build index 2bff6137f..9583be4ab 100644 --- a/config/meson.build +++ b/config/meson.build @@ -142,12 +142,19 @@ endif # check for libraries used in multiple places in DPDK has_libnuma = 0 -numa_dep = cc.find_library('numa', required: false) -if numa_dep.found() and cc.has_header('numaif.h') - dpdk_conf.set10('RTE_HAS_LIBNUMA', true) - has_libnuma = 1 - add_project_link_arguments('-lnuma', language: 'c') - dpdk_extra_ldflags += '-lnuma' +find_libnuma = true +if meson.is_cross_build() and not meson.get_cross_property('numa', true) + # don't look for libnuma if explicitly disabled in cross build + check_libnuma = false +endif +if find_libnuma + numa_dep = cc.find_library('numa', required: false) + if numa_dep.found() and cc.has_header('numaif.h') + dpdk_conf.set10('RTE_HAS_LIBNUMA', true) + has_libnuma = 1 + add_project_link_arguments('-lnuma', language: 'c') + dpdk_extra_ldflags += '-lnuma' + endif endif has_libfdt = 0 diff --git a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst index 210ad4508..063661ebf 100644 --- a/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst +++ b/doc/guides/linux_gsg/cross_build_dpdk_for_arm64.rst @@ -147,3 +147,7 @@ There are other options you may specify in a cross file to tailor the build:: disabled_drivers = ['bus/dpaa', 'crypto'] # add disabled drivers # valid values are directories (optionally with their subdirs) # in the drivers directory + + numa = false # set to false to force building for a non-NUMA system + # if not set or set to true, the build system will build for a NUMA + # system only if libnuma is installed