diff options
author | Sudeep Dutt <sudeep.dutt@intel.com> | 2015-04-29 05:32:37 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-05-24 12:13:37 -0700 |
commit | fdd9fd5c38afe732258a0af4c6be14f3fbd1585c (patch) | |
tree | acc8c5505bae20a7dcd204e7a477c4df54be8cee /drivers/misc/mic/scif/scif_nm.c | |
parent | 76371c7c0d8642ef30a865df57bf6d186855802d (diff) |
misc: mic: SCIF messaging and node enumeration APIs
SCIF messaging APIs which allow sending messages between the SCIF
endpoints via a byte stream based ring buffer which has been
optimized to avoid reads across PCIe. The SCIF messaging APIs
are typically used for short < 1024 byte messages for best
performance while the RDMA APIs which will be submitted in a future
patch series is recommended for larger transfers. The node
enumeration API enables a user to query for the number of nodes
online in the SCIF network and their node ids.
Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Signed-off-by: Nikhil Rao <nikhil.rao@intel.com>
Signed-off-by: Sudeep Dutt <sudeep.dutt@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/misc/mic/scif/scif_nm.c')
-rw-r--r-- | drivers/misc/mic/scif/scif_nm.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/misc/mic/scif/scif_nm.c b/drivers/misc/mic/scif/scif_nm.c index 0469aad470e7..9b4c5382d6a7 100644 --- a/drivers/misc/mic/scif/scif_nm.c +++ b/drivers/misc/mic/scif/scif_nm.c @@ -218,3 +218,20 @@ void scif_disconnect_node(u32 node_id, bool mgmt_initiated) (atomic_read(&scifdev->disconn_rescnt) == 1), SCIF_NODE_ALIVE_TIMEOUT); } + +void scif_get_node_info(void) +{ + struct scifmsg msg; + DECLARE_COMPLETION_ONSTACK(node_info); + + msg.uop = SCIF_GET_NODE_INFO; + msg.src.node = scif_info.nodeid; + msg.dst.node = SCIF_MGMT_NODE; + msg.payload[3] = (u64)&node_info; + + if ((scif_nodeqp_send(&scif_dev[SCIF_MGMT_NODE], &msg))) + return; + + /* Wait for a response with SCIF_GET_NODE_INFO */ + wait_for_completion(&node_info); +} |