Whamcloud - gitweb
LU-6261 gnilnd: Add pkey module parameter
[fs/lustre-release.git] / lnet / klnds / gnilnd / gnilnd_modparams.c
index 17cbfd6..d89dc3e 100644 (file)
@@ -29,6 +29,10 @@ static int credits = 256;
 CFS_MODULE_PARM(credits, "i", int, 0444,
                "# concurrent sends");
 
+static int eager_credits = 256 * 1024;
+CFS_MODULE_PARM(eager_credits, "i", int, 0444,
+               "# eager buffers");
+
 static int peer_credits = 16;
 CFS_MODULE_PARM(peer_credits, "i", int, 0444,
                "# LNet peer credits");
@@ -62,15 +66,11 @@ static int max_reconnect_interval = GNILND_MAX_RECONNECT_TO;
 CFS_MODULE_PARM(max_reconnect_interval, "i", int, 0644,
                "maximum connection retry interval (seconds)");
 
-static int max_immediate = (2<<10);
+static int max_immediate = 8192;
 CFS_MODULE_PARM(max_immediate, "i", int, 0644,
                "immediate/RDMA breakpoint");
 
-#ifdef CONFIG_CRAY_GEMINI
-static int checksum = GNILND_CHECKSUM_SMSG_BTE;
-#else
-static int checksum = 0;
-#endif
+static int checksum = GNILND_CHECKSUM_DEFAULT;
 CFS_MODULE_PARM(checksum, "i", int, 0644,
                "0: None, 1: headers, 2: short msg, 3: all traffic");
 
@@ -78,24 +78,27 @@ static int checksum_dump = 0;
 CFS_MODULE_PARM(checksum_dump, "i", int, 0644,
                "0: None, 1: dump log on failure, 2: payload data to D_INFO log");
 
-static int bte_hash = 1;
-CFS_MODULE_PARM(bte_hash, "i", int, 0644,
+static int bte_dlvr_mode = GNILND_RDMA_DLVR_OPTION;
+CFS_MODULE_PARM(bte_dlvr_mode, "i", int, 0644,
                "enable hashing for BTE (RDMA) transfers");
 
-static int bte_adapt = 1;
-CFS_MODULE_PARM(bte_adapt, "i", int, 0644,
-               "enable adaptive request and response for BTE (RDMA) transfers");
-
 static int bte_relaxed_ordering = 1;
 CFS_MODULE_PARM(bte_relaxed_ordering, "i", int, 0644,
                "enable relaxed ordering (PASSPW) for BTE (RDMA) transfers");
 
+#ifdef CONFIG_MK1OM
+static int ptag = GNI_PTAG_LND_KNC;
+#else
 static int ptag = GNI_PTAG_LND;
+#endif
 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, 0644,
+CFS_MODULE_PARM(max_retransmits, "i", int, 0444,
                "max retransmits for FMA");
 
 static int nwildcard = 4;
@@ -122,6 +125,10 @@ static int peer_health = 0;
 CFS_MODULE_PARM(peer_health, "i", int, 0444,
                "Disable peer timeout for LNet peer health, default off, > 0 to enable");
 
+static int peer_timeout = -1;
+CFS_MODULE_PARM(peer_timeout, "i", int, 0444,
+               "Peer timeout used for peer_health, default based on gnilnd timeout, > -1 to manually set");
+
 static int vmap_cksum = 0;
 CFS_MODULE_PARM(vmap_cksum, "i", int, 0644,
                "use vmap for all kiov checksumming, default off");
@@ -154,6 +161,39 @@ static int mdd_timeout = GNILND_MDD_TIMEOUT;
 CFS_MODULE_PARM(mdd_timeout, "i", int, 0644,
                "maximum time (in minutes) for mdd to be held");
 
+static int sched_timeout = GNILND_SCHED_TIMEOUT;
+CFS_MODULE_PARM(sched_timeout, "i", int, 0644,
+               "scheduler aliveness in seconds max time");
+
+static int sched_nice = GNILND_SCHED_NICE;
+CFS_MODULE_PARM(sched_nice, "i", int, 0444,
+               "scheduler's nice setting, default compute 0 service -20");
+
+static int reverse_rdma = GNILND_REVERSE_RDMA;
+CFS_MODULE_PARM(reverse_rdma, "i", int, 0644,
+               "Normal 0: Reverse GET: 1 Reverse Put: 2 Reverse Both: 3");
+
+static int dgram_timeout = GNILND_DGRAM_TIMEOUT;
+CFS_MODULE_PARM(dgram_timeout, "i", int, 0644,
+               "dgram thread aliveness seconds max time");
+
+static int efault_lbug = 0;
+CFS_MODULE_PARM(efault_lbug, "i", int, 0644,
+               "If a compute receives an EFAULT in"
+               " a message should it LBUG. 0 off 1 on");
+
+static int fast_reconn = GNILND_FAST_RECONNECT;
+CFS_MODULE_PARM(fast_reconn, "i", int, 0644,
+               "fast reconnect on connection timeout");
+
+static int max_conn_purg = GNILND_PURGATORY_MAX;
+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 (diabled)");
+
 kgn_tunables_t kgnilnd_tunables = {
        .kgn_min_reconnect_interval = &min_reconnect_interval,
        .kgn_max_reconnect_interval = &max_reconnect_interval,
@@ -165,10 +205,10 @@ kgn_tunables_t kgnilnd_tunables = {
        .kgn_max_immediate          = &max_immediate,
        .kgn_checksum               = &checksum,
        .kgn_checksum_dump          = &checksum_dump,
-       .kgn_bte_hash               = &bte_hash,
-       .kgn_bte_adapt              = &bte_adapt,
+       .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,
@@ -176,6 +216,7 @@ kgn_tunables_t kgnilnd_tunables = {
        .kgn_loops                  = &loops,
        .kgn_peer_hash_size         = &hash_size,
        .kgn_peer_health            = &peer_health,
+       .kgn_peer_timeout           = &peer_timeout,
        .kgn_vmap_cksum             = &vmap_cksum,
        .kgn_mbox_per_block         = &mbox_per_block,
        .kgn_nphys_mbox             = &nphys_mbox,
@@ -183,13 +224,22 @@ kgn_tunables_t kgnilnd_tunables = {
        .kgn_sched_threads          = &sched_threads,
        .kgn_net_hash_size          = &net_hash_size,
        .kgn_hardware_timeout       = &hardware_timeout,
-       .kgn_mdd_timeout            = &mdd_timeout
+       .kgn_mdd_timeout            = &mdd_timeout,
+       .kgn_sched_timeout          = &sched_timeout,
+       .kgn_sched_nice             = &sched_nice,
+       .kgn_reverse_rdma           = &reverse_rdma,
+       .kgn_dgram_timeout          = &dgram_timeout,
+       .kgn_eager_credits          = &eager_credits,
+       .kgn_fast_reconn            = &fast_reconn,
+       .kgn_efault_lbug            = &efault_lbug,
+       .kgn_thread_affinity        = &thread_affinity,
+       .kgn_max_purgatory          = &max_conn_purg
 };
 
 #if CONFIG_SYSCTL && !CFS_SYSFS_MODULE_PARM
-static cfs_sysctl_table_t kgnilnd_ctl_table[] = {
+static struct ctl_table kgnilnd_ctl_table[] = {
        {
-               INIT_CTL_NAME(2)
+               INIT_CTL_NAME
                .procname = "min_reconnect_interval",
                .data     = &min_reconnect_interval,
                .maxlen   = sizeof(int),
@@ -197,7 +247,7 @@ static cfs_sysctl_table_t kgnilnd_ctl_table[] = {
                .proc_handler = &proc_dointvec
        },
        {
-               INIT_CTL_NAME(3)
+               INIT_CTL_NAME
                .procname = "max_reconnect_interval",
                .data     = &max_reconnect_interval,
                .maxlen   = sizeof(int),
@@ -205,7 +255,7 @@ static cfs_sysctl_table_t kgnilnd_ctl_table[] = {
                .proc_handler = &proc_dointvec
        },
        {
-               INIT_CTL_NAME(5)
+               INIT_CTL_NAME
                .procname = "credits",
                .data     = &credits,
                .maxlen   = sizeof(int),
@@ -213,7 +263,7 @@ static cfs_sysctl_table_t kgnilnd_ctl_table[] = {
                .proc_handler = &proc_dointvec
        },
        {
-               INIT_CTL_NAME(6)
+               INIT_CTL_NAME
                .procname = "peer_credits",
                .data     = &peer_credits,
                .maxlen   = sizeof(int),
@@ -221,7 +271,7 @@ static cfs_sysctl_table_t kgnilnd_ctl_table[] = {
                .proc_handler = &proc_dointvec
        },
        {
-               INIT_CTL_NAME(7)
+               INIT_CTL_NAME
                .procname = "fma_cq_size",
                .data     = &fma_cq_size,
                .maxlen   = sizeof(int),
@@ -229,7 +279,7 @@ static cfs_sysctl_table_t kgnilnd_ctl_table[] = {
                .proc_handler = &proc_dointvec
        },
        {
-               INIT_CTL_NAME(8)
+               INIT_CTL_NAME
                .procname = "timeout",
                .data     = &timeout,
                .maxlen   = sizeof(int),
@@ -237,7 +287,7 @@ static cfs_sysctl_table_t kgnilnd_ctl_table[] = {
                .proc_handler = &proc_dointvec
        },
        {
-               INIT_CTL_NAME(9)
+               INIT_CTL_NAME
                .procname = "max_immediate",
                .data     = &max_immediate,
                .maxlen   = sizeof(int),
@@ -245,7 +295,7 @@ static cfs_sysctl_table_t kgnilnd_ctl_table[] = {
                .proc_handler = &proc_dointvec
        },
        {
-               INIT_CTL_NAME(10)
+               INIT_CTL_NAME
                .procname = "checksum",
                .data     = &checksum,
                .maxlen   = sizeof(int),
@@ -253,31 +303,31 @@ static cfs_sysctl_table_t kgnilnd_ctl_table[] = {
                .proc_handler = &proc_dointvec
        },
        {
-               INIT_CTL_NAME(11)
-               .procname = "bte_hash",
-               .data     = &bte_hash,
+               INIT_CTL_NAME
+               .procname = "bte_dlvr_mode",
+               .data     = &bte_dlvr_mode,
                .maxlen   = sizeof(int),
                .mode     = 0644,
                .proc_handler = &proc_dointvec
        },
        {
-               INIT_CTL_NAME(12)
-               .procname = "bte_adapt",
-               .data     = &bte_adapt,
+               INIT_CTL_NAME
+               .procname = "ptag",
+               .data     = &ptag,
                .maxlen   = sizeof(int),
-               .mode     = 0644,
+               .mode     = 0444,
                .proc_handler = &proc_dointvec
        },
        {
-               INIT_CTL_NAME(13)
-               .procname = "ptag",
-               .data     = &ptag,
+               INIT_CTL_NAME
+               .procname = "pkey",
+               .data     = &pkey,
                .maxlen   = sizeof(int),
                .mode     = 0444,
                .proc_handler = &proc_dointvec
        },
        {
-               INIT_CTL_NAME(14)
+               INIT_CTL_NAME
                .procname = "nwildcard",
                .data     = &nwildcard,
                .maxlen   = sizeof(int),
@@ -285,7 +335,7 @@ static cfs_sysctl_table_t kgnilnd_ctl_table[] = {
                .proc_handler = &proc_dointvec
        },
        {
-               INIT_CTL_NAME(15)
+               INIT_CTL_NAME
                .procname = "bte_relaxed_ordering",
                .data     = &bte_relaxed_ordering,
                .maxlen   = sizeof(int),
@@ -293,7 +343,7 @@ static cfs_sysctl_table_t kgnilnd_ctl_table[] = {
                .proc_handler = &proc_dointvec
        },
        {
-               INIT_CTL_NAME(16)
+               INIT_CTL_NAME
                .procname = "checksum_dump",
                .data     = &checksum_dump,
                .maxlen   = sizeof(int),
@@ -301,7 +351,7 @@ static cfs_sysctl_table_t kgnilnd_ctl_table[] = {
                .proc_handler = &proc_dointvec
        },
        {
-               INIT_CTL_NAME(17)
+               INIT_CTL_NAME
                .procname = "nice",
                .data     = &nice,
                .maxlen   = sizeof(int),
@@ -309,7 +359,7 @@ static cfs_sysctl_table_t kgnilnd_ctl_table[] = {
                .proc_handler = &proc_dointvec
        },
        {
-               INIT_CTL_NAME(18)
+               INIT_CTL_NAME
                .procname = "rdmaq_intervals",
                .data     = &rdmaq_intervals,
                .maxlen   = sizeof(int),
@@ -317,7 +367,7 @@ static cfs_sysctl_table_t kgnilnd_ctl_table[] = {
                .proc_handler = &proc_dointvec
        },
        {
-               INIT_CTL_NAME(19)
+               INIT_CTL_NAME
                .procname = "loops",
                .data     = &loops,
                .maxlen   = sizeof(int),
@@ -325,7 +375,7 @@ static cfs_sysctl_table_t kgnilnd_ctl_table[] = {
                .proc_handler = &proc_dointvec
        },
        {
-               INIT_CTL_NAME(20)
+               INIT_CTL_NAME
                .procname = "hash_size",
                .data     = &hash_size,
                .maxlen   = sizeof(int),
@@ -333,7 +383,7 @@ static cfs_sysctl_table_t kgnilnd_ctl_table[] = {
                .proc_handler = &proc_dointvec
        },
        {
-               INIT_CTL_NAME(21)
+               INIT_CTL_NAME
                .procname = "peer_health",
                .data     = &peer_health,
                .maxlen   = sizeof(int),
@@ -341,7 +391,7 @@ static cfs_sysctl_table_t kgnilnd_ctl_table[] = {
                .proc_handler = &proc_dointvec
        },
        {
-               INIT_CTL_NAME(22)
+               INIT_CTL_NAME
                .procname = "vmap_cksum",
                .data     = &vmap_cksum,
                .maxlen   = sizeof(int),
@@ -349,7 +399,7 @@ static cfs_sysctl_table_t kgnilnd_ctl_table[] = {
                .proc_handler = &proc_dointvec
        },
        {
-               INIT_CTL_NAME(23)
+               INIT_CTL_NAME
                .procname = "mbox_per_block",
                .data     = &mbox_per_block,
                .maxlen   = sizeof(int),
@@ -357,7 +407,7 @@ static cfs_sysctl_table_t kgnilnd_ctl_table[] = {
                .proc_handler = &proc_dointvec
        },
        {
-               INIT_CTL_NAME(24)
+               INIT_CTL_NAME
                .procname = "mbox_credits"
                .data     = &mbox_credits,
                .maxlen   = sizeof(int),
@@ -365,7 +415,7 @@ static cfs_sysctl_table_t kgnilnd_ctl_table[] = {
                .proc_handler = &proc_dointvec
        },
        {
-               INIT_CTL_NAME(25)
+               INIT_CTL_NAME
                .procname = "sched_threads"
                .data     = &sched_threads,
                .maxlen   = sizeof(int),
@@ -373,7 +423,7 @@ static cfs_sysctl_table_t kgnilnd_ctl_table[] = {
                .proc_handler = &proc_dointvec
        },
        {
-               INIT_CTL_NAME(26)
+               INIT_CTL_NAME
                .procname = "net_hash_size",
                .data     = &net_hash_size,
                .maxlen   = sizeof(int),
@@ -381,7 +431,7 @@ static cfs_sysctl_table_t kgnilnd_ctl_table[] = {
                .proc_handler = &proc_dointvec
        },
        {
-               INIT_CTL_NAME(27)
+               INIT_CTL_NAME
                .procname = "hardware_timeout",
                .data     = &hardware_timeout,
                .maxlen   = sizeof(int),
@@ -389,7 +439,7 @@ static cfs_sysctl_table_t kgnilnd_ctl_table[] = {
                .proc_handler = &proc_dointvec
        },
        {
-               INIT_CTL_NAME(28)
+               INIT_CTL_NAME
                .procname = "mdd_timeout",
                .data     = &mdd_timeout,
                .maxlen   = sizeof(int),
@@ -397,7 +447,7 @@ static cfs_sysctl_table_t kgnilnd_ctl_table[] = {
                .proc_handler = &proc_dointvec
        },
        {
-               INIT_CTL_NAME(29)
+               INIT_CTL_NAME
                .procname = "max_retransmits"
                .data     = &max_retransmits,
                .maxlen   = sizeof(int),
@@ -405,7 +455,7 @@ static cfs_sysctl_table_t kgnilnd_ctl_table[] = {
                .proc_handler = &proc_dointvec
        },
        {
-               INIT_CTL_NAME(30)
+               INIT_CTL_NAME
                .procname = "concurrent_sends",
                .data     = &concurrent_sends,
                .maxlen   = sizeof(int),
@@ -413,26 +463,97 @@ static cfs_sysctl_table_t kgnilnd_ctl_table[] = {
                .proc_handler = &proc_dointvec
        },
        {
-               INIT_CTL_NAME(31)
+               INIT_CTL_NAME
                .procname = "nphys_mbox",
                .data     = &nphys_mbox,
                .maxlen   = sizeof(int),
                .mode     = 0444,
                .proc_handler = &proc_dointvec
        },
-       {0}
+       {
+               INIT_CTL_NAME
+               .procname = "sched_timeout",
+               .data     = &sched_timeout,
+               .maxlen   = sizeof(int),
+               .mode     = 0644,
+               .proc_handler = &proc_dointvec
+       },
+       {
+               INIT_CTL_NAME
+               .procname = "sched_nice",
+               .data     = &sched_nice,
+               .maxlen   = sizeof(int),
+               .mode     = 0444,
+               .proc_handler = &proc_dointvec
+       },
+       {
+               INIT_CTL_NAME
+               .procname = "reverse_rdma",
+               .data     = &reverse_rdma,
+               .maxlen   = sizeof(int),
+               .mode     = 0644,
+               .proc_handler = &proc_dointvec
+       },
+               INIT_CTL_NAME
+               .procname = "dgram_timeout"
+               .data     = &dgram_timeout,
+               .maxlen   = sizeof(int),
+               .mode     = 0644,
+               .proc_handler = &proc_dointvec
+       },
+       {
+               INIT_CTL_NAME
+               .procname = "peer_timeout"
+               .data     = &peer_timeout,
+               .maxlen   = sizeof(int),
+               .mode     = 0444,
+               .proc_handler = &proc_dointvec
+       },
+       {
+               INIT_CTL_NAME
+               .procname = "eager_credits",
+               .data     = &eager_credits,
+               .maxlen   = sizeof(int),
+               .mode     = 0644,
+               .proc_handler = &proc_dointvec
+       },
+       {
+               INIT_CTL_NAME
+               .procname = "efault_lbug"
+               .data     = &efault_lbug,
+               .maxlen   = sizeof(int),
+               .mode     = 0644,
+               .proc_handler = &proc_dointvec
+       },
+       {
+               INIT_CTL_NAME
+               .procname = "thread_affinity"
+               .data     = &thread_affinity,
+               .maxlen   = sizeof(int),
+               .mode     = 0444,
+               .proc_handler = &proc_dointvec
+       },
+       {
+               INIT_CTL_NAME
+               .procname = "max_conn_purg"
+               .data     = &max_conn_purg,
+               .maxlen   = sizeof(int),
+               .mode     = 0644,
+               .proc_handler = &proc_dointvec
+       },
+       { 0 }
 };
 
-static cfs_sysctl_table_t kgnilnd_top_ctl_table[] = {
+static struct ctl_table kgnilnd_top_ctl_table[] = {
        {
-               INIT_CTL_NAME(202)
+               INIT_CTL_NAME
                .procname = "gnilnd",
                .data     = NULL,
                .maxlen   = 0,
                .mode     = 0555,
                .child    = kgnilnd_ctl_table
        },
-       {       INIT_CTL_NAME(0)   }
+       { 0 }
 };
 #endif