Closed jdv-ibm closed 3 years ago
Thank you for the report. I could reproduce the problem. I'll investigate it.
valgrind does not support adcx and adox. amd64 instructions ADCX and ADOX are not implemented in VEX https://bugs.kde.org/show_bug.cgi?id=360415
xbyak/sample% ./test_util64
64bit
vendor intel
mmx mmx2 cmov sse sse2 sse3 ssse3 sse41 sse42 popcnt aesni rdtscp osxsave(xgetvb) pclmulqdq avx fma avx2 bmi1 bmi2 lzcnt prefetchw enh_rep rdrand adx rdseed smap f16c movbe
popcnt ng 0 13
family=6, model=E, stepping=9, extFamily=0, extModel=9
display:family=6, model=9E
cache level=0 data cache size=32768 cores sharing data cache=1
cache level=1 data cache size=262144 cores sharing data cache=1
cache level=2 data cache size=8388608 cores sharing data cache=1
SmtLevel =1
CoreLevel=1
xbyak/sample% valgrind ./test_util64
==10770== Memcheck, a memory error detector
==10770== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==10770== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==10770== Command: ./test_util64
==10770==
64bit
vendor intel
mmx mmx2 cmov sse sse2 sse3 ssse3 sse41 sse42 popcnt aesni rdtscp osxsave(xgetvb) pclmulqdq avx fma avx2 bmi1 bmi2 lzcnt enh_rep rdrand f16c movbe
popcnt ng 0 13
family=6, model=C, stepping=3, extFamily=0, extModel=3
display:family=6, model=3C
cache level=0 data cache size=32768 cores sharing data cache=1
cache level=1 data cache size=262144 cores sharing data cache=1
cache level=2 data cache size=8388608 cores sharing data cache=4
SmtLevel =2
CoreLevel=4
I've fixed the bug at https://github.com/herumi/mcl/commit/c41e9e459d98f5ffc74d6c23520dd48c941b869c and add tested it by valgrind. https://github.com/herumi/mcl/runs/2182225198
Works perfectly. Thanks!
Hi.
There seems to be a weird memory bug somewhere, that shows up as a Segmentation Fault when using Valgrind to profile programs that use the
mclBn_pairing
through the C API. I have been able to track it down to this call to sqrPre fromdblLineWithoutP
<dblLine
<millerLoop
<mclBn_pairing
.The specific error I get is:
The code below is a minimal working sample. If run normally, it returns without error. If run under Valgrind, it returns the previous SIGSEV.