|
From: Sven B. <sve...@tu...> - 2009-08-20 09:57:51
|
Hi, I'd like to provide a patch for VEX/priv/guest_x86_toIR.c such that running user code that uses a 32-bit Goto BLAS library through memcheck (from the valgrind 3.5.0 release or earlier releases) does not issue a > vex x86->IR: unhandled instruction bytes: 0xF 0xE 0x89 0xE6 > ==29436== valgrind: Unrecognised instruction at address 0x4124d04. > ==29436== Your program just tried to execute an instruction that Valgrind > ==29436== did not recognise. There are two possible reasons for this. > ==29436== 1. Your program has a bug and erroneously jumped to a non-code > ==29436== location. If you are running Memcheck and you just saw a > ==29436== warning about a bad jump, it's probably your program's fault. > ==29436== 2. The instruction is legitimate but Valgrind doesn't handle it, > ==29436== i.e. it's Valgrind's fault. If you think this is the case or > ==29436== you are not sure, please let us know and we'll try to fix it. > ==29436== Either way, Valgrind will now raise a SIGILL signal which will > ==29436== probably kill your program. > > Program received signal 4 (SIGILL): Illegal instruction. any more. The patch applies the same changes as the first patch for #124499 discussed in http://bugs.kde.org/show_bug.cgi?id=124499 (comment #3) which subsequently made it - along with other changes not required here - into the source code (VEX/priv/guest_amd64_toIR.c) with revision 1604. A sample code using the critical DTRSM BLAS function is attached. Get Goto BLAS at http://www-prc.tacc.utexas.edu/resources/software/software.php?#blas, unpack, compile it on a 32-bit Linux machine using ./quickbuild.32bit. Then, compile the sample code, link it against Goto BLAS and run valgrind against it: gfortran -g sample.f90 -lgoto valgrind ./a.out Without the patch, memcheck bails out. with kind regards, Sven |
|
From: Nicholas N. <n.n...@gm...> - 2009-08-20 10:32:54
|
On Thu, Aug 20, 2009 at 7:25 PM, Sven Buijssen<sve...@tu...> wrote: > > I'd like to provide a patch for VEX/priv/guest_x86_toIR.c such that running user > code that uses a 32-bit Goto BLAS library through memcheck (from the valgrind > 3.5.0 release or earlier releases) does not issue a > >> vex x86->IR: unhandled instruction bytes: 0xF 0xE 0x89 0xE6 > > any more. > > The patch applies the same changes as the first patch for #124499 discussed in > http://bugs.kde.org/show_bug.cgi?id=124499 (comment #3) which subsequently made > it - along with other changes not required here - into the source code > (VEX/priv/guest_amd64_toIR.c) with revision 1604. I'm confused -- you say the change made it into the source code? Then why provide the patch? Nick |
|
From: Sven B. <sve...@tu...> - 2009-08-20 10:35:57
|
Hi Nick, >> I'd like to provide a patch for VEX/priv/guest_x86_toIR.c such that running user >> code that uses a 32-bit Goto BLAS library through memcheck (from the valgrind >> 3.5.0 release or earlier releases) does not issue a >> >>> vex x86->IR: unhandled instruction bytes: 0xF 0xE 0x89 0xE6 >> any more. >> >> The patch applies the same changes as the first patch for #124499 discussed in >> http://bugs.kde.org/show_bug.cgi?id=124499 (comment #3) which subsequently made >> it - along with other changes not required here - into the source code >> (VEX/priv/guest_amd64_toIR.c) with revision 1604. > > I'm confused -- you say the change made it into the source code? Then > why provide the patch? Sorry for being not clear enough: Revision 1604 patched VEX/priv/guest_amd64_toIR.c (so it fixed the problem when using 64bit Goto BLAS), but not VEX/priv/guest_x86_toIR.c. Sven |
|
From: Nicholas N. <n.n...@gm...> - 2009-08-20 11:01:44
|
On Thu, Aug 20, 2009 at 8:35 PM, Sven Buijssen<sve...@tu...> wrote: > > Revision 1604 patched VEX/priv/guest_amd64_toIR.c (so it fixed the problem when > using 64bit Goto BLAS), but not VEX/priv/guest_x86_toIR.c. Ah, thanks for the clarification. Can you please file a bug report so this doesn't get lost? (http://www.valgrind.org/support/bug_reports.html) Thanks. Nick |