From: Tony Lu <zlu-d5a29ZRxExrQT0dZR+AlfA@public.gmane.org>
To: 'Neil Horman' <nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
Cc: dev-VfR2kkLFssw@public.gmane.org
Subject: Re: [PATCH 14/15] app/test: turn off cpu flag checks for tile architecture
Date: Thu, 11 Dec 2014 12:43:36 +0800 [thread overview]
Message-ID: <000901d014fd$106f85d0$314e9170$@com> (raw)
In-Reply-To: <20141209150321.GC28871-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
>-----Original Message-----
>From: dev [mailto:dev-bounces-VfR2kkLFssw@public.gmane.org] On Behalf Of Neil Horman
>Sent: Tuesday, December 09, 2014 11:03 PM
>To: Zhigang Lu
>Cc: dev-VfR2kkLFssw@public.gmane.org
>Subject: Re: [dpdk-dev] [PATCH 14/15] app/test: turn off cpu flag checks
for tile
>architecture
>
>On Mon, Dec 08, 2014 at 04:59:37PM +0800, Zhigang Lu wrote:
>> Tile processor doesn't have CPU flag hardware registers, so this patch
>> turns off cpu flag checks for tile.
>>
>> Signed-off-by: Zhigang Lu <zlu-d5a29ZRxExrQT0dZR+AlfA@public.gmane.org>
>> Signed-off-by: Cyril Chemparathy <cchemparathy-d5a29ZRxExrQT0dZR+AlfA@public.gmane.org>
>> ---
>> app/test/test_cpuflags.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/app/test/test_cpuflags.c b/app/test/test_cpuflags.c index
>> 5aeba5d..da93af5 100644
>> --- a/app/test/test_cpuflags.c
>> +++ b/app/test/test_cpuflags.c
>> @@ -113,7 +113,7 @@ test_cpuflags(void)
>>
>> printf("Check for ICACHE_SNOOP:\t\t");
>> CHECK_FOR_FLAG(RTE_CPUFLAG_ICACHE_SNOOP);
>> -#else
>> +#elif !defined(RTE_ARCH_TILE)
>> printf("Check for SSE:\t\t");
>> CHECK_FOR_FLAG(RTE_CPUFLAG_SSE);
>>
>Please stop this. It doesn't make sense for a library that supports
multiple
>arches, we need some way to generically test for flags that doesn't involve
>forcing applications to do ton's of ifdeffing. Perhaps
rte_cpu_get_flag_enabled
>needs to do a flag table lookup based on the detected arch at run time, and
>return the appropriate response. In the case of tile, it can just be an
empty
>table, so 0 is always returned. But making an application responsible for
doing
>arch checks is a guarantee to write non-portable applications
>
>Neil
>
Thanks for taking a look at this.
This change just follows what PPC did in commit 9ae15538. The root cause is
that
the test_cpuflags.c explicitly tests X86-specific CPU flags, so we might
need to revise
this test case to make it architecture-independent.
A alternative change to this test case is as follows.
--- a/app/test/test_cpuflags.c
+++ b/app/test/test_cpuflags.c
@@ -77,81 +77,13 @@ cpu_flag_result(int result)
static int
test_cpuflags(void)
{
- int result;
+ int i, result;
printf("\nChecking for flags from different registers...\n");
-#ifdef RTE_ARCH_PPC_64
- printf("Check for PPC64:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_PPC64);
-
- printf("Check for PPC32:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_PPC32);
-
- printf("Check for VSX:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_VSX);
-
- printf("Check for DFP:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_DFP);
-
- printf("Check for FPU:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_FPU);
-
- printf("Check for SMT:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_SMT);
-
- printf("Check for MMU:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_MMU);
-
- printf("Check for ALTIVEC:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_ALTIVEC);
-
- printf("Check for ARCH_2_06:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_ARCH_2_06);
-
- printf("Check for ARCH_2_07:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_ARCH_2_07);
-
- printf("Check for ICACHE_SNOOP:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_ICACHE_SNOOP);
-#else
- printf("Check for SSE:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_SSE);
-
- printf("Check for SSE2:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_SSE2);
-
- printf("Check for SSE3:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_SSE3);
-
- printf("Check for SSE4.1:\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_SSE4_1);
-
- printf("Check for SSE4.2:\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_SSE4_2);
-
- printf("Check for AVX:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_AVX);
-
- printf("Check for AVX2:\t\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_AVX2);
-
- printf("Check for TRBOBST:\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_TRBOBST);
-
- printf("Check for ENERGY_EFF:\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_ENERGY_EFF);
-
- printf("Check for LAHF_SAHF:\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_LAHF_SAHF);
-
- printf("Check for 1GB_PG:\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_1GB_PG);
-
- printf("Check for INVTSC:\t");
- CHECK_FOR_FLAG(RTE_CPUFLAG_INVTSC);
-
-
-#endif
+ for (i = 0; i < RTE_CPUFLAG_NUMFLAGS; i++) {
+ printf("Check for %s:\t\t", cpu_feature_table[i].name);
+ CHECK_FOR_FLAG(i);
+ }
Thanks
-Zhigang
next prev parent reply other threads:[~2014-12-11 4:43 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-08 8:59 [PATCH 00/15] Patches for DPDK to support tile architecture Zhigang Lu
[not found] ` <1418029178-25162-1-git-send-email-zlu-d5a29ZRxExrQT0dZR+AlfA@public.gmane.org>
2014-12-08 8:59 ` [PATCH 01/15] mk: introduce Tilera Tile architecture Zhigang Lu
[not found] ` <1418029178-25162-2-git-send-email-zlu-d5a29ZRxExrQT0dZR+AlfA@public.gmane.org>
2014-12-08 11:09 ` Bruce Richardson
2014-12-08 14:25 ` Neil Horman
[not found] ` <20141208142548.GB3237-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2014-12-08 21:34 ` Cyril Chemparathy
2014-12-08 8:59 ` [PATCH 02/15] eal/tile: add atomic operations for TileGx Zhigang Lu
[not found] ` <1418029178-25162-3-git-send-email-zlu-d5a29ZRxExrQT0dZR+AlfA@public.gmane.org>
2014-12-08 14:28 ` Neil Horman
[not found] ` <20141208142810.GC3237-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2014-12-08 21:29 ` Cyril Chemparathy
2014-12-08 8:59 ` [PATCH 03/15] eal/tile: add byte order " Zhigang Lu
2014-12-08 8:59 ` [PATCH 04/15] eal/tile: add spinlock " Zhigang Lu
2014-12-08 8:59 ` [PATCH 05/15] eal/tile: add prefetch " Zhigang Lu
2014-12-08 8:59 ` [PATCH 06/15] eal/tile: add memcpy " Zhigang Lu
2014-12-08 8:59 ` [PATCH 07/15] eal/tile: add CPU flags " Zhigang Lu
2014-12-08 8:59 ` [PATCH 08/15] eal/tile: add cycle " Zhigang Lu
2014-12-08 8:59 ` [PATCH 09/15] eal: split vector operations to architecture specific Zhigang Lu
2014-12-08 8:59 ` [PATCH 10/15] eal/tile: add vector operations for TileGx Zhigang Lu
2014-12-08 8:59 ` [PATCH 11/15] eal/tile: add EAL support for global mPIPE initialization Zhigang Lu
[not found] ` <1418029178-25162-12-git-send-email-zlu-d5a29ZRxExrQT0dZR+AlfA@public.gmane.org>
2014-12-08 20:03 ` Neil Horman
[not found] ` <20141208200331.GB4238-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-12-08 21:32 ` Cyril Chemparathy
[not found] ` <548618EE.2010104-d5a29ZRxExrQT0dZR+AlfA@public.gmane.org>
2014-12-09 11:36 ` Neil Horman
2014-12-08 8:59 ` [PATCH 12/15] eal/tile: add mPIPE buffer stack mempool provider Zhigang Lu
[not found] ` <1418029178-25162-13-git-send-email-zlu-d5a29ZRxExrQT0dZR+AlfA@public.gmane.org>
2014-12-09 14:07 ` Neil Horman
[not found] ` <20141209140700.GB28871-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-12-12 8:30 ` Tony Lu
2014-12-12 13:03 ` Neil Horman
2014-12-08 8:59 ` [PATCH 13/15] pmd/tile: add mPIPE poll mode driver for TileGx Zhigang Lu
2014-12-08 8:59 ` [PATCH 14/15] app/test: turn off cpu flag checks for tile architecture Zhigang Lu
[not found] ` <1418029178-25162-15-git-send-email-zlu-d5a29ZRxExrQT0dZR+AlfA@public.gmane.org>
2014-12-09 15:03 ` Neil Horman
[not found] ` <20141209150321.GC28871-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-12-11 4:43 ` Tony Lu [this message]
2014-12-11 13:39 ` Neil Horman
[not found] ` <20141211133919.GB28213-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org>
2014-12-12 8:10 ` Tony Lu
2014-12-12 13:07 ` Neil Horman
2014-12-08 8:59 ` [PATCH 15/15] eal: allow empty set of compile time cpuflags Zhigang Lu
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='000901d014fd$106f85d0$314e9170$@com' \
--to=zlu-d5a29zrxexrqt0dzr+alfa@public.gmane.org \
--cc=dev-VfR2kkLFssw@public.gmane.org \
--cc=nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.