]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
staging: lustre: o2iblnd: create default o2iblnd tunable settings
authorAmir Shehata <amir.shehata@intel.com>
Sat, 7 May 2016 01:30:26 +0000 (21:30 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 9 May 2016 12:05:23 +0000 (14:05 +0200)
Create and set the default o2iblnd tunables when the ko2iblnd
module loads. Move kiblnd_tunables_setup() to when the NI
iterface is initialized.

Signed-off-by: Amir Shehata <amir.shehata@intel.com>
Signed-off-by: James Simmons <uja.ornl@yahoo.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-7101
Reviewed-on: http://review.whamcloud.com/16367
Reviewed-by: Doug Oucharek <doug.s.oucharek@intel.com>
Reviewed-by: Olaf Weber <olaf@sgi.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c
drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.h
drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd_modparams.c

index 425148b9de6330e15002a24ed5d74daf837a9b30..92362b3d87362147b95821be44e145a5b389e138 100644 (file)
@@ -2920,6 +2920,9 @@ static int kiblnd_startup(lnet_ni_t *ni)
        net->ibn_incarnation = tv.tv_sec * USEC_PER_SEC +
                               tv.tv_nsec / NSEC_PER_USEC;
 
+       rc = kiblnd_tunables_setup();
+       if (rc)
+               goto net_failed;
        ni->ni_peertimeout    = *kiblnd_tunables.kib_peertimeout;
        ni->ni_maxtxcredits   = *kiblnd_tunables.kib_credits;
        ni->ni_peertxcredits  = *kiblnd_tunables.kib_peertxcredits;
@@ -3005,8 +3008,6 @@ static void __exit ko2iblnd_exit(void)
 
 static int __init ko2iblnd_init(void)
 {
-       int rc;
-
        CLASSERT(sizeof(kib_msg_t) <= IBLND_MSG_SIZE);
        CLASSERT(offsetof(kib_msg_t,
                          ibm_u.get.ibgm_rd.rd_frags[IBLND_MAX_RDMA_FRAGS])
@@ -3015,9 +3016,7 @@ static int __init ko2iblnd_init(void)
                          ibm_u.putack.ibpam_rd.rd_frags[IBLND_MAX_RDMA_FRAGS])
                          <= IBLND_MSG_SIZE);
 
-       rc = kiblnd_tunables_init();
-       if (rc)
-               return rc;
+       kiblnd_tunables_init();
 
        lnet_register_lnd(&the_o2iblnd);
 
index fab0ef98fe9d241be9f982559c16600d9f4a7e89..80e11bcae51d0610f6fdab720fbebad373caad11 100644 (file)
@@ -994,7 +994,8 @@ int  kiblnd_fmr_pool_map(kib_fmr_poolset_t *fps, kib_tx_t *tx,
                         kib_fmr_t *fmr);
 void kiblnd_fmr_pool_unmap(kib_fmr_t *fmr, int status);
 
-int  kiblnd_tunables_init(void);
+int kiblnd_tunables_setup(void);
+void kiblnd_tunables_init(void);
 void kiblnd_tunables_fini(void);
 
 int  kiblnd_connd(void *arg);
index a6415fc995b419064ab3ef7a089d3ed26927b3c5..cc1469dc7c2ba8f3ce04825e7b8b4bca3b943dab 100644 (file)
@@ -171,6 +171,8 @@ kib_tunables_t kiblnd_tunables = {
        .kib_nscheds           = &nscheds
 };
 
+static struct lnet_ioctl_config_o2iblnd_tunables default_tunables;
+
 /* # messages/RDMAs in-flight */
 int kiblnd_msg_queue_size(int version, lnet_ni_t *ni)
 {
@@ -182,8 +184,7 @@ int kiblnd_msg_queue_size(int version, lnet_ni_t *ni)
                return peer_credits;
 }
 
-int
-kiblnd_tunables_init(void)
+int kiblnd_tunables_setup(void)
 {
        if (kiblnd_translate_mtu(*kiblnd_tunables.kib_ib_mtu) < 0) {
                CERROR("Invalid ib_mtu %d, expected 256/512/1024/2048/4096\n",
@@ -234,3 +235,14 @@ kiblnd_tunables_init(void)
 
        return 0;
 }
+
+void kiblnd_tunables_init(void)
+{
+       default_tunables.lnd_version = 0;
+       default_tunables.lnd_peercredits_hiw = peer_credits_hiw,
+       default_tunables.lnd_map_on_demand = map_on_demand;
+       default_tunables.lnd_concurrent_sends = concurrent_sends;
+       default_tunables.lnd_fmr_pool_size = fmr_pool_size;
+       default_tunables.lnd_fmr_flush_trigger = fmr_flush_trigger;
+       default_tunables.lnd_fmr_cache = fmr_cache;
+}