From mboxrd@z Thu Jan 1 00:00:00 1970 From: Aaron Conole Subject: Re: [PATCH v4 06/26] eal-common: introduce a way to query cpu support Date: Mon, 27 Feb 2017 09:33:19 -0500 Message-ID: References: <20170209142953.8167-1-aconole@redhat.com> <20170225160309.31270-1-aconole@redhat.com> <20170225160309.31270-7-aconole@redhat.com> <20170227134857.GA133112@bricha3-MOBL3.ger.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain Cc: dev@dpdk.org, Stephen Hemminger To: Bruce Richardson Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id F2BE32A5E for ; Mon, 27 Feb 2017 15:33:20 +0100 (CET) In-Reply-To: <20170227134857.GA133112@bricha3-MOBL3.ger.corp.intel.com> (Bruce Richardson's message of "Mon, 27 Feb 2017 13:48:57 +0000") List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Bruce Richardson writes: > On Sat, Feb 25, 2017 at 11:02:49AM -0500, Aaron Conole wrote: >> This adds a new API to check for the eal cpu versions. >> >> Signed-off-by: Aaron Conole >> --- >> lib/librte_eal/common/eal_common_cpuflags.c | 13 +++++++++++-- >> lib/librte_eal/common/include/generic/rte_cpuflags.h | 9 +++++++++ >> 2 files changed, 20 insertions(+), 2 deletions(-) >> >> diff --git a/lib/librte_eal/common/eal_common_cpuflags.c b/lib/librte_eal/common/eal_common_cpuflags.c >> index b5f76f7..2c2127b 100644 >> --- a/lib/librte_eal/common/eal_common_cpuflags.c >> +++ b/lib/librte_eal/common/eal_common_cpuflags.c >> @@ -43,6 +43,13 @@ >> void >> rte_cpu_check_supported(void) >> { >> + if (!rte_cpu_is_supported()) >> + exit(1); >> +} >> + >> +bool >> +rte_cpu_is_supported(void) >> +{ >> /* This is generated at compile-time by the build system */ >> static const enum rte_cpu_flag_t compile_time_flags[] = { >> RTE_COMPILE_TIME_CPUFLAGS >> @@ -57,14 +64,16 @@ rte_cpu_check_supported(void) >> fprintf(stderr, >> "ERROR: CPU feature flag lookup failed with error %d\n", >> ret); >> - exit(1); >> + return false; >> } >> if (!ret) { >> fprintf(stderr, >> "ERROR: This system does not support \"%s\".\n" >> "Please check that RTE_MACHINE is set correctly.\n", >> rte_cpu_get_flag_name(compile_time_flags[i])); >> - exit(1); >> + return false; >> } >> } >> + >> + return true; >> } >> diff --git a/lib/librte_eal/common/include/generic/rte_cpuflags.h b/lib/librte_eal/common/include/generic/rte_cpuflags.h >> index 71321f3..e4342ad 100644 >> --- a/lib/librte_eal/common/include/generic/rte_cpuflags.h >> +++ b/lib/librte_eal/common/include/generic/rte_cpuflags.h >> @@ -40,6 +40,7 @@ >> */ >> >> #include >> +#include >> > > The addition of this include is causing all sorts of compilation errors > inside the PMDs, as many of them seem to be defining their own bools > types. :-( > > For safety sake, probably best to have the function return int rather > than bool. Will do - I never saw the issue, but perhaps I was excluding the PMDs in question. Thanks for the review, Bruce!