Bug 2064268

Summary: [RHEL9.0] various number benchmarks fail on mlx4 IB devices
Product: Red Hat Enterprise Linux 9 Reporter: Brian Chae <bchae>
Component: mvapich2Assignee: Kamal Heib <kheib>
Status: ASSIGNED --- QA Contact: Infiniband QE <infiniband-qe>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 9.0CC: hwkernel-mgr, kheib, rdma-dev-team
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 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 Brian Chae 2022-03-15 12:53:48 UTC
Description of problem:

Various number of mvapich2 benchmarks fail with RC255, RC252, RC1 on mlx4 IB devices - sometime all of them fail and sometimes just some.

Version-Release number of selected component (if applicable):


DISTRO=RHEL-9.0.0-20220313.2

+ [22-03-14 18:33:26] cat /etc/redhat-release
Red Hat Enterprise Linux release 9.0 Beta (Plow)

+ [22-03-14 18:33:26] uname -a
Linux rdma-perf-01.rdma.lab.eng.rdu2.redhat.com 5.14.0-70.1.1.el9.x86_64 #1 SMP PREEMPT Tue Mar 8 22:22:02 EST 2022 x86_64 x86_64 x86_64 GNU/Linux

+ [22-03-14 18:33:26] cat /proc/cmdline
BOOT_IMAGE=(hd0,msdos1)/vmlinuz-5.14.0-70.1.1.el9.x86_64 root=/dev/mapper/rhel_rdma--perf--01-root ro intel_idle.max_cstate=0 intremap=no_x2apic_optout processor.max_cstate=0 intel_iommu=on iommu=on console=tty0 rd_NO_PLYMOUTH intel_idle.max_cstate=0 intremap=no_x2apic_optout processor.max_cstate=0 crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rhel_rdma--perf--01-swap rd.lvm.lv=rhel_rdma-perf-01/root rd.lvm.lv=rhel_rdma-perf-01/swap console=ttyS1,115200n81

+ [22-03-14 18:33:26] rpm -q rdma-core linux-firmware
rdma-core-37.2-1.el9.x86_64
linux-firmware-20220209-125.el9.noarch

+ [22-03-14 18:33:26] tail /sys/class/infiniband/mlx4_0/fw_ver
2.42.5000


Installed:
  mpitests-mvapich2-5.8-1.el9.x86_64         mvapich2-2.3.6-3.el9.x86_64       


How reproducible:

100%

Steps to Reproduce:
1. bring up the RDMA hosts mentioned above with RHEL9.0 build
2. set up RDMA hosts for mvapich2 benchamrk tests
3. run one of the mvapich2 benchmark with "mpirun" command, as the following:

timeout --preserve-status --kill-after=5m 3m mpirun -hostfile /root/hfile_one_core -np 2 mpitests-IMB-MPI1 PingPong -time 1.5


Actual results:

[rdma-perf-00.rdma.lab.eng.rdu2.redhat.com:mpi_rank_0][rdma_param_handle_heterogeneity] All nodes involved in the job were detected to be homogeneous in terms of processors and interconnects. Setting MV2_HOMOGENEOUS_CLUSTER=1 can improve job startup performance on such systems. The following link has more details on enhancing job startup performance. http://mvapich.cse.ohio-state.edu/performance/job-startup/.
[rdma-perf-00.rdma.lab.eng.rdu2.redhat.com:mpi_rank_0][rdma_param_handle_heterogeneity] To suppress this warning, please set MV2_SUPPRESS_JOB_STARTUP_PERFORMANCE_WARNING to 1
#----------------------------------------------------------------
#    Intel(R) MPI Benchmarks 2021.3, MPI-1 part
#----------------------------------------------------------------
# Date                  : Mon Mar 14 18:33:41 2022
# Machine               : x86_64
# System                : Linux
# Release               : 5.14.0-70.1.1.el9.x86_64
# Version               : #1 SMP PREEMPT Tue Mar 8 22:22:02 EST 2022
# MPI Version           : 3.1
# MPI Thread Environment: 


# Calling sequence was: 

# mpitests-IMB-MPI1 PingPong -time 1.5 

# Minimum message length in bytes:   0
# Maximum message length in bytes:   4194304
#
# MPI_Datatype                   :   MPI_BYTE 
# MPI_Datatype for reductions    :   MPI_FLOAT 
# MPI_Op                         :   MPI_SUM  
# 
# 

# List of Benchmarks to run:

# PingPong

#---------------------------------------------------
# Benchmarking PingPong 
# #processes = 2 
#---------------------------------------------------
       #bytes #repetitions      t[usec]   Mbytes/sec
            0         1000         1.80         0.00
            1         1000         1.73         0.58
            2         1000         1.75         1.14
            4         1000         1.74         2.29
            8         1000         1.78         4.50
           16         1000         1.76         9.07
           32         1000         1.81        17.64
           64         1000         1.81        35.28
          128         1000         1.98        64.65
          256         1000         2.86        89.40
          512         1000         3.07       166.52
         1024         1000         3.58       286.39
         2048         1000         4.45       460.49
[rdma-perf-00.rdma.lab.eng.rdu2.redhat.com:mpi_rank_0][handle_cqe] Send desc error in msg to 1, wc_opcode=0
[rdma-perf-00.rdma.lab.eng.rdu2.redhat.com:mpi_rank_0][handle_cqe] Msg from 1: wc.status=12 (transport retry counter exceeded), wc.wr_id=0x5559ad3e7ae0, wc.opcode=0, vbuf->phead->type=0 = MPIDI_CH3_PKT_EAGER_SEND
[rdma-perf-00.rdma.lab.eng.rdu2.redhat.com:mpi_rank_0][mv2_print_wc_status_error] IBV_WC_RETRY_EXC_ERR: This event is generated when a sender is unable to receive feedback from the receiver. This means that either the receiver just never ACKs sender messages in a specified time period, or it has been disconnected or it is in a bad state which prevents it from responding. If this happens when sending the first message, usually it means that the QP connection attributes are wrong or the remote side is not in a state that it can respond to messages. If this happens after sending the first message, usually it means that the remote QP is not available anymore or that there is congestion in the network preventing the packets from reaching on time. Relevant to: RC or DC QPs.
[rdma-perf-00.rdma.lab.eng.rdu2.redhat.com:mpi_rank_0][handle_cqe] src/mpid/ch3/channels/mrail/src/gen2/ibv_channel_manager.c:497: [] Got completion with error 12, vendor code=0x81, dest rank=1
: No data available (61)
[mpiexec.lab.eng.rdu2.redhat.com] HYDU_sock_write (utils/sock/sock.c:294): write error (Bad file descriptor)
[mpiexec.lab.eng.rdu2.redhat.com] HYD_pmcd_pmiserv_send_signal (pm/pmiserv/pmiserv_cb.c:177): unable to write data to proxy
[mpiexec.lab.eng.rdu2.redhat.com] ui_cmd_cb (pm/pmiserv/pmiserv_pmci.c:79): unable to send signal downstream
[mpiexec.lab.eng.rdu2.redhat.com] HYDT_dmxu_poll_wait_for_event (tools/demux/demux_poll.c:76): callback returned error status
[mpiexec.lab.eng.rdu2.redhat.com] HYD_pmci_wait_for_completion (pm/pmiserv/pmiserv_pmci.c:198): error waiting for event
[mpiexec.lab.eng.rdu2.redhat.com] main (ui/mpich/mpiexec.c:340): process manager error waiting for completion
+ [22-03-14 18:36:40] __MPI_check_result 255 mpitests-mvapich2 IMB-MPI1 PingPong mpirun /root/hfile_one_core



Expected results:

+ [21-11-04 14:32:12] timeout --preserve-status --kill-after=5m 3m mpirun -hostfile /root/hfile_one_core -np 2 mpitests-IMB-MPI1 PingPong -time 1.5
[rdma-virt-00.rdma.lab.eng.rdu2.redhat.com:mpi_rank_0][rdma_param_handle_heterogeneity] All nodes involved in the job were detected to be homogeneous in terms of processors and interconnects. Setting MV2_HOMOGENEOUS_CLUSTER=1 can improve job startup performance on such systems. The following link has more details on enhancing job startup performance. http://mvapich.cse.ohio-state.edu/performance/job-startup/.
[rdma-virt-00.rdma.lab.eng.rdu2.redhat.com:mpi_rank_0][rdma_param_handle_heterogeneity] To suppress this warning, please set MV2_SUPPRESS_JOB_STARTUP_PERFORMANCE_WARNING to 1
#----------------------------------------------------------------
#    Intel(R) MPI Benchmarks 2021.2, MPI-1 part
#----------------------------------------------------------------
# Date                  : Thu Nov  4 14:32:12 2021
# Machine               : x86_64
# System                : Linux
# Release               : 4.18.0-348.el8.x86_64
# Version               : #1 SMP Mon Oct 4 12:17:22 EDT 2021
# MPI Version           : 3.1
# MPI Thread Environment: 


# Calling sequence was: 

# mpitests-IMB-MPI1 PingPong -time 1.5 

# Minimum message length in bytes:   0
# Maximum message length in bytes:   4194304
#
# MPI_Datatype                   :   MPI_BYTE 
# MPI_Datatype for reductions    :   MPI_FLOAT 
# MPI_Op                         :   MPI_SUM  
# 
# 

# List of Benchmarks to run:

# PingPong

#---------------------------------------------------
# Benchmarking PingPong 
# #processes = 2 
#---------------------------------------------------
       #bytes #repetitions      t[usec]   Mbytes/sec
            0         1000         1.03         0.00
            1         1000         1.07         0.93
            2         1000         1.08         1.86
            4         1000         1.07         3.72
            8         1000         1.08         7.42
           16         1000         1.09        14.61
           32         1000         1.11        28.76
           64         1000         1.15        55.57
          128         1000         1.24       103.17
          256         1000         1.87       136.66
          512         1000         2.01       254.89
         1024         1000         2.28       448.72
         2048         1000         2.83       724.77
         4096         1000         3.33      1228.27
         8192         1000         4.71      1740.00
        16384         1000         6.80      2411.04
        32768         1000         9.30      3524.48
        65536          640        14.55      4504.75
       131072          320        24.88      5268.23
       262144          160        45.39      5775.79
       524288           80        87.61      5984.65
      1048576           40       168.82      6211.16
      2097152           20       333.61      6286.29
      4194304           10       664.97      6307.48


# All processes entering MPI_Finalize


Additional info: This same behavior has been observed in RHEL-8.5 release build, where it used to pass all. Also, in earlier RHEL-9.0 build, all benchmarks passed at least once.