<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
Reviewed-by: Doug Oucharek <<a href="mailto:dougso@me.com" class="">dougso@me.com</a>>
<div class=""><br class="">
</div>
<div class="">Doug</div>
<div class=""><br class="">
<div style="">
<blockquote type="cite" class="">
<div class="">On Sep 6, 2018, at 5:49 PM, NeilBrown <<a href="mailto:neilb@suse.com" class="">neilb@suse.com</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div class="">This is part of<br class="">
<br class="">
8cbb8cd3e771e7f7e0f99cafc19fad32770dc015 LU-7734 lnet: Multi-Rail<br class="">
local NI split<br class="">
---<br class="">
.../staging/lustre/include/linux/lnet/lib-types.h  |   38 +++++++++++++++-----<br class="">
1 file changed, 29 insertions(+), 9 deletions(-)<br class="">
<br class="">
diff --git a/drivers/staging/lustre/include/linux/lnet/lib-types.h b/drivers/staging/lustre/include/linux/lnet/lib-types.h<br class="">
index 6d4106fd9039..078bc97a9ebf 100644<br class="">
--- a/drivers/staging/lustre/include/linux/lnet/lib-types.h<br class="">
+++ b/drivers/staging/lustre/include/linux/lnet/lib-types.h<br class="">
@@ -263,18 +263,38 @@ struct lnet_ni {<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>int<span class="Apple-tab-span" style="white-space:pre">
</span><span class="Apple-tab-span" style="white-space:pre"></span><span class="Apple-tab-span" style="white-space:pre"></span> ni_peerrtrcredits;<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>/* seconds to consider peer dead */<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>int<span class="Apple-tab-span" style="white-space:pre">
</span><span class="Apple-tab-span" style="white-space:pre"></span><span class="Apple-tab-span" style="white-space:pre"></span> ni_peertimeout;<br class="">
-<span class="Apple-tab-span" style="white-space:pre"> </span>int<span class="Apple-tab-span" style="white-space:pre">
</span><span class="Apple-tab-span" style="white-space:pre"></span><span class="Apple-tab-span" style="white-space:pre"></span> ni_ncpts;<span class="Apple-tab-span" style="white-space:pre">
</span>/* number of CPTs */<br class="">
-<span class="Apple-tab-span" style="white-space:pre"> </span>__u32<span class="Apple-tab-span" style="white-space:pre">
</span><span class="Apple-tab-span" style="white-space:pre"></span><span class="Apple-tab-span" style="white-space:pre"></span>*ni_cpts;<span class="Apple-tab-span" style="white-space:pre">
</span>/* bond NI on some CPTs */<br class="">
-<span class="Apple-tab-span" style="white-space:pre"> </span>lnet_nid_t<span class="Apple-tab-span" style="white-space:pre">
</span><span class="Apple-tab-span" style="white-space:pre"></span> ni_nid;<span class="Apple-tab-span" style="white-space:pre">
</span>/* interface's NID */<br class="">
-<span class="Apple-tab-span" style="white-space:pre"> </span>void<span class="Apple-tab-span" style="white-space:pre">
</span><span class="Apple-tab-span" style="white-space:pre"></span><span class="Apple-tab-span" style="white-space:pre"></span>*ni_data;<span class="Apple-tab-span" style="white-space:pre">
</span>/* instance-specific data */<br class="">
+<span class="Apple-tab-span" style="white-space:pre"> </span>/* number of CPTs */<br class="">
+<span class="Apple-tab-span" style="white-space:pre"> </span>int<span class="Apple-tab-span" style="white-space:pre">
</span><span class="Apple-tab-span" style="white-space:pre"></span><span class="Apple-tab-span" style="white-space:pre"></span>ni_ncpts;<br class="">
+<br class="">
+<span class="Apple-tab-span" style="white-space:pre"> </span>/* bond NI on some CPTs */<br class="">
+<span class="Apple-tab-span" style="white-space:pre"> </span>__u32<span class="Apple-tab-span" style="white-space:pre">
</span><span class="Apple-tab-span" style="white-space:pre"></span><span class="Apple-tab-span" style="white-space:pre"></span>*ni_cpts;<br class="">
+<br class="">
+<span class="Apple-tab-span" style="white-space:pre"> </span>/* interface's NID */<br class="">
+<span class="Apple-tab-span" style="white-space:pre"> </span>lnet_nid_t<span class="Apple-tab-span" style="white-space:pre">
</span><span class="Apple-tab-span" style="white-space:pre"></span>ni_nid;<br class="">
+<br class="">
+<span class="Apple-tab-span" style="white-space:pre"> </span>/* instance-specific data */<br class="">
+<span class="Apple-tab-span" style="white-space:pre"> </span>void<span class="Apple-tab-span" style="white-space:pre">
</span><span class="Apple-tab-span" style="white-space:pre"></span><span class="Apple-tab-span" style="white-space:pre"></span>*ni_data;<br class="">
+<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>struct lnet_lnd<span class="Apple-tab-span" style="white-space:pre">
</span><span class="Apple-tab-span" style="white-space:pre"></span>*ni_lnd;<span class="Apple-tab-span" style="white-space:pre">
</span>/* procedural interface */<br class="">
-<span class="Apple-tab-span" style="white-space:pre"> </span>struct lnet_tx_queue<span class="Apple-tab-span" style="white-space:pre">
</span>**ni_tx_queues;<span class="Apple-tab-span" style="white-space:pre"> </span>
/* percpt TX queues */<br class="">
-<span class="Apple-tab-span" style="white-space:pre"> </span>int<span class="Apple-tab-span" style="white-space:pre">
</span><span class="Apple-tab-span" style="white-space:pre"></span><span class="Apple-tab-span" style="white-space:pre"></span>**ni_refs;<span class="Apple-tab-span" style="white-space:pre">
</span>/* percpt reference count */<br class="">
-<span class="Apple-tab-span" style="white-space:pre"> </span>time64_t<span class="Apple-tab-span" style="white-space:pre">
</span><span class="Apple-tab-span" style="white-space:pre"></span> ni_last_alive;/* when I was last alive */<br class="">
-<span class="Apple-tab-span" style="white-space:pre"> </span>struct lnet_ni_status<span class="Apple-tab-span" style="white-space:pre">
</span>*ni_status;<span class="Apple-tab-span" style="white-space:pre"> </span>/* my health status */<br class="">
+<br class="">
+<span class="Apple-tab-span" style="white-space:pre"> </span>/* percpt TX queues */<br class="">
+<span class="Apple-tab-span" style="white-space:pre"> </span>struct lnet_tx_queue<span class="Apple-tab-span" style="white-space:pre">
</span>**ni_tx_queues;<br class="">
+<br class="">
+<span class="Apple-tab-span" style="white-space:pre"> </span>/* percpt reference count */<br class="">
+<span class="Apple-tab-span" style="white-space:pre"> </span>int<span class="Apple-tab-span" style="white-space:pre">
</span><span class="Apple-tab-span" style="white-space:pre"></span><span class="Apple-tab-span" style="white-space:pre"></span>**ni_refs;<br class="">
+<br class="">
+<span class="Apple-tab-span" style="white-space:pre"> </span>/* when I was last alive */<br class="">
+<span class="Apple-tab-span" style="white-space:pre"> </span>time64_t<span class="Apple-tab-span" style="white-space:pre">
</span><span class="Apple-tab-span" style="white-space:pre"></span>ni_last_alive;<br class="">
+<br class="">
+<span class="Apple-tab-span" style="white-space:pre"> </span>/* my health status */<br class="">
+<span class="Apple-tab-span" style="white-space:pre"> </span>struct lnet_ni_status<span class="Apple-tab-span" style="white-space:pre">
</span>*ni_status;<br class="">
+<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>/* per NI LND tunables */<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>struct lnet_ioctl_config_lnd_tunables *ni_lnd_tunables;<br class="">
-<span class="Apple-tab-span" style="white-space:pre"> </span>/* equivalent interfaces to use */<br class="">
+<span class="Apple-tab-span" style="white-space:pre"> </span>/*<br class="">
+<span class="Apple-tab-span" style="white-space:pre"> </span>* equivalent interfaces to use<br class="">
+<span class="Apple-tab-span" style="white-space:pre"> </span>* This is an array because socklnd bonding can still be configured<br class="">
+<span class="Apple-tab-span" style="white-space:pre"> </span>*/<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>char<span class="Apple-tab-span" style="white-space:pre">
</span><span class="Apple-tab-span" style="white-space:pre"></span><span class="Apple-tab-span" style="white-space:pre"></span>*ni_interfaces[LNET_MAX_INTERFACES];<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>/* original net namespace */<br class="">
<span class="Apple-tab-span" style="white-space:pre"></span>struct net<span class="Apple-tab-span" style="white-space:pre">
</span><span class="Apple-tab-span" style="white-space:pre"></span>*ni_net_ns;<br class="">
<br class="">
<br class="">
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</body>
</html>