[lustre-devel] [PATCH 29/34] lnet: track tunables in lnet_startup_lndnet()
Doug Oucharek
doucharek at cray.com
Tue Sep 11 21:47:03 PDT 2018
Amir: You need to comment on this one.
It looks to me that it starts off by making a copy of three tunables to see if the user has set them specific to the NET. Then, if the LND changes them, it changes them back to what the user set. What I don't get: why would the LND change the values if they are not -1?
Reviewed-by: Doug Oucharek <dougso at me.com>
Doug
On 9/6/18, 5:55 PM, "NeilBrown" <neilb at suse.com> wrote:
Not really sure what this is yet.
This is part of
8cbb8cd3e771e7f7e0f99cafc19fad32770dc015
LU-7734 lnet: Multi-Rail local NI split
Signed-off-by: NeilBrown <neilb at suse.com>
---
drivers/staging/lustre/lnet/lnet/api-ni.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/drivers/staging/lustre/lnet/lnet/api-ni.c b/drivers/staging/lustre/lnet/lnet/api-ni.c
index 3f6f5ead8a03..f4efb48c4cf3 100644
--- a/drivers/staging/lustre/lnet/lnet/api-ni.c
+++ b/drivers/staging/lustre/lnet/lnet/api-ni.c
@@ -1361,6 +1361,12 @@ lnet_startup_lndnet(struct lnet_net *net, struct lnet_lnd_tunables *tun)
int ni_count = 0;
__u32 lnd_type;
struct lnet_lnd *lnd;
+ int peer_timeout =
+ net->net_tunables.lct_peer_timeout;
+ int maxtxcredits =
+ net->net_tunables.lct_max_tx_credits;
+ int peerrtrcredits =
+ net->net_tunables.lct_peer_rtr_credits;
INIT_LIST_HEAD(&local_ni_list);
@@ -1447,6 +1453,9 @@ lnet_startup_lndnet(struct lnet_net *net, struct lnet_lnd_tunables *tun)
rc = lnet_startup_lndni(ni, tun);
+ LASSERT(ni->ni_net->net_tunables.lct_peer_timeout <= 0 ||
+ ni->ni_net->net_lnd->lnd_query != NULL);
+
if (rc < 0)
goto failed1;
@@ -1464,8 +1473,23 @@ lnet_startup_lndnet(struct lnet_net *net, struct lnet_lnd_tunables *tun)
* it around after we're done. Free it. Otherwise add that
* net to the global the_lnet.ln_nets */
if (net_l != net && net_l != NULL) {
+ /*
+ * TODO - note. currently the tunables can not be updated
+ * once added
+ */
lnet_net_free(net);
} else {
+ /*
+ * restore tunables after it has been overwitten by the
+ * lnd
+ */
+ if (peer_timeout != -1)
+ net->net_tunables.lct_peer_timeout = peer_timeout;
+ if (maxtxcredits != -1)
+ net->net_tunables.lct_max_tx_credits = maxtxcredits;
+ if (peerrtrcredits != -1)
+ net->net_tunables.lct_peer_rtr_credits = peerrtrcredits;
+
lnet_net_lock(LNET_LOCK_EX);
list_add_tail(&net->net_list, &the_lnet.ln_nets);
lnet_net_unlock(LNET_LOCK_EX);
More information about the lustre-devel
mailing list