Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Dec 2014 04:19:43 +0000
From:      Jamie Landeg-Jones <jamie@dyslexicfish.net>
To:        freebsd@omnilan.de, freebsd-stable@freebsd.org
Subject:   Re: CPUTYPEs includig avx are suspicious with clang in stable/10
Message-ID:  <201412230419.sBN4JhKA030262@dyslexicfish.net>
In-Reply-To: <54944D08.8000202@omnilan.de>
References:  <54944D08.8000202@omnilan.de>

next in thread | previous in thread | raw e-mail | index | archive | help
Harry Schmalzbauer <freebsd@omnilan.de> wrote:

>  I'm seeing sporadic problems (core dumps) with binaries compiled with
> CPUTYPE=core-i-avx.
> They run fine on IvyBridge, but fail on Haswells.
> Stripping avx from MACHINE_CPU (by defining CPUTYPE=corei7 instead of
> core-i-avx) solved all crashes on the haswell system.

I wonder if it's the same problem I've encountered with a KVM virtual
host?

In this case, the fault was BMI (BMI2 is ok)

I never isolated the cause - my BMI tests worked ok with clang (though they
were direct calls to the BMI family, rather than 'stuff clang could use BMI
Op-codes stuff for")

Maybe you could try with -mno-bmi ?

My details:

FreeBSD 10.1-PRERELEASE #0: Sun Nov  9 10:07:32 GMT 2014
    root@catseye.dyslexicfish.net:/usr/obj/usr/src/sys/CATSEYE amd64
FreeBSD clang version 3.4.1 (tags/RELEASE_34/dot1-final 208032) 20140512
CPU: Vultr Virtual CPU 2 (3392.29-MHz K8-class CPU)
  Origin = "GenuineIntel"  Id = 0x306c1  Family = 0x6  Model = 0x3c  Stepping = 1
  Features=0x178bfbfd<FPU,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2,HTT>
  Features2=0x9ffa3203<SSE3,PCLMULQDQ,SSSE3,FMA,CX16,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,TSCDLT,AESNI,XSAVE,OSXSAVE,AVX,HV>
  AMD Features=0x28100800<SYSCALL,NX,RDTSCP,LM>
  AMD Features2=0x1<LAHF>
  Structured Extended Features=0xf38<BMI1,HLE,AVX2,BMI2,ERMS,INVPCID,RTM
  TSC: P-state invariant

3:21 [2] (8) "/tmp" jamie@catseye% printf '#include <stdio.h>\nint main()\n{\nprintf ("boo");\n}\n' | /usr/bin/cc -v -x c -march=native -fsyntax-only -o /dev/null - 2>&1 | awk '($1 == "\"/usr/bin/cc\"") {printf "\n%s\n\n", $0; sub ("^.* -target-cpu ",""); sub (" .*$", ""); print "Clang \"native\" target for this machine: " $0} ($1 == "error:")'
 
 "/usr/bin/cc" -cc1 -triple x86_64-unknown-freebsd10.1 -fsyntax-only -disable-free -disable-llvm-verifier -main-file-name - -mrelocation-model static -mdisable-fp-elim -masm-verbose -mconstructor-aliases -munwind-tables -target-cpu core-avx2 -v -resource-dir /usr/bin/../lib/clang/3.4.1 -fdebug-compilation-dir /tmp -ferror-limit 19 -fmessage-length 0 -mstackrealign -fobjc-runtime=gnustep -fdiagnostics-show-option -vectorize-slp -x c -

Clang "native" target for this machine: core-avx2

3:21 [2] (9) "/tmp" jamie@catseye%

A full test for me shows this works OK:

-mtune=core-avx2 -march=core-avx2 -mmmx -msse -msse2 -msse3 -mpclmul -mssse3 -mfma -mcx16 -msse4.1 -msse4.2 -mpopcnt -maes -mavx -mno-bmi -mavx2 -mbmi2 -mrtm

(note -mno-nbmi instead of -mbmi)

Cheers, Jamie



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201412230419.sBN4JhKA030262>