From: Simon S. <sim...@gn...> - 2023-06-29 18:25:45
|
Am 29.06.2023 um 18:19 schrieb Mark Wielaard: > Hi Simon, > > On Thu, Jun 29, 2023 at 05:46:59PM +0200, Simon Sobisch wrote: >> Am 29.06.2023 um 15:10 schrieb John Reiser: >>>> Running valgrind on GnuCOBOL errors out with >>>> >>>> vex amd64->IR: unhandled instruction bytes: >>>> 0x62 0xF1 0xFE 0x8 0x6F 0x7 0x48 0xC7 0x5 0x6F >>>> vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0 >>>> vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x0 ESC=NONE >>>> vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0 >>>> valgrind: Unrecognised instruction at address 0x4e75f20. >>>> at 0x4E75F20: cob_string_init (strings.c:742) >>> >>>> 132 (gdb) disassemble /s >>>> 133 Dump of assembler code for function cob_string_init: >>>> 134 ../../libcob/strings.c: >>>> 135 741 { >>>> 136 742 string_dst_copy = *dst; >>>> 137 => 0x0000000004e75f20 <+0>: vmovdqu64 (%rdi),%xmm0 >>> >>>> Is there anything I can do this to still run the application >>>> with valgrind or do I need to wait for a hotfix? > > vmovdqu64 is part of AVX512, see this bug: > https://bugs.kde.org/show_bug.cgi?id=valgrind-avx512 > (yes, it has been reported so many times that it has its own alias) Whoa! Thanks for pointing this out (I have not found that on the user list, but that is likely because of the exact instruction I've searched for). So the workaround seems to be to compile sources with gcc -march=native -mno-avx512f -mno-avx512dq -mno-avx512cd -mno-avx512bw -mno-avx512vl -mno-avx512ifma -mno-avx512vbmi -mno-avx512vbmi2 -mno-avx512vnni -mno-avx512bitalg -mno-avx5124fmaps -mno-avx5124vnniw -mno-avx5124vbmi -mno-avx512vpopcntdq or use an -march that is "generic" and get slower code when running outside of valgrind. > There are patches, but the original submitter isn't working on it > anymore. So we need someone to pick up the code and go through the > feedback to get it integrated. Hm, as far as I see all the feedback is already considered, no? Sadly I'm not in the position to finish that and _guess_ that there's no .patch file which I could directly apply to the last release, is there? Thanks, Simon |