https://bugs.kde.org/show_bug.cgi?id=406669

            Bug ID: 406669
           Summary: vex amd64->IR: unhandled instruction bytes: 0xC5 0xD4
                    0xC2 0xED 0xF 0xC5 0xFC 0x29 0xAC 0x24
           Product: valgrind
           Version: 3.14.0
          Platform: Archlinux Packages
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: vex
          Assignee: jsew...@acm.org
          Reporter: pa...@luccalug.it
  Target Milestone: ---

I'm playing around with QtWebKit and WebGL. The program runs smoothly without
valgrind, while valgrind makes it fail:

vex amd64->IR: unhandled instruction bytes: 0xC5 0xD4 0xC2 0xED 0xF 0xC5 0xFC
0x29 0xAC 0x24
vex amd64->IR:   REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
vex amd64->IR:   VEX=1 VEX.L=1 VEX.nVVVV=0x5 ESC=0F
vex amd64->IR:   PFX.66=0 PFX.F2=0 PFX.F3=0
==7397== valgrind: Unrecognised instruction at address 0x540b16fe.
==7397==    at 0x540B16FE: ???
==7397==    by 0x5CA00A7B: ??? (in /usr/lib/dri/swrast_dri.so)
==7397==    by 0x5C9FEEA4: ??? (in /usr/lib/dri/swrast_dri.so)
==7397==    by 0x5C9FF47C: ??? (in /usr/lib/dri/swrast_dri.so)
==7397==    by 0x5C9FF377: ??? (in /usr/lib/dri/swrast_dri.so)
==7397==    by 0x9ED3A9C: start_thread (in /usr/lib/libpthread-2.28.so)
==7397==    by 0x93CEAF2: clone (in /usr/lib/libc-2.28.so)
==7397== Your program just tried to execute an instruction that Valgrind
==7397== did not recognise.  There are two possible reasons for this.
==7397== 1. Your program has a bug and erroneously jumped to a non-code
==7397==    location.  If you are running Memcheck and you just saw a
==7397==    warning about a bad jump, it's probably your program's fault.
==7397== 2. The instruction is legitimate but Valgrind doesn't handle it,
==7397==    i.e. it's Valgrind's fault.  If you think this is the case or
==7397==    you are not sure, please let us know and we'll try to fix it.
==7397== Either way, Valgrind will now raise a SIGILL signal which will
==7397== probably kill your program.


I believe that the instruction is legitimate because:

- It looks like the opcode is deep in a mesa library, which I believe is likely
to use many CPU extensions.
- My program runs smoothly without valgrind, and my system and programs are
stable. Besides valgrind isn't noticing any memory violations.
- Few days ago valgrind was failing on the very same opcode. Then I kept
changing the code and it stopped failing until now. The code is quite different
from days ago and I think it's unlikely that I restarted jumping at memory
addresses with the identical 10 bytes.


My system is:

- Kernel: 5.0.7-arch1-1-ARCH,
- CPU: Intel(R) Core(TM) i7-3610QM CPU @ 2.30GHz
- CPU flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat
pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm
constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid
aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm
pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand
lahf_lm cpuid_fault epb pti tpr_shadow vnmi flexpriority ept vpid fsgsbase smep
erms xsaveopt dtherm ida arat pln pts
- GPU: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
(prog-if 00 [VGA controller]), integrated in the CPU
- Graphics module: i915, from xf86-video-intel 1:2.99.917+863+g6afed33b-1
- Valgrind: 3.14.0-1

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to