|
From: Florian K. <br...@ac...> - 2011-10-08 13:33:17
|
On my x86 netbook the tests none/tests/x86/insn_ssse3 none/tests/x86/insn_ssse3_misaligned are failing because configure and x86_amd64_features do not agree about the presence of SSSE3. configure thinks it is not supported, x86_amd64_features returns 0 thereby indicating support. I think that x86_amd64_features is right. See /proc/cpuinfo below. During "make regtest" the make process attempts to execute e.g insn_ssse3 which does not exist. Curious... Is this the way it is supposed to work? I mean if it has been determined (during configury) that the test cannot run and therefore the executable has not been built, why trying to invoke it? Florian processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 28 model name : Intel(R) Atom(TM) CPU N270 @ 1.60GHz stepping : 2 cpu MHz : 800.000 cache size : 512 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 1 apicid : 0 initial apicid : 0 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 10 wp : yes flags : fpu vme de tsc msr pae mce cx8 apic mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht t m pbe nx constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 xtpr pdcm movbe lahf_lm dts bogomips : 3200.32 clflush size : 64 cache_alignment : 64 address sizes : 32 bits physical, 32 bits virtual power management: processor : 1 vendor_id : GenuineIntel cpu family : 6 model : 28 model name : Intel(R) Atom(TM) CPU N270 @ 1.60GHz stepping : 2 cpu MHz : 800.000 cache size : 512 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 1 apicid : 1 initial apicid : 1 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 10 wp : yes flags : fpu vme de tsc msr pae mce cx8 apic mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht t m pbe nx constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 xtpr pdcm movbe lahf_lm dts bogomips : 3199.99 clflush size : 64 cache_alignment : 64 address sizes : 32 bits physical, 32 bits virtual power management: |
|
From: Julian S. <js...@ac...> - 2011-10-10 20:59:37
|
On Saturday, October 08, 2011, Florian Krohm wrote:
> On my x86 netbook the tests
>
> none/tests/x86/insn_ssse3
> none/tests/x86/insn_ssse3_misaligned
>
> are failing because configure and x86_amd64_features do not agree about
> the presence of SSSE3. configure thinks it is not supported,
> x86_amd64_features returns 0 thereby indicating support. I think that
> x86_amd64_features is right. See /proc/cpuinfo below.
>
> During "make regtest" the make process attempts to execute e.g
> insn_ssse3 which does not exist.
> Curious... Is this the way it is supposed to work? I mean if it has
> been determined (during configury) that the test cannot run and
> therefore the executable has not been built, why trying to invoke it?
There are two different issues (not just for SSSE3, but for testing any
instruction set extension):
(1) can the assembler handle these instructions? If not, we can't build
the relevant test cases. This is what the configure test checks for.
(2) does the CPU support the instructions? If not, then we don't try
to run the test cases. This is what x86_amd64_features tests.
(1) is basically a property of how-old-is-your-distro-toolchain, and
(2) is obviously a property of the hardware.
So maybe you have an old toolchain? But SSSE3 is pretty old, so I am
surprised the configure check failed.
J
|
|
From: Florian K. <br...@ac...> - 2011-10-10 22:30:23
|
On 10/10/2011 04:58 PM, Julian Seward wrote:
> On Saturday, October 08, 2011, Florian Krohm wrote:
>
> There are two different issues (not just for SSSE3, but for testing any
> instruction set extension):
>
> (1) can the assembler handle these instructions? If not, we can't build
> the relevant test cases. This is what the configure test checks for.
>
> (2) does the CPU support the instructions? If not, then we don't try
> to run the test cases. This is what x86_amd64_features tests.
>
Right, I understand. But we shouldn't be attempting to execute a test
that was not built. This is an issue of the make machinery, independent
of how it was determined whether the test can be built or whether the
hardware can execute it.
There are a few approaches
(1) Write the test in a way that it is independent of the tool chain
version (using .byte, .word etc instead of mnemonics). This is
what we've done for s390. But it's probably not feasible to recode
all existing testcases.
(2) Fix the make machinery to not execute the test if the executable
does not exist
(3) Have an implicit prereq that tests the existence of what is
specified in the prog: line
I haven't looked at how make regtest works but would guess that #3 might
be the simplest way to fix it.
> So maybe you have an old toolchain?
Not really:
GNU assembler (GNU Binutils for Ubuntu) 2.20.51-system.20100908
gcc (Ubuntu/Linaro 4.4.4-14ubuntu5) 4.4.5
Florian
|
|
From: Florian K. <br...@ac...> - 2011-10-28 21:46:44
|
On 10/10/2011 04:58 PM, Julian Seward wrote:
> On Saturday, October 08, 2011, Florian Krohm wrote:
>> On my x86 netbook the tests
>>
>> none/tests/x86/insn_ssse3
>> none/tests/x86/insn_ssse3_misaligned
>>
>> are failing because configure and x86_amd64_features do not agree about
>> the presence of SSSE3. configure thinks it is not supported,
>> x86_amd64_features returns 0 thereby indicating support. I think that
>> x86_amd64_features is right. See /proc/cpuinfo below.
>>
snip..
>
> So maybe you have an old toolchain? But SSSE3 is pretty old, so I am
> surprised the configure check failed.
>
The configure check failed because GCC needs -msse to accept xmm
registers in extended asm statements without parse errors.
I fixed this in r12251
Florian
|