]> git.openfabrics.org - ~ardavis/dapl.git/commitdiff
mpxyd: service startup script and configuration file
authorArlin Davis <arlin.r.davis@intel.com>
Mon, 21 Jul 2014 19:05:44 +0000 (12:05 -0700)
committerArlin Davis <arlin.r.davis@intel.com>
Mon, 21 Jul 2014 19:05:44 +0000 (12:05 -0700)
mpxyd -       Starts/Stops MIC SCIF/DAPL RDMA proxy server
mpxyd.conf -  Config details: service logs, CM timers, proxy buffers, data segment size, etc.

Signed-off-by: Arlin Davis <arlin.r.davis@intel.com>
doc/mpxyd.conf [new file with mode: 0644]
mpxyd.init.in [new file with mode: 0644]

diff --git a/doc/mpxyd.conf b/doc/mpxyd.conf
new file mode 100644 (file)
index 0000000..d173cd7
--- /dev/null
@@ -0,0 +1,177 @@
+# MIC SCIF/DAPL RDMA proxy server configuration file
+#
+# Entry format is:
+# name value
+
+# log_file:
+# Specifies the location of the MPXYD service output.  The log file is used to
+# assist with MPXYD service debugging and troubleshooting.  The log_file can
+# be set to 'stdout', 'stderr', or the name of a file.
+# Examples:
+# log_file stdout
+# log_file stderr
+# log_file /var/log/mpxyd.log
+
+log_file /var/log/mpxyd.log
+
+# log_level:
+# Indicates the amount of detailed data written to the log file.  Log levels
+# are bit mapped as follow: 0xf for full verbose
+# 0x0 - errors always reported
+# 0x1 - warnings
+# 0x2 - cm operations
+# 0x4 - data operations
+# 0x8 - info
+# 0x10 - perf
+# 0x20 - threads
+# 0x40 - verbose
+
+log_level 0
+
+# lock_file:
+# Specifies the location of the MPXYD lock file used to ensure that only a
+# single instance of MPXYD is running.
+
+lock_file /var/run/mpxyd.pid
+
+# scif_port_id:
+# SCIF port number that the server listens on.
+# If this value is changed, then a corresponding change is required for
+# client MIC DAPL provider. Default is SCIF_OFED_PORT_8 (i.e. 68)
+
+scif_port_id 68
+
+# scif_listen_qlen:
+# The queue length for the server side scif_listen() call. It affects how
+# many clients can connect to the server simultaneously. Default is 240.
+
+scif_listen_qlen 240
+
+# mcm_affinity:
+# 1 or 0, Specifies if CPU affinity is used for mpxyd threads
+# If 0, normal O/S scheduling is used all threads. 
+# If 1, CPU affinity is set for both OP and TX threads, each on different cores.
+#
+
+mcm_affinity 1
+
+# mcm_affinity_base:
+# Specifies a hard binding for CPU id base value used for affinity support of
+# hca and mic mpxyd data proxy threads. Default = 0, which specifies use of
+# dynamic affinity binding support via mpxyd. For specific bindings,
+# set to CPU id value desired. For example, mcm_affinity_base_hca = 8,
+# and mcm_affinit_base_mic = 1 would setup the following bindings:
+# MIC dma thread bound to CPU 1 and HCA rdma thread bound to CPU 8
+
+mcm_affinity_base_hca 0
+mcm_affinity_base_mic 0
+
+# mcm_depth:
+# Specifies the number of request queue entries available for CM messages.
+# A larger depth consumes more system resources, 256 * mcm_depth * ib devices
+
+mcm_depth 500
+
+# mcm_rw_signal_rate:
+# mcm_rr_signal_rate:
+# mcm_rr_max_pending:
+# Specifies the number of RDMA write/read segments posted before signaling for completions.
+# Larger the value reduces interrupts but could increase reserve times on buffer resources. 
+# Default = 10 for signaling, 50 for RDMA READ's outstanding
+
+mcm_rw_signal_rate 10
+mcm_rr_signal_rate 1
+mcm_rr_max_pending 50
+
+# max_message_mb:
+# Specifies the maximum message size. The default is 16 (MB).
+
+max_message_mb 16
+
+# buffer_pool_shared:
+# Specifies if the pre-allocated and pinned buffer is shared between 
+# connections from the same client, or is private to each connection.
+
+buffer_pool_shared 1
+
+# buffer_pool_mb:
+# Specifies the amount of memory pre-allocated and pinned for SCIF to uDAPL
+# RDMA proxy services. Per client or per connection depending on the setting
+# of "buffer_pool_shared". Recommend to increase the size if shared.
+
+buffer_pool_mb 32
+
+# buffer_segment_size:
+# Specifies the segment size of large DMA transfers. Default is 128KB.
+# The size must be a multiple of 4096.
+
+buffer_segment_size 131072
+
+# buffer_alignment:
+# Specifies the alignment of the RDMA buffer. Default is 64 bytes.
+
+buffer_alignment 64
+
+# buffer_inline_threshold:
+# Specifies the max IO size for scif_recv inline before switch 
+# to scif_readfrom DMA. Default is 256 bytes.
+
+buffer_inline_threshold 256
+
+# proxy_tx_depth:
+# Specifies the work request queue depth for the outbound proxy service 
+# Default is 1024 work requests.
+
+proxy_tx_depth 512
+
+# proxy_rx_depth:
+# Specifies the work request queue depth for the outbound proxy service 
+# Default is 1024 work requests.
+
+proxy_rx_depth 512
+
+# CM connect request timeout ms:
+# Specifies the amout of time a request waits for reply before retry.
+# Default is 2000 ms
+
+mcm_req_timeout_ms 4000
+
+# CM connect reply timeout ms:
+# Specifies the amout of time a reply waits for RTU before retry.
+# Default is 1000 ms
+
+mcm_rep_timeout_ms 2000
+
+# CM retry count
+# Specifies the amount of retries for CM messages expecting replies.
+# Default is 10.
+
+mcm_retry_count 10
+
+# mcm_perf_profile:
+# 1 or 0, specifies if performance profiling is enabled/disabled for RDMA operations
+# Default is 0, disabled
+#
+
+mcm_perf_profile 0
+
+# mcm_eager_completion:
+# complete and signal write request after scif_readfrom has moved all data, otherwise wait for IB completions.
+# Default is enabled.
+
+mcm_eager_completion 1
+
+# mcm_counters
+# log and print device CM, DTO, and event counters. Output any non-zero results at device close.
+# Default is disabled.
+
+mcm_counters 0
+
+# mcm_proxy_in
+# Override for proxy-in services. If disabled, mpxyd will fallback to previous version of proxy-out only.
+# Default is enabled.
+
+mcm_proxy_in 1
+
+
diff --git a/mpxyd.init.in b/mpxyd.init.in
new file mode 100644 (file)
index 0000000..f47e1cc
--- /dev/null
@@ -0,0 +1,107 @@
+#!/bin/bash
+#
+# Bring up/down the mpxyd daemon
+#
+# chkconfig: 2345 25 75
+# description: Starts/Stops MIC SCIF/DAPL RDMA proxy server
+#
+### BEGIN INIT INFO
+# Provides:       mpxyd
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Required-Start: 
+# Required-Stop: 
+# Should-Start:
+# Should-Stop:
+# Short-Description: Starts and stops the MIC SCIF/DAPL RDMA proxy server
+# Description: The DAPL proxy RDMA server provides a user space implementation
+#    that enables MIC clients to proxy InfiniBand RDMA over to large core resources
+### END INIT INFO
+
+ulimit -n 4096
+
+prog=mpxyd
+execpath=@prefix@/sbin/${prog}
+pidfile=`grep ^lock_file @sysconfdir@/mpxyd.conf | awk '{print $2}'`
+subsys=/var/lock/subsys/${prog}
+
+# Source function library.
+if [ -f /etc/init.d/functions ]; then
+    # RHEL
+    . /etc/init.d/functions
+    _status='status -p "$pidfile" -l $subsys'
+    _start='daemon --check $prog --pidfile "$pidfile"'
+    _ret='echo; return $RC'
+elif [ -f /etc/rc.status ]; then
+    # SLES
+    . /etc/rc.status
+    _status=checkproc
+    _start='start_daemon -p "$pidfile"'
+    _ret='rc_status -v'
+else
+    # other
+    echo "Could not source init function library, exiting"
+    return 1
+fi
+
+start()
+{
+    echo -n "Starting mpxyd daemon: "
+
+    eval $_start $execpath
+    RC=$?
+
+    [ "$RC" -eq "0" ] && touch $subsys 2>/dev/null
+
+    eval $_ret
+}
+
+stop()
+{
+    echo -n "Stopping mpxyd daemon: "
+
+    killproc -p $pidfile $execpath
+    RC=$?
+    rm -f $subsys
+
+    eval $_ret
+}
+
+sstatus()
+{
+    eval $_status $execpath RC=$?
+    eval $_ret
+}
+
+restart ()
+{
+    stop
+    start
+}
+
+condrestart ()
+{
+    [ -e $subsys ] && restart || return 0
+}
+
+usage ()
+{
+    echo
+    echo "Usage: `basename $0` {start|stop|restart|condrestart|try-restart|force-reload|status}"
+    echo
+    return 2
+}
+
+case $1 in
+    start) start; RC=$? ;;
+    stop) stop; RC=$? ;;
+    restart) restart; RC=$? ;;
+    reload) RC=3 ;;
+    condrestart) condrestart; RC=$? ;;
+    try-restart) condrestart; RC=$? ;;
+    force-reload) condrestart; RC=$? ;;
+    status) sstatus; RC=$? ;;
+    *) usage; RC=$? ;;
+esac
+
+exit $RC