Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package perftest for openSUSE:Factory 
checked in at 2021-09-07 21:21:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perftest (Old)
 and      /work/SRC/openSUSE:Factory/.perftest.new.1899 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perftest"

Tue Sep  7 21:21:24 2021 rev:14 rq:917137 version:4.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/perftest/perftest.changes        2021-03-18 
22:54:52.283526353 +0100
+++ /work/SRC/openSUSE:Factory/.perftest.new.1899/perftest.changes      
2021-09-07 21:22:04.609350494 +0200
@@ -1,0 +2,9 @@
+Tue Aug 24 07:37:12 UTC 2021 - Nicolas Morey-Chaisemartin 
<[email protected]>
+
+- Update to 4.5.0-2 (jsc#SLE-19251)
+  - No release notes available
+- Add Do-not-check-if-CPU-is-RO-compliant-at-compile-time.patch
+  to make sure relaxed ordering only depends on the run-time CPU
+  and not the compile-time one.
+
+-------------------------------------------------------------------

Old:
----
  perftest-4.40.37.tar.gz

New:
----
  Do-not-check-if-CPU-is-RO-compliant-at-compile-time.patch
  perftest-4.50.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perftest.spec ++++++
--- /var/tmp/diff_new_pack.hrOHcX/_old  2021-09-07 21:22:05.085351070 +0200
+++ /var/tmp/diff_new_pack.hrOHcX/_new  2021-09-07 21:22:05.085351070 +0200
@@ -16,9 +16,9 @@
 #
 
 
-%define extra_version 0.37
+%define extra_version 0.2
 Name:           perftest
-Version:        4.4
+Version:        4.5
 Release:        0
 Summary:        IB Performance tests
 License:        BSD-3-Clause OR GPL-2.0-or-later
@@ -26,6 +26,7 @@
 URL:            https://github.com/linux-rdma/perftest
 Source0:        %{name}-%{version}%{extra_version}.tar.gz
 Patch4:         perftest-armv6.patch
+Patch5:         Do-not-check-if-CPU-is-RO-compliant-at-compile-time.patch
 # For transition to rdma-core make sure the new packages are selected
 # Once the transition is made the version check can be removed
 BuildRequires:  autoconf
@@ -34,6 +35,7 @@
 BuildRequires:  libibverbs-devel
 BuildRequires:  librdmacm-devel
 BuildRequires:  libtool
+BuildRequires:  pciutils-devel
 
 %description
 gen2 uverbs microbenchmarks
@@ -41,6 +43,7 @@
 %prep
 %setup -q -n %{name}-%{version}%{extra_version}
 %patch4 -p1
+%patch5
 
 %build
 ./autogen.sh

++++++ Do-not-check-if-CPU-is-RO-compliant-at-compile-time.patch ++++++
commit 132ace3feb017f56170cd56c02cf5894d1e80d81
Author: Nicolas Morey-Chaisemartin <[email protected]>
Date:   Tue Aug 24 09:42:33 2021 +0200

    Do not check if CPU is RO compliant at compile time
    
    Patch d157d4246abe (Check PCIe relaxed ordering compliant) introduced 
run-time check
    for relaxed ordering compliance. Thus there shouldn't be any compile time 
checks.
    Current code is at risk on behaving differently on the same machine 
depending on which
    CPU it was packaged.
    
    Signed-off-by: Nicolas Morey-Chaisemartin <[email protected]>

diff --git configure.ac configure.ac
index ae91c3dd786a..26c10eb02fd6 100755
--- configure.ac
+++ configure.ac
@@ -177,16 +177,6 @@ if [test $IS_FREEBSD = no]; then
        AC_CHECK_HEADERS([pci/pci.h],,[AC_MSG_ERROR([pciutils header files not 
found, consider installing pciutils-devel])])
        AC_CHECK_LIB([pci], [pci_init], [LIBPCI=-lpci], AC_MSG_ERROR([libpci 
not found]))
        CPU_IS_RO_COMPLIANT=yes
-       # Actually this is check for being affected by a known issue
-       # with Intel CPUs:
-       # https://lore.kernel.org/patchwork/patch/820922/
-       intel_no_ro_devices="6f01 6f02 6f03 6f04 6f05 6f06 6f07 6f08 6f09 6f0a 
6f0b 6f0c 6f0d 6f0e 2f01 2f02 2f03 2f04 2f05 2f06 2f07 2f08 2f09 2f0a 2f0b 2f0c 
2f0d 2f0e"
-       for cpu_num in $intel_no_ro_devices; do
-               ro_nonsupported=$(lspci -nn | grep -i 8086:$cpu_num)
-               if [ test "$ro_nonsupported" ]; then
-                       CPU_IS_RO_COMPLIANT=no
-               fi
-       done
 fi
 
 AC_TRY_LINK([
++++++ _service ++++++
--- /var/tmp/diff_new_pack.hrOHcX/_old  2021-09-07 21:22:05.121351113 +0200
+++ /var/tmp/diff_new_pack.hrOHcX/_new  2021-09-07 21:22:05.121351113 +0200
@@ -5,8 +5,8 @@
     <param name="package-meta">no</param>
     <param name="exclude">.git</param>
     <param name="filename">perftest</param>
-    <param name="version">4.4-0.37</param>
-    <param name="revision">5fb4f10a7e7827ed15e53c25810a10be279d6e23</param>
+    <param name="version">4.5-0.2</param>
+    <param name="revision">7504ce48ac396a02f4d00de359257b2cb8458f06</param>
   </service>
   <service name="recompress" mode="disabled">
     <param name="file">*perftest*.tar</param>

++++++ perftest-4.40.37.tar.gz -> perftest-4.50.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/perftest-4.40.37/.gitignore 
new/perftest-4.50.2/.gitignore
--- old/perftest-4.40.37/.gitignore     1970-01-01 01:00:00.000000000 +0100
+++ new/perftest-4.50.2/.gitignore      2021-03-23 21:41:20.000000000 +0100
@@ -0,0 +1,59 @@
+# Object Files
+*.o
+*.lo
+*.la
+
+# Libraries
+*.lib
+*.a
+.libs
+
+# Shared objects
+*.so
+*.so.*
+
+# Dependencies
+.dirstamp
+.deps
+
+# Automake
+Makefile
+Makefile.in
+aclocal.m4
+autom4te.cache/
+config.h
+config.h.in
+config.log
+config.status
+config/
+configure
+libtool
+m4/
+stamp-h1
+
+# Project/Eclipse
+.cproject
+.project
+
+#Ctags
+tags
+
+#Programs
+ib_atomic_bw
+ib_atomic_lat
+ib_read_bw
+ib_read_lat
+ib_send_bw
+ib_send_lat
+ib_write_bw
+ib_write_lat
+raw_ethernet_bw
+raw_ethernet_lat
+raw_ethernet_burst_lat
+raw_ethernet_fs_rate
+
+#Debian Stuff
+debian/compat
+debian/*.log
+debian/files
+debian/perftest
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/perftest-4.40.37/README new/perftest-4.50.2/README
--- old/perftest-4.40.37/README 2021-01-11 13:54:09.000000000 +0100
+++ new/perftest-4.50.2/README  2021-03-23 21:41:20.000000000 +0100
@@ -108,7 +108,8 @@
        (kernel module) matches libibverbs
        (kernel module) matches librdmacm
        (kernel module) matches libibumad
-       (kernel module) matches libmath (lm).
+       (kernel module) matches libmath (lm)
+       (linux kernel module) matches pciutils (lpci).
        
 
 Server:                ./<test name> <options>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/perftest-4.40.37/configure.ac 
new/perftest-4.50.2/configure.ac
--- old/perftest-4.40.37/configure.ac   2021-01-11 13:54:09.000000000 +0100
+++ new/perftest-4.50.2/configure.ac    2021-03-23 21:41:20.000000000 +0100
@@ -29,7 +29,7 @@
 # SOFTWARE.
 dnl Process this file with autoconf to produce a configure script.
 
-AC_INIT([perftest],[5.96],[[email protected]])
+AC_INIT([perftest],[5.98],[[email protected]])
 AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_AUX_DIR([config])
 AC_CONFIG_MACRO_DIR([m4])
@@ -174,6 +174,8 @@
 fi
 
 if [test $IS_FREEBSD = no]; then
+       AC_CHECK_HEADERS([pci/pci.h],,[AC_MSG_ERROR([pciutils header files not 
found, consider installing pciutils-devel])])
+       AC_CHECK_LIB([pci], [pci_init], [LIBPCI=-lpci], AC_MSG_ERROR([libpci 
not found]))
        CPU_IS_RO_COMPLIANT=yes
        # Actually this is check for being affected by a known issue
        # with Intel CPUs:
@@ -193,6 +195,7 @@
 AM_CONDITIONAL([HAVE_RO],[test "x$HAVE_RO" = "xyes"])
 if [test $HAVE_RO = yes] && [test "x$CPU_IS_RO_COMPLIANT" = "xyes"]; then
         AC_DEFINE([HAVE_RO], [1], [Enable Relaxed Ordering])
+       LIBS=$LIBS" -lpci"
 fi
 
 AC_TRY_LINK([#include <infiniband/verbs.h>],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/perftest-4.40.37/perftest.spec 
new/perftest-4.50.2/perftest.spec
--- old/perftest-4.40.37/perftest.spec  2021-01-11 13:54:09.000000000 +0100
+++ new/perftest-4.50.2/perftest.spec   2021-03-23 21:41:20.000000000 +0100
@@ -1,6 +1,6 @@
 Name:           perftest
 Summary:        IB Performance tests
-Version:        4.4
+Version:        4.5
 Release:        0.0
 License:        BSD 3-Clause, GPL v2 or later
 Group:          Productivity/Networking/Diagnostic
@@ -8,6 +8,7 @@
 Url:            http://www.openfabrics.org
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 BuildRequires:  libibverbs-devel librdmacm-devel libibumad-devel
+BuildRequires:  pciutils-devel
 
 %description
 gen3 uverbs microbenchmarks
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/perftest-4.40.37/src/perftest_parameters.c 
new/perftest-4.50.2/src/perftest_parameters.c
--- old/perftest-4.40.37/src/perftest_parameters.c      2021-01-11 
13:54:09.000000000 +0100
+++ new/perftest-4.50.2/src/perftest_parameters.c       2021-03-23 
21:41:20.000000000 +0100
@@ -11,6 +11,10 @@
 #include "perftest_parameters.h"
 #include "raw_ethernet_resources.h"
 #include<math.h>
+#ifdef HAVE_RO
+#include <stdbool.h>
+#include <pci/pci.h>
+#endif
 #define MAC_LEN (17)
 #define ETHERTYPE_LEN (6)
 #define MAC_ARR_LEN (6)
@@ -163,6 +167,34 @@
 
        return size;
 }
+#ifdef HAVE_RO
+/******************************************************************************
+  Check PCIe Relaxed Ordering
+
+  Stolen from https://github.com/pciutils/pciutils/blob/master/example.c
+ 
******************************************************************************/
+static bool check_pcie_relaxed_ordering_compliant(void) {
+       struct pci_access *pacc;
+       struct pci_dev *dev;
+       bool cpu_is_RO_compliant = true;
+
+       pacc = pci_alloc();
+       pci_init(pacc);
+       pci_scan_bus(pacc);
+       for (dev = pacc->devices; dev && cpu_is_RO_compliant;
+            dev = dev->next) {
+               pci_fill_info(dev,
+                             PCI_FILL_IDENT | PCI_FILL_BASES | PCI_FILL_CLASS);
+               /* https://lore.kernel.org/patchwork/patch/820922/ */
+               if ((dev->vendor_id == 0x8086) &&
+                   (((dev->device_id >= 0x6f01 && dev->device_id <= 0x6f0e) ||
+                     (dev->device_id >= 0x2f01 && dev->device_id <= 0x2f01))))
+                       cpu_is_RO_compliant = false;
+       }
+       pci_cleanup(pacc);
+       return cpu_is_RO_compliant;
+}
+#endif
 /******************************************************************************
  *
  
******************************************************************************/
@@ -2908,6 +2940,11 @@
        printf(" Connection type : %s\t\tUsing SRQ      : %s\n", 
connStr[user_param->connection_type], user_param->use_srq ? "ON"  : "OFF");
        #ifdef HAVE_RO
        printf(" PCIe relax order: %s\n", user_param->disable_pcir ? "OFF"  : 
"ON");
+       if ((check_pcie_relaxed_ordering_compliant() == false) &&
+           (user_param->disable_pcir == 0)) {
+               printf(" WARNING: CPU is not PCIe relaxed ordering 
compliant.\n");
+               printf(" WARNING: You should disable PCIe RO with 
`--disable_pcie_relaxed` for both server and client.\n");
+       }
        #else
        printf(" PCIe relax order: %s\n", "Unsupported");
        #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/perftest-4.40.37/src/perftest_resources.c 
new/perftest-4.50.2/src/perftest_resources.c
--- old/perftest-4.40.37/src/perftest_resources.c       2021-01-11 
13:54:09.000000000 +0100
+++ new/perftest-4.50.2/src/perftest_resources.c        2021-03-23 
21:41:20.000000000 +0100
@@ -3341,7 +3341,6 @@
        struct ibv_wc           *wc = NULL;
        int                     num_of_qps = user_param->num_of_qps;
        int                     return_value = 0;
-       int                     single_thread_handler;
 
        #ifdef HAVE_IBV_WR_API
        if (user_param->connection_type != RawEth)
@@ -3353,22 +3352,13 @@
        memset(scnt_for_qp,0,sizeof(uint64_t)*user_param->num_of_qps);
 
        duration_param=user_param;
-       sigset_t set;
-       sigemptyset(&set);
-       sigaddset(&set, SIGALRM);
-       single_thread_handler = pthread_sigmask(SIG_BLOCK, &set, NULL);
-       if (single_thread_handler != 0){
-               printf("error when try to mask alram for signal to thread\n");
-               return FAILURE;
-       }
 
        pthread_t print_thread;
-       if (pthread_create(&print_thread, NULL, 
&handle_signal_print_thread,(void *)&set) != 0){
+       if (pthread_create(&print_thread, NULL, 
&handle_signal_print_thread,(void*)&user_param->duration) != 0){
                printf("Fail to create thread \n");
                return FAILURE;
        }
 
-       alarm(user_param->duration);
        user_param->iters = 0;
        user_param->last_iters = 0;
 
@@ -3456,7 +3446,6 @@
        uint64_t                *unused_recv_for_qp = NULL;
        int                     *scredit_for_qp = NULL;
        int                     return_value = 0;
-       int                     single_thread_handler;
 
        #ifdef HAVE_IBV_WR_API
        if (user_param->connection_type != RawEth)
@@ -3481,24 +3470,14 @@
        ALLOCATE(scredit_for_qp,int,user_param->num_of_qps);
        memset(scredit_for_qp,0,sizeof(int)*user_param->num_of_qps);
 
-       sigset_t set;
-       sigemptyset(&set);
-       sigaddset(&set, SIGALRM);
-       single_thread_handler = pthread_sigmask(SIG_BLOCK, &set, NULL);
-       if (single_thread_handler != 0)
-       {
-               printf("error when try to mask alram for signal to thread\n");
-               return FAILURE;
-       }
        duration_param=user_param;
        pthread_t print_thread;
-       if (pthread_create(&print_thread, NULL, &handle_signal_print_thread, 
(void *)&set) != 0)
+       if (pthread_create(&print_thread, NULL, &handle_signal_print_thread, 
(void *)&user_param->duration) != 0)
        {
                printf("Fail to create thread \n");
                return FAILURE;
        }
 
-       alarm(user_param->duration);
        user_param->iters = 0;
        user_param->last_iters = 0;
        user_param->tposted[0] = get_cycles();
@@ -4588,34 +4567,22 @@
 /******************************************************************************
  *
  
******************************************************************************/
-void catch_alarm_infintely()
+void print_bw_infinite_mode()
 {
        print_report_bw(duration_param,NULL);
        duration_param->last_iters = duration_param->iters;
-       alarm(duration_param->duration);
        duration_param->tposted[0] = get_cycles();
 }
 
 /******************************************************************************
  *
  
******************************************************************************/
-void *handle_signal_print_thread(void *sigmask)
+void *handle_signal_print_thread(void* duration)
 {
-       sigset_t *set = (sigset_t*)sigmask;
-       int rc;
-       int sig_caught;
+       int* duration_p = (int*) duration;
        while(1){
-               rc = sigwait(set, &sig_caught);
-               if (rc != 0){
-                       printf("Error when try to wait for SIGALRM\n");
-                       exit(EXIT_FAILURE);
-               }
-               if(sig_caught == SIGALRM)
-                               catch_alarm_infintely();
-               else {
-                       printf("Unsupported signal caught %d, only signal %d is 
supported\n", sig_caught, SIGALRM);
-                       exit(EXIT_FAILURE);
-               }
+               sleep(*duration_p);
+               print_bw_infinite_mode();
        }
 
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/perftest-4.40.37/src/perftest_resources.h 
new/perftest-4.50.2/src/perftest_resources.h
--- old/perftest-4.40.37/src/perftest_resources.h       2021-01-11 
13:54:09.000000000 +0100
+++ new/perftest-4.50.2/src/perftest_resources.h        2021-03-23 
21:41:20.000000000 +0100
@@ -717,22 +717,14 @@
 
 void check_alive(int sig);
 
-/* catch_alarm.
- *
- * Description :
- *     Signal catcher for run_infinitely feature.
- *  Will be triggered every 5 sec and measure BW in this time frame.
- *
- */
-void catch_alarm_infintely();
+void print_bw_infinite_mode();
 
 /* handle_signal_print_thread
 *
 * Description :
-*      Handle thread creation for signal catching in run_infinitely mode
-*
-*/
-void *handle_signal_print_thread(void *sig_mask);
+*      Handle thread creation for printing data in run_infinitely mode
+**/
+void *handle_signal_print_thread(void* duration);
 
 int perform_warm_up(struct pingpong_context *ctx,struct perftest_parameters 
*user_param);
 

Reply via email to