"# concurrent sends");
static int eager_credits = 256 * 1024;
-CFS_MODULE_PARM(eager_credits, "i", int, 0444,
+CFS_MODULE_PARM(eager_credits, "i", int, 0644,
"# eager buffers");
static int peer_credits = 16;
CFS_MODULE_PARM(max_reconnect_interval, "i", int, 0644,
"maximum connection retry interval (seconds)");
-static int max_immediate = (2<<10);
-CFS_MODULE_PARM(max_immediate, "i", int, 0644,
+static int max_immediate = 2048;
+CFS_MODULE_PARM(max_immediate, "i", int, 0444,
"immediate/RDMA breakpoint");
static int checksum = GNILND_CHECKSUM_DEFAULT;
CFS_MODULE_PARM(ptag, "i", int, 0444,
"ptag for Gemini CDM");
+static int pkey = GNI_JOB_CREATE_COOKIE(GNI_PKEY_LND, 0);
+CFS_MODULE_PARM(pkey, "i", int, 0444, "pkey for CDM");
+
static int max_retransmits = 1024;
CFS_MODULE_PARM(max_retransmits, "i", int, 0444,
"max retransmits for FMA");
CFS_MODULE_PARM(max_conn_purg, "i", int, 0644,
"Max number of connections per peer in purgatory");
+static int thread_affinity = 0;
+CFS_MODULE_PARM(thread_affinity, "i", int, 0444,
+ "scheduler thread affinity default 0 (disabled)");
+
+static int thread_safe = GNILND_TS_ENABLE;
+CFS_MODULE_PARM(thread_safe, "i", int, 0444,
+ "Use kgni thread safe API if available");
+
+static int reg_fail_timeout = GNILND_REGFAILTO_DISABLE;
+CFS_MODULE_PARM(reg_fail_timeout, "i", int, 0644,
+ "fmablk registration timeout LBUG");
+
kgn_tunables_t kgnilnd_tunables = {
.kgn_min_reconnect_interval = &min_reconnect_interval,
.kgn_max_reconnect_interval = &max_reconnect_interval,
.kgn_bte_dlvr_mode = &bte_dlvr_mode,
.kgn_bte_relaxed_ordering = &bte_relaxed_ordering,
.kgn_ptag = &ptag,
+ .kgn_pkey = &pkey,
.kgn_max_retransmits = &max_retransmits,
.kgn_nwildcard = &nwildcard,
.kgn_nice = &nice,
.kgn_eager_credits = &eager_credits,
.kgn_fast_reconn = &fast_reconn,
.kgn_efault_lbug = &efault_lbug,
+ .kgn_thread_affinity = &thread_affinity,
+ .kgn_thread_safe = &thread_safe,
+ .kgn_reg_fail_timeout = ®_fail_timeout,
.kgn_max_purgatory = &max_conn_purg
};
},
{
INIT_CTL_NAME
+ .procname = "pkey",
+ .data = &pkey,
+ .maxlen = sizeof(int),
+ .mode = 0444,
+ .proc_handler = &proc_dointvec
+ },
+ {
+ INIT_CTL_NAME
.procname = "nwildcard",
.data = &nwildcard,
.maxlen = sizeof(int),
},
{
INIT_CTL_NAME
+ .procname = "thread_affinity"
+ .data = &thread_affinity,
+ .maxlen = sizeof(int),
+ .mode = 0444,
+ .proc_handler = &proc_dointvec
+ },
+ {
+ INIT_CTL_NAME
+ .procname = "thread_safe"
+ .data = &thread_safe,
+ .maxlen = sizeof(int),
+ .mode = 0444,
+ .proc_handler = &proc_dointvec
+ },
+ {
+ INIT_CTL_NAME
+ .procname = "reg_fail_timeout"
+ .data = ®_fail_timeout,
+ .maxlen = sizeof(int),
+ .mode = 0644,
+ .proc_handler = &proc_dointvec
+ },
+ {
+ INIT_CTL_NAME
.procname = "max_conn_purg"
.data = &max_conn_purg,
.maxlen = sizeof(int),
#if CONFIG_SYSCTL && !CFS_SYSFS_MODULE_PARM
kgnilnd_tunables.kgn_sysctl =
- cfs_register_sysctl_table(kgnilnd_top_ctl_table, 0);
+ register_sysctl_table(kgnilnd_top_ctl_table, 0);
if (kgnilnd_tunables.kgn_sysctl == NULL)
CWARN("Can't setup /proc tunables\n");
{
#if CONFIG_SYSCTL && !CFS_SYSFS_MODULE_PARM
if (kgnilnd_tunables.kgn_sysctl != NULL)
- cfs_unregister_sysctl_table(kgnilnd_tunables.kgn_sysctl);
+ unregister_sysctl_table(kgnilnd_tunables.kgn_sysctl);
#endif
}