components/open-fabrics/libsif/patches/004-Bug24841441.patch
author abss <abhishek.ss@oracle.com>
Tue, 08 Nov 2016 04:33:35 -0800
changeset 7261 ee1d1986fad0
permissions -rw-r--r--
24841441 x86 support for Libsif
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7261
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
     1
# This patch does the x86 architecture libsif changes specific to solaris.
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
     2
# It is developed By solaris PSIF team. We plan to have a common upstream repo
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
     3
# and submit these changes to it, but do not yet have a target date of doing it.
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
     4
diff -r 0d4ed3308871 src/encoding.h
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
     5
--- a/src/encoding.h	Tue Oct 18 17:59:31 2016 +0530
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
     6
+++ b/src/encoding.h	Tue Oct 18 18:59:13 2016 +0530
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
     7
@@ -37,6 +37,7 @@
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
     8
 #define _SIF_ENCODING_H
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
     9
 
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    10
 #include <sys/types.h>
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    11
+#include <infiniband/arch.h>
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    12
 #if !(defined(__SVR4) && defined(__sun))
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    13
 #include "kernel_types.h"
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    14
 #endif
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    15
diff -r 0d4ed3308871 src/sif.c
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    16
--- a/src/sif.c	Tue Oct 18 17:59:31 2016 +0530
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    17
+++ b/src/sif.c	Tue Oct 18 18:59:13 2016 +0530
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    18
@@ -188,9 +188,11 @@
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    19
     const char *fast_copy_mnem;
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    20
     const int feature_mnemonics_size = 500;
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    21
     char feature_mnemonics[feature_mnemonics_size];
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    22
+#if !(defined(__SVR4) && defined(__sun))
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    23
 #if defined(__SSE__) || defined(__AVX__)
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    24
     int disa_x_wc;
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    25
 #endif
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    26
+#endif
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    27
     int ret = 0;
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    28
 
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    29
 #ifdef HAVE_VERBS_REGISTER_DRIVER
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    30
@@ -264,9 +266,11 @@
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    31
 
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    32
     odm = getenv("SIF_OPT_DISABLE_MASK");
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    33
     context->opt_disable_mask = odm ? strtoll(odm, NULL, 0) : 0;
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    34
+#if !(defined(__SVR4) && defined(__sun))
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    35
 #if defined(__SSE__) || defined(__AVX__)
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    36
     disa_x_wc = context->opt_disable_mask & SOD_EXPLICIT_WC;
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    37
 #endif
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    38
+#endif
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    39
 
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    40
 #if defined(__SVR4) && defined(__sun)
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    41
     user_cb_disable = getenv("SIF_DISABLE_USER_CB");
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    42
@@ -276,7 +280,14 @@
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    43
      * set env variable SIF_CB_MODE = 1 to change to cb_mode
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    44
      */
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    45
     cb_mode = getenv("SIF_CB_MODE");
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    46
-    mode = cb_mode ? strtol(cb_mode, NULL, 0) : 0;
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    47
+    if (cb_mode)
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    48
+	    mode = strtol(cb_mode, NULL, 0);
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    49
+    else
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    50
+#if defined(__x86_64)
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    51
+	    mode = 1;
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    52
+#else
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    53
+	    mode = 0;		
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    54
+#endif
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    55
     context->default_flags |= mode? 0: SQ_mode;
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    56
     sif_log(context, SIF_INFO, "Mode: %s", mode? "CB/SQ": "SQ");
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    57
 #endif
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    58
@@ -293,12 +304,14 @@
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    59
 
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    60
     fast_copy_mnem = "fast_copy_plain";
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    61
     context->fast_copy = fast_copy_plain;
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    62
+#if !(defined(__SVR4) && defined(__sun))
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    63
 #if defined(__SSE__)
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    64
     if (can_use_sse()) {
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    65
         fast_copy_mnem     = disa_x_wc ? "fast_copy_sse" : "fast_copy_wc_sse";
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    66
         context->fast_copy = disa_x_wc ?  fast_copy_sse  :  fast_copy_wc_sse;
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    67
     }
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    68
 #endif
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    69
+#endif
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    70
 #if defined(__AVX__)
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    71
     if (can_use_avx()) {
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    72
         fast_copy_mnem     = disa_x_wc ? "fast_copy_avx" : "fast_copy_wc_avx";
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    73
diff -r 0d4ed3308871 src/sndrcv.c
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    74
--- a/src/sndrcv.c	Tue Oct 18 17:59:31 2016 +0530
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    75
+++ b/src/sndrcv.c	Tue Oct 18 18:59:13 2016 +0530
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    76
@@ -573,6 +573,7 @@
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    77
 
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    78
 
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    79
 #if defined(__SSE__)
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    80
+#if !(defined(__SVR4) && defined(__sun))
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    81
 __attribute__((__target__("sse"))) void fast_copy_wc_sse(void *_dst, const void *_src, int len)
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    82
 {
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    83
     __m128 *dst = (__m128 *)_dst;
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    84
@@ -611,6 +612,7 @@
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    85
 }
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    86
 #endif
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    87
 #endif
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    88
+#endif
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    89
 
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    90
 void fast_copy_plain(void *_dst, const void *_src, int len)
ee1d1986fad0 24841441 x86 support for Libsif
abss <abhishek.ss@oracle.com>
parents:
diff changeset
    91
 {