From 3bd14b143d77b32fa04366b2030a46fdcf840e20 Mon Sep 17 00:00:00 2001 From: Jay Sternberg Date: Mon, 5 Oct 2015 08:49:37 -0700 Subject: [PATCH] xeon-phi: ibscif bug 2570: correction to communitate between host and card included are updated patches for xeon-phi so they apply cleanly in 3.18-1 and updated ofed-mic script to handle this situation better. Signed-off-by: Jay Sternberg --- ofed_scripts/ibscif.conf | 2 +- ofed_scripts/ofed-mic | 22 ++-- ...dd-mic-node-and-scif-transport-types.patch | 24 ++-- ...dd-mic-node-and-scif-transport-types.patch | 27 ++-- ...0003-add-context-based-udata-support.patch | 24 ++-- .../0004-add-context-based-umem-support.patch | 29 ++--- .../0005-allow-mic-ipoib-qp-creation.patch | 17 ++- ...e-include-directory-matching-the-loc.patch | 12 +- ...CCL-Direct-ibp-drivers-to-Infiniband.patch | 119 +++++++----------- ...bscif-to-the-Infiniband-HW-directory.patch | 100 ++++++++------- ...nfiniband-s-Kconfig-and-Makefile-to-.patch | 26 ++-- ...0010-Update-qib-for-XEON-PHI-support.patch | 60 ++++----- ...-correct-ib_addr.h-for-older-kernels.patch | 13 +- ...-locking-already-done-in-event-handl.patch | 12 +- 14 files changed, 214 insertions(+), 273 deletions(-) diff --git a/ofed_scripts/ibscif.conf b/ofed_scripts/ibscif.conf index 97f8137..0a2ac55 100644 --- a/ofed_scripts/ibscif.conf +++ b/ofed_scripts/ibscif.conf @@ -8,7 +8,7 @@ # blocking_recv: Use blocking version of scif_recv() (int)(default:1) # scif_loopback: Use SCIF lookback instead of kernel copy based loopback (int)(default:0) # host_proxy: Proxy card side RDMA operations to host (int)(default:0) -# new_ib_type: Use new transport type dedicated to IBSCIF (int)(default:0) +# new_ib_type: Use new transport type dedicated to IBSCIF (int)(default:1) # # over-ride default options for kernel module: # options ibscif enable_fast_rdma=1 diff --git a/ofed_scripts/ofed-mic b/ofed_scripts/ofed-mic index 9132e70..d34de14 100755 --- a/ofed_scripts/ofed-mic +++ b/ofed_scripts/ofed-mic @@ -191,13 +191,14 @@ start() (/usr/sbin/ibpd &) retval=$? fi + modprobe ib_uverbs && modprobe ibp_server && modprobe ibp_cm_server && modprobe ibp_sa_server && modprobe ibscif - retval=$? + retval+=$? [ $retval -eq 0 ] && eval $_success || eval $_failure fi @@ -214,14 +215,6 @@ start() return $retval } -stop_module() -{ - #if needed to return proper status - if [ `grep -c $1 /proc/modules` -ne 0 ] ; then - rmmod $1 &> /dev/null - fi -} - stop() { echo $"Stopping OFED Stack:" @@ -233,15 +226,16 @@ stop() if [ "$nohost" -eq 0 ]; then echo -n "host" - stop_module ibscif - retval=$? - stop_module ibp_sa_server - stop_module ibp_cm_server + rmmod ibscif &> /dev/null + retval=$? + rmmod ibp_sa_server &> /dev/null + retval+=$? + rmmod ibp_cm_server &> /dev/null retval+=$? kill $(pidof /usr/sbin/ibpd) &>/dev/null - stop_module ibp_server + rmmod ibp_server &> /dev/null retval+=$? [ $retval -eq 0 ] && eval $_success || eval $_failure diff --git a/tech-preview/xeon-phi/0001-ib_core-add-mic-node-and-scif-transport-types.patch b/tech-preview/xeon-phi/0001-ib_core-add-mic-node-and-scif-transport-types.patch index c3b2c55..ce066c2 100644 --- a/tech-preview/xeon-phi/0001-ib_core-add-mic-node-and-scif-transport-types.patch +++ b/tech-preview/xeon-phi/0001-ib_core-add-mic-node-and-scif-transport-types.patch @@ -1,7 +1,4 @@ -From c01faf2a8053f8968b9bac84a4cbd54a9952d472 Mon Sep 17 00:00:00 2001 -From: Phil Cayton -Date: Tue, 21 Jan 2014 08:59:29 -0800 -Subject: [PATCH 01/12] ib_core add mic node and scif transport types +xeon-phi: ib_core add mic node and scif transport types The OFED SCIF driver implements a software-emulated RDMA device to allow OFED based applications, such as Intel MPI, to run on Intel(R) MIC Architecture @@ -10,9 +7,9 @@ node communication within a single platform, where a node is a coprocessor or the host processor. This patch adds new node and transport types to the ib_core kernel module to distinguish this new RDMA interface type. --- -diff -urN a0/drivers/infiniband/core/sysfs.c a1/drivers/infiniband/core/sysfs.c ---- a0/drivers/infiniband/core/sysfs.c 2015-01-05 13:35:35.692687746 -0800 -+++ a1/drivers/infiniband/core/sysfs.c 2015-01-05 13:46:38.792659814 -0800 +diff -ruN a/drivers/infiniband/core/sysfs.c a1/drivers/infiniband/core/sysfs.c +--- a/drivers/infiniband/core/sysfs.c 2015-09-10 09:29:25.232891731 -0700 ++++ a1/drivers/infiniband/core/sysfs.c 2015-09-10 09:31:06.464899773 -0700 @@ -253,6 +253,8 @@ return sprintf(buf, "%s\n", "InfiniBand"); case IB_LINK_LAYER_ETHERNET: @@ -30,9 +27,9 @@ diff -urN a0/drivers/infiniband/core/sysfs.c a1/drivers/infiniband/core/sysfs.c default: return sprintf(buf, "%d: \n", dev->node_type); } } -diff -urN a0/drivers/infiniband/core/verbs.c a1/drivers/infiniband/core/verbs.c ---- a0/drivers/infiniband/core/verbs.c 2015-01-05 13:35:35.693687746 -0800 -+++ a1/drivers/infiniband/core/verbs.c 2015-01-05 13:49:08.470653509 -0800 +diff -ruN a/drivers/infiniband/core/verbs.c a1/drivers/infiniband/core/verbs.c +--- a/drivers/infiniband/core/verbs.c 2015-09-10 09:29:25.230891773 -0700 ++++ a1/drivers/infiniband/core/verbs.c 2015-09-10 09:31:06.465900979 -0700 @@ -121,6 +121,8 @@ return RDMA_TRANSPORT_USNIC; case RDMA_NODE_USNIC_UDP: @@ -51,9 +48,9 @@ diff -urN a0/drivers/infiniband/core/verbs.c a1/drivers/infiniband/core/verbs.c default: return IB_LINK_LAYER_UNSPECIFIED; } -diff -urN a0/include/rdma/ib_verbs.h a1/include/rdma/ib_verbs.h ---- a0/include/rdma/ib_verbs.h 2015-01-05 13:45:40.299662278 -0800 -+++ a1/include/rdma/ib_verbs.h 2015-01-05 13:50:57.590648913 -0800 +diff -ruN a/include/rdma/ib_verbs.h a1/include/rdma/ib_verbs.h +--- a/include/rdma/ib_verbs.h 2015-09-10 09:29:25.240891724 -0700 ++++ a1/include/rdma/ib_verbs.h 2015-09-10 09:31:06.466900599 -0700 @@ -75,13 +75,15 @@ RDMA_NODE_RNIC, RDMA_NODE_USNIC, @@ -79,4 +76,3 @@ diff -urN a0/include/rdma/ib_verbs.h a1/include/rdma/ib_verbs.h }; enum ib_device_cap_flags { -Binary files a0/include/rdma/.ib_verbs.h.rej.swp and a1/include/rdma/.ib_verbs.h.rej.swp differ diff --git a/tech-preview/xeon-phi/0002-rdma_cm-add-mic-node-and-scif-transport-types.patch b/tech-preview/xeon-phi/0002-rdma_cm-add-mic-node-and-scif-transport-types.patch index 27e90b2..49aaa0a 100644 --- a/tech-preview/xeon-phi/0002-rdma_cm-add-mic-node-and-scif-transport-types.patch +++ b/tech-preview/xeon-phi/0002-rdma_cm-add-mic-node-and-scif-transport-types.patch @@ -1,15 +1,12 @@ -From faf3b3f931806d4f044068c4e9b2ca4482a9177a Mon Sep 17 00:00:00 2001 -From: Phil Cayton -Date: Tue, 3 Jun 2014 09:50:57 -0700 -Subject: [PATCH 02/12] rdma_cm add mic node and scif transport types +xeon-phi: rdma_cm add mic node and scif transport types The OFED SCIF driver can leverage the iWARP cm calls to establish connections. This patch utilizes the new node and transport types in the rdma cm to call the underlying driver as needed. --- -diff -urN a1/drivers/infiniband/core/cma.c a2/drivers/infiniband/core/cma.c ---- a1/drivers/infiniband/core/cma.c 2015-01-05 13:46:27.953660271 -0800 -+++ a2/drivers/infiniband/core/cma.c 2015-01-05 14:05:11.897612926 -0800 +diff -ruN a1/drivers/infiniband/core/cma.c a2/drivers/infiniband/core/cma.c +--- a1/drivers/infiniband/core/cma.c 2015-09-10 09:30:08.319958447 -0700 ++++ a2/drivers/infiniband/core/cma.c 2015-09-10 09:31:32.894900298 -0700 @@ -747,6 +747,7 @@ qp_attr->rq_psn = id_priv->seq_num; break; @@ -26,7 +23,7 @@ diff -urN a1/drivers/infiniband/core/cma.c a2/drivers/infiniband/core/cma.c if (id_priv->cm_id.iw) iw_destroy_cm_id(id_priv->cm_id.iw); break; -@@ -1994,6 +1996,7 @@ +@@ -1995,6 +1997,7 @@ } break; case RDMA_TRANSPORT_IWARP: @@ -34,7 +31,7 @@ diff -urN a1/drivers/infiniband/core/cma.c a2/drivers/infiniband/core/cma.c ret = cma_resolve_iw_route(id_priv, timeout_ms); break; default: -@@ -2184,6 +2187,25 @@ +@@ -2185,6 +2188,25 @@ return ret; } @@ -60,7 +57,7 @@ diff -urN a1/drivers/infiniband/core/cma.c a2/drivers/infiniband/core/cma.c static int cma_bind_addr(struct rdma_cm_id *id, struct sockaddr *src_addr, struct sockaddr *dst_addr) { -@@ -2225,9 +2247,12 @@ +@@ -2226,9 +2248,12 @@ if (cma_any_addr(dst_addr)) { ret = cma_resolve_loopback(id_priv); } else { @@ -75,7 +72,7 @@ diff -urN a1/drivers/infiniband/core/cma.c a2/drivers/infiniband/core/cma.c ret = rdma_resolve_ip(&addr_client, cma_src_addr(id_priv), dst_addr, &id->route.addr.dev_addr, timeout_ms, addr_handler, id_priv); -@@ -2598,6 +2623,7 @@ +@@ -2599,6 +2624,7 @@ goto err; break; case RDMA_TRANSPORT_IWARP: @@ -83,7 +80,7 @@ diff -urN a1/drivers/infiniband/core/cma.c a2/drivers/infiniband/core/cma.c ret = cma_iw_listen(id_priv, backlog); if (ret) goto err; -@@ -2946,6 +2972,7 @@ +@@ -2948,6 +2974,7 @@ ret = cma_connect_ib(id_priv, conn_param); break; case RDMA_TRANSPORT_IWARP: @@ -91,7 +88,7 @@ diff -urN a1/drivers/infiniband/core/cma.c a2/drivers/infiniband/core/cma.c ret = cma_connect_iw(id_priv, conn_param); break; default: -@@ -3073,6 +3100,7 @@ +@@ -3075,6 +3102,7 @@ } break; case RDMA_TRANSPORT_IWARP: @@ -99,7 +96,7 @@ diff -urN a1/drivers/infiniband/core/cma.c a2/drivers/infiniband/core/cma.c ret = cma_accept_iw(id_priv, conn_param); break; default: -@@ -3133,6 +3161,7 @@ +@@ -3135,6 +3163,7 @@ 0, private_data, private_data_len); break; case RDMA_TRANSPORT_IWARP: @@ -107,7 +104,7 @@ diff -urN a1/drivers/infiniband/core/cma.c a2/drivers/infiniband/core/cma.c ret = iw_cm_reject(id_priv->cm_id.iw, private_data, private_data_len); break; -@@ -3163,6 +3192,7 @@ +@@ -3165,6 +3194,7 @@ ib_send_cm_drep(id_priv->cm_id.ib, NULL, 0); break; case RDMA_TRANSPORT_IWARP: diff --git a/tech-preview/xeon-phi/0003-add-context-based-udata-support.patch b/tech-preview/xeon-phi/0003-add-context-based-udata-support.patch index 113a3e9..fcf9bbb 100644 --- a/tech-preview/xeon-phi/0003-add-context-based-udata-support.patch +++ b/tech-preview/xeon-phi/0003-add-context-based-udata-support.patch @@ -1,16 +1,13 @@ -From 2ddd9c09050d6f74a2ea9e3e21a76510bbdff155 Mon Sep 17 00:00:00 2001 -From: Phil Cayton -Date: Thu, 6 Feb 2014 14:23:36 -0800 -Subject: [PATCH 03/12] add context based udata support +xeon-phi: add context based udata support Normally the copy_to_user and copy_from_user calls are used to access vendor private data when allocating resources from processes. However, when the processes are running on MIC, this communication is proxied to the host kernel via SCIF. This patch allows setup of context-based udata access routines. --- -diff -urN a2/drivers/infiniband/core/uverbs_cmd.c a3/drivers/infiniband/core/uverbs_cmd.c ---- a2/drivers/infiniband/core/uverbs_cmd.c 2015-01-05 13:59:55.217626266 -0800 -+++ a3/drivers/infiniband/core/uverbs_cmd.c 2015-01-05 14:30:40.647548530 -0800 +diff -ruN a2/drivers/infiniband/core/uverbs_cmd.c a3/drivers/infiniband/core/uverbs_cmd.c +--- a2/drivers/infiniband/core/uverbs_cmd.c 2015-09-10 09:31:23.790958256 -0700 ++++ a3/drivers/infiniband/core/uverbs_cmd.c 2015-09-10 09:32:01.419900874 -0700 @@ -57,6 +57,21 @@ static struct uverbs_lock_class xrcd_lock_class = { .name = "XRCD-uobj" }; static struct uverbs_lock_class rule_lock_class = { .name = "RULE-uobj" }; @@ -41,10 +38,9 @@ diff -urN a2/drivers/infiniband/core/uverbs_cmd.c a3/drivers/infiniband/core/uve ucontext->device = ibdev; INIT_LIST_HEAD(&ucontext->pd_list); INIT_LIST_HEAD(&ucontext->mr_list); -Binary files a2/drivers/infiniband/core/.uverbs_cmd.c.rej.swp and a3/drivers/infiniband/core/.uverbs_cmd.c.rej.swp differ -diff -urN a2/drivers/infiniband/core/uverbs.h a3/drivers/infiniband/core/uverbs.h ---- a2/drivers/infiniband/core/uverbs.h 2015-01-05 13:59:55.216626266 -0800 -+++ a3/drivers/infiniband/core/uverbs.h 2015-01-05 14:29:27.559551609 -0800 +diff -ruN a2/drivers/infiniband/core/uverbs.h a3/drivers/infiniband/core/uverbs.h +--- a2/drivers/infiniband/core/uverbs.h 2015-09-10 09:31:23.788958210 -0700 ++++ a3/drivers/infiniband/core/uverbs.h 2015-09-10 09:32:01.420901195 -0700 @@ -47,8 +47,11 @@ #include #include @@ -65,9 +61,9 @@ diff -urN a2/drivers/infiniband/core/uverbs.h a3/drivers/infiniband/core/uverbs. (udata)->inbuf = (ilen) ? (const void __user *) (ibuf) : NULL; \ (udata)->outbuf = (olen) ? (void __user *) (obuf) : NULL; \ (udata)->inlen = (ilen); \ -diff -urN a2/include/rdma/ib_verbs.h a3/include/rdma/ib_verbs.h ---- a2/include/rdma/ib_verbs.h 2015-01-05 13:59:55.219626266 -0800 -+++ a3/include/rdma/ib_verbs.h 2015-01-05 14:18:48.871578512 -0800 +diff -ruN a2/include/rdma/ib_verbs.h a3/include/rdma/ib_verbs.h +--- a2/include/rdma/ib_verbs.h 2015-09-10 09:31:23.754932456 -0700 ++++ a3/include/rdma/ib_verbs.h 2015-09-10 09:32:01.420901195 -0700 @@ -1147,7 +1147,14 @@ int live; }; diff --git a/tech-preview/xeon-phi/0004-add-context-based-umem-support.patch b/tech-preview/xeon-phi/0004-add-context-based-umem-support.patch index a483e59..744dd21 100644 --- a/tech-preview/xeon-phi/0004-add-context-based-umem-support.patch +++ b/tech-preview/xeon-phi/0004-add-context-based-umem-support.patch @@ -1,16 +1,13 @@ -From 8b06f1090da0e12c6012d0d13d8b48c69640a6a7 Mon Sep 17 00:00:00 2001 -From: Phil Cayton -Date: Thu, 6 Feb 2014 14:08:02 -0800 -Subject: [PATCH 04/12] add context based umem support +xeon-phi: add context based umem support The ib_umem_get routine calls get_user_pages to pin pages and create the ib_umem structure. Memory on MIC, however, must be mapped through SCIF for access across PCI. This patch allows setup of context-based ib_umem mapping routines. --- -diff -urN a3/drivers/infiniband/core/umem.c a4/drivers/infiniband/core/umem.c ---- a3/drivers/infiniband/core/umem.c 2015-01-05 14:12:52.117593540 -0800 -+++ a4/drivers/infiniband/core/umem.c 2015-01-05 14:41:51.927520253 -0800 +diff -ruN a3/drivers/infiniband/core/umem.c a4/drivers/infiniband/core/umem.c +--- a3/drivers/infiniband/core/umem.c 2015-09-10 09:31:52.628958359 -0700 ++++ a4/drivers/infiniband/core/umem.c 2015-09-10 09:32:16.722901309 -0700 @@ -57,6 +57,10 @@ for_each_sg(umem->sg_head.sgl, sg, umem->npages, i) { @@ -96,7 +93,7 @@ diff -urN a3/drivers/infiniband/core/umem.c a4/drivers/infiniband/core/umem.c size_t size, int access, int dmasync) { struct ib_umem *umem; -@@ -101,7 +162,6 @@ +@@ -109,7 +170,6 @@ if (!umem) return ERR_PTR(-ENOMEM); @@ -104,7 +101,7 @@ diff -urN a3/drivers/infiniband/core/umem.c a4/drivers/infiniband/core/umem.c umem->length = size; umem->offset = addr & ~PAGE_MASK; umem->page_size = PAGE_SIZE; -@@ -163,11 +223,18 @@ +@@ -171,11 +231,18 @@ sg_list_start = umem->sg_head.sgl; while (npages) { @@ -123,7 +120,7 @@ diff -urN a3/drivers/infiniband/core/umem.c a4/drivers/infiniband/core/umem.c if (ret < 0) goto out; -@@ -219,7 +286,6 @@ +@@ -227,7 +294,6 @@ return ret < 0 ? ERR_PTR(ret) : umem; } @@ -131,7 +128,7 @@ diff -urN a3/drivers/infiniband/core/umem.c a4/drivers/infiniband/core/umem.c static void ib_umem_account(struct work_struct *work) { -@@ -237,10 +303,10 @@ +@@ -245,10 +311,10 @@ } /** @@ -144,7 +141,7 @@ diff -urN a3/drivers/infiniband/core/umem.c a4/drivers/infiniband/core/umem.c { struct ib_ucontext *context = umem->context; struct mm_struct *mm; -@@ -290,9 +356,8 @@ +@@ -298,9 +364,8 @@ out: kfree(umem); } @@ -155,7 +152,7 @@ diff -urN a3/drivers/infiniband/core/umem.c a4/drivers/infiniband/core/umem.c { int shift; int i; -@@ -307,4 +372,40 @@ +@@ -315,4 +380,40 @@ return n; } @@ -196,9 +193,9 @@ diff -urN a3/drivers/infiniband/core/umem.c a4/drivers/infiniband/core/umem.c + ops->page_count(umem) : ib_page_count_umem(umem); +} EXPORT_SYMBOL(ib_umem_page_count); -diff -urN a3/include/rdma/ib_verbs.h a4/include/rdma/ib_verbs.h ---- a3/include/rdma/ib_verbs.h 2015-01-05 14:18:48.871578512 -0800 -+++ a4/include/rdma/ib_verbs.h 2015-01-05 14:36:00.826535043 -0800 +diff -ruN a3/include/rdma/ib_verbs.h a4/include/rdma/ib_verbs.h +--- a3/include/rdma/ib_verbs.h 2015-09-10 09:32:01.420901195 -0700 ++++ a4/include/rdma/ib_verbs.h 2015-09-10 09:32:16.723901528 -0700 @@ -1122,7 +1122,18 @@ u8 page_shift; }; diff --git a/tech-preview/xeon-phi/0005-allow-mic-ipoib-qp-creation.patch b/tech-preview/xeon-phi/0005-allow-mic-ipoib-qp-creation.patch index 7c97357..c620a82 100644 --- a/tech-preview/xeon-phi/0005-allow-mic-ipoib-qp-creation.patch +++ b/tech-preview/xeon-phi/0005-allow-mic-ipoib-qp-creation.patch @@ -1,7 +1,4 @@ -From 8e3cff460efe00954b4c99ea23e42527c234c3f9 Mon Sep 17 00:00:00 2001 -From: Phil Cayton -Date: Tue, 4 Feb 2014 12:22:38 -0800 -Subject: [PATCH 05/12] allow mic ipoib qp creation +xeon-phi: allow mic ipoib qp creation From the host point of view, each MIC kernel appears as a "user-mode process" to allow address translation to access the correct coprocessor mapped across @@ -11,9 +8,9 @@ space. Because these create_flags cannot be set by normal user-mode calls through ib_uverbs, moving the check is not an issue. This patch allows the IPoIB driver on MIC to create QPs correctly. --- -diff -urN a4/drivers/infiniband/hw/mlx4/qp.c a5/drivers/infiniband/hw/mlx4/qp.c ---- a4/drivers/infiniband/hw/mlx4/qp.c 2015-01-05 14:35:38.055536002 -0800 -+++ a5/drivers/infiniband/hw/mlx4/qp.c 2015-01-08 09:50:29.971123797 -0800 +diff -ruN a4/drivers/infiniband/hw/mlx4/qp.c a5/drivers/infiniband/hw/mlx4/qp.c +--- a4/drivers/infiniband/hw/mlx4/qp.c 2015-09-10 09:32:10.146958289 -0700 ++++ a5/drivers/infiniband/hw/mlx4/qp.c 2015-09-10 09:32:44.059932465 -0700 @@ -692,6 +692,12 @@ qp->mlx4_ib_qp_type = qp_type; @@ -79,9 +76,9 @@ diff -urN a4/drivers/infiniband/hw/mlx4/qp.c a5/drivers/infiniband/hw/mlx4/qp.c err = create_qp_common(to_mdev(pd->device), pd, init_attr, udata, get_sqp_num(to_mdev(pd->device), init_attr), -diff -urN a4/drivers/infiniband/hw/mlx5/qp.c a5/drivers/infiniband/hw/mlx5/qp.c ---- a4/drivers/infiniband/hw/mlx5/qp.c 2015-01-05 14:35:38.065536002 -0800 -+++ a5/drivers/infiniband/hw/mlx5/qp.c 2015-01-05 14:46:41.322508063 -0800 +diff -ruN a4/drivers/infiniband/hw/mlx5/qp.c a5/drivers/infiniband/hw/mlx5/qp.c +--- a4/drivers/infiniband/hw/mlx5/qp.c 2015-09-10 09:32:10.150958093 -0700 ++++ a5/drivers/infiniband/hw/mlx5/qp.c 2015-09-10 09:32:44.060932417 -0700 @@ -852,6 +852,9 @@ } diff --git a/tech-preview/xeon-phi/0006-add-scif.h-to-the-include-directory-matching-the-loc.patch b/tech-preview/xeon-phi/0006-add-scif.h-to-the-include-directory-matching-the-loc.patch index ca0529c..4f9aa80 100644 --- a/tech-preview/xeon-phi/0006-add-scif.h-to-the-include-directory-matching-the-loc.patch +++ b/tech-preview/xeon-phi/0006-add-scif.h-to-the-include-directory-matching-the-loc.patch @@ -1,14 +1,10 @@ -From 129a1e301d8567b8d79abe19fd2d998738951cda Mon Sep 17 00:00:00 2001 -From: Phil Cayton -Date: Tue, 4 Feb 2014 12:23:56 -0800 -Subject: [PATCH 06/12] add scif.h to the include directory matching the - location that is in the mpss installation +xeon-phi: add scif.h to the include directory matching the -Signed-off-by: Phil Cayton +location that is in the mpss installation --- -diff -urN a5/include/modules/scif.h a6/include/modules/scif.h +diff -ruN a5/include/modules/scif.h a6/include/modules/scif.h --- a5/include/modules/scif.h 1969-12-31 16:00:00.000000000 -0800 -+++ a6/include/modules/scif.h 2015-01-05 14:59:07.370476637 -0800 ++++ a6/include/modules/scif.h 2015-09-10 09:33:19.295932526 -0700 @@ -0,0 +1,1748 @@ +/* + * Copyright 2010-2013 Intel Corporation. diff --git a/tech-preview/xeon-phi/0007-Add-CCL-Direct-ibp-drivers-to-Infiniband.patch b/tech-preview/xeon-phi/0007-Add-CCL-Direct-ibp-drivers-to-Infiniband.patch index 9a6458a..a01b7df 100644 --- a/tech-preview/xeon-phi/0007-Add-CCL-Direct-ibp-drivers-to-Infiniband.patch +++ b/tech-preview/xeon-phi/0007-Add-CCL-Direct-ibp-drivers-to-Infiniband.patch @@ -1,16 +1,11 @@ -From a6d3fc7a6f6d3b3b621dfbd71babbff5ae58d1dd Mon Sep 17 00:00:00 2001 -From: Phil Cayton -Date: Wed, 28 May 2014 15:50:26 -0700 -Subject: [PATCH 07/13] Add CCL-Direct (ibp) drivers to Infiniband +xeon-phi: Add CCL-Direct (ibp) drivers to Infiniband This includes the base ibp server module as well as the server modules for sa and cm - -Signed-off-by: Phil Cayton --- diff -ruN a6/drivers/infiniband/ibp/cm/cm_ibp_abi.h a7/drivers/infiniband/ibp/cm/cm_ibp_abi.h --- a6/drivers/infiniband/ibp/cm/cm_ibp_abi.h 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/cm/cm_ibp_abi.h 2015-03-11 11:05:40.651368454 -0700 ++++ a7/drivers/infiniband/ibp/cm/cm_ibp_abi.h 2015-09-10 09:33:35.322900652 -0700 @@ -0,0 +1,399 @@ +/* + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved. @@ -413,7 +408,7 @@ diff -ruN a6/drivers/infiniband/ibp/cm/cm_ibp_abi.h a7/drivers/infiniband/ibp/cm +#endif /* CM_IBP_ABI_H */ diff -ruN a6/drivers/infiniband/ibp/cm/cm_server_msg.c a7/drivers/infiniband/ibp/cm/cm_server_msg.c --- a6/drivers/infiniband/ibp/cm/cm_server_msg.c 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/cm/cm_server_msg.c 2015-03-11 11:05:40.651368454 -0700 ++++ a7/drivers/infiniband/ibp/cm/cm_server_msg.c 2015-09-10 09:33:35.324900603 -0700 @@ -0,0 +1,1058 @@ +/* + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved. @@ -1475,7 +1470,7 @@ diff -ruN a6/drivers/infiniband/ibp/cm/cm_server_msg.c a7/drivers/infiniband/ibp +} diff -ruN a6/drivers/infiniband/ibp/cm/common.h a7/drivers/infiniband/ibp/cm/common.h --- a6/drivers/infiniband/ibp/cm/common.h 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/cm/common.h 2015-03-11 11:05:40.651368454 -0700 ++++ a7/drivers/infiniband/ibp/cm/common.h 2015-09-10 09:33:35.324900603 -0700 @@ -0,0 +1,106 @@ +/* + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved. @@ -1585,7 +1580,7 @@ diff -ruN a6/drivers/infiniband/ibp/cm/common.h a7/drivers/infiniband/ibp/cm/com +#endif /* COMMON_H */ diff -ruN a6/drivers/infiniband/ibp/cm/ibp-abi.h a7/drivers/infiniband/ibp/cm/ibp-abi.h --- a6/drivers/infiniband/ibp/cm/ibp-abi.h 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/cm/ibp-abi.h 2015-03-11 11:05:40.652368454 -0700 ++++ a7/drivers/infiniband/ibp/cm/ibp-abi.h 2015-09-10 09:33:35.325932447 -0700 @@ -0,0 +1,94 @@ +/* + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved. @@ -1683,7 +1678,7 @@ diff -ruN a6/drivers/infiniband/ibp/cm/ibp-abi.h a7/drivers/infiniband/ibp/cm/ib +#endif /* IBP_ABI_H */ diff -ruN a6/drivers/infiniband/ibp/cm/ibp_exports.h a7/drivers/infiniband/ibp/cm/ibp_exports.h --- a6/drivers/infiniband/ibp/cm/ibp_exports.h 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/cm/ibp_exports.h 2015-03-11 11:05:40.652368454 -0700 ++++ a7/drivers/infiniband/ibp/cm/ibp_exports.h 2015-09-10 09:33:35.325932447 -0700 @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved. @@ -1737,7 +1732,7 @@ diff -ruN a6/drivers/infiniband/ibp/cm/ibp_exports.h a7/drivers/infiniband/ibp/c +#endif /* IBP_EXPORTS_H */ diff -ruN a6/drivers/infiniband/ibp/cm/Makefile a7/drivers/infiniband/ibp/cm/Makefile --- a6/drivers/infiniband/ibp/cm/Makefile 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/cm/Makefile 2015-03-11 11:06:09.751367228 -0700 ++++ a7/drivers/infiniband/ibp/cm/Makefile 2015-09-10 09:33:35.325932447 -0700 @@ -0,0 +1,26 @@ +KERNEL_V := $(shell uname -r) + @@ -1767,7 +1762,7 @@ diff -ruN a6/drivers/infiniband/ibp/cm/Makefile a7/drivers/infiniband/ibp/cm/Mak + dos2unix *.[ch] Kconfig Makefile diff -ruN a6/drivers/infiniband/ibp/cm/server.c a7/drivers/infiniband/ibp/cm/server.c --- a6/drivers/infiniband/ibp/cm/server.c 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/cm/server.c 2015-03-11 11:05:40.652368454 -0700 ++++ a7/drivers/infiniband/ibp/cm/server.c 2015-09-10 09:33:35.326924807 -0700 @@ -0,0 +1,221 @@ +/* + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved. @@ -1992,7 +1987,7 @@ diff -ruN a6/drivers/infiniband/ibp/cm/server.c a7/drivers/infiniband/ibp/cm/ser +module_exit(ibp_cm_server_exit); diff -ruN a6/drivers/infiniband/ibp/cm/server.h a7/drivers/infiniband/ibp/cm/server.h --- a6/drivers/infiniband/ibp/cm/server.h 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/cm/server.h 2015-03-11 11:05:40.652368454 -0700 ++++ a7/drivers/infiniband/ibp/cm/server.h 2015-09-10 09:33:35.326924807 -0700 @@ -0,0 +1,128 @@ +/* + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved. @@ -2124,7 +2119,7 @@ diff -ruN a6/drivers/infiniband/ibp/cm/server.h a7/drivers/infiniband/ibp/cm/ser +#endif /* SERVER_H */ diff -ruN a6/drivers/infiniband/ibp/cm/server_msg.c a7/drivers/infiniband/ibp/cm/server_msg.c --- a6/drivers/infiniband/ibp/cm/server_msg.c 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/cm/server_msg.c 2015-03-11 11:05:40.652368454 -0700 ++++ a7/drivers/infiniband/ibp/cm/server_msg.c 2015-09-10 09:33:35.326924807 -0700 @@ -0,0 +1,176 @@ +/* + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved. @@ -2304,7 +2299,7 @@ diff -ruN a6/drivers/infiniband/ibp/cm/server_msg.c a7/drivers/infiniband/ibp/cm +} diff -ruN a6/drivers/infiniband/ibp/drv/common.h a7/drivers/infiniband/ibp/drv/common.h --- a6/drivers/infiniband/ibp/drv/common.h 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/drv/common.h 2015-03-11 11:05:40.653368454 -0700 ++++ a7/drivers/infiniband/ibp/drv/common.h 2015-09-10 09:33:35.327932404 -0700 @@ -0,0 +1,109 @@ +/* + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved. @@ -2417,7 +2412,7 @@ diff -ruN a6/drivers/infiniband/ibp/drv/common.h a7/drivers/infiniband/ibp/drv/c +#endif /* COMMON_H */ diff -ruN a6/drivers/infiniband/ibp/drv/ibp-abi.h a7/drivers/infiniband/ibp/drv/ibp-abi.h --- a6/drivers/infiniband/ibp/drv/ibp-abi.h 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/drv/ibp-abi.h 2015-03-11 11:05:40.653368454 -0700 ++++ a7/drivers/infiniband/ibp/drv/ibp-abi.h 2015-09-10 09:33:35.327932404 -0700 @@ -0,0 +1,649 @@ +/* + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved. @@ -3070,7 +3065,7 @@ diff -ruN a6/drivers/infiniband/ibp/drv/ibp-abi.h a7/drivers/infiniband/ibp/drv/ +#endif /* IBP_ABI_H */ diff -ruN a6/drivers/infiniband/ibp/drv/ibp.h a7/drivers/infiniband/ibp/drv/ibp.h --- a6/drivers/infiniband/ibp/drv/ibp.h 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/drv/ibp.h 2015-03-11 11:05:40.653368454 -0700 ++++ a7/drivers/infiniband/ibp/drv/ibp.h 2015-09-10 09:33:35.328932470 -0700 @@ -0,0 +1,257 @@ +/* + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved. @@ -3331,7 +3326,7 @@ diff -ruN a6/drivers/infiniband/ibp/drv/ibp.h a7/drivers/infiniband/ibp/drv/ibp. +#endif /* IBP_H */ diff -ruN a6/drivers/infiniband/ibp/drv/Makefile a7/drivers/infiniband/ibp/drv/Makefile --- a6/drivers/infiniband/ibp/drv/Makefile 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/drv/Makefile 2015-03-11 11:06:14.420367031 -0700 ++++ a7/drivers/infiniband/ibp/drv/Makefile 2015-09-10 09:33:35.328932470 -0700 @@ -0,0 +1,26 @@ +KERNEL_V := $(shell uname -r) + @@ -3361,8 +3356,8 @@ diff -ruN a6/drivers/infiniband/ibp/drv/Makefile a7/drivers/infiniband/ibp/drv/M + dos2unix *.[ch] Kconfig Makefile diff -ruN a6/drivers/infiniband/ibp/drv/server.c a7/drivers/infiniband/ibp/drv/server.c --- a6/drivers/infiniband/ibp/drv/server.c 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/drv/server.c 2015-03-11 11:05:40.653368454 -0700 -@@ -0,0 +1,548 @@ ++++ a7/drivers/infiniband/ibp/drv/server.c 2015-09-17 08:39:39.412983116 -0700 +@@ -0,0 +1,549 @@ +/* + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved. + * @@ -3498,7 +3493,7 @@ diff -ruN a6/drivers/infiniband/ibp/drv/server.c a7/drivers/infiniband/ibp/drv/s +static struct ibp_client *ibp_create_client(scif_epd_t ep, uint16_t node) +{ + struct ibp_client *client; -+ int ret; ++ int ret = -ENOMEM; + + /* If a reconnect occurs while on the cdev_list just update the ep. */ + down_read(&list_rwsem); @@ -3515,7 +3510,7 @@ diff -ruN a6/drivers/infiniband/ibp/drv/server.c a7/drivers/infiniband/ibp/drv/s + client = kzalloc(sizeof(*client), GFP_KERNEL); + if (!client) { + print_err("kzalloc failed\n"); -+ return ERR_PTR(-ENOMEM); ++ goto err0; + } + + client->ep = ep; @@ -3529,18 +3524,19 @@ diff -ruN a6/drivers/infiniband/ibp/drv/server.c a7/drivers/infiniband/ibp/drv/s + client->workqueue = create_singlethread_workqueue(DRV_NAME); + if (!client->workqueue) { + print_err("create_singlethread_workqueue failed\n"); -+ goto err0; ++ goto err1; + } + + ret = ibp_create_cdev(client, node); + if (ret) -+ goto err1; ++ goto err2; + + return client; -+err1: ++err2: + destroy_workqueue(client->workqueue); -+err0: ++err1: + kfree(client); ++err0: + return ERR_PTR(ret); +} + @@ -3913,7 +3909,7 @@ diff -ruN a6/drivers/infiniband/ibp/drv/server.c a7/drivers/infiniband/ibp/drv/s +module_exit(ibp_server_exit); diff -ruN a6/drivers/infiniband/ibp/drv/server.h a7/drivers/infiniband/ibp/drv/server.h --- a6/drivers/infiniband/ibp/drv/server.h 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/drv/server.h 2015-03-11 11:05:40.654368454 -0700 ++++ a7/drivers/infiniband/ibp/drv/server.h 2015-09-10 09:33:35.329932324 -0700 @@ -0,0 +1,191 @@ +/* + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved. @@ -4108,8 +4104,8 @@ diff -ruN a6/drivers/infiniband/ibp/drv/server.h a7/drivers/infiniband/ibp/drv/s +#endif /* SERVER_H */ diff -ruN a6/drivers/infiniband/ibp/drv/server_msg.c a7/drivers/infiniband/ibp/drv/server_msg.c --- a6/drivers/infiniband/ibp/drv/server_msg.c 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/drv/server_msg.c 2015-03-11 11:05:40.655368454 -0700 -@@ -0,0 +1,3098 @@ ++++ a7/drivers/infiniband/ibp/drv/server_msg.c 2015-09-10 09:34:50.117900541 -0700 +@@ -0,0 +1,3073 @@ +/* + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved. + * @@ -5533,6 +5529,7 @@ diff -ruN a6/drivers/infiniband/ibp/drv/server_msg.c a7/drivers/infiniband/ibp/d + uobj->user_handle = (uintptr_t)ucontext; + kref_init(&uobj->ref); + init_rwsem(&uobj->mutex); ++ INIT_LIST_HEAD(&uobj->list); + lockdep_set_class(&uobj->mutex, &__key); + uobj->live = 1; + @@ -5545,11 +5542,10 @@ diff -ruN a6/drivers/infiniband/ibp/drv/server_msg.c a7/drivers/infiniband/ibp/d + + if (!IS_NULL_OR_ERR(uobj)) { + ucontext = (struct ibp_ucontext *) uobj->user_handle; -+ if (ucontext) { -+ mutex_lock(&ucontext->mutex); -+ list_del(&uobj->list); -+ mutex_unlock(&ucontext->mutex); -+ } ++ ++ mutex_lock(&ucontext->mutex); ++ list_del(&uobj->list); ++ mutex_unlock(&ucontext->mutex); + + ibp_add_to_stack(o_stack, (void *) uobj); + } @@ -5596,11 +5592,6 @@ diff -ruN a6/drivers/infiniband/ibp/drv/server_msg.c a7/drivers/infiniband/ibp/d + if (IS_ERR(pd)) { + ret = PTR_ERR(pd); + print_err("ib_alloc_pd returned %d\n", ret); -+ /* -+ * Clear uobj's user_handle as destroy_uobj tries to list_del -+ * uobj from the list and uobj has NOT been added yet -+ */ -+ uobj->user_handle = 0; + ibp_destroy_uobj(uobj); + goto send_resp; + } @@ -5721,11 +5712,6 @@ diff -ruN a6/drivers/infiniband/ibp/drv/server_msg.c a7/drivers/infiniband/ibp/d + if (IS_ERR(ah)) { + ret = PTR_ERR(ah); + print_err("ib_create_ah returned %d\n", ret); -+ /* -+ * Clear uobj's user_handle as destroy_uobj tries to list_del -+ * uobj from the list and uobj has NOT been added yet -+ */ -+ uobj->user_handle = 0; + ibp_destroy_uobj(uobj); + goto send_resp; + } @@ -5908,11 +5894,6 @@ diff -ruN a6/drivers/infiniband/ibp/drv/server_msg.c a7/drivers/infiniband/ibp/d + if (IS_ERR(srq)) { + ret = PTR_ERR(srq); + print_err("ib_create_srq returned %d\n", ret); -+ /* -+ * Clear uobj's user_handle as destroy_uobj tries to list_del -+ * uobj from the list and uobj has NOT been added yet -+ */ -+ uobj->user_handle = 0; + ibp_destroy_uobj(uobj); + goto send_resp; + } @@ -6171,11 +6152,6 @@ diff -ruN a6/drivers/infiniband/ibp/drv/server_msg.c a7/drivers/infiniband/ibp/d + if (IS_ERR(qp->ibqp)) { + ret = PTR_ERR(qp->ibqp); + print_err("ib_create_qp returned %d\n", ret); -+ /* -+ * Clear uobj's user_handle as destroy_uobj tries to list_del -+ * uobj from the list and uobj has NOT been added yet -+ */ -+ uobj->user_handle = 0; + ibp_destroy_uobj(uobj); + goto send_resp; + } @@ -6601,11 +6577,6 @@ diff -ruN a6/drivers/infiniband/ibp/drv/server_msg.c a7/drivers/infiniband/ibp/d + if (IS_ERR(cq)) { + ret = PTR_ERR(cq); + print_err("ib_create_cq returned %d\n", ret); -+ /* -+ * Clear uobj's user_handle as destroy_uobj tries to list_del -+ * uobj from the list and uobj has NOT been added yet -+ */ -+ uobj->user_handle = 0; + ibp_destroy_uobj(uobj); + goto send_resp; + } @@ -7210,7 +7181,7 @@ diff -ruN a6/drivers/infiniband/ibp/drv/server_msg.c a7/drivers/infiniband/ibp/d +} diff -ruN a6/drivers/infiniband/ibp/drv/stack.c a7/drivers/infiniband/ibp/drv/stack.c --- a6/drivers/infiniband/ibp/drv/stack.c 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/drv/stack.c 2015-03-11 11:05:40.655368454 -0700 ++++ a7/drivers/infiniband/ibp/drv/stack.c 2015-09-10 09:33:35.331960564 -0700 @@ -0,0 +1,102 @@ +/* + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved. @@ -7316,7 +7287,7 @@ diff -ruN a6/drivers/infiniband/ibp/drv/stack.c a7/drivers/infiniband/ibp/drv/st +} diff -ruN a6/drivers/infiniband/ibp/drv/stack.h a7/drivers/infiniband/ibp/drv/stack.h --- a6/drivers/infiniband/ibp/drv/stack.h 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/drv/stack.h 2015-03-11 11:05:40.655368454 -0700 ++++ a7/drivers/infiniband/ibp/drv/stack.h 2015-09-10 09:33:35.331960564 -0700 @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved. @@ -7377,7 +7348,7 @@ diff -ruN a6/drivers/infiniband/ibp/drv/stack.h a7/drivers/infiniband/ibp/drv/st +#endif /* _IBP_STACK_H_ */ diff -ruN a6/drivers/infiniband/ibp/Kconfig a7/drivers/infiniband/ibp/Kconfig --- a6/drivers/infiniband/ibp/Kconfig 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/Kconfig 2015-03-11 11:05:40.655368454 -0700 ++++ a7/drivers/infiniband/ibp/Kconfig 2015-09-10 09:33:35.331960564 -0700 @@ -0,0 +1,16 @@ +config IBP_SERVER + tristate "CCL Direct IB Server drivers" @@ -7397,14 +7368,14 @@ diff -ruN a6/drivers/infiniband/ibp/Kconfig a7/drivers/infiniband/ibp/Kconfig + This option causes debug code to be compiled into the CCL Direct drivers. diff -ruN a6/drivers/infiniband/ibp/Makefile a7/drivers/infiniband/ibp/Makefile --- a6/drivers/infiniband/ibp/Makefile 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/Makefile 2015-03-11 11:05:40.655368454 -0700 ++++ a7/drivers/infiniband/ibp/Makefile 2015-09-10 09:33:35.331960564 -0700 @@ -0,0 +1,3 @@ +obj-$(CONFIG_IBP_SERVER) += drv/ +obj-$(CONFIG_IBP_SERVER) += cm/ +obj-$(CONFIG_IBP_SERVER) += sa/ diff -ruN a6/drivers/infiniband/ibp/sa/common.h a7/drivers/infiniband/ibp/sa/common.h --- a6/drivers/infiniband/ibp/sa/common.h 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/sa/common.h 2015-03-11 11:05:40.656368454 -0700 ++++ a7/drivers/infiniband/ibp/sa/common.h 2015-09-10 09:33:35.331960564 -0700 @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved. @@ -7516,7 +7487,7 @@ diff -ruN a6/drivers/infiniband/ibp/sa/common.h a7/drivers/infiniband/ibp/sa/com +#endif /* COMMON_H */ diff -ruN a6/drivers/infiniband/ibp/sa/ibp-abi.h a7/drivers/infiniband/ibp/sa/ibp-abi.h --- a6/drivers/infiniband/ibp/sa/ibp-abi.h 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/sa/ibp-abi.h 2015-03-11 11:05:40.656368454 -0700 ++++ a7/drivers/infiniband/ibp/sa/ibp-abi.h 2015-09-10 09:33:35.331960564 -0700 @@ -0,0 +1,101 @@ +/* + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved. @@ -7621,7 +7592,7 @@ diff -ruN a6/drivers/infiniband/ibp/sa/ibp-abi.h a7/drivers/infiniband/ibp/sa/ib +#endif /* IBP_ABI_H */ diff -ruN a6/drivers/infiniband/ibp/sa/ibp_exports.h a7/drivers/infiniband/ibp/sa/ibp_exports.h --- a6/drivers/infiniband/ibp/sa/ibp_exports.h 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/sa/ibp_exports.h 2015-03-11 11:05:40.656368454 -0700 ++++ a7/drivers/infiniband/ibp/sa/ibp_exports.h 2015-09-10 09:33:35.331960564 -0700 @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved. @@ -7674,7 +7645,7 @@ diff -ruN a6/drivers/infiniband/ibp/sa/ibp_exports.h a7/drivers/infiniband/ibp/s +#endif /* IBP_EXPORTS_H */ diff -ruN a6/drivers/infiniband/ibp/sa/Makefile a7/drivers/infiniband/ibp/sa/Makefile --- a6/drivers/infiniband/ibp/sa/Makefile 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/sa/Makefile 2015-03-11 11:06:22.521366690 -0700 ++++ a7/drivers/infiniband/ibp/sa/Makefile 2015-09-10 09:33:35.331960564 -0700 @@ -0,0 +1,26 @@ +KERNEL_V := $(shell uname -r) + @@ -7704,7 +7675,7 @@ diff -ruN a6/drivers/infiniband/ibp/sa/Makefile a7/drivers/infiniband/ibp/sa/Mak + dos2unix *.[ch] Kconfig Makefile diff -ruN a6/drivers/infiniband/ibp/sa/sa_ibp_abi.h a7/drivers/infiniband/ibp/sa/sa_ibp_abi.h --- a6/drivers/infiniband/ibp/sa/sa_ibp_abi.h 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/sa/sa_ibp_abi.h 2015-03-11 11:05:40.656368454 -0700 ++++ a7/drivers/infiniband/ibp/sa/sa_ibp_abi.h 2015-09-10 09:33:35.332958325 -0700 @@ -0,0 +1,251 @@ +/* + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved. @@ -7959,7 +7930,7 @@ diff -ruN a6/drivers/infiniband/ibp/sa/sa_ibp_abi.h a7/drivers/infiniband/ibp/sa +#endif /* SA_IBP_ABI_H */ diff -ruN a6/drivers/infiniband/ibp/sa/sa_server_msg.c a7/drivers/infiniband/ibp/sa/sa_server_msg.c --- a6/drivers/infiniband/ibp/sa/sa_server_msg.c 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/sa/sa_server_msg.c 2015-03-11 11:05:40.657368454 -0700 ++++ a7/drivers/infiniband/ibp/sa/sa_server_msg.c 2015-09-10 09:33:35.332958325 -0700 @@ -0,0 +1,970 @@ +/* + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved. @@ -8933,7 +8904,7 @@ diff -ruN a6/drivers/infiniband/ibp/sa/sa_server_msg.c a7/drivers/infiniband/ibp +} diff -ruN a6/drivers/infiniband/ibp/sa/sa_table.h a7/drivers/infiniband/ibp/sa/sa_table.h --- a6/drivers/infiniband/ibp/sa/sa_table.h 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/sa/sa_table.h 2015-03-11 11:05:40.657368454 -0700 ++++ a7/drivers/infiniband/ibp/sa/sa_table.h 2015-09-10 09:33:35.332958325 -0700 @@ -0,0 +1,131 @@ +/*" + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved. @@ -9068,7 +9039,7 @@ diff -ruN a6/drivers/infiniband/ibp/sa/sa_table.h a7/drivers/infiniband/ibp/sa/s +}; diff -ruN a6/drivers/infiniband/ibp/sa/server.c a7/drivers/infiniband/ibp/sa/server.c --- a6/drivers/infiniband/ibp/sa/server.c 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/sa/server.c 2015-03-11 11:05:40.657368454 -0700 ++++ a7/drivers/infiniband/ibp/sa/server.c 2015-09-10 09:33:35.332958325 -0700 @@ -0,0 +1,221 @@ +/* + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved. @@ -9293,7 +9264,7 @@ diff -ruN a6/drivers/infiniband/ibp/sa/server.c a7/drivers/infiniband/ibp/sa/ser +module_exit(ibp_sa_server_exit); diff -ruN a6/drivers/infiniband/ibp/sa/server.h a7/drivers/infiniband/ibp/sa/server.h --- a6/drivers/infiniband/ibp/sa/server.h 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/sa/server.h 2015-03-11 11:05:40.657368454 -0700 ++++ a7/drivers/infiniband/ibp/sa/server.h 2015-09-10 09:33:35.332958325 -0700 @@ -0,0 +1,172 @@ +/* + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved. @@ -9469,7 +9440,7 @@ diff -ruN a6/drivers/infiniband/ibp/sa/server.h a7/drivers/infiniband/ibp/sa/ser +#endif /* SERVER_H */ diff -ruN a6/drivers/infiniband/ibp/sa/server_msg.c a7/drivers/infiniband/ibp/sa/server_msg.c --- a6/drivers/infiniband/ibp/sa/server_msg.c 1969-12-31 16:00:00.000000000 -0800 -+++ a7/drivers/infiniband/ibp/sa/server_msg.c 2015-03-11 11:05:40.657368454 -0700 ++++ a7/drivers/infiniband/ibp/sa/server_msg.c 2015-09-10 09:33:35.332958325 -0700 @@ -0,0 +1,185 @@ +/* + * Copyright (c) 2011-2013 Intel Corporation. All rights reserved. diff --git a/tech-preview/xeon-phi/0008-Add-ibscif-to-the-Infiniband-HW-directory.patch b/tech-preview/xeon-phi/0008-Add-ibscif-to-the-Infiniband-HW-directory.patch index 2a79a28..188d746 100644 --- a/tech-preview/xeon-phi/0008-Add-ibscif-to-the-Infiniband-HW-directory.patch +++ b/tech-preview/xeon-phi/0008-Add-ibscif-to-the-Infiniband-HW-directory.patch @@ -1,13 +1,8 @@ -From 674c5e41008346a8d68f534d408e240b152dec5e Mon Sep 17 00:00:00 2001 -From: Phil Cayton -Date: Wed, 28 May 2014 15:53:58 -0700 -Subject: [PATCH 08/13] Add ibscif to the Infiniband HW directory - -Signed-off-by: Phil Cayton +xeon-phi: Add ibscif to the Infiniband HW directory --- diff -ruN a7/drivers/infiniband/hw/scif/ibscif_ah.c a8/drivers/infiniband/hw/scif/ibscif_ah.c --- a7/drivers/infiniband/hw/scif/ibscif_ah.c 1969-12-31 16:00:00.000000000 -0800 -+++ a8/drivers/infiniband/hw/scif/ibscif_ah.c 2015-03-10 13:56:38.840575818 -0700 ++++ a8/drivers/infiniband/hw/scif/ibscif_ah.c 2015-09-10 09:35:25.571900695 -0700 @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2008 Intel Corporation. All rights reserved. @@ -61,7 +56,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_ah.c a8/drivers/infiniband/hw/sci +} diff -ruN a7/drivers/infiniband/hw/scif/ibscif_cm.c a8/drivers/infiniband/hw/scif/ibscif_cm.c --- a7/drivers/infiniband/hw/scif/ibscif_cm.c 1969-12-31 16:00:00.000000000 -0800 -+++ a8/drivers/infiniband/hw/scif/ibscif_cm.c 2015-03-10 13:56:38.828575818 -0700 ++++ a8/drivers/infiniband/hw/scif/ibscif_cm.c 2015-09-10 09:35:25.572900862 -0700 @@ -0,0 +1,515 @@ +/* + * Copyright (c) 2008 Intel Corporation. All rights reserved. @@ -580,7 +575,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_cm.c a8/drivers/infiniband/hw/sci + diff -ruN a7/drivers/infiniband/hw/scif/ibscif_cq.c a8/drivers/infiniband/hw/scif/ibscif_cq.c --- a7/drivers/infiniband/hw/scif/ibscif_cq.c 1969-12-31 16:00:00.000000000 -0800 -+++ a8/drivers/infiniband/hw/scif/ibscif_cq.c 2015-03-10 13:56:38.838575818 -0700 ++++ a8/drivers/infiniband/hw/scif/ibscif_cq.c 2015-09-10 09:35:25.572900862 -0700 @@ -0,0 +1,313 @@ +/* + * Copyright (c) 2008 Intel Corporation. All rights reserved. @@ -897,7 +892,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_cq.c a8/drivers/infiniband/hw/sci +} diff -ruN a7/drivers/infiniband/hw/scif/ibscif_driver.h a8/drivers/infiniband/hw/scif/ibscif_driver.h --- a7/drivers/infiniband/hw/scif/ibscif_driver.h 1969-12-31 16:00:00.000000000 -0800 -+++ a8/drivers/infiniband/hw/scif/ibscif_driver.h 2015-03-10 13:56:38.840575818 -0700 ++++ a8/drivers/infiniband/hw/scif/ibscif_driver.h 2015-09-10 09:35:25.573932333 -0700 @@ -0,0 +1,787 @@ +/* + * Copyright (c) 2008 Intel Corporation. All rights reserved. @@ -1688,7 +1683,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_driver.h a8/drivers/infiniband/hw +#endif /* IBSCIF_DRIVER_H */ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_loopback.c a8/drivers/infiniband/hw/scif/ibscif_loopback.c --- a7/drivers/infiniband/hw/scif/ibscif_loopback.c 1969-12-31 16:00:00.000000000 -0800 -+++ a8/drivers/infiniband/hw/scif/ibscif_loopback.c 2015-03-10 13:56:38.838575818 -0700 ++++ a8/drivers/infiniband/hw/scif/ibscif_loopback.c 2015-09-10 09:35:25.574932378 -0700 @@ -0,0 +1,582 @@ +/* + * Copyright (c) 2008 Intel Corporation. All rights reserved. @@ -2274,8 +2269,8 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_loopback.c a8/drivers/infiniband/ +} diff -ruN a7/drivers/infiniband/hw/scif/ibscif_main.c a8/drivers/infiniband/hw/scif/ibscif_main.c --- a7/drivers/infiniband/hw/scif/ibscif_main.c 1969-12-31 16:00:00.000000000 -0800 -+++ a8/drivers/infiniband/hw/scif/ibscif_main.c 2015-03-10 13:56:38.829575818 -0700 -@@ -0,0 +1,357 @@ ++++ a8/drivers/infiniband/hw/scif/ibscif_main.c 2015-09-17 14:26:23.143892632 -0700 +@@ -0,0 +1,379 @@ +/* + * Copyright (c) 2008 Intel Corporation. All rights reserved. + * @@ -2353,12 +2348,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_main.c a8/drivers/infiniband/hw/s +MODULE_PARAM(int, host_proxy, 0, + "Proxy card side RDMA operations to host"); + -+#if ((LINUX_VERSION_CODE>=KERNEL_VERSION(3,5,0)) || CONFIG_MK1OM || CONFIG_ML1OM) -+#define USE_NEW_IB_TYPE 1 -+#else -+#define USE_NEW_IB_TYPE 0 -+#endif -+MODULE_PARAM(int, new_ib_type, USE_NEW_IB_TYPE, ++MODULE_PARAM(int, new_ib_type, 1, + "Use new transport type dedicated to IBSCIF"); + +MODULE_PARAM(int, verbose, 0, @@ -2506,6 +2496,23 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_main.c a8/drivers/infiniband/hw/s + return head_copied; +} + ++#if LINUX_VERSION_CODE>=KERNEL_VERSION(3,10,0) ++int ibscif_wiremap_add(void *obj, int *id) ++{ ++ int ret; ++ ++ write_lock_bh(&wiremap_lock); ++ ret = idr_alloc(&wiremap, obj, 0, 0, GFP_ATOMIC); ++ write_unlock_bh(&wiremap_lock); ++ ++ if (ret < 0) ++ return ret; ++ ++ *id = ret; ++ ++ return 0; ++} ++#else +/* + * Because idr_pre_get acquires the same internal spinlock used by idr_pre_get/idr_remove + * calls under a write_lock_bh, we need to call idr_pre_get with bottom half disabled. @@ -2522,7 +2529,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_main.c a8/drivers/infiniband/hw/s + + return ret; +} -+ ++ +int ibscif_wiremap_add(void *obj, int *id) +{ + int ret; @@ -2538,6 +2545,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_main.c a8/drivers/infiniband/hw/s + + return ret; +} ++#endif + +void ibscif_wiremap_del(int id) +{ @@ -2548,21 +2556,30 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_main.c a8/drivers/infiniband/hw/s + +static int ibscif_init_wiremap(void) +{ ++ int ret; + /* + * Instead of treating them as opaque, some applications assert that returned key + * values are non-zero. As a work-around, reserve the first key from the wiremap. + */ -+ int ret = ibscif_wiremap_add(&reserved_0, &reserved_0); ++#if LINUX_VERSION_CODE>=KERNEL_VERSION(3,10,0) ++ ret = idr_alloc(&wiremap, &reserved_0, 0, 1, GFP_KERNEL); ++#else ++ ret = ibscif_wiremap_add(&reserved_0, &reserved_0); ++#endif + BUG_ON(reserved_0 != 0); + return ret; +} + +static void ibscif_free_wiremap(void) +{ ++#if LINUX_VERSION_CODE>=KERNEL_VERSION(3,10,0) ++ idr_destroy(&wiremap); ++#else + write_lock_bh(&wiremap_lock); + idr_remove_all(&wiremap); + idr_destroy(&wiremap); + write_unlock_bh(&wiremap_lock); ++#endif +} + +static void ibscif_init_params(void) @@ -2635,8 +2652,8 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_main.c a8/drivers/infiniband/hw/s +module_exit(ibscif_exit); diff -ruN a7/drivers/infiniband/hw/scif/ibscif_mr.c a8/drivers/infiniband/hw/scif/ibscif_mr.c --- a7/drivers/infiniband/hw/scif/ibscif_mr.c 1969-12-31 16:00:00.000000000 -0800 -+++ a8/drivers/infiniband/hw/scif/ibscif_mr.c 2015-03-10 13:56:38.828575818 -0700 -@@ -0,0 +1,559 @@ ++++ a8/drivers/infiniband/hw/scif/ibscif_mr.c 2015-09-17 08:49:08.885982855 -0700 +@@ -0,0 +1,552 @@ +/* + * Copyright (c) 2008 Intel Corporation. All rights reserved. + * @@ -2993,14 +3010,9 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_mr.c a8/drivers/infiniband/hw/sci +{ +} + -+static u64 ibscif_sg_dma_address(struct ib_device *ibdev, struct scatterlist *sg) ++static void ibscif_sync_single(struct ib_device *ibdev, u64 dma, size_t size, ++ enum dma_data_direction direction) +{ -+ return (u64)sg->dma_address; -+} -+ -+static unsigned int ibscif_sg_dma_len(struct ib_device *ibdev, struct scatterlist *sg) -+{ -+ return sg->dma_length; +} + +static void *ibscif_dma_alloc_coherent(struct ib_device *ibdev, size_t size, u64 *dma_handle, gfp_t flag) @@ -3027,10 +3039,8 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_mr.c a8/drivers/infiniband/hw/sci + ibscif_dma_nop, + ibscif_map_sg, + ibscif_unmap_sg, -+ ibscif_sg_dma_address, -+ ibscif_sg_dma_len, -+ ibscif_dma_nop, -+ ibscif_dma_nop, ++ ibscif_sync_single, ++ ibscif_sync_single, + ibscif_dma_alloc_coherent, + ibscif_dma_free_coherent +}; @@ -3198,7 +3208,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_mr.c a8/drivers/infiniband/hw/sci + diff -ruN a7/drivers/infiniband/hw/scif/ibscif_pd.c a8/drivers/infiniband/hw/scif/ibscif_pd.c --- a7/drivers/infiniband/hw/scif/ibscif_pd.c 1969-12-31 16:00:00.000000000 -0800 -+++ a8/drivers/infiniband/hw/scif/ibscif_pd.c 2015-03-10 13:56:38.841575818 -0700 ++++ a8/drivers/infiniband/hw/scif/ibscif_pd.c 2015-09-10 09:35:25.575932341 -0700 @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2008 Intel Corporation. All rights reserved. @@ -3258,7 +3268,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_pd.c a8/drivers/infiniband/hw/sci +} diff -ruN a7/drivers/infiniband/hw/scif/ibscif_post.c a8/drivers/infiniband/hw/scif/ibscif_post.c --- a7/drivers/infiniband/hw/scif/ibscif_post.c 1969-12-31 16:00:00.000000000 -0800 -+++ a8/drivers/infiniband/hw/scif/ibscif_post.c 2015-03-10 13:56:38.828575818 -0700 ++++ a8/drivers/infiniband/hw/scif/ibscif_post.c 2015-09-10 09:35:25.576932424 -0700 @@ -0,0 +1,306 @@ +/* + * Copyright (c) 2008 Intel Corporation. All rights reserved. @@ -3568,7 +3578,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_post.c a8/drivers/infiniband/hw/s +} diff -ruN a7/drivers/infiniband/hw/scif/ibscif_procfs.c a8/drivers/infiniband/hw/scif/ibscif_procfs.c --- a7/drivers/infiniband/hw/scif/ibscif_procfs.c 1969-12-31 16:00:00.000000000 -0800 -+++ a8/drivers/infiniband/hw/scif/ibscif_procfs.c 2015-03-10 13:56:38.840575818 -0700 ++++ a8/drivers/infiniband/hw/scif/ibscif_procfs.c 2015-09-10 09:35:25.576932424 -0700 @@ -0,0 +1,180 @@ +/* + * Copyright (c) 2008 Intel Corporation. All rights reserved. @@ -3752,7 +3762,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_procfs.c a8/drivers/infiniband/hw +} diff -ruN a7/drivers/infiniband/hw/scif/ibscif_protocol.c a8/drivers/infiniband/hw/scif/ibscif_protocol.c --- a7/drivers/infiniband/hw/scif/ibscif_protocol.c 1969-12-31 16:00:00.000000000 -0800 -+++ a8/drivers/infiniband/hw/scif/ibscif_protocol.c 2015-03-10 13:56:38.839575818 -0700 ++++ a8/drivers/infiniband/hw/scif/ibscif_protocol.c 2015-09-10 09:35:25.579932655 -0700 @@ -0,0 +1,2816 @@ +/* + * Copyright (c) 2008 Intel Corporation. All rights reserved. @@ -6572,7 +6582,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_protocol.c a8/drivers/infiniband/ +} diff -ruN a7/drivers/infiniband/hw/scif/ibscif_protocol.h a8/drivers/infiniband/hw/scif/ibscif_protocol.h --- a7/drivers/infiniband/hw/scif/ibscif_protocol.h 1969-12-31 16:00:00.000000000 -0800 -+++ a8/drivers/infiniband/hw/scif/ibscif_protocol.h 2015-03-10 13:56:38.840575818 -0700 ++++ a8/drivers/infiniband/hw/scif/ibscif_protocol.h 2015-09-10 09:35:25.580932785 -0700 @@ -0,0 +1,395 @@ +/* + * Copyright (c) 2008 Intel Corporation. All rights reserved. @@ -6971,7 +6981,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_protocol.h a8/drivers/infiniband/ +#endif /* IBSCIF_PROTOCOL_H */ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_provider.c a8/drivers/infiniband/hw/scif/ibscif_provider.c --- a7/drivers/infiniband/hw/scif/ibscif_provider.c 1969-12-31 16:00:00.000000000 -0800 -+++ a8/drivers/infiniband/hw/scif/ibscif_provider.c 2015-03-10 13:56:38.829575818 -0700 ++++ a8/drivers/infiniband/hw/scif/ibscif_provider.c 2015-09-10 09:35:25.580932785 -0700 @@ -0,0 +1,410 @@ +/* + * Copyright (c) 2008 Intel Corporation. All rights reserved. @@ -7385,7 +7395,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_provider.c a8/drivers/infiniband/ +} diff -ruN a7/drivers/infiniband/hw/scif/ibscif_qp.c a8/drivers/infiniband/hw/scif/ibscif_qp.c --- a7/drivers/infiniband/hw/scif/ibscif_qp.c 1969-12-31 16:00:00.000000000 -0800 -+++ a8/drivers/infiniband/hw/scif/ibscif_qp.c 2015-03-10 13:56:38.818575819 -0700 ++++ a8/drivers/infiniband/hw/scif/ibscif_qp.c 2015-09-10 09:35:25.580932785 -0700 @@ -0,0 +1,868 @@ +/* + * Copyright (c) 2008 Intel Corporation. All rights reserved. @@ -8257,7 +8267,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_qp.c a8/drivers/infiniband/hw/sci + diff -ruN a7/drivers/infiniband/hw/scif/ibscif_scheduler.c a8/drivers/infiniband/hw/scif/ibscif_scheduler.c --- a7/drivers/infiniband/hw/scif/ibscif_scheduler.c 1969-12-31 16:00:00.000000000 -0800 -+++ a8/drivers/infiniband/hw/scif/ibscif_scheduler.c 2015-03-10 13:56:38.841575818 -0700 ++++ a8/drivers/infiniband/hw/scif/ibscif_scheduler.c 2015-09-10 09:35:25.580932785 -0700 @@ -0,0 +1,195 @@ +/* + * Copyright (c) 2008 Intel Corporation. All rights reserved. @@ -8456,7 +8466,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_scheduler.c a8/drivers/infiniband +} diff -ruN a7/drivers/infiniband/hw/scif/ibscif_util.c a8/drivers/infiniband/hw/scif/ibscif_util.c --- a7/drivers/infiniband/hw/scif/ibscif_util.c 1969-12-31 16:00:00.000000000 -0800 -+++ a8/drivers/infiniband/hw/scif/ibscif_util.c 2015-03-10 13:56:38.828575818 -0700 ++++ a8/drivers/infiniband/hw/scif/ibscif_util.c 2015-09-10 09:35:25.581934798 -0700 @@ -0,0 +1,623 @@ +/* + * Copyright (c) 2008 Intel Corporation. All rights reserved. @@ -9083,7 +9093,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/ibscif_util.c a8/drivers/infiniband/hw/s + diff -ruN a7/drivers/infiniband/hw/scif/Kconfig a8/drivers/infiniband/hw/scif/Kconfig --- a7/drivers/infiniband/hw/scif/Kconfig 1969-12-31 16:00:00.000000000 -0800 -+++ a8/drivers/infiniband/hw/scif/Kconfig 2015-03-10 13:56:38.839575818 -0700 ++++ a8/drivers/infiniband/hw/scif/Kconfig 2015-09-10 09:35:25.581934798 -0700 @@ -0,0 +1,4 @@ +config INFINIBAND_SCIF + tristate "SCIF RDMA driver support" @@ -9091,7 +9101,7 @@ diff -ruN a7/drivers/infiniband/hw/scif/Kconfig a8/drivers/infiniband/hw/scif/Kc + RDMA over SCIF driver. diff -ruN a7/drivers/infiniband/hw/scif/Makefile a8/drivers/infiniband/hw/scif/Makefile --- a7/drivers/infiniband/hw/scif/Makefile 1969-12-31 16:00:00.000000000 -0800 -+++ a8/drivers/infiniband/hw/scif/Makefile 2015-03-11 10:17:34.663490022 -0700 ++++ a8/drivers/infiniband/hw/scif/Makefile 2015-09-10 09:35:25.581934798 -0700 @@ -0,0 +1,39 @@ +KERNEL_V := $(shell uname -r) + diff --git a/tech-preview/xeon-phi/0009-update-drivers-infiniband-s-Kconfig-and-Makefile-to-.patch b/tech-preview/xeon-phi/0009-update-drivers-infiniband-s-Kconfig-and-Makefile-to-.patch index bacf14f..c4e08a3 100644 --- a/tech-preview/xeon-phi/0009-update-drivers-infiniband-s-Kconfig-and-Makefile-to-.patch +++ b/tech-preview/xeon-phi/0009-update-drivers-infiniband-s-Kconfig-and-Makefile-to-.patch @@ -1,22 +1,18 @@ -From 4f27d323bd47563f40a663672a331c5b2c95138e Mon Sep 17 00:00:00 2001 -From: Phil Cayton -Date: Tue, 4 Feb 2014 12:25:45 -0800 -Subject: [PATCH 09/12] update drivers/infiniband's Kconfig and Makefile to - allow compilation of CCL-Direct (ibp) +xeon-phi: update drivers/infiniband's Kconfig and Makefile to -Signed-off-by: Phil Cayton +allow compilation of CCL-Direct (ibp) --- -diff -urN a8/drivers/infiniband/hw/Makefile a9/drivers/infiniband/hw/Makefile ---- a8/drivers/infiniband/hw/Makefile 2015-01-05 15:04:13.993463721 -0800 -+++ a9/drivers/infiniband/hw/Makefile 2015-01-05 15:09:10.056451249 -0800 +diff -ruN a8/drivers/infiniband/hw/Makefile a9/drivers/infiniband/hw/Makefile +--- a8/drivers/infiniband/hw/Makefile 2015-09-10 09:35:14.874958188 -0700 ++++ a9/drivers/infiniband/hw/Makefile 2015-09-10 09:35:42.139932498 -0700 @@ -10,3 +10,4 @@ obj-$(CONFIG_INFINIBAND_NES) += nes/ obj-$(CONFIG_INFINIBAND_OCRDMA) += ocrdma/ obj-$(CONFIG_INFINIBAND_USNIC) += usnic/ +obj-$(CONFIG_INFINIBAND_SCIF) += scif/ -diff -urN a8/drivers/infiniband/Kconfig a9/drivers/infiniband/Kconfig ---- a8/drivers/infiniband/Kconfig 2015-01-05 15:04:14.001463720 -0800 -+++ a9/drivers/infiniband/Kconfig 2015-01-05 15:07:03.176456594 -0800 +diff -ruN a8/drivers/infiniband/Kconfig a9/drivers/infiniband/Kconfig +--- a8/drivers/infiniband/Kconfig 2015-09-10 09:35:14.875958141 -0700 ++++ a9/drivers/infiniband/Kconfig 2015-09-10 09:35:42.139932498 -0700 @@ -55,6 +55,9 @@ source "drivers/infiniband/hw/nes/Kconfig" source "drivers/infiniband/hw/ocrdma/Kconfig" @@ -27,9 +23,9 @@ diff -urN a8/drivers/infiniband/Kconfig a9/drivers/infiniband/Kconfig source "drivers/infiniband/ulp/ipoib/Kconfig" -diff -urN a8/drivers/infiniband/Makefile a9/drivers/infiniband/Makefile ---- a8/drivers/infiniband/Makefile 2015-01-05 15:04:14.001463720 -0800 -+++ a9/drivers/infiniband/Makefile 2015-01-05 15:08:25.112453143 -0800 +diff -ruN a8/drivers/infiniband/Makefile a9/drivers/infiniband/Makefile +--- a8/drivers/infiniband/Makefile 2015-09-10 09:35:14.881958235 -0700 ++++ a9/drivers/infiniband/Makefile 2015-09-10 09:35:42.140932680 -0700 @@ -1,3 +1,4 @@ obj-$(CONFIG_INFINIBAND) += core/ obj-$(CONFIG_INFINIBAND) += hw/ diff --git a/tech-preview/xeon-phi/0010-Update-qib-for-XEON-PHI-support.patch b/tech-preview/xeon-phi/0010-Update-qib-for-XEON-PHI-support.patch index 09a8ba0..6df627b 100644 --- a/tech-preview/xeon-phi/0010-Update-qib-for-XEON-PHI-support.patch +++ b/tech-preview/xeon-phi/0010-Update-qib-for-XEON-PHI-support.patch @@ -5,9 +5,9 @@ From: Jubin John Reviewed-by: Mike Marciniszyn Signed-off-by: Jubin John --- -diff -urN a9/drivers/infiniband/hw/qib/Makefile a10/drivers/infiniband/hw/qib/Makefile ---- a9/drivers/infiniband/hw/qib/Makefile 2015-01-05 15:05:04.280461602 -0800 -+++ a10/drivers/infiniband/hw/qib/Makefile 2015-01-05 15:10:58.250446692 -0800 +diff -ruN a9/drivers/infiniband/hw/qib/Makefile a10/drivers/infiniband/hw/qib/Makefile +--- a9/drivers/infiniband/hw/qib/Makefile 2015-09-10 09:35:36.420958201 -0700 ++++ a10/drivers/infiniband/hw/qib/Makefile 2015-09-10 09:36:03.135901227 -0700 @@ -14,3 +14,8 @@ ib_qib-$(CONFIG_X86_64) += qib_wc_x86_64.o ib_qib-$(CONFIG_PPC64) += qib_wc_ppc64.o @@ -17,9 +17,9 @@ diff -urN a9/drivers/infiniband/hw/qib/Makefile a10/drivers/infiniband/hw/qib/Ma +ib_qib-y += qib_knx.o +ccflags-y += -DQIB_CONFIG_KNX +endif -diff -urN a9/drivers/infiniband/hw/qib/qib_common.h a10/drivers/infiniband/hw/qib/qib_common.h ---- a9/drivers/infiniband/hw/qib/qib_common.h 2015-01-05 15:05:04.281461602 -0800 -+++ a10/drivers/infiniband/hw/qib/qib_common.h 2015-01-05 15:10:58.250446692 -0800 +diff -ruN a9/drivers/infiniband/hw/qib/qib_common.h a10/drivers/infiniband/hw/qib/qib_common.h +--- a9/drivers/infiniband/hw/qib/qib_common.h 2015-09-10 09:35:36.420958201 -0700 ++++ a10/drivers/infiniband/hw/qib/qib_common.h 2015-09-10 09:36:03.136900809 -0700 @@ -1,4 +1,5 @@ /* + * Copyright (c) 2012 Intel Corporation. All rights reserved. @@ -40,9 +40,9 @@ diff -urN a9/drivers/infiniband/hw/qib/qib_common.h a10/drivers/infiniband/hw/qi /* size of struct base_info to write to */ __u32 spu_base_info_size; -diff -urN a9/drivers/infiniband/hw/qib/qib_file_ops.c a10/drivers/infiniband/hw/qib/qib_file_ops.c ---- a9/drivers/infiniband/hw/qib/qib_file_ops.c 2015-01-05 15:05:04.280461602 -0800 -+++ a10/drivers/infiniband/hw/qib/qib_file_ops.c 2015-01-05 15:10:58.251446692 -0800 +diff -ruN a9/drivers/infiniband/hw/qib/qib_file_ops.c a10/drivers/infiniband/hw/qib/qib_file_ops.c +--- a9/drivers/infiniband/hw/qib/qib_file_ops.c 2015-09-10 09:35:36.418958234 -0700 ++++ a10/drivers/infiniband/hw/qib/qib_file_ops.c 2015-09-10 09:36:03.138932454 -0700 @@ -48,6 +48,7 @@ #include "qib.h" #include "qib_common.h" @@ -553,9 +553,9 @@ diff -urN a9/drivers/infiniband/hw/qib/qib_file_ops.c a10/drivers/infiniband/hw/ break; case QIB_CMD_USER_INIT: -diff -urN a9/drivers/infiniband/hw/qib/qib.h a10/drivers/infiniband/hw/qib/qib.h ---- a9/drivers/infiniband/hw/qib/qib.h 2015-01-05 15:05:04.280461602 -0800 -+++ a10/drivers/infiniband/hw/qib/qib.h 2015-01-05 15:10:58.250446692 -0800 +diff -ruN a9/drivers/infiniband/hw/qib/qib.h a10/drivers/infiniband/hw/qib/qib.h +--- a9/drivers/infiniband/hw/qib/qib.h 2015-09-10 09:35:36.420958201 -0700 ++++ a10/drivers/infiniband/hw/qib/qib.h 2015-09-10 09:36:03.139932597 -0700 @@ -234,6 +234,10 @@ u32 lookaside_qpn; /* QPs waiting for context processing */ @@ -603,9 +603,9 @@ diff -urN a9/drivers/infiniband/hw/qib/qib.h a10/drivers/infiniband/hw/qib/qib.h static inline struct qib_devdata *dd_from_ppd(struct qib_pportdata *ppd) { -diff -urN a9/drivers/infiniband/hw/qib/qib_init.c a10/drivers/infiniband/hw/qib/qib_init.c ---- a9/drivers/infiniband/hw/qib/qib_init.c 2015-01-05 15:05:04.279461602 -0800 -+++ a10/drivers/infiniband/hw/qib/qib_init.c 2015-01-05 15:10:58.251446692 -0800 +diff -ruN a9/drivers/infiniband/hw/qib/qib_init.c a10/drivers/infiniband/hw/qib/qib_init.c +--- a9/drivers/infiniband/hw/qib/qib_init.c 2015-09-10 09:35:36.420958201 -0700 ++++ a10/drivers/infiniband/hw/qib/qib_init.c 2015-09-10 09:36:03.140934324 -0700 @@ -51,6 +51,10 @@ #include "qib_verbs.h" #endif @@ -617,7 +617,7 @@ diff -urN a9/drivers/infiniband/hw/qib/qib_init.c a10/drivers/infiniband/hw/qib/ #undef pr_fmt #define pr_fmt(fmt) QIB_DRV_NAME ": " fmt -@@ -1301,6 +1305,12 @@ +@@ -1319,6 +1323,12 @@ /* not fatal if it doesn't work */ if (qib_init_qibfs()) pr_err("Unable to register ipathfs\n"); @@ -630,7 +630,7 @@ diff -urN a9/drivers/infiniband/hw/qib/qib_init.c a10/drivers/infiniband/hw/qib/ goto bail; /* all OK */ bail_dev: -@@ -1325,6 +1335,9 @@ +@@ -1346,6 +1356,9 @@ { int ret; @@ -640,7 +640,7 @@ diff -urN a9/drivers/infiniband/hw/qib/qib_init.c a10/drivers/infiniband/hw/qib/ ret = qib_exit_qibfs(); if (ret) pr_err( -@@ -1568,6 +1581,9 @@ +@@ -1589,6 +1602,9 @@ /* unregister from IB core */ qib_unregister_ib_device(dd); @@ -650,9 +650,9 @@ diff -urN a9/drivers/infiniband/hw/qib/qib_init.c a10/drivers/infiniband/hw/qib/ /* * Disable the IB link, disable interrupts on the device, * clear dma engines, etc. -diff -urN a9/drivers/infiniband/hw/qib/qib_knx.c a10/drivers/infiniband/hw/qib/qib_knx.c +diff -ruN a9/drivers/infiniband/hw/qib/qib_knx.c a10/drivers/infiniband/hw/qib/qib_knx.c --- a9/drivers/infiniband/hw/qib/qib_knx.c 1969-12-31 16:00:00.000000000 -0800 -+++ a10/drivers/infiniband/hw/qib/qib_knx.c 2015-01-05 15:10:58.252446692 -0800 ++++ a10/drivers/infiniband/hw/qib/qib_knx.c 2015-09-10 09:36:03.140934324 -0700 @@ -0,0 +1,1532 @@ +/* + * Copyright (c) 2012, 2013 Intel Corporation. All rights reserved. @@ -2186,9 +2186,9 @@ diff -urN a9/drivers/infiniband/hw/qib/qib_knx.c a10/drivers/infiniband/hw/qib/q + kfree(server); + } +} -diff -urN a9/drivers/infiniband/hw/qib/qib_knx_common.h a10/drivers/infiniband/hw/qib/qib_knx_common.h +diff -ruN a9/drivers/infiniband/hw/qib/qib_knx_common.h a10/drivers/infiniband/hw/qib/qib_knx_common.h --- a9/drivers/infiniband/hw/qib/qib_knx_common.h 1969-12-31 16:00:00.000000000 -0800 -+++ a10/drivers/infiniband/hw/qib/qib_knx_common.h 2015-01-05 15:10:58.252446692 -0800 ++++ a10/drivers/infiniband/hw/qib/qib_knx_common.h 2015-09-10 09:36:03.140934324 -0700 @@ -0,0 +1,126 @@ +/* + * Copyright (c) 2013 Intel Corporation. All rights reserved. @@ -2316,9 +2316,9 @@ diff -urN a9/drivers/infiniband/hw/qib/qib_knx_common.h a10/drivers/infiniband/h +}; + +#endif /* _QIB_KNX_COMMON_H */ -diff -urN a9/drivers/infiniband/hw/qib/qib_knx.h a10/drivers/infiniband/hw/qib/qib_knx.h +diff -ruN a9/drivers/infiniband/hw/qib/qib_knx.h a10/drivers/infiniband/hw/qib/qib_knx.h --- a9/drivers/infiniband/hw/qib/qib_knx.h 1969-12-31 16:00:00.000000000 -0800 -+++ a10/drivers/infiniband/hw/qib/qib_knx.h 2015-01-05 15:10:58.252446692 -0800 ++++ a10/drivers/infiniband/hw/qib/qib_knx.h 2015-09-10 09:36:03.141932310 -0700 @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2012, 2013 Intel Corporation. All rights reserved. @@ -2394,9 +2394,9 @@ diff -urN a9/drivers/infiniband/hw/qib/qib_knx.h a10/drivers/infiniband/hw/qib/q +} +#endif +#endif /* _QIB_KNX_H */ -diff -urN a9/drivers/infiniband/hw/qib/qib_user_sdma.c a10/drivers/infiniband/hw/qib/qib_user_sdma.c ---- a9/drivers/infiniband/hw/qib/qib_user_sdma.c 2015-01-05 15:05:04.279461602 -0800 -+++ a10/drivers/infiniband/hw/qib/qib_user_sdma.c 2015-01-05 15:10:58.252446692 -0800 +diff -ruN a9/drivers/infiniband/hw/qib/qib_user_sdma.c a10/drivers/infiniband/hw/qib/qib_user_sdma.c +--- a9/drivers/infiniband/hw/qib/qib_user_sdma.c 2015-09-10 09:35:36.421958157 -0700 ++++ a10/drivers/infiniband/hw/qib/qib_user_sdma.c 2015-09-10 09:36:03.141932310 -0700 @@ -63,80 +63,6 @@ pid_t pid; }; @@ -2657,9 +2657,9 @@ diff -urN a9/drivers/infiniband/hw/qib/qib_user_sdma.c a10/drivers/infiniband/hw { unsigned long flags; -diff -urN a9/drivers/infiniband/hw/qib/qib_user_sdma.h a10/drivers/infiniband/hw/qib/qib_user_sdma.h ---- a9/drivers/infiniband/hw/qib/qib_user_sdma.h 2015-01-05 15:05:04.280461602 -0800 -+++ a10/drivers/infiniband/hw/qib/qib_user_sdma.h 2015-01-05 15:10:58.253446692 -0800 +diff -ruN a9/drivers/infiniband/hw/qib/qib_user_sdma.h a10/drivers/infiniband/hw/qib/qib_user_sdma.h +--- a9/drivers/infiniband/hw/qib/qib_user_sdma.h 2015-09-10 09:35:36.419958299 -0700 ++++ a10/drivers/infiniband/hw/qib/qib_user_sdma.h 2015-09-10 09:36:03.141932310 -0700 @@ -31,12 +31,108 @@ */ #include diff --git a/tech-preview/xeon-phi/0011-correct-ib_addr.h-for-older-kernels.patch b/tech-preview/xeon-phi/0011-correct-ib_addr.h-for-older-kernels.patch index bce5ecd..3657449 100644 --- a/tech-preview/xeon-phi/0011-correct-ib_addr.h-for-older-kernels.patch +++ b/tech-preview/xeon-phi/0011-correct-ib_addr.h-for-older-kernels.patch @@ -1,13 +1,8 @@ -From 536a8d5b5c68ecd2ca73446f25443fe8bb234a46 Mon Sep 17 00:00:00 2001 -From: Phil Cayton -Date: Thu, 29 May 2014 14:35:13 -0700 -Subject: [PATCH 11/12] correct ib_addr.h for older kernels - -Signed-off-by: Phil Cayton +xeon-phi: correct ib_addr.h for older kernels --- -diff -urN a10/include/rdma/ib_addr.h a11/include/rdma/ib_addr.h ---- a10/include/rdma/ib_addr.h 2015-01-05 15:10:42.263447365 -0800 -+++ a11/include/rdma/ib_addr.h 2015-01-05 15:12:36.058442572 -0800 +diff -ruN a10/include/rdma/ib_addr.h a11/include/rdma/ib_addr.h +--- a10/include/rdma/ib_addr.h 2015-09-10 09:35:55.061958421 -0700 ++++ a11/include/rdma/ib_addr.h 2015-09-10 09:36:18.093901591 -0700 @@ -239,6 +239,27 @@ return 0; } diff --git a/tech-preview/xeon-phi/0012-add-mlx4-cq_comp-locking-already-done-in-event-handl.patch b/tech-preview/xeon-phi/0012-add-mlx4-cq_comp-locking-already-done-in-event-handl.patch index 498b1c8..1b02f01 100644 --- a/tech-preview/xeon-phi/0012-add-mlx4-cq_comp-locking-already-done-in-event-handl.patch +++ b/tech-preview/xeon-phi/0012-add-mlx4-cq_comp-locking-already-done-in-event-handl.patch @@ -1,12 +1,8 @@ -From 6d88a748ca017a22c08d25e29144dd392c988eb9 Mon Sep 17 00:00:00 2001 -From: Phil Cayton -Date: Thu, 5 Jun 2014 09:44:42 -0700 -Subject: [PATCH 12/12] add mlx4 cq_comp locking already done in event handler - +xeon-phi: add mlx4 cq_comp locking already done in event handler --- -diff -urN a11/drivers/net/ethernet/mellanox/mlx4/cq.c a12/drivers/net/ethernet/mellanox/mlx4/cq.c ---- a11/drivers/net/ethernet/mellanox/mlx4/cq.c 2015-01-05 15:12:24.028443079 -0800 -+++ a12/drivers/net/ethernet/mellanox/mlx4/cq.c 2015-01-05 15:14:27.994437857 -0800 +diff -ruN a11/drivers/net/ethernet/mellanox/mlx4/cq.c a12/drivers/net/ethernet/mellanox/mlx4/cq.c +--- a11/drivers/net/ethernet/mellanox/mlx4/cq.c 2015-09-10 09:36:13.117932528 -0700 ++++ a12/drivers/net/ethernet/mellanox/mlx4/cq.c 2015-09-10 09:36:38.460901094 -0700 @@ -54,10 +54,17 @@ void mlx4_cq_completion(struct mlx4_dev *dev, u32 cqn) -- 2.41.0