Whamcloud - gitweb
* Fixed 2634 ("instant" socknal timeout?)
authoreeb <eeb>
Sat, 7 Feb 2004 11:44:41 +0000 (11:44 +0000)
committereeb <eeb>
Sat, 7 Feb 2004 11:44:41 +0000 (11:44 +0000)
*  Fixed 2684 ("static declaration of ep_nmd_merge...)

lnet/klnds/qswlnd/qswlnd.h
lnet/klnds/socklnd/socklnd.c
lustre/portals/knals/qswnal/qswnal.h
lustre/portals/knals/socknal/socknal.c

index a5d5124..b1b9a45 100644 (file)
@@ -311,40 +311,9 @@ static inline void kqswnal_rx_done (kqswnal_rx_t *krx)
 }
 
 #if MULTIRAIL_EKC
-
-#ifndef EP_RAILMASK_ALL
-# error "old (unsupported) version of EKC headers"
-#endif
-
-static inline int
-ep_nmd_merge (EP_NMD *merged, EP_NMD *a, EP_NMD *b)
-{
-        if (EP_NMD_NODEID(a) != EP_NMD_NODEID(b)) /* not generated on the same node */
-                return 0;
-
-        if ((EP_NMD_RAILMASK(a) & EP_NMD_RAILMASK(b)) == 0) /* no common rails */
-                return 0;
-
-        if (b->nmd_addr == (a->nmd_addr + a->nmd_len)) {
-                if (merged != NULL) {
-                        merged->nmd_addr = a->nmd_addr;
-                        merged->nmd_len  = a->nmd_len + b->nmd_len;
-                        merged->nmd_attr = EP_NMD_ATTR(EP_NMD_NODEID(a), EP_NMD_RAILMASK(a) & EP_NMD_RAILMASK(b));
-                }
-                return 1;
-        }
-    
-        if (a->nmd_addr == (b->nmd_addr + b->nmd_len)) {
-                if (merged != NULL) {
-                        merged->nmd_addr = b->nmd_addr;
-                        merged->nmd_len   = b->nmd_len + a->nmd_len;
-                        merged->nmd_attr  = EP_NMD_ATTR(EP_NMD_NODEID(b), EP_NMD_RAILMASK(a) & EP_NMD_RAILMASK(b));
-                }
-                return 1;
-        }
-
-        return 0;
-}
+# ifndef EP_RAILMASK_ALL
+#  error "old (unsupported) version of EKC headers"
+# endif
 #else
 /* multirail defines these in <elan/epcomms.h> */
 #define EP_MSG_SVC_PORTALS_SMALL      (0x10)  /* Portals over elan port number (large payloads) */
index 49956a2..d996341 100644 (file)
@@ -796,6 +796,10 @@ ksocknal_create_conn (ksock_route_t *route, struct socket *sock,
         peer->ksnp_last_alive = jiffies;
         peer->ksnp_error = 0;
 
+        /* Set the deadline for the outgoing HELLO to drain */
+        conn->ksnc_tx_deadline = jiffies + 
+                                 ksocknal_data.ksnd_io_timeout * HZ;
+
         list_add (&conn->ksnc_list, &peer->ksnp_conns);
         atomic_inc (&conn->ksnc_refcount);
 
index a5d5124..b1b9a45 100644 (file)
@@ -311,40 +311,9 @@ static inline void kqswnal_rx_done (kqswnal_rx_t *krx)
 }
 
 #if MULTIRAIL_EKC
-
-#ifndef EP_RAILMASK_ALL
-# error "old (unsupported) version of EKC headers"
-#endif
-
-static inline int
-ep_nmd_merge (EP_NMD *merged, EP_NMD *a, EP_NMD *b)
-{
-        if (EP_NMD_NODEID(a) != EP_NMD_NODEID(b)) /* not generated on the same node */
-                return 0;
-
-        if ((EP_NMD_RAILMASK(a) & EP_NMD_RAILMASK(b)) == 0) /* no common rails */
-                return 0;
-
-        if (b->nmd_addr == (a->nmd_addr + a->nmd_len)) {
-                if (merged != NULL) {
-                        merged->nmd_addr = a->nmd_addr;
-                        merged->nmd_len  = a->nmd_len + b->nmd_len;
-                        merged->nmd_attr = EP_NMD_ATTR(EP_NMD_NODEID(a), EP_NMD_RAILMASK(a) & EP_NMD_RAILMASK(b));
-                }
-                return 1;
-        }
-    
-        if (a->nmd_addr == (b->nmd_addr + b->nmd_len)) {
-                if (merged != NULL) {
-                        merged->nmd_addr = b->nmd_addr;
-                        merged->nmd_len   = b->nmd_len + a->nmd_len;
-                        merged->nmd_attr  = EP_NMD_ATTR(EP_NMD_NODEID(b), EP_NMD_RAILMASK(a) & EP_NMD_RAILMASK(b));
-                }
-                return 1;
-        }
-
-        return 0;
-}
+# ifndef EP_RAILMASK_ALL
+#  error "old (unsupported) version of EKC headers"
+# endif
 #else
 /* multirail defines these in <elan/epcomms.h> */
 #define EP_MSG_SVC_PORTALS_SMALL      (0x10)  /* Portals over elan port number (large payloads) */
index 49956a2..d996341 100644 (file)
@@ -796,6 +796,10 @@ ksocknal_create_conn (ksock_route_t *route, struct socket *sock,
         peer->ksnp_last_alive = jiffies;
         peer->ksnp_error = 0;
 
+        /* Set the deadline for the outgoing HELLO to drain */
+        conn->ksnc_tx_deadline = jiffies + 
+                                 ksocknal_data.ksnd_io_timeout * HZ;
+
         list_add (&conn->ksnc_list, &peer->ksnp_conns);
         atomic_inc (&conn->ksnc_refcount);