8 Replies Latest reply on Mar 1, 2018 12:13 PM by sgroel

    OL7.4 Mellanox OFED

    sgroel

      Are there plans to release a build for Oracle Linux 7.4? We are running the unbreakable kernel (4.1.12) and are having issues getting a successful build.

       

      Please see the update at the bottom of the thread. Would like an update on availability and time frame.

        • Re: OL7.4 Mellanox OFED
          zhangsuo

          Till now , no plan for support OEL 7.4

          Next release (MLNX_OFED 4.2 ) will support OEL7.3

           

          THanks

            • Re: OL7.4 Mellanox OFED
              claymogo

              MLNX_OFED 4.2 supported OEL7.3, BUT no support UEK?

               

              thks

                • Re: OL7.4 Mellanox OFED
                  sgroel

                  I was able to build a version for UEKR4 using the 4.1-1.0.2.0-rhel7.4 driver using the following flags: --all --without-fw-update --add-kernel-support --kmp --distro RHEL7.4 --skip-repo

                   

                  However, the latest round of patches for UEKR4 to address Spectre and Meltdown (CVE-2017-5715, CVE-2017-5753, CVE-2017-5754) have broken this. I tried the same process with the latest driver 4.2-1.2 and it also fails to build.

                    • Re: OL7.4 Mellanox OFED
                      brontide

                      There are two different issues, I was able to patch out the first issue but not the second.

                       

                      1. The compat layer is wrong for kernel 4.1, it has kvzalloc and kvzalloc_node but not kvzalloc_array, so the include/linux/mm.h does not add the needed inline calls.  This is trivial to fix and I'm able to rebuild the kernel modules to completion.  Below is a very crude patch to get past the compilation errors.

                      diff -uNr mlnx-ofa_kernel-4.2/source/include/linux/mm.h mlnx-ofa_kernel-4.2p/source/include/linux/mm.h

                      --- mlnx-ofa_kernel-4.2/source/include/linux/mm.h       2017-11-29 01:37:46.000000000 -0500

                      +++ mlnx-ofa_kernel-4.2p/source/include/linux/mm.h      2018-01-24 13:43:26.238722837 -0500

                      @@ -5,18 +5,18 @@

                       

                      #include_next <linux/mm.h>

                       

                      -#ifndef HAVE_KVZALLOC

                      +//#ifndef HAVE_KVZALLOC

                      #include <linux/vmalloc.h>

                      #include <linux/slab.h>

                       

                      -static inline void *kvzalloc(unsigned long size,...) {

                      -       void *rtn;

                      -

                      -       rtn = kzalloc(size, GFP_KERNEL | __GFP_NOWARN);

                      -       if (!rtn)

                      -               rtn = vzalloc(size);

                      -       return rtn;

                      -}

                      +//static inline void *kvzalloc(unsigned long size,...) {

                      +//     void *rtn;

                      +//

                      +//     rtn = kzalloc(size, GFP_KERNEL | __GFP_NOWARN);

                      +//     if (!rtn)

                      +//             rtn = vzalloc(size);

                      +//     return rtn;

                      +//}

                       

                      static inline void *kvmalloc_array(size_t n, size_t size,...) {

                              void *rtn;

                      @@ -27,14 +27,14 @@

                              return rtn;

                      }

                       

                      -static inline void *kvmalloc_node(size_t size, gfp_t flags, int node) {

                      -       void *rtn;

                      -

                      -       rtn = kmalloc_node(size, GFP_KERNEL | __GFP_NOWARN, node);

                      -       if (!rtn)

                      -               rtn = vmalloc(size);

                      -       return rtn;

                      -}

                      -#endif

                      +//static inline void *kvmalloc_node(size_t size, gfp_t flags, int node) {

                      +//     void *rtn;

                      +//

                      +//     rtn = kmalloc_node(size, GFP_KERNEL | __GFP_NOWARN, node);

                      +//     if (!rtn)

                      +//             rtn = vmalloc(size);

                      +//     return rtn;

                      +//}

                      +//#endif

                       

                      #endif /* _COMPAT_LINUX_MM_H */

                       

                      2. The built modules appear to have some incompatibility with dtrace.  I've tried multiple kernel sources including the debian dkms based builds and run into the same module incompatibility.  Nothing seems to connect with the uek patched for meltdown.

                       

                      [11491.875055] Compat-mlnx-ofed backport release: f8de107

                      [11491.875057] Backport based on mlnx_ofed/mlnx-ofa_kernel-4.0.git f8de107

                      [11491.875058] compat.git: mlnx_ofed/mlnx-ofa_kernel-4.0.git

                      [11491.875652] mlx4_core: Unknown symbol __dtrace_probe___lockstat_spin__release (err 0)

                      [11491.929725] mlx4_core: Unknown symbol __dtrace_probe___lockstat_spin__release (err 0)

                      [11491.990485] mlx4_core: Unknown symbol __dtrace_probe___lockstat_spin__release (err 0)

                      [11492.040993] mlx4_core: Unknown symbol __dtrace_probe___lockstat_spin__release (err 0)

                      [11492.094618] mlx5_core: Unknown symbol __dtrace_probe___lockstat_spin__release (err 0)

                      [11492.094650] mlx5_core: Unknown symbol __dtrace_probe___lockstat_rw__release (err 0)

                      [11492.149108] ib_core: Unknown symbol __dtrace_probe___lockstat_spin__release (err 0)

                      [11492.149128] ib_core: Unknown symbol __dtrace_probe___lockstat_rw__release (err 0)

                      [11492.193283] mlx5_core: Unknown symbol __dtrace_probe___lockstat_spin__release (err 0)

                      [11492.193321] mlx5_core: Unknown symbol __dtrace_probe___lockstat_rw__release (err 0)

                      [11492.251776] ib_core: Unknown symbol __dtrace_probe___lockstat_spin__release (err 0)

                      [11492.251796] ib_core: Unknown symbol __dtrace_probe___lockstat_rw__release (err 0)

                      [11492.300214] ib_core: Unknown symbol __dtrace_probe___lockstat_spin__release (err 0)

                      [11492.300234] ib_core: Unknown symbol __dtrace_probe___lockstat_rw__release (err 0)

                      [11492.347375] ib_core: Unknown symbol __dtrace_probe___lockstat_spin__release (err 0)

                      [11492.347396] ib_core: Unknown symbol __dtrace_probe___lockstat_rw__release (err 0)

                       

                      So I'm stuck at well.

                        • Re: OL7.4 Mellanox OFED
                          sgroel

                          Thanks for the fix for issue 1. Going back I was able to build the kernel modules without issue in 4.1-1.0.2.0-rhel7 so it looks like this issue was introduced in versions after 4.1-1.0.2.0.

                           

                          I can confirm the same on my end with regard to dtrace incompatibilities.

                           

                          System kernel: 4.1.12-112.14.13.el7uek.x86_64

                          Patched to latest from Oracle.

                           

                          [   23.659862] ib_core: Unknown symbol __dtrace_probe___lockstat_spin__release (err 0)

                          [   23.659878] ib_core: Unknown symbol __dtrace_probe___lockstat_rw__release (err 0)

                          [   23.666240] ib_core: Unknown symbol __dtrace_probe___lockstat_spin__release (err 0)

                          [   23.666257] ib_core: Unknown symbol __dtrace_probe___lockstat_rw__release (err 0)

                          [   23.671220] ib_core: Unknown symbol __dtrace_probe___lockstat_spin__release (err 0)

                          [   23.671238] ib_core: Unknown symbol __dtrace_probe___lockstat_rw__release (err 0)

                          [   23.680257] ib_core: Unknown symbol __dtrace_probe___lockstat_spin__release (err 0)

                          [   23.680275] ib_core: Unknown symbol __dtrace_probe___lockstat_rw__release (err 0)

                          [   23.848705] ib_core: Unknown symbol __dtrace_probe___lockstat_spin__release (err 0)

                          [   23.848723] ib_core: Unknown symbol __dtrace_probe___lockstat_rw__release (err 0)

                          [   23.961794] mlx4_core: Unknown symbol __dtrace_probe___lockstat_spin__release (err 0)

                          [   24.115917] mlx4_core: Unknown symbol __dtrace_probe___lockstat_spin__release (err 0)

                          [   25.212675] mlx5_core: Unknown symbol __dtrace_probe___lockstat_spin__release (err 0)

                          [   25.212698] mlx5_core: Unknown symbol __dtrace_probe___lockstat_rw__release (err 0)

                          [   31.261383] mlx4_core: Unknown symbol __dtrace_probe___lockstat_spin__release (err 0)

                          [   31.395916] mlx4_core: Unknown symbol __dtrace_probe___lockstat_spin__release (err 0)

                          [   31.466492] mlx4_core: Unknown symbol __dtrace_probe___lockstat_spin__release (err 0)

                          [   31.545371] mlx4_core: Unknown symbol __dtrace_probe___lockstat_spin__release (err 0)

                          [   31.660823] mlx5_core: Unknown symbol __dtrace_probe___lockstat_spin__release (err 0)

                          [   31.660853] mlx5_core: Unknown symbol __dtrace_probe___lockstat_rw__release (err 0)

                          [   31.743799] ib_core: Unknown symbol __dtrace_probe___lockstat_spin__release (err 0)

                          [   31.743823] ib_core: Unknown symbol __dtrace_probe___lockstat_rw__release (err 0)

                          [   31.833409] ib_core: Unknown symbol __dtrace_probe___lockstat_spin__release (err 0)

                          [   31.833430] ib_core: Unknown symbol __dtrace_probe___lockstat_rw__release (err 0)

                          [   31.917047] ib_core: Unknown symbol __dtrace_probe___lockstat_spin__release (err 0)

                          [   31.917068] ib_core: Unknown symbol __dtrace_probe___lockstat_rw__release (err 0)

                          [   32.020004] ib_core: Unknown symbol __dtrace_probe___lockstat_spin__release (err 0)

                          [   32.020036] ib_core: Unknown symbol __dtrace_probe___lockstat_rw__release (err 0)

                  • Re: OL7.4 Mellanox OFED
                    sgroel

                    Can we get an update on OL7.4 support and if UEK will also be supported? With the latest round of patches for CVE-2017-5715, CVE-2017-5753, CVE-2017-5754, we can no longer build on the version we were running.

                     

                    Thanks