Bug 1012625

Summary: vex s390->IR: unimplemented insn: B92F 0042 on s390x
Product: Red Hat Enterprise Linux 6 Reporter: Hubert Kario <hkario>
Component: valgrindAssignee: Mark Wielaard <mjw>
Status: CLOSED DUPLICATE QA Contact: qe-baseos-tools-bugs
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.5CC: hkario, jakub, mfranc
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-09-26 18:33:40 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Hubert Kario 2013-09-26 18:11:10 UTC
Description of problem:
When running `openssl speed` valgrind crashes with SIGILL on s390x

Version-Release number of selected component (if applicable):
valgrind-3.8.1-3.2.el6.s390x
openssl-1.0.1e-8.el6.s390x

How reproducible:
Always

Steps to Reproduce:
1. valgrind openssl speed

To quickly cause the problem:
1. valgrind openssl speed aes

Actual results:
==43119== Memcheck, a memory error detector
==43119== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
==43119== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
==43119== Command: openssl speed aes
==43119== 
vex s390->IR: unimplemented insn: B92F 0042
==43119== valgrind: Unrecognised instruction at address 0x42c714c.
==43119==    at 0x42C714C: private_AES_set_encrypt_key (in /usr/lib64/libcrypto.so.1.0.1e)
==43119==    by 0x439ADBF: fips_drbg_ctr_init (in /usr/lib64/libcrypto.so.1.0.1e)
==43119==    by 0x439D689: FIPS_drbg_init (in /usr/lib64/libcrypto.so.1.0.1e)
==43119==    by 0x431F517: RAND_init_fips (in /usr/lib64/libcrypto.so.1.0.1e)
==43119==    by 0x42A7E0D: OPENSSL_init_library (in /usr/lib64/libcrypto.so.1.0.1e)
==43119==    by 0x42A478D: CRYPTO_set_locking_callback (in /usr/lib64/libcrypto.so.1.0.1e)
==43119==    by 0x8001DB0B: ??? (in /usr/bin/openssl)
==43119==    by 0x4477923: (below main) (in /lib64/libc-2.12.so)
==43119== Your program just tried to execute an instruction that Valgrind
==43119== did not recognise.  There are two possible reasons for this.
==43119== 1. Your program has a bug and erroneously jumped to a non-code
==43119==    location.  If you are running Memcheck and you just saw a
==43119==    warning about a bad jump, it's probably your program's fault.
==43119== 2. The instruction is legitimate but Valgrind doesn't handle it,
==43119==    i.e. it's Valgrind's fault.  If you think this is the case or
==43119==    you are not sure, please let us know and we'll try to fix it.
==43119== Either way, Valgrind will now raise a SIGILL signal which will
==43119== probably kill your program.
==43119== 
==43119== Process terminating with default action of signal 4 (SIGILL)
==43119==  Illegal opcode at address 0x42C714C
==43119==    at 0x42C714C: private_AES_set_encrypt_key (in /usr/lib64/libcrypto.so.1.0.1e)
==43119==    by 0x439ADBF: fips_drbg_ctr_init (in /usr/lib64/libcrypto.so.1.0.1e)
==43119==    by 0x439D689: FIPS_drbg_init (in /usr/lib64/libcrypto.so.1.0.1e)
==43119==    by 0x431F517: RAND_init_fips (in /usr/lib64/libcrypto.so.1.0.1e)
==43119==    by 0x42A7E0D: OPENSSL_init_library (in /usr/lib64/libcrypto.so.1.0.1e)
==43119==    by 0x42A478D: CRYPTO_set_locking_callback (in /usr/lib64/libcrypto.so.1.0.1e)
==43119==    by 0x8001DB0B: ??? (in /usr/bin/openssl)
==43119==    by 0x4477923: (below main) (in /lib64/libc-2.12.so)
==43119== 
==43119== HEAP SUMMARY:
==43119==     in use at exit: 537 bytes in 8 blocks
==43119==   total heap usage: 8 allocs, 0 frees, 537 bytes allocated
==43119== 
==43119== LEAK SUMMARY:
==43119==    definitely lost: 0 bytes in 0 blocks
==43119==    indirectly lost: 0 bytes in 0 blocks
==43119==      possibly lost: 0 bytes in 0 blocks
==43119==    still reachable: 537 bytes in 8 blocks
==43119==         suppressed: 0 bytes in 0 blocks
==43119== Rerun with --leak-check=full to see details of leaked memory
==43119== 
==43119== For counts of detected and suppressed errors, rerun with: -v
==43119== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 4 from 4)
Illegal instruction (core dumped)

Expected results:
openssl speed results

Additional info:

Comment 1 Mark Wielaard 2013-09-26 18:16:29 UTC
I think this is a duplicate of bug #881893

Comment 2 Mark Wielaard 2013-09-26 18:27:02 UTC
It is not the KIMD, but the KMC:

case 0xb92f: /* KMC */ goto unimplemented

Both part of the Message Security Assist.

The same patch that is already part of the fedora valgrind-3.8.1-25.fc20 package will most likely solve this issue.

Can you try to replicate with the above package?

Comment 3 Mark Wielaard 2013-09-26 18:33:40 UTC

*** This bug has been marked as a duplicate of bug 881893 ***