Whamcloud - gitweb
* Removed nal_{send,recv}_pages() LND APIs (send and receive are passed
authoreeb <eeb>
Mon, 5 Sep 2005 19:21:16 +0000 (19:21 +0000)
committereeb <eeb>
Mon, 5 Sep 2005 19:21:16 +0000 (19:21 +0000)
    either VM frags (iov != NULL) or page frags (kiov != NULL) but not both.

*   Ensure that the order of networks declared in the "networks" and "routes"
    breaks ties when determining which peer NID to use.

33 files changed:
lnet/include/lnet/api.h
lnet/include/lnet/lib-lnet.h
lnet/include/lnet/lib-types.h
lnet/klnds/gmlnd/gmlnd.h
lnet/klnds/gmlnd/gmlnd_api.c
lnet/klnds/gmlnd/gmlnd_cb.c
lnet/klnds/iiblnd/iiblnd.c
lnet/klnds/iiblnd/iiblnd.h
lnet/klnds/iiblnd/iiblnd_cb.c
lnet/klnds/openiblnd/openiblnd.c
lnet/klnds/openiblnd/openiblnd.h
lnet/klnds/openiblnd/openiblnd_cb.c
lnet/klnds/qswlnd/qswlnd.c
lnet/klnds/qswlnd/qswlnd.h
lnet/klnds/qswlnd/qswlnd_cb.c
lnet/klnds/ralnd/ralnd.c
lnet/klnds/ralnd/ralnd.h
lnet/klnds/ralnd/ralnd_cb.c
lnet/klnds/socklnd/socklnd.c
lnet/klnds/socklnd/socklnd.h
lnet/klnds/socklnd/socklnd_cb.c
lnet/klnds/viblnd/viblnd.c
lnet/klnds/viblnd/viblnd.h
lnet/klnds/viblnd/viblnd_cb.c
lnet/lnet/api-ni.c
lnet/lnet/lib-move.c
lnet/lnet/lo.c
lnet/lnet/router.c
lnet/lnet/router.h
lnet/lnet/router_proc.c
lnet/ulnds/socklnd/procbridge.h
lnet/ulnds/socklnd/tcplnd.c
lnet/utils/.cvsignore

index 96e39a1..1d8008c 100644 (file)
@@ -143,6 +143,6 @@ int LNetGet(lnet_handle_md_t  md_in,
                 lnet_match_bits_t match_bits_in, 
                 lnet_size_t       offset_in);
 
-int LNetDist (lnet_handle_ni_t interface, lnet_nid_t nid);
+int LNetDist(lnet_handle_ni_t interface, lnet_nid_t nid, int *order);
 
 #endif
index a27ef3f..2fa3fae 100644 (file)
@@ -371,7 +371,7 @@ void      lnet_fwd_done(ptl_ni_t *ni, kpr_fwd_desc_t *fwd, int error);
 int       lnet_notify(ptl_ni_t *ni, lnet_nid_t peer, int alive, time_t when);
 
 /* internal APIs */
-int       kpr_distance(lnet_nid_t nid);
+int       kpr_distance(lnet_nid_t nid, int *order);
 int       kpr_ctl(unsigned int cmd, void *arg);
 int       kpr_add_route(__u32 net, unsigned int hops, lnet_nid_t gateway_nid);
 int       kpr_initialise(void);
@@ -440,7 +440,7 @@ extern int ptl_get_apinih (lnet_handle_ni_t *nih);
 
 extern ptl_ni_t *lnet_net2ni (__u32 net);
 extern int ptl_islocalnid (lnet_nid_t nid);
-extern int ptl_islocalnet (__u32 net);
+extern int ptl_islocalnet (__u32 net, int *orderp);
 extern void ptl_enq_event_locked (void *private,
                                   ptl_eq_t *eq, lnet_event_t *ev);
 extern void lnet_finalize (ptl_ni_t *ni, void *private, ptl_msg_t *msg, 
index fb20337..687ba03 100644 (file)
@@ -274,51 +274,39 @@ typedef struct ptl_nal
         unsigned int      nal_type;
         
         int  (*nal_startup) (struct ptl_ni *ni);
-        void       (*nal_shutdown) (struct ptl_ni *ni);
-
-        int        (*nal_ctl)(struct ptl_ni *ni, unsigned int cmd, void *arg);
-        
-       /*
-        * send: Sends a preformatted header and payload data to a
-        * specified remote process. The payload is scattered over 'niov'
-        * fragments described by iov, starting at 'offset' for 'mlen'
-        * bytes.  
-        * NB the NAL may NOT overwrite iov.  
-        * 0 on success => NAL has committed to send and will call
-        * lnet_finalize on completion
-        */
-       int (*nal_send) 
-                (struct ptl_ni *ni, void *private, ptl_msg_t *msg, 
-                 ptl_hdr_t *hdr, int type, lnet_process_id_t target,
-                 int routing, unsigned int niov, struct iovec *iov, 
-                 size_t offset, size_t mlen);
-        
-       /* as send, but with a set of page fragments (NULL if not supported) */
-       int (*nal_send_pages)
-                (struct ptl_ni *ni, void *private, ptl_msg_t *cookie, 
-                 ptl_hdr_t *hdr, int type, lnet_process_id_t target, 
-                 int routing, unsigned int niov, lnet_kiov_t *iov, 
-                 size_t offset, size_t mlen);
-       /*
-        * recv: Receives an incoming message from a remote process.  The
-        * payload is to be received into the scattered buffer of 'niov'
-        * fragments described by iov, starting at 'offset' for 'mlen'
-        * bytes.  Payload bytes after 'mlen' up to 'rlen' are to be
-        * discarded.  
-        * NB the NAL may NOT overwrite iov.
-        * 0 on success => NAL has committed to receive and will call
-        * lnet_finalize on completion
-        */
-       int (*nal_recv) 
-                (struct ptl_ni *ni, void *private, ptl_msg_t * cookie,
-                 unsigned int niov, struct iovec *iov, 
-                 size_t offset, size_t mlen, size_t rlen);
-
-       /* as recv, but with a set of page fragments (NULL if not supported) */
-       int (*nal_recv_pages) 
-                (struct ptl_ni *ni, void *private, ptl_msg_t * cookie,
-                 unsigned int niov, lnet_kiov_t *iov, 
-                 size_t offset, size_t mlen, size_t rlen);
+        void (*nal_shutdown) (struct ptl_ni *ni);
+        int  (*nal_ctl)(struct ptl_ni *ni, unsigned int cmd, void *arg);
+
+        /* In data movement APIs below, payload buffers are described as a set
+         * of 'niov' fragments which are...
+         * EITHER 
+         *    in virtual memory (struct iovec *iov != NULL)
+         * OR
+         *    in pages (kernel only: plt_kiov_t *kiov != NULL).
+         * The NAL may NOT overwrite these fragment descriptors.
+         * An 'offset' and may specify a byte offset within the set of
+         * fragments to start from 
+         */
+
+        /* Start sending a preformatted header and 'mlen' bytes of payload data
+        * of to a specified remote process.  'private' is NULL for PUT and GET
+        * messages; otherwise this is a response to an incoming message and
+        * 'private' is the 'private' passed to lnet_parse().  Return non-zero
+        * for immediate failure, otherwise complete later with
+        * lnet_finalize() */
+       int (*nal_send) (struct ptl_ni *ni, void *private, ptl_msg_t *msg, 
+                         ptl_hdr_t *hdr, int type, lnet_process_id_t target,
+                         int routing, unsigned int niov, 
+                         struct iovec *iov, lnet_kiov_t *kiov,
+                         unsigned int offset, unsigned int mlen);
+
+        /* Start receiving 'mlen' bytes of payload data, skipping the following
+         * 'rlen' - 'mlen' bytes. 'private' is the 'private' passed to
+         * lnet_parse().  Return non-zero for immedaite failuyre, otherwise
+         * complete later with lnet_finalize() */
+       int (*nal_recv) (struct ptl_ni *ni, void *private, ptl_msg_t * cookie,
+                         unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
+                         unsigned int offset, unsigned int mlen, unsigned int rlen);
 
         /* forward a packet for the router */
         void (*nal_fwd)(struct ptl_ni *ni, kpr_fwd_desc_t *fwd);        
@@ -336,7 +324,7 @@ typedef struct ptl_nal
 
 typedef struct ptl_ni {
         struct list_head  ni_list;              /* chain on apini_nis */
-        lnet_nid_t         ni_nid;               /* interface's NID */
+        lnet_nid_t        ni_nid;               /* interface's NID */
         void             *ni_data;              /* instance-specific data */
         ptl_nal_t        *ni_nal;               /* procedural interface */
         int               ni_shutdown;          /* shutting down? */
@@ -348,8 +336,8 @@ typedef struct                                  /* loopback descriptor */
 {
         unsigned int     lod_type;
         unsigned int     lod_niov;
-        size_t           lod_offset;
-        size_t           lod_nob;
+        unsigned int     lod_offset;
+        unsigned int     lod_nob;
         union {
                 struct iovec  *iov;
                 lnet_kiov_t    *kiov;
index 3411e59..1297a24 100644 (file)
@@ -222,21 +222,13 @@ void gmnal_shutdown(ptl_ni_t *ni);
 
 /* gmnal_cb.c */
 int gmnal_recv(ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg,
-               unsigned int niov, struct iovec *iov, 
-               size_t offset, size_t mlen, size_t rlen);
-int gmnal_recv_pages(ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg, 
-                     unsigned int nkiov, lnet_kiov_t *kiov, 
-                     size_t offset, size_t mlen, size_t rlen);
+               unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
+               unsigned int offset, unsigned int mlen, unsigned int rlen);
 int gmnal_send(ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg, 
                ptl_hdr_t *hdr, int type, 
                lnet_process_id_t tgt, int routing,
-               unsigned int niov, struct iovec *iov, 
-               size_t offset, size_t len);
-int gmnal_send_pages(ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg, 
-                     ptl_hdr_t *hdr, int type,
-                     lnet_process_id_t tgt, int routing,
-                     unsigned int nkiov, lnet_kiov_t *kiov, 
-                     size_t offset, size_t len);
+               unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
+               unsigned int offset, unsigned int len);
 
 /* gmnal_util.c */
 void gmnal_free_ltxbufs(gmnal_ni_t *gmni);
index 4e811d9..3d48510 100644 (file)
@@ -32,9 +32,7 @@ ptl_nal_t gmnal_nal =
         .nal_shutdown        = gmnal_shutdown,
         .nal_ctl             = gmnal_ctl,
         .nal_send            = gmnal_send,
-        .nal_send_pages      = gmnal_send_pages,
         .nal_recv            = gmnal_recv,
-        .nal_recv_pages      = gmnal_recv_pages,
 };
 
 gmnal_ni_t *the_gmni = NULL;
index fd5f2bf..a8af94f 100644 (file)
@@ -28,9 +28,9 @@
 #include "gmlnd.h"
 
 int
-gmnal_recvmsg(ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg,
-              unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
-              size_t offset, size_t mlen)
+gmnal_recv(ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg,
+           unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
+           unsigned int offset, unsigned int mlen, unsigned int rlen)
 {
         gmnal_ni_t      *gmni = ni->ni_data;
        gmnal_rx_t      *rx = (gmnal_rx_t*)private;
@@ -58,29 +58,10 @@ gmnal_recvmsg(ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg,
 }
 
 int
-gmnal_recv(ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg,
-           unsigned int niov, struct iovec *iov, 
-           size_t offset, size_t mlen, size_t rlen)
-{
-        return gmnal_recvmsg(ni, private, ptlmsg,
-                             niov, iov, NULL, offset, mlen);
-}
-
-int
-gmnal_recv_pages(ptl_ni_t *ni, void *private, 
-                 ptl_msg_t *ptlmsg, 
-                 unsigned int nkiov, lnet_kiov_t *kiov, 
-                 size_t offset, size_t mlen, size_t rlen)
-{
-        return gmnal_recvmsg(ni, private, ptlmsg,
-                             nkiov, NULL, kiov, offset, mlen);
-}
-
-int
-gmnal_sendmsg(ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg, 
-              ptl_hdr_t *hdr, int type, lnet_process_id_t pid,
-              unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
-              size_t offset, size_t len)
+gmnal_send(ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg, 
+           ptl_hdr_t *hdr, int type, lnet_process_id_t pid, int routing,
+           unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
+           unsigned int offset, unsigned int len)
 {
        gmnal_ni_t      *gmni = ni->ni_data;
         gm_status_t      gmrc;
@@ -153,27 +134,3 @@ gmnal_sendmsg(ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg,
 
         return 0;
 }
-
-int
-gmnal_send(ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg, 
-           ptl_hdr_t *hdr, int type, 
-           lnet_process_id_t pid, int routing,
-           unsigned int niov, struct iovec *iov, 
-           size_t offset, size_t len)
-{
-        return gmnal_sendmsg(ni, private, ptlmsg, 
-                             hdr, type, pid,
-                             niov, iov, NULL, offset, len);
-}
-
-int
-gmnal_send_pages(ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg, 
-                 ptl_hdr_t *hdr, int type,
-                 lnet_process_id_t pid, int routing,
-                 unsigned int nkiov, lnet_kiov_t *kiov, 
-                 size_t offset, size_t len)
-{
-        return gmnal_sendmsg(ni, private, ptlmsg, 
-                             hdr, type, pid,
-                             nkiov, NULL, kiov, offset, len);
-}
index 407f8b7..899f489 100644 (file)
@@ -29,9 +29,7 @@ ptl_nal_t kibnal_nal = {
         .nal_shutdown      = kibnal_shutdown,
         .nal_ctl           = kibnal_ctl,
         .nal_send          = kibnal_send,
-        .nal_send_pages    = kibnal_send_pages,
         .nal_recv          = kibnal_recv,
-        .nal_recv_pages    = kibnal_recv_pages,
 };
 
 lnet_handle_ni_t         kibnal_ni;
index 330b08e..3fef233 100644 (file)
@@ -862,21 +862,13 @@ extern int kibnal_startup (ptl_ni_t *ni);
 extern void kibnal_shutdown (ptl_ni_t *ni);
 extern int kibnal_ctl(ptl_ni_t *ni, unsigned int cmd, void *arg);
 int kibnal_send (ptl_ni_t *ni, void *private,
-                       ptl_msg_t *ptlmsg, ptl_hdr_t *hdr,
-                       int type, lnet_process_id_t tgt, int routing,
-                       unsigned int payload_niov, struct iovec *payload_iov,
-                       size_t payload_offset, size_t payload_nob);
-int kibnal_send_pages (ptl_ni_t *ni, void *private,
-                             ptl_msg_t *ptlmsg, ptl_hdr_t *hdr,
-                             int type, lnet_process_id_t tgt, int routing,
-                             unsigned int payload_niov, lnet_kiov_t *payload_kiov,
-                             size_t payload_offset, size_t payload_nob);
+                 ptl_msg_t *ptlmsg, ptl_hdr_t *hdr,
+                 int type, lnet_process_id_t tgt, int routing,
+                 unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
+                 unsigned int offset, unsigned int nob);
 extern int kibnal_recv (ptl_ni_t *ni, void *private, ptl_msg_t *msg,
-                              unsigned int niov, struct iovec *iov, 
-                              size_t offset, size_t mlen, size_t rlen);
-extern int kibnal_recv_pages (ptl_ni_t *ni, void *private, ptl_msg_t *msg,
-                                    unsigned int niov, lnet_kiov_t *kiov, 
-                                    size_t offset, size_t mlen, size_t rlen);
+                        unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
+                        unsigned int offset, unsigned int mlen, unsigned int rlen);
 
 extern kib_peer_t *kibnal_create_peer (lnet_nid_t nid);
 extern void kibnal_destroy_peer (kib_peer_t *peer);
@@ -905,7 +897,7 @@ extern void kibnal_start_active_rdma (int type, int status,
                                       kib_rx_t *rx, ptl_msg_t *ptlmsg,
                                       unsigned int niov,
                                       struct iovec *iov, lnet_kiov_t *kiov,
-                                      size_t offset, size_t nob);
+                                      unsigned int offset, unsigned int nob);
 
 void kibnal_ca_async_callback (void *ca_arg, IB_EVENT_RECORD *ev);
 void kibnal_ca_callback (void *ca_arg, void *cq_arg);
index c8c36d0..4467777 100644 (file)
@@ -1331,7 +1331,7 @@ kibnal_start_active_rdma (int type, int status,
                            kib_rx_t *rx, ptl_msg_t *ptlmsg, 
                            unsigned int niov,
                            struct iovec *iov, lnet_kiov_t *kiov,
-                           size_t offset, size_t nob)
+                           unsigned int offset, unsigned int nob)
 {
         kib_msg_t    *rxmsg = rx->rx_msg;
         kib_msg_t    *txmsg;
@@ -1488,19 +1488,19 @@ init_tx:
         kibnal_queue_tx(tx, rx->rx_conn);
 }
 
-static int
-kibnal_sendmsg(ptl_ni_t        *ni, 
-               void            *private,
-               ptl_msg_t       *ptlmsg,
-               ptl_hdr_t       *hdr, 
-               int              type, 
-               lnet_process_id_t target,
-               int              routing,
-               unsigned int     payload_niov, 
-               struct iovec    *payload_iov, 
-               lnet_kiov_t      *payload_kiov,
-               size_t           payload_offset,
-               size_t           payload_nob)
+int
+kibnal_send(ptl_ni_t         *ni, 
+            void             *private,
+            ptl_msg_t        *ptlmsg,
+            ptl_hdr_t        *hdr, 
+            int               type, 
+            lnet_process_id_t target,
+            int               routing,
+            unsigned int      payload_niov, 
+            struct iovec     *payload_iov, 
+            lnet_kiov_t      *payload_kiov,
+            unsigned int      payload_offset,
+            unsigned int      payload_nob)
 {
         kib_msg_t  *ibmsg;
         kib_tx_t   *tx;
@@ -1616,33 +1616,9 @@ kibnal_sendmsg(ptl_ni_t        *ni,
 }
 
 int
-kibnal_send (ptl_ni_t *ni, void *private, ptl_msg_t *cookie,
-             ptl_hdr_t *hdr, int type, lnet_process_id_t tgt, int routing, 
-             unsigned int payload_niov, struct iovec *payload_iov,
-             size_t payload_offset, size_t payload_len)
-{
-        return (kibnal_sendmsg(ni, private, cookie,
-                               hdr, type, tgt, routing,
-                               payload_niov, payload_iov, NULL,
-                               payload_offset, payload_len));
-}
-
-int
-kibnal_send_pages (ptl_ni_t *ni, void *private, ptl_msg_t *cookie, 
-                   ptl_hdr_t *hdr, int type, lnet_process_id_t tgt, int routing,
-                   unsigned int payload_niov, lnet_kiov_t *payload_kiov, 
-                   size_t payload_offset, size_t payload_len)
-{
-        return (kibnal_sendmsg(ni, private, cookie,
-                               hdr, type, tgt, routing,
-                               payload_niov, NULL, payload_kiov,
-                               payload_offset, payload_len));
-}
-
-static int
-kibnal_recvmsg (ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg,
-                unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
-                size_t offset, size_t mlen, size_t rlen)
+kibnal_recv (ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg,
+             unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
+             unsigned int offset, unsigned int mlen, unsigned int rlen)
 {
         kib_rx_t    *rx = private;
         kib_msg_t   *rxmsg = rx->rx_msg;
@@ -1693,24 +1669,6 @@ kibnal_recvmsg (ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg,
         }
 }
 
-int
-kibnal_recv (ptl_ni_t *ni, void *private, ptl_msg_t *msg,
-             unsigned int niov, struct iovec *iov, 
-             size_t offset, size_t mlen, size_t rlen)
-{
-        return (kibnal_recvmsg (ni, private, msg, niov, iov, NULL,
-                                offset, mlen, rlen));
-}
-
-int
-kibnal_recv_pages (ptl_ni_t *ni, void *private, ptl_msg_t *msg,
-                   unsigned int niov, lnet_kiov_t *kiov, 
-                   size_t offset, size_t mlen, size_t rlen)
-{
-        return (kibnal_recvmsg (ni, private, msg, niov, NULL, kiov,
-                                offset, mlen, rlen));
-}
-
 /*****************************************************************************
  * the rest of this file concerns connection management.  active connetions
  * start with connect_peer, passive connections start with passive_callback.
index c5a7009..a39b28e 100644 (file)
@@ -29,9 +29,7 @@ ptl_nal_t               kibnal_nal = {
         .nal_shutdown   = kibnal_shutdown,
         .nal_ctl        = kibnal_ctl,
         .nal_send       = kibnal_send,
-        .nal_send_pages = kibnal_send_pages,
         .nal_recv       = kibnal_recv,
-        .nal_recv_pages = kibnal_recv_pages,
         .nal_accept     = kibnal_accept,
 };
 
index 9bcdd3a..7916265 100644 (file)
@@ -507,23 +507,13 @@ int kibnal_startup (ptl_ni_t *ni);
 void kibnal_shutdown (ptl_ni_t *ni);
 int kibnal_ctl(ptl_ni_t *ni, unsigned int cmd, void *arg);
 int kibnal_send (ptl_ni_t *ni, void *private,
-                       ptl_msg_t *ptlmsg, ptl_hdr_t *hdr,
-                       int type, lnet_process_id_t tgt, int routing,
-                       unsigned int payload_niov, struct iovec *payload_iov,
-                       size_t payload_offset, size_t payload_nob);
-int kibnal_send_pages (ptl_ni_t *ni, void *private,
-                             ptl_msg_t *ptlmsg, ptl_hdr_t *hdr,
-                             int type, lnet_process_id_t tgt, int routing,
-                             unsigned int payload_niov, lnet_kiov_t *payload_kiov,
-                             size_t payload_offset, size_t payload_nob);
-int kibnal_recv(ptl_ni_t *ni, void *private,
-                      ptl_msg_t *ptlmsg, unsigned int niov,
-                      struct iovec *iov, size_t offset,
-                      size_t mlen, size_t rlen);
-int kibnal_recv_pages(ptl_ni_t *ni, void *private,
-                            ptl_msg_t *ptlmsg, unsigned int niov,
-                            lnet_kiov_t *kiov, size_t offset,
-                            size_t mlen, size_t rlen);
+                 ptl_msg_t *ptlmsg, ptl_hdr_t *hdr,
+                 int type, lnet_process_id_t tgt, int routing,
+                 unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
+                 unsigned int offset, unsigned int nob);
+int kibnal_recv(ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg, 
+                unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
+                unsigned int offset, unsigned int mlen, unsigned int rlen);
 int kibnal_accept(ptl_ni_t *ni, struct socket *sock);
 
 extern void kibnal_init_msg(kib_msg_t *msg, int type, int body_nob);
@@ -535,7 +525,7 @@ extern int kibnal_make_svcqry (kib_conn_t *conn);
 extern void kibnal_free_acceptsock (kib_acceptsock_t *as);
 extern int kibnal_listener_procint(ctl_table *table, int write, 
                                    struct file *filp, void *buffer, 
-                                   size_t *lenp);
+                                   unisgned int *lenp);
 extern int kibnal_create_peer (kib_peer_t **peerp, lnet_nid_t nid);
 extern void kibnal_put_peer (kib_peer_t *peer);
 extern int kibnal_add_persistent_peer(lnet_nid_t nid, __u32 ip, int port);
index d29558e..4c10d2a 100644 (file)
@@ -1225,18 +1225,18 @@ kibnal_start_active_rdma (int type, int status,
 }
 
 int
-kibnal_sendmsg(ptl_ni_t        *ni, 
-               void            *private,
-               ptl_msg_t       *ptlmsg,
-               ptl_hdr_t       *hdr, 
-               int              type, 
-               lnet_process_id_t target,
-               int              routing,
-               unsigned int     payload_niov, 
-               struct iovec    *payload_iov, 
-               lnet_kiov_t      *payload_kiov,
-               int              payload_offset,
-               int              payload_nob)
+kibnal_send(ptl_ni_t         *ni, 
+            void             *private,
+            ptl_msg_t        *ptlmsg,
+            ptl_hdr_t        *hdr, 
+            int               type, 
+            lnet_process_id_t target,
+            int               routing,
+            unsigned int      payload_niov, 
+            struct iovec     *payload_iov, 
+            lnet_kiov_t      *payload_kiov,
+            unsigned int      payload_offset,
+            unsigned int      payload_nob)
 {
         kib_msg_t  *ibmsg;
         kib_tx_t   *tx;
@@ -1350,35 +1350,10 @@ kibnal_sendmsg(ptl_ni_t        *ni,
         kibnal_launch_tx(tx, target.nid);
         return (0);
 }
-
-int
-kibnal_send (ptl_ni_t *ni, void *private, ptl_msg_t *cookie,
-             ptl_hdr_t *hdr, int type, lnet_process_id_t tgt, int routing,
-             unsigned int payload_niov, struct iovec *payload_iov,
-             size_t payload_offset, size_t payload_len)
-{
-        return (kibnal_sendmsg(ni, private, cookie,
-                               hdr, type, tgt, routing,
-                               payload_niov, payload_iov, NULL,
-                               payload_offset, payload_len));
-}
-
-int
-kibnal_send_pages (ptl_ni_t *ni, void *private, ptl_msg_t *cookie, 
-                   ptl_hdr_t *hdr, int type, lnet_process_id_t tgt, int routing,
-                   unsigned int payload_niov, lnet_kiov_t *payload_kiov, 
-                   size_t payload_offset, size_t payload_len)
-{
-        return (kibnal_sendmsg(ni, private, cookie,
-                               hdr, type, tgt, routing,
-                               payload_niov, NULL, payload_kiov,
-                               payload_offset, payload_len));
-}
-
 int
-kibnal_recvmsg (ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg,
-                unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
-                int offset, int mlen, int rlen)
+kibnal_recv (ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg,
+             unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
+             unsigned int offset, unsigned int mlen, unsigned int rlen)
 {
         kib_rx_t    *rx = private;
         kib_msg_t   *rxmsg = rx->rx_msg;
@@ -1430,24 +1405,6 @@ kibnal_recvmsg (ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg,
 }
 
 int
-kibnal_recv (ptl_ni_t *ni, void *private, ptl_msg_t *msg,
-             unsigned int niov, struct iovec *iov, 
-             size_t offset, size_t mlen, size_t rlen)
-{
-        return (kibnal_recvmsg (ni, private, msg, niov, iov, NULL,
-                                offset, mlen, rlen));
-}
-
-int
-kibnal_recv_pages (ptl_ni_t *ni, void *private, ptl_msg_t *msg,
-                   unsigned int niov, lnet_kiov_t *kiov, 
-                   size_t offset, size_t mlen, size_t rlen)
-{
-        return (kibnal_recvmsg (ni, private, msg, niov, NULL, kiov,
-                                offset, mlen, rlen));
-}
-
-int
 kibnal_thread_start (int (*fn)(void *arg), void *arg)
 {
         long    pid = kernel_thread (fn, arg, 0);
index 2a0fd75..85ea75e 100644 (file)
@@ -29,9 +29,7 @@ ptl_nal_t kqswnal_nal =
        .nal_shutdown   = kqswnal_shutdown,
        .nal_ctl        = kqswnal_ctl,
        .nal_send       = kqswnal_send,
-        .nal_send_pages = kqswnal_send_pages,
         .nal_recv       = kqswnal_recv,
-        .nal_recv_pages = kqswnal_recv_pages,
        .nal_fwd        = kqswnal_fwd_packet,
 };
 
index bd22164..c1b7693 100644 (file)
@@ -375,25 +375,13 @@ int kqswnal_startup (ptl_ni_t *ni);
 void kqswnal_shutdown (ptl_ni_t *ni);
 int kqswnal_ctl (ptl_ni_t *ni, unsigned int cmd, void *arg);
 int kqswnal_send (ptl_ni_t *ni, void *private,
-                        ptl_msg_t *ptlmsg, ptl_hdr_t *hdr,
-                        int type, lnet_process_id_t tgt, int routing,
-                        unsigned int payload_niov, 
-                        struct iovec *payload_iov,
-                        size_t payload_offset, size_t payload_nob);
-int kqswnal_send_pages (ptl_ni_t *ni, void *private,
-                              ptl_msg_t *ptlmsg, ptl_hdr_t *hdr,
-                              int type, lnet_process_id_t tgt, int routing,
-                              unsigned int payload_niov, 
-                              lnet_kiov_t *payload_kiov,
-                              size_t payload_offset, size_t payload_nob);
-int kqswnal_recv(ptl_ni_t *ni, void *private,
-                       ptl_msg_t *ptlmsg, unsigned int niov,
-                       struct iovec *iov, size_t offset,
-                       size_t mlen, size_t rlen);
-int kqswnal_recv_pages(ptl_ni_t *ni, void *private,
-                             ptl_msg_t *ptlmsg, unsigned int niov,
-                             lnet_kiov_t *kiov, size_t offset,
-                             size_t mlen, size_t rlen);
+                  ptl_msg_t *ptlmsg, ptl_hdr_t *hdr,
+                  int type, lnet_process_id_t tgt, int routing,
+                  unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
+                  unsigned int offset, unsigned int nob);
+int kqswnal_recv(ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg, 
+                 unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
+                 unsigned int offset, unsigned int mlen, unsigned int rlen);
 
 int kqswnal_tunables_init(void);
 void kqswnal_tunables_fini(void);
index 4748851..e7ec44b 100644 (file)
@@ -845,7 +845,7 @@ kqswnal_rdma_fetch_complete (EP_RXD *rxd)
 int
 kqswnal_rdma (kqswnal_rx_t *krx, ptl_msg_t *ptlmsg, int type,
               int niov, struct iovec *iov, lnet_kiov_t *kiov,
-              size_t offset, size_t len)
+              unsigned int offset, unsigned int len)
 {
         kqswnal_remotemd_t *rmd;
         kqswnal_tx_t       *ktx;
@@ -1000,19 +1000,19 @@ kqswnal_rdma (kqswnal_rx_t *krx, ptl_msg_t *ptlmsg, int type,
         return (rc);
 }
 
-static int
-kqswnal_sendmsg (ptl_ni_t        *ni,
-                 void            *private,
-                 ptl_msg_t       *ptlmsg,
-                 ptl_hdr_t       *hdr,
-                 int              type,
-                 lnet_process_id_t target,
-                 int              routing,
-                 unsigned int     payload_niov,
-                 struct iovec    *payload_iov,
-                 lnet_kiov_t      *payload_kiov,
-                 size_t           payload_offset,
-                 size_t           payload_nob)
+int
+kqswnal_send (ptl_ni_t         *ni,
+              void             *private,
+              ptl_msg_t        *ptlmsg,
+              ptl_hdr_t        *hdr,
+              int               type,
+              lnet_process_id_t target,
+              int               routing,
+              unsigned int      payload_niov,
+              struct iovec     *payload_iov,
+              lnet_kiov_t      *payload_kiov,
+              unsigned int      payload_offset,
+              unsigned int      payload_nob)
 {
         kqswnal_tx_t      *ktx;
         int                rc;
@@ -1254,42 +1254,6 @@ kqswnal_sendmsg (ptl_ni_t        *ni,
         return (rc == 0 ? 0 : -EIO);
 }
 
-int
-kqswnal_send (ptl_ni_t        *ni,
-              void            *private,
-              ptl_msg_t       *ptlmsg,
-              ptl_hdr_t       *hdr,
-              int              type,
-              lnet_process_id_t tgt,
-              int              routing,
-              unsigned int     payload_niov,
-              struct iovec    *payload_iov,
-              size_t           payload_offset,
-              size_t           payload_nob)
-{
-        return (kqswnal_sendmsg (ni, private, ptlmsg, hdr, type, tgt, routing,
-                                 payload_niov, payload_iov, NULL, 
-                                 payload_offset, payload_nob));
-}
-
-int
-kqswnal_send_pages (ptl_ni_t        *ni,
-                    void            *private,
-                    ptl_msg_t       *ptlmsg,
-                    ptl_hdr_t       *hdr,
-                    int              type,
-                    lnet_process_id_t tgt,
-                    int              routing,
-                    unsigned int     payload_niov,
-                    lnet_kiov_t      *payload_kiov,
-                    size_t           payload_offset,
-                    size_t           payload_nob)
-{
-        return (kqswnal_sendmsg (ni, private, ptlmsg, hdr, type, tgt, routing,
-                                 payload_niov, NULL, payload_kiov, 
-                                 payload_offset, payload_nob));
-}
-
 void
 kqswnal_fwd_packet (ptl_ni_t *ni, kpr_fwd_desc_t *fwd)
 {
@@ -1650,16 +1614,16 @@ kqswnal_csum_error (kqswnal_rx_t *krx, int ishdr)
 }
 #endif
 
-static int
-kqswnal_recvmsg (ptl_ni_t     *ni,
-                 void         *private,
-                 ptl_msg_t    *ptlmsg,
-                 unsigned int  niov,
-                 struct iovec *iov,
-                 lnet_kiov_t   *kiov,
-                 size_t        offset,
-                 size_t        mlen,
-                 size_t        rlen)
+int
+kqswnal_recv (ptl_ni_t      *ni,
+              void          *private,
+              ptl_msg_t     *ptlmsg,
+              unsigned int   niov,
+              struct iovec  *iov,
+              lnet_kiov_t   *kiov,
+              unsigned int   offset,
+              unsigned int   mlen,
+              unsigned int   rlen)
 {
         kqswnal_rx_t *krx = (kqswnal_rx_t *)private;
         char         *buffer = page_address(krx->krx_kiov[0].kiov_page);
@@ -1675,7 +1639,7 @@ kqswnal_recvmsg (ptl_ni_t     *ni,
         kqsw_csum_t   senders_csum;
         kqsw_csum_t   payload_csum = 0;
         kqsw_csum_t   hdr_csum = kqsw_csum(0, hdr, sizeof(*hdr));
-        size_t        csum_len = mlen;
+        unsigned int  csum_len = mlen;
         int           csum_frags = 0;
         int           csum_nob = 0;
         static atomic_t csum_counter;
@@ -1819,36 +1783,6 @@ kqswnal_recvmsg (ptl_ni_t     *ni,
 }
 
 int
-kqswnal_recv(ptl_ni_t     *ni,
-             void         *private,
-             ptl_msg_t    *ptlmsg,
-             unsigned int  niov,
-             struct iovec *iov,
-             size_t        offset,
-             size_t        mlen,
-             size_t        rlen)
-{
-        return (kqswnal_recvmsg(ni, private, ptlmsg, 
-                                niov, iov, NULL, 
-                                offset, mlen, rlen));
-}
-
-int
-kqswnal_recv_pages (ptl_ni_t     *ni,
-                    void         *private,
-                    ptl_msg_t    *ptlmsg,
-                    unsigned int  niov,
-                    lnet_kiov_t   *kiov,
-                    size_t        offset,
-                    size_t        mlen,
-                    size_t        rlen)
-{
-        return (kqswnal_recvmsg(ni, private, ptlmsg, 
-                                niov, NULL, kiov, 
-                                offset, mlen, rlen));
-}
-
-int
 kqswnal_thread_start (int (*fn)(void *arg), void *arg)
 {
         long    pid = kernel_thread (fn, arg, 0);
index b10153c..5effbf9 100644 (file)
@@ -31,9 +31,7 @@ ptl_nal_t kranal_nal = {
         .nal_shutdown   = kranal_shutdown,
         .nal_ctl        = kranal_ctl,
         .nal_send       = kranal_send,
-        .nal_send_pages = kranal_send_pages,
         .nal_recv       = kranal_recv,
-        .nal_recv_pages = kranal_recv_pages,
         .nal_accept     = kranal_accept,
 };
 
index b6d0e29..9d91db4 100644 (file)
@@ -452,23 +452,13 @@ int kranal_startup (ptl_ni_t *ni);
 void kranal_shutdown (ptl_ni_t *ni);
 int kranal_ctl(ptl_ni_t *ni, unsigned int cmd, void *arg);
 int kranal_send (ptl_ni_t *ni, void *private,
-                       ptl_msg_t *ptlmsg, ptl_hdr_t *hdr,
-                       int type, lnet_process_id_t tgt, int routing,
-                       unsigned int payload_niov, struct iovec *payload_iov,
-                       size_t payload_offset, size_t payload_nob);
-int kranal_send_pages (ptl_ni_t *ni, void *private,
-                             ptl_msg_t *ptlmsg, ptl_hdr_t *hdr,
-                             int type, lnet_process_id_t tgt, int routing,
-                             unsigned int payload_niov, lnet_kiov_t *payload_kiov,
-                             size_t payload_offset, size_t payload_nob);
-int kranal_recv(ptl_ni_t *ni, void *private,
-                      ptl_msg_t *ptlmsg, unsigned int niov,
-                      struct iovec *iov, size_t offset,
-                      size_t mlen, size_t rlen);
-int kranal_recv_pages(ptl_ni_t *ni, void *private,
-                            ptl_msg_t *ptlmsg, unsigned int niov,
-                            lnet_kiov_t *kiov, size_t offset,
-                            size_t mlen, size_t rlen);
+                 ptl_msg_t *ptlmsg, ptl_hdr_t *hdr,
+                 int type, lnet_process_id_t tgt, int routing,
+                 unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
+                 unsigned int offset, unsigned int nob);
+int kranal_recv(ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg, 
+                unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
+                unsigned int offset, unsigned int mlen, unsigned int rlen);
 int kranal_accept(ptl_ni_t *ni, struct socket *sock);
 
 extern void kranal_free_acceptsock (kra_acceptsock_t *ras);
index 208db6c..36a20d5 100644 (file)
@@ -614,18 +614,18 @@ kranal_consume_rxmsg (kra_conn_t *conn, void *buffer, int nob)
 }
 
 int
-kranal_do_send (ptl_ni_t        *ni,
-                void            *private,
-                ptl_msg_t       *ptlmsg,
-                ptl_hdr_t       *hdr,
-                int              type,
-                lnet_process_id_t target,
-                int              routing,
-                unsigned int     niov,
-                struct iovec    *iov,
-                lnet_kiov_t      *kiov,
-                int              offset,
-                int              nob)
+kranal_send (ptl_ni_t         *ni,
+             void             *private,
+             ptl_msg_t        *ptlmsg,
+             ptl_hdr_t        *hdr,
+             int               type,
+             lnet_process_id_t target,
+             int               routing,
+             unsigned int      niov,
+             struct iovec     *iov,
+             lnet_kiov_t      *kiov,
+             unsigned int      offset,
+             unsigned int      nob)
 {
         kra_conn_t *conn;
         kra_tx_t   *tx;
@@ -795,31 +795,9 @@ kranal_do_send (ptl_ni_t        *ni,
 }
 
 int
-kranal_send (ptl_ni_t *ni, void *private, ptl_msg_t *cookie,
-             ptl_hdr_t *hdr, int type, lnet_process_id_t tgt, int routing,
-             unsigned int niov, struct iovec *iov,
-             size_t offset, size_t len)
-{
-        return kranal_do_send(ni, private, cookie,
-                              hdr, type, tgt, routing,
-                              niov, iov, NULL, offset, len);
-}
-
-int
-kranal_send_pages (ptl_ni_t *ni, void *private, ptl_msg_t *cookie,
-                   ptl_hdr_t *hdr, int type, lnet_process_id_t tgt, int routing,
-                   unsigned int niov, lnet_kiov_t *kiov,
-                   size_t offset, size_t len)
-{
-        return kranal_do_send(ni, private, cookie,
-                              hdr, type, tgt, routing,
-                              niov, NULL, kiov, offset, len);
-}
-
-int
-kranal_do_recv (ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg,
-                unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
-                int offset, int mlen, int rlen)
+kranal_recv (ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg,
+             unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
+             unsigned int offset, unsigned int mlen, unsigned int rlen)
 {
         kra_conn_t  *conn = private;
         kra_msg_t   *rxmsg = conn->rac_rxmsg;
@@ -907,24 +885,6 @@ kranal_do_recv (ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg,
 }
 
 int
-kranal_recv (ptl_ni_t *ni, void *private, ptl_msg_t *msg,
-             unsigned int niov, struct iovec *iov,
-             size_t offset, size_t mlen, size_t rlen)
-{
-        return kranal_do_recv(ni, private, msg, niov, iov, NULL,
-                              offset, mlen, rlen);
-}
-
-int
-kranal_recv_pages (ptl_ni_t *ni, void *private, ptl_msg_t *msg,
-                   unsigned int niov, lnet_kiov_t *kiov,
-                   size_t offset, size_t mlen, size_t rlen)
-{
-        return kranal_do_recv(ni, private, msg, niov, NULL, kiov,
-                              offset, mlen, rlen);
-}
-
-int
 kranal_thread_start (int(*fn)(void *arg), void *arg)
 {
         long    pid = kernel_thread(fn, arg, 0);
index 72c2a66..8fd7e50 100644 (file)
@@ -31,9 +31,7 @@ ptl_nal_t ksocknal_nal = {
         .nal_shutdown   = ksocknal_shutdown,
         .nal_ctl        = ksocknal_ctl,
         .nal_send       = ksocknal_send,
-        .nal_send_pages = ksocknal_send_pages,
         .nal_recv       = ksocknal_recv,
-        .nal_recv_pages = ksocknal_recv_pages,
         .nal_fwd        = ksocknal_fwd_packet,
         .nal_notify     = ksocknal_notify,
         .nal_accept     = ksocknal_accept,
index 0e7d2b7..b37e9c5 100644 (file)
@@ -480,23 +480,13 @@ int ksocknal_startup (ptl_ni_t *ni);
 void ksocknal_shutdown (ptl_ni_t *ni);
 int ksocknal_ctl(ptl_ni_t *ni, unsigned int cmd, void *arg);
 int ksocknal_send (ptl_ni_t *ni, void *private,
-                         ptl_msg_t *ptlmsg, ptl_hdr_t *hdr,
-                         int type, lnet_process_id_t tgt, int routing,
-                         unsigned int payload_niov, struct iovec *payload_iov,
-                         size_t payload_offset, size_t payload_nob);
-int ksocknal_send_pages (ptl_ni_t *ni, void *private,
-                               ptl_msg_t *ptlmsg, ptl_hdr_t *hdr,
-                               int type, lnet_process_id_t tgt, int routing,
-                               unsigned int payload_niov, lnet_kiov_t *payload_kiov,
-                               size_t payload_offset, size_t payload_nob);
-int ksocknal_recv(ptl_ni_t *ni, void *private,
-                        ptl_msg_t *ptlmsg, unsigned int niov,
-                        struct iovec *iov, size_t offset,
-                        size_t mlen, size_t rlen);
-int ksocknal_recv_pages(ptl_ni_t *ni, void *private,
-                              ptl_msg_t *ptlmsg, unsigned int niov,
-                              lnet_kiov_t *kiov, size_t offset,
-                              size_t mlen, size_t rlen);
+                   ptl_msg_t *ptlmsg, ptl_hdr_t *hdr,
+                   int type, lnet_process_id_t tgt, int routing,
+                   unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
+                   unsigned int offset, unsigned int nob);
+int ksocknal_recv(ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg, 
+                  unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
+                  unsigned int offset, unsigned int mlen, unsigned int rlen);
 int ksocknal_accept(ptl_ni_t *ni, struct socket *sock);
 
 extern int ksocknal_add_peer(ptl_ni_t *ni, lnet_process_id_t id, __u32 ip, int port);
index dd4276b..4754dcf 100644 (file)
@@ -796,17 +796,18 @@ ksocknal_launch_packet (ptl_ni_t *ni, ksock_tx_t *tx, lnet_process_id_t id)
 }
 
 int
-ksocknal_sendmsg(ptl_ni_t        *ni, 
-                 void            *private, 
-                 ptl_msg_t       *cookie,
-                 ptl_hdr_t       *hdr, 
-                 int              type, 
-                 lnet_process_id_t target,
-                 unsigned int     payload_niov, 
-                 struct iovec    *payload_iov, 
-                 lnet_kiov_t      *payload_kiov,
-                 size_t           payload_offset,
-                 size_t           payload_nob)
+ksocknal_send(ptl_ni_t         *ni, 
+              void             *private, 
+              ptl_msg_t        *cookie,
+              ptl_hdr_t        *hdr, 
+              int               type, 
+              lnet_process_id_t target,
+              int               routing,
+              unsigned int      payload_niov, 
+              struct iovec     *payload_iov, 
+              lnet_kiov_t      *payload_kiov,
+              unsigned int      payload_offset,
+              unsigned int      payload_nob)
 {
         ksock_ltx_t  *ltx;
         int           desc_size;
@@ -891,30 +892,6 @@ ksocknal_sendmsg(ptl_ni_t        *ni,
         return (-EIO);
 }
 
-int
-ksocknal_send (ptl_ni_t *ni, void *private, ptl_msg_t *cookie,
-               ptl_hdr_t *hdr, int type, lnet_process_id_t tgt, int routing,
-               unsigned int payload_niov, struct iovec *payload_iov,
-               size_t payload_offset, size_t payload_len)
-{
-        return (ksocknal_sendmsg(ni, private, cookie,
-                                 hdr, type, tgt,
-                                 payload_niov, payload_iov, NULL,
-                                 payload_offset, payload_len));
-}
-
-int
-ksocknal_send_pages (ptl_ni_t *ni, void *private, ptl_msg_t *cookie, 
-                     ptl_hdr_t *hdr, int type, lnet_process_id_t tgt, int routing,
-                     unsigned int payload_niov, lnet_kiov_t *payload_kiov, 
-                     size_t payload_offset, size_t payload_len)
-{
-        return (ksocknal_sendmsg(ni, private, cookie,
-                                 hdr, type, tgt,
-                                 payload_niov, NULL, payload_kiov,
-                                 payload_offset, payload_len));
-}
-
 void
 ksocknal_fwd_packet (ptl_ni_t *ni, kpr_fwd_desc_t *fwd)
 {
@@ -1377,8 +1354,8 @@ ksocknal_process_receive (ksock_conn_t *conn)
 
 int
 ksocknal_recv (ptl_ni_t *ni, void *private, ptl_msg_t *msg,
-               unsigned int niov, struct iovec *iov, 
-               size_t offset, size_t mlen, size_t rlen)
+               unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
+               unsigned int offset, unsigned int mlen, unsigned int rlen)
 {
         ksock_conn_t *conn = (ksock_conn_t *)private;
 
@@ -1389,41 +1366,22 @@ ksocknal_recv (ptl_ni_t *ni, void *private, ptl_msg_t *msg,
         conn->ksnc_rx_nob_wanted = mlen;
         conn->ksnc_rx_nob_left   = rlen;
 
-        conn->ksnc_rx_nkiov = 0;
-        conn->ksnc_rx_kiov = NULL;
-        conn->ksnc_rx_iov = conn->ksnc_rx_iov_space.iov;
-        conn->ksnc_rx_niov =
-                lnet_extract_iov(PTL_MD_MAX_IOV, conn->ksnc_rx_iov,
-                                niov, iov, offset, mlen);
-
-        LASSERT (mlen == 
-                 lnet_iov_nob (conn->ksnc_rx_niov, conn->ksnc_rx_iov) +
-                 lnet_kiov_nob (conn->ksnc_rx_nkiov, conn->ksnc_rx_kiov));
-
-        return (0);
-}
-
-int
-ksocknal_recv_pages (ptl_ni_t *ni, void *private, ptl_msg_t *msg,
-                     unsigned int niov, lnet_kiov_t *kiov, 
-                     size_t offset, size_t mlen, size_t rlen)
-{
-        ksock_conn_t *conn = (ksock_conn_t *)private;
-
-        LASSERT (mlen <= rlen);
-        LASSERT (niov <= PTL_MD_MAX_IOV);
+        if (mlen == 0 || iov != NULL) {
+                conn->ksnc_rx_nkiov = 0;
+                conn->ksnc_rx_kiov = NULL;
+                conn->ksnc_rx_iov = conn->ksnc_rx_iov_space.iov;
+                conn->ksnc_rx_niov =
+                        lnet_extract_iov(PTL_MD_MAX_IOV, conn->ksnc_rx_iov,
+                                         niov, iov, offset, mlen);
+        } else {
+                conn->ksnc_rx_niov = 0;
+                conn->ksnc_rx_iov  = NULL;
+                conn->ksnc_rx_kiov = conn->ksnc_rx_iov_space.kiov;
+                conn->ksnc_rx_nkiov = 
+                        lnet_extract_kiov(PTL_MD_MAX_IOV, conn->ksnc_rx_kiov,
+                                          niov, kiov, offset, mlen);
+        }
         
-        conn->ksnc_cookie = msg;
-        conn->ksnc_rx_nob_wanted = mlen;
-        conn->ksnc_rx_nob_left   = rlen;
-
-        conn->ksnc_rx_niov = 0;
-        conn->ksnc_rx_iov  = NULL;
-        conn->ksnc_rx_kiov = conn->ksnc_rx_iov_space.kiov;
-        conn->ksnc_rx_nkiov = 
-                lnet_extract_kiov(PTL_MD_MAX_IOV, conn->ksnc_rx_kiov,
-                                 niov, kiov, offset, mlen);
-
         LASSERT (mlen == 
                  lnet_iov_nob (conn->ksnc_rx_niov, conn->ksnc_rx_iov) +
                  lnet_kiov_nob (conn->ksnc_rx_nkiov, conn->ksnc_rx_kiov));
index 1b0353b..2038528 100644 (file)
@@ -30,9 +30,7 @@ ptl_nal_t               kibnal_nal = {
         .nal_shutdown   = kibnal_shutdown,
         .nal_ctl        = kibnal_ctl,
         .nal_send       = kibnal_send,
-        .nal_send_pages = kibnal_send_pages,
         .nal_recv       = kibnal_recv,
-        .nal_recv_pages = kibnal_recv_pages,
 };
 
 kib_data_t              kibnal_data;
index 9a07cc9..d8c7021 100644 (file)
@@ -407,23 +407,13 @@ int kibnal_startup (ptl_ni_t *ni);
 void kibnal_shutdown (ptl_ni_t *ni);
 int kibnal_ctl(ptl_ni_t *ni, unsigned int cmd, void *arg);
 int kibnal_send (ptl_ni_t *ni, void *private,
-                       ptl_msg_t *ptlmsg, ptl_hdr_t *hdr,
-                       int type, lnet_process_id_t tgt, int routing,
-                       unsigned int payload_niov, struct iovec *payload_iov,
-                       size_t payload_offset, size_t payload_nob);
-int kibnal_send_pages (ptl_ni_t *ni, void *private,
-                             ptl_msg_t *ptlmsg, ptl_hdr_t *hdr,
-                             int type, lnet_process_id_t tgt, int routing,
-                             unsigned int payload_niov, lnet_kiov_t *payload_kiov,
-                             size_t payload_offset, size_t payload_nob);
-int kibnal_recv(ptl_ni_t *ni, void *private,
-                      ptl_msg_t *ptlmsg, unsigned int niov,
-                      struct iovec *iov, size_t offset,
-                      size_t mlen, size_t rlen);
-int kibnal_recv_pages(ptl_ni_t *ni, void *private,
-                            ptl_msg_t *ptlmsg, unsigned int niov,
-                            lnet_kiov_t *kiov, size_t offset,
-                            size_t mlen, size_t rlen);
+                 ptl_msg_t *ptlmsg, ptl_hdr_t *hdr,
+                 int type, lnet_process_id_t tgt, int routing,
+                 unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
+                 unsigned int offset, unsigned int nob);
+int kibnal_recv(ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg, 
+                unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
+                unsigned int offset, unsigned int mlen, unsigned int rlen);
 
 extern void kibnal_init_msg(kib_msg_t *msg, int type, int body_nob);
 extern void kibnal_pack_msg(kib_msg_t *msg, int credits, lnet_nid_t dstnid,
index d01c33b..94ca2fc 100644 (file)
@@ -1373,18 +1373,18 @@ kibnal_launch_tx (kib_tx_t *tx, lnet_nid_t nid)
 }
 
 int
-kibnal_sendmsg(ptl_ni_t        *ni, 
-               void            *private,
-               ptl_msg_t       *ptlmsg,
-               ptl_hdr_t       *hdr, 
-               int              type, 
-               lnet_process_id_t target,
-               int              routing,
-               unsigned int     payload_niov, 
-               struct iovec    *payload_iov, 
-               lnet_kiov_t      *payload_kiov,
-               int              payload_offset,
-               int              payload_nob)
+kibnal_send(ptl_ni_t         *ni, 
+            void             *private,
+            ptl_msg_t        *ptlmsg,
+            ptl_hdr_t        *hdr, 
+            int               type, 
+            lnet_process_id_t target,
+            int               routing,
+            unsigned int      payload_niov, 
+            struct iovec     *payload_iov, 
+            lnet_kiov_t      *payload_kiov,
+            unsigned int      payload_offset,
+            unsigned int      payload_nob)
 {
         kib_msg_t  *ibmsg;
         kib_tx_t   *tx;
@@ -1610,33 +1610,9 @@ kibnal_sendmsg(ptl_ni_t        *ni,
 }
 
 int
-kibnal_send (ptl_ni_t *ni, void *private, ptl_msg_t *cookie,
-             ptl_hdr_t *hdr, int type, lnet_process_id_t tgt, int routing,
-             unsigned int payload_niov, struct iovec *payload_iov,
-             size_t payload_offset, size_t payload_len)
-{
-        return (kibnal_sendmsg(ni, private, cookie,
-                               hdr, type, tgt, routing,
-                               payload_niov, payload_iov, NULL,
-                               payload_offset, payload_len));
-}
-
-int
-kibnal_send_pages (ptl_ni_t *ni, void *private, ptl_msg_t *cookie, 
-                   ptl_hdr_t *hdr, int type, lnet_process_id_t tgt, int routing,
-                   unsigned int payload_niov, lnet_kiov_t *payload_kiov, 
-                   size_t payload_offset, size_t payload_len)
-{
-        return (kibnal_sendmsg(ni, private, cookie,
-                               hdr, type, tgt, routing,
-                               payload_niov, NULL, payload_kiov,
-                               payload_offset, payload_len));
-}
-
-int
 kibnal_recvmsg (ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg,
                 unsigned int niov, struct iovec *iov, lnet_kiov_t *kiov,
-                size_t offset, int mlen, int rlen)
+                unsigned int offset, unsigned int mlen, unsigned int rlen)
 {
         kib_rx_t    *rx = private;
         kib_msg_t   *rxmsg = rx->rx_msg;
@@ -1741,24 +1717,6 @@ kibnal_recvmsg (ptl_ni_t *ni, void *private, ptl_msg_t *ptlmsg,
 }
 
 int
-kibnal_recv (ptl_ni_t *ni, void *private, ptl_msg_t *msg,
-             unsigned int niov, struct iovec *iov, 
-             size_t offset, size_t mlen, size_t rlen)
-{
-        return (kibnal_recvmsg (ni, private, msg, niov, iov, NULL,
-                                offset, mlen, rlen));
-}
-
-int
-kibnal_recv_pages (ptl_ni_t *ni, void *private, ptl_msg_t *msg,
-                   unsigned int niov, lnet_kiov_t *kiov, 
-                   size_t offset, size_t mlen, size_t rlen)
-{
-        return (kibnal_recvmsg (ni, private, msg, niov, NULL, kiov,
-                                offset, mlen, rlen));
-}
-
-int
 kibnal_thread_start (int (*fn)(void *arg), void *arg)
 {
         long    pid = kernel_thread (fn, arg, 0);
index 638c927..1982edf 100644 (file)
@@ -614,11 +614,12 @@ ptl_islocalnid (lnet_nid_t nid)
 }
 
 int
-ptl_islocalnet (__u32 net)
+ptl_islocalnet (__u32 net, int *orderp)
 {
         struct list_head *tmp;
         ptl_ni_t         *ni;
         unsigned long     flags;
+        int               order = 0;
         int               islocal = 0;
 
         PTL_LOCK(flags);
@@ -628,8 +629,11 @@ ptl_islocalnet (__u32 net)
 
                 if (PTL_NIDNET(ni->ni_nid) == net) {
                         islocal = 1;
+                        if (orderp != NULL)
+                                *orderp = order;
                         break;
                 }
+                order++;
         }
         
         PTL_UNLOCK(flags);
index 98cdacd..cf3a3d1 100644 (file)
@@ -565,19 +565,20 @@ int
 ptl_recv (ptl_ni_t *ni, void *private, ptl_msg_t *msg, ptl_libmd_t *md,
           lnet_size_t offset, lnet_size_t mlen, lnet_size_t rlen)
 {
-        if (mlen == 0)
-                return ((ni->ni_nal->nal_recv)(ni, private, msg,
-                                               0, NULL,
-                                               offset, mlen, rlen));
-
-        if ((md->md_options & LNET_MD_KIOV) == 0)
-                return ((ni->ni_nal->nal_recv)(ni, private, msg,
-                                               md->md_niov, md->md_iov.iov,
-                                               offset, mlen, rlen));
-
-        return ((ni->ni_nal->nal_recv_pages)(ni, private, msg,
-                                             md->md_niov, md->md_iov.kiov,
-                                             offset, mlen, rlen));
+        int           niov = 0;
+        struct iovec *iov = NULL;
+        lnet_kiov_t  *kiov = NULL;
+
+        if (mlen != 0) {
+                niov = md->md_niov;
+                if (((md->md_options) & LNET_MD_KIOV) != 0)
+                        kiov = md->md_iov.kiov;
+                else
+                        iov = md->md_iov.iov;
+        }
+        
+        return (ni->ni_nal->nal_recv)(ni, private, msg, 
+                                      niov, iov, kiov, offset, mlen, rlen);
 }
 
 int
@@ -587,6 +588,9 @@ ptl_send (ptl_ni_t *ni, void *private, ptl_msg_t *msg,
 {
         unsigned long flags;
         lnet_nid_t    gw_nid;
+        int           niov = 0;
+        struct iovec *iov = NULL;
+        lnet_kiov_t  *kiov = NULL;
         int           routing = 0;
         int           rc;
 
@@ -631,21 +635,17 @@ ptl_send (ptl_ni_t *ni, void *private, ptl_msg_t *msg,
         }
         
         target.nid = gw_nid;
+
+        if (len != 0) {
+                niov = md->md_niov;
+                if (((md->md_options) & LNET_MD_KIOV) != 0)
+                        kiov = md->md_iov.kiov;
+                else
+                        iov = md->md_iov.iov;
+        }
         
-        if (len == 0)
-                rc = (ni->ni_nal->nal_send)(ni, private, msg, hdr, 
-                                            type, target, routing,
-                                            0, NULL, offset, len);
-        else if ((md->md_options & LNET_MD_KIOV) == 0)
-                rc = (ni->ni_nal->nal_send)(ni, private, msg, hdr, 
-                                            type, target, routing,
-                                            md->md_niov, md->md_iov.iov,
-                                            offset, len);
-        else
-                rc = (ni->ni_nal->nal_send_pages)(ni, private, msg, hdr, 
-                                                  type, target, routing,
-                                                  md->md_niov, md->md_iov.kiov,
-                                                  offset, len);
+        rc = (ni->ni_nal->nal_send)(ni, private, msg, hdr, type, target, routing,
+                                    niov, iov, kiov, offset, len);
 
         ptl_ni_decref(ni);                      /* lose ref from lnet_lookup */
         return rc;
@@ -1372,10 +1372,10 @@ LNetGet(lnet_handle_md_t mdh, lnet_process_id_t target,
 }
 
 int
-LNetDist (lnet_handle_ni_t interface, lnet_nid_t nid)
+LNetDist (lnet_handle_ni_t interface, lnet_nid_t nid, int *order)
 {
         LASSERT (lnet_apini.apini_init);
         LASSERT (lnet_apini.apini_refcount > 0);
         
-        return kpr_distance(nid);
+        return kpr_distance(nid, order);
 }
index 67c10e9..ff8d15a 100644 (file)
 #include <lnet/lib-lnet.h>
 
 int
-lonal_send (ptl_ni_t        *ni,
-           void            *private,
-           ptl_msg_t       *ptlmsg,
-           ptl_hdr_t       *hdr,
-           int              type,
+lonal_send (ptl_ni_t         *ni,
+           void             *private,
+           ptl_msg_t        *ptlmsg,
+           ptl_hdr_t        *hdr,
+           int               type,
            lnet_process_id_t target,
-           int              routing,
-           unsigned int     payload_niov,
-           struct iovec    *payload_iov,
-           size_t           payload_offset,
-           size_t           payload_nob)
+           int               routing,
+           unsigned int      payload_niov,
+           struct iovec     *payload_iov,
+            lnet_kiov_t      *payload_kiov,
+           unsigned int      payload_offset,
+           unsigned int      payload_nob)
 {
-        lo_desc_t lod = {
-                .lod_type    = LOD_IOV,
-                .lod_niov    = payload_niov,
-                .lod_offset  = payload_offset,
-                .lod_nob     = payload_nob,
-                .lod_iov     = { .iov = payload_iov } };
+        lo_desc_t lod = { .lod_niov    = payload_niov,
+                          .lod_offset  = payload_offset,
+                          .lod_nob     = payload_nob};
         int rc;
 
         LASSERT (!routing);
 
+        if (payload_nob == 0 || payload_iov != NULL) {
+                lod.lod_type     = LOD_IOV;
+                lod.lod_iov.iov  = payload_iov;
+        } else {
+#ifndef __KERNEL__
+                LBUG();
+#else
+                lod.lod_type     = LOD_KIOV;
+                lod.lod_iov.kiov = payload_kiov;
+#endif
+        }
+        
         rc = lnet_parse(ni, hdr, &lod);
         if (rc == 0)
                 lnet_finalize(ni, private, ptlmsg, 0);
@@ -51,23 +61,16 @@ lonal_send (ptl_ni_t        *ni,
         return rc;
 }
 
-int
-lonal_recv(ptl_ni_t     *ni,
-          void         *private,
-          ptl_msg_t    *ptlmsg,
-          unsigned int  niov,
-          struct iovec *iov,
-          size_t        offset,
-          size_t        mlen,
-          size_t        rlen)
+void
+lonal_copy_iov(lo_desc_t    *lod,
+               unsigned int  niov,
+               struct iovec *iov,
+               unsigned int  offset,
+               unsigned int  mlen)
 {
-        lo_desc_t *lod = (lo_desc_t *)private;
-
-        /* I only handle mapped->mapped matches */
-        LASSERT(mlen == 0 || lod->lod_type == LOD_IOV);
-
-        if (mlen == 0)
-                goto out;
+        /* I only copy iovec->iovec */
+        LASSERT(lod->lod_type == LOD_IOV);
+        LASSERT(mlen > 0);
 
         while (offset >= iov->iov_len) {
                 offset -= iov->iov_len;
@@ -116,65 +119,27 @@ lonal_recv(ptl_ni_t     *ni,
 
                 mlen -= fraglen;
         } while (mlen > 0);
-        
- out:
-        lnet_finalize(ni, private, ptlmsg, 0);
-        return 0;
 }
 
-#ifdef __KERNEL__
-int
-lonal_send_pages (ptl_ni_t        *ni,
-                 void            *private,
-                 ptl_msg_t       *ptlmsg,
-                 ptl_hdr_t       *hdr,
-                 int              type,
-                 lnet_process_id_t target,
-                 int              routing,
-                 unsigned int     payload_niov,
-                 lnet_kiov_t      *payload_kiov,
-                 size_t           payload_offset,
-                 size_t           payload_nob)
-{
-        lo_desc_t lod = {
-                .lod_type     = LOD_KIOV,
-                .lod_niov     = payload_niov,
-                .lod_offset   = payload_offset,
-                .lod_nob      = payload_nob,
-                .lod_iov      = { .kiov = payload_kiov } };
-        int   rc;
-
-        LASSERT (!routing);
-
-        rc = lnet_parse(ni, hdr, &lod);
-        if (rc == 0)
-                lnet_finalize(ni, private, ptlmsg, 0);
-        
-        return rc;
-}
-
-int
-lonal_recv_pages(ptl_ni_t     *ni,
-                void         *private,
-                ptl_msg_t    *ptlmsg,
-                unsigned int  niov,
-                lnet_kiov_t   *kiov,
-                size_t        offset,
-                size_t        mlen,
-                size_t        rlen)
+void
+lonal_copy_kiov(lo_desc_t    *lod,
+                unsigned int  niov,
+                lnet_kiov_t  *kiov,
+                unsigned int  offset,
+                unsigned int  mlen)
 {
+#ifndef __KERNEL__
+        LBUG();
+#else
         void          *srcaddr = NULL;
         void          *dstaddr = NULL;
         unsigned long  srcfrag = 0;
         unsigned long  dstfrag = 0;
         unsigned long  fraglen;
-        lo_desc_t    *lod = (lo_desc_t *)private;
-
-        /* I only handle unmapped->unmapped matches */
-        LASSERT(mlen == 0 || lod->lod_type == LOD_KIOV);
 
-        if (mlen == 0)
-                goto out;
+        /* I only copy kiov->kiov */
+        LASSERT(lod->lod_type == LOD_KIOV);
+        LASSERT(mlen > 0);
 
         while (offset >= kiov->kiov_len) {
                 offset -= kiov->kiov_len;
@@ -242,12 +207,33 @@ lonal_recv_pages(ptl_ni_t     *ni,
 
         if (srcaddr != NULL)
                 kunmap(lod->lod_iov.kiov->kiov_page);
+#endif
+}
+
+int
+lonal_recv(ptl_ni_t     *ni,
+           void         *private,
+           ptl_msg_t    *ptlmsg,
+           unsigned int  niov,
+           struct iovec *iov,
+           lnet_kiov_t  *kiov,
+           unsigned int  offset,
+           unsigned int  mlen,
+           unsigned int  rlen)
+{
+        lo_desc_t    *lod = (lo_desc_t *)private;
+
+        if (mlen != 0) {
+                if (iov != NULL)
+                        lonal_copy_iov(lod, niov, iov, offset, mlen);
+                else
+                        lonal_copy_kiov(lod, niov, kiov, offset, mlen);
+        }
 
- out:
         lnet_finalize(ni, private, ptlmsg, 0);
         return 0;
 }
-#endif
+
 
 static int lonal_instanced;
 
@@ -276,10 +262,6 @@ ptl_nal_t ptl_lonal = {
         .nal_shutdown   = lonal_shutdown,
         .nal_send       = lonal_send,
         .nal_recv       = lonal_recv,
-#ifdef __KERNEL__
-        .nal_send_pages = lonal_send_pages,
-        .nal_recv_pages = lonal_recv_pages,
-#endif
 };
 
 ptl_ni_t *ptl_loni;
index 9a91a37..8c259b9 100644 (file)
@@ -240,6 +240,7 @@ lnet_lookup (ptl_ni_t **nip, lnet_nid_t target_nid, int nob)
         ptl_ni_t            *gwni = NULL;
         kpr_gateway_entry_t *ge = NULL;
         __u32                target_net = PTL_NIDNET(target_nid);
+        __u32                gateway_net;
 
         /* Return the NID I must send to, to reach 'target_nid' */
         
@@ -292,31 +293,32 @@ lnet_lookup (ptl_ni_t **nip, lnet_nid_t target_nid, int nob)
 
                 if (!re->kpre_gateway->kpge_alive) /* gateway down */
                         continue;
-                
+
+                gateway_net = PTL_NIDNET(re->kpre_gateway->kpge_nid);
+
                 if (ni != NULL) {
                         /* local ni determined */
-                        if (PTL_NIDNET(ni->ni_nid) != /* gateway not on ni's net */
-                            PTL_NIDNET(re->kpre_gateway->kpge_nid))
+                        if (gateway_net !=      /* gateway not on ni's net */
+                            PTL_NIDNET(ni->ni_nid))
                                 continue;
 
                         if (ge != NULL &&
                             kpr_ge_isbetter (ge, re->kpre_gateway))
                                 continue;
 
-                } else if (ge != NULL) {        /* another gateway */
+                } else if (!ptl_islocalnet(gateway_net, NULL)) {
+                        continue;               /* not on a local net */
+                } else if (ge != NULL) {        
+                        /* already got 1 candidate gateway */
                         LASSERT (gwni != NULL);
-                        /* we don't allow gateways on different nets to get
-                         * into the route table */
-                        LASSERT (PTL_NIDNET(gwni->ni_nid) ==
-                                 PTL_NIDNET(re->kpre_gateway->kpge_nid));
 
                         if (kpr_ge_isbetter(ge, re->kpre_gateway))
                                 continue;
                 } else {
                         LASSERT (gwni == NULL);
+                        gwni = lnet_net2ni(gateway_net);
 
-                        gwni = lnet_net2ni(PTL_NIDNET(re->kpre_gateway->kpge_nid));
-                        if (gwni == NULL)       /* gateway not on a local net */
+                        if (gwni == NULL)       /* local nets changed */
                                 continue;
                 }
 
@@ -351,26 +353,30 @@ lnet_lookup (ptl_ni_t **nip, lnet_nid_t target_nid, int nob)
 }
 
 int
-kpr_distance (lnet_nid_t nid)
+kpr_distance (lnet_nid_t nid, int *orderp)
 {
         unsigned long     flags;
        struct list_head *e;
         kpr_net_entry_t  *ne;
         __u32             net = PTL_NIDNET(nid);
         int               dist = -ENETUNREACH;
-        
-        if (ptl_islocalnet(net))
+        int               order = 0;
+
+        if (ptl_islocalnet(net, orderp))
                 return 0;
 
        read_lock_irqsave(&kpr_state.kpr_rwlock, flags);
 
         list_for_each (e, &kpr_state.kpr_nets) {
                ne = list_entry (e, kpr_net_entry_t, kpne_list);
-                
+
                 if (ne->kpne_net == net) {
                         dist = ne->kpne_hops;
+                        if (orderp != NULL)
+                                *orderp = order;
                         break;
                 }
+                order++;
         }
 
        read_unlock_irqrestore(&kpr_state.kpr_rwlock, flags);
@@ -822,8 +828,8 @@ kpr_get_route (int idx, __u32 *net, __u32 *hops,
                                 *hops = ne->kpne_hops;
                                 *gateway_nid = ge->kpge_nid;
                                 *alive = ge->kpge_alive;
-                                *ignored = !ptl_islocalnet(ne->kpne_net) &&
-                                           ptl_islocalnet(ge->kpge_nid);
+                                *ignored = ptl_islocalnet(ne->kpne_net, NULL) ||
+                                           !ptl_islocalnet(PTL_NIDNET(ge->kpge_nid), NULL);
 
                                 read_unlock_irqrestore(&kpr_state.kpr_rwlock, 
                                                        flags);
@@ -980,8 +986,11 @@ kpr_ctl(unsigned int cmd, void *arg)
 }
 
 int
-kpr_distance(lnet_nid_t nid)
+kpr_distance(lnet_nid_t nid, int *orderp)
 {
+        if (!lnet_net2ni(PTL_NIDNET(nid), orderp))
+                return -ENETUNREACH;
+        
         return 0;
 }
 
index 7fb71cd..4078b1f 100644 (file)
@@ -36,6 +36,7 @@ typedef struct
         atomic_t                kpge_weight;
         time_t                  kpge_timestamp;
         int                     kpge_alive;
+        int                     kpge_checked;
         int                     kpge_refcount;
         lnet_nid_t              kpge_nid;
 } kpr_gateway_entry_t;
index d696772..50549ae 100644 (file)
@@ -216,8 +216,8 @@ kpr_seq_routes_show (struct seq_file *s, void *iter)
         hops = sri->sri_net->kpne_hops;
         nid = sri->sri_route->kpre_gateway->kpge_nid;
         alive = sri->sri_route->kpre_gateway->kpge_alive;
-        ignored = !ptl_islocalnet(sri->sri_net->kpne_net) &&
-                  ptl_islocalnet(sri->sri_route->kpre_gateway->kpge_nid);
+        ignored = ptl_islocalnet(sri->sri_net->kpne_net, NULL) ||
+                  !ptl_islocalnet(sri->sri_route->kpre_gateway->kpge_nid, NULL);
 
         read_unlock_irqrestore(&kpr_state.kpr_rwlock, flags);
 
index 974a336..f322116 100644 (file)
@@ -44,12 +44,13 @@ extern int procbridge_startup (ptl_ni_t *);
 extern void procbridge_shutdown (ptl_ni_t *);
 
 extern int tcpnal_send(ptl_ni_t *ni, void *private, ptl_msg_t *cookie,
-                             ptl_hdr_t *hdr, int type, lnet_process_id_t target,
-                             int routing, unsigned int niov, struct iovec *iov,
-                             size_t offset, size_t len);
+                       ptl_hdr_t *hdr, int type, lnet_process_id_t target,
+                       int routing, unsigned int niov, 
+                       struct iovec *iov, ptl_kiov_t *kiov,
+                       unsigned int offset, unsigned int len);
 int tcpnal_recv(ptl_ni_t *ni, void *private, ptl_msg_t *cookie,
-                      unsigned int niov, struct iovec *iov,
-                      size_t offset, size_t mlen, size_t rlen);
+                unsigned int niov, struct iovec *iov, ptl_kiov_t *kiov,
+                unsigned int offset, unsigned int mlen, unsigned int rlen);
 
 
 
index b266496..33ac67a 100644 (file)
 #include <syscall.h>
 #endif
 
-/* Function:  tcpnal_send
- * Arguments: ni:      pointer to NAL instance
- *            private: unused
- *            cookie:  passed back to the portals library
- *            hdr:     pointer to the portals header
- *            nid:     destination node
- *            pid:     destination process
- *            data:    body of the message
- *            len:     length of the body
- * Returns: zero on success
- *
- * sends a packet to the peer, after insuring that a connection exists
- */
-int tcpnal_send(ptl_ni_t *ni,
-                      void *private,
-                      ptl_msg_t *cookie,
-                      ptl_hdr_t *hdr,
-                      int type,
-                      lnet_process_id_t target,
-                      int routing,
-                      unsigned int niov,
-                      struct iovec *iov,
-                      size_t offset,
-                      size_t len)
+int tcpnal_send(ptl_ni_t         *ni,
+                void             *private,
+                ptl_msg_t        *cookie,
+                ptl_hdr_t        *hdr,
+                int               type,
+                lnet_process_id_t target,
+                int               routing,
+                unsigned int      niov,
+                struct iovec     *iov,
+                ptl_kiov_t        kiov,
+                unsigned int      offset,
+                unsigned int      len)
 {
     connection c;
     bridge b=(bridge)ni->ni_data;
@@ -92,6 +80,7 @@ int tcpnal_send(ptl_ni_t *ni,
        nonstandard */
 
     LASSERT (niov <= 256);
+    LASSERT (len == 0 || iov != NULL);          /* I don't understand kiovs */
 
     tiov[0].iov_base = hdr;
     tiov[0].iov_len = sizeof(ptl_hdr_t);
@@ -142,38 +131,27 @@ int tcpnal_send(ptl_ni_t *ni,
 }
 
 
-/* Function:  tcpnal_recv
- * Arguments: ptl_ni_t *:        pointer to NAL instance
- *            void *private:     connection pointer passed through
- *                               lnet_parse()
- *            ptl_msg_t *cookie: passed back to portals library
- *            user_ptr data:     pointer to the destination buffer
- *            size_t mlen:       length of the body
- *            size_t rlen:       length of data in the network
- * Returns: zero on success
- *
- * blocking read of the requested data. must drain out the
- * difference of mainpulated and requested lengths from the network
- */
-int tcpnal_recv(ptl_ni_t *ni,
-                      void *private,
-                      ptl_msg_t *cookie,
-                      unsigned int niov,
-                      struct iovec *iov,
-                      size_t offset,
-                      size_t mlen,
-                      size_t rlen)
+int tcpnal_recv(ptl_ni_t     *ni,
+                void         *private,
+                ptl_msg_t    *cookie,
+                unsigned int  niov,
+                struct iovec *iov,
+                plt_kiov_t   *kiov,
+                unsigned int  offset,
+                unsigned int  mlen,
+                unsigned int  rlen)
 {
     struct iovec tiov[256];
     int ntiov;
     int i;
 
-    if (!niov)
+    if (mlen == 0)
             goto finalize;
 
     LASSERT(mlen);
     LASSERT(rlen);
     LASSERT(rlen >= mlen);
+    LASSERT(iov != NULL);                       /* I don't understand kiovs */
 
     ntiov = lnet_extract_iov(256, tiov, niov, iov, offset, mlen);
     
index e2a0d44..13c2683 100644 (file)
@@ -6,5 +6,5 @@ ptlctl
 .deps
 routerstat
 wirecheck
-gmnalnid
+gmlndnid
 .*.cmd