Whamcloud - gitweb
Landing b_hd_newconfig on HEAD
[fs/lustre-release.git] / lnet / tests / ping_srv.c
index ae0d722..22eefbf 100644 (file)
@@ -26,7 +26,7 @@
 #define DEBUG_SUBSYSTEM S_PINGER
 
 #include <libcfs/kp30.h>
-#include <portals/p30.h>
+#include <lnet/lnet.h>
 #include "ping.h"
 
 #define STDSIZE (sizeof(int) + sizeof(int) + sizeof(struct timeval))
@@ -34,7 +34,6 @@
 
 static unsigned ping_head_magic;
 static unsigned ping_bulk_magic;
-static int nal  = SOCKNAL;                            // Your NAL,
 static unsigned long packets_valid = 0;         // Valid packets 
 static int running = 1;
 atomic_t pkt;
@@ -52,28 +51,28 @@ static void *pingsrv_shutdown(int err)
         switch (err) {
                 case 1:
                         /* Unlink any memory descriptors we may have used */
-                        if ((rc = PtlMDUnlink (server->mdin_h)))
-                                PDEBUG ("PtlMDUnlink (out head buffer)", rc);
+                        if ((rc = LNetMDUnlink (server->mdin_h)))
+                                PDEBUG ("LNetMDUnlink (out head buffer)", rc);
                 case 2:
                         /* Free the event queue */
-                        if ((rc = PtlEQFree (server->eq)))
-                                PDEBUG ("PtlEQFree", rc);
+                        if ((rc = LNetEQFree (server->eq)))
+                                PDEBUG ("LNetEQFree", rc);
 
                         /* Unlink the client portal from the ME list */
-                        if ((rc = PtlMEUnlink (server->me)))
-                                        PDEBUG ("PtlMEUnlink", rc);
+                        if ((rc = LNetMEUnlink (server->me)))
+                                        PDEBUG ("LNetMEUnlink", rc);
 
                 case 3:
-                        PtlNIFini (server->ni);
+                        LNetNIFini ();
 
                 case 4:
                         
                 case 5:
                         if (server->in_buf != NULL)
-                                PORTAL_FREE (server->in_buf, MAXSIZE);
+                                LIBCFS_FREE (server->in_buf, MAXSIZE);
                         
                         if (server != NULL)
-                                PORTAL_FREE (server, 
+                                LIBCFS_FREE (server, 
                                              sizeof (struct pingsrv_data));
                         
         }
@@ -89,17 +88,18 @@ int pingsrv_thread(void *arg)
         unsigned long magic;
         unsigned long ping_bulk_magic = __cpu_to_le32(0xcafebabe);
         
-        kportal_daemonize ("pingsrv");
+        cfs_daemonize ("pingsrv");
         server->tsk =  cfs_current();
         
         while (running) {
-                set_current_state (TASK_INTERRUPTIBLE);
+                set_current_state (CFS_TASK_INTERRUPTIBLE);
                 if (atomic_read (&pkt) == 0) {
-                        schedule_timeout (MAX_SCHEDULE_TIMEOUT);
+                        cfs_schedule_timeout (CFS_TASK_INTERRUPTIBLE, 
+                                              MAX_SCHEDULE_TIMEOUT);
                         continue;
                 }
                
-                magic =  __le32_to_cpu(*((int *)(server->evnt.md.start 
+                magic =  __le32_to_cpu(*((int *)((char *)server->evnt.md.start 
                                         + server->evnt.offset)));
                 
                 
@@ -112,14 +112,14 @@ int pingsrv_thread(void *arg)
                 server->mdout.length    = server->evnt.rlength;
                 server->mdout.start     = server->in_buf;
                 server->mdout.threshold = 1; 
-                server->mdout.options   = PTL_MD_EVENT_START_DISABLE | PTL_MD_OP_PUT;
+                server->mdout.options   = LNET_MD_OP_PUT;
                 server->mdout.user_ptr  = NULL;
-                server->mdout.eq_handle = PTL_EQ_NONE;
+                server->mdout.eq_handle = LNET_EQ_NONE;
        
                 /* Bind the outgoing buffer */
-                if ((rc = PtlMDBind (server->ni, server->mdout, 
-                                     PTL_UNLINK, &server->mdout_h))) {
-                         PDEBUG ("PtlMDBind", rc);
+                if ((rc = LNetMDBind (server->mdout, 
+                                     LNET_UNLINK, &server->mdout_h))) {
+                         PDEBUG ("LNetMDBind", rc);
                          pingsrv_shutdown (1);
                          return 1;
                }
@@ -128,19 +128,21 @@ int pingsrv_thread(void *arg)
                 server->mdin.start     = server->in_buf;
                 server->mdin.length    = MAXSIZE;
                 server->mdin.threshold = 1; 
-                server->mdin.options   = PTL_MD_EVENT_START_DISABLE | PTL_MD_OP_PUT;
+                server->mdin.options   = LNET_MD_OP_PUT;
                 server->mdin.user_ptr  = NULL;
                 server->mdin.eq_handle = server->eq;
         
-                if ((rc = PtlMDAttach (server->me, server->mdin,
-                        PTL_UNLINK, &server->mdin_h))) {
-                        PDEBUG ("PtlMDAttach (bulk)", rc);
+                if ((rc = LNetMDAttach (server->me, server->mdin,
+                        LNET_UNLINK, &server->mdin_h))) {
+                        PDEBUG ("LNetMDAttach (bulk)", rc);
                         CDEBUG (D_OTHER, "ping server resources allocated\n");
                 }
                 
-                if ((rc = PtlPut (server->mdout_h, PTL_NOACK_REQ,
-                         server->evnt.initiator, PTL_PING_CLIENT, 0, 0, 0, 0)))
-                         PDEBUG ("PtlPut", rc);
+                if ((rc = LNetPut (server->evnt.target.nid, server->mdout_h, 
+                                   LNET_NOACK_REQ,
+                                   server->evnt.initiator, PTL_PING_CLIENT, 
+                                   0, 0, 0)))
+                         PDEBUG ("LNetPut", rc);
                 
                 atomic_dec (&pkt);
                 
@@ -150,13 +152,13 @@ int pingsrv_thread(void *arg)
         return 0;    
 }
 
-static void pingsrv_packet(ptl_event_t *ev)
+static void pingsrv_packet(lnet_event_t *ev)
 {
         atomic_inc (&pkt);
         wake_up_process (server->tsk);
 } /* pingsrv_head() */
 
-static void pingsrv_callback(ptl_event_t *ev)
+static void pingsrv_callback(lnet_event_t *ev)
 {
         
         if (ev == NULL) {
@@ -165,12 +167,13 @@ static void pingsrv_callback(ptl_event_t *ev)
         }
         server->evnt = *ev;
         
-        CWARN ("received ping from nid "LPX64" "
+        CWARN ("received ping from nid %s "
                "(off=%u rlen=%u mlen=%u head=%x seq=%d size=%d)\n",
-               ev->initiator.nid, ev->offset, ev->rlength, ev->mlength,
-               __le32_to_cpu(*((int *)(ev->md.start + ev->offset))),
-               __le32_to_cpu(*((int *)(ev->md.start + ev->offset + sizeof(unsigned)))),
-               __le32_to_cpu(*((int *)(ev->md.start + ev->offset + 2 * 
+               libcfs_nid2str(ev->initiator.nid), 
+               ev->offset, ev->rlength, ev->mlength,
+               __le32_to_cpu(*((int *)((char *)ev->md.start + ev->offset))),
+               __le32_to_cpu(*((int *)((char *)ev->md.start + ev->offset + sizeof(unsigned)))),
+               __le32_to_cpu(*((int *)((char *)ev->md.start + ev->offset + 2 * 
                                sizeof(unsigned)))));
         
         packets_valid++;
@@ -184,41 +187,38 @@ static struct pingsrv_data *pingsrv_setup(void)
 {
         int rc;
 
-        server->ni = PTL_INVALID_HANDLE;
-
-       /* Aquire and initialize the proper nal for portals. */
-        rc = PtlNIInit(nal, 0, NULL, NULL, &server->ni);
-        if (!(rc == PTL_OK || rc == PTL_IFACE_DUP)) {
-                CDEBUG (D_OTHER, "NAL %x not loaded\n", nal);
+        /* Aquire and initialize the proper nal for portals. */
+        rc = LNetNIInit(0);
+        if (!(rc == 0 || rc == 1)) {
+                CDEBUG (D_OTHER, "LNetNIInit: error %d\n", rc);
                 return pingsrv_shutdown (4);
         }
 
 
         /* Based on the initialization aquire our unique portal ID. */
-        if ((rc = PtlGetId (server->ni, &server->my_id))) {
-                PDEBUG ("PtlGetId", rc);
+        if ((rc = LNetGetId (1, &server->my_id))) {
+                PDEBUG ("LNetGetId", rc);
                 return pingsrv_shutdown (2);
         }
 
-        server->id_local.nid = PTL_NID_ANY;
-        server->id_local.pid = PTL_PID_ANY;
+        server->id_local.nid = LNET_NID_ANY;
+        server->id_local.pid = LNET_PID_ANY;
 
         /* Attach a match entries for header packets */
-        if ((rc = PtlMEAttach (server->ni, PTL_PING_SERVER,
+        if ((rc = LNetMEAttach (PTL_PING_SERVER,
             server->id_local,0, ~0,
-            PTL_RETAIN, PTL_INS_AFTER, &server->me))) {
-                PDEBUG ("PtlMEAttach", rc);
+            LNET_RETAIN, LNET_INS_AFTER, &server->me))) {
+                PDEBUG ("LNetMEAttach", rc);
                 return pingsrv_shutdown (2);
         }
 
 
-        if ((rc = PtlEQAlloc (server->ni, 1024, &pingsrv_callback,
-                                        &server->eq))) {
-                PDEBUG ("PtlEQAlloc (callback)", rc);
+        if ((rc = LNetEQAlloc (1024, &pingsrv_callback, &server->eq))) {
+                PDEBUG ("LNetEQAlloc (callback)", rc);
                 return pingsrv_shutdown (2);
         }
         
-        PORTAL_ALLOC (server->in_buf, MAXSIZE);
+        LIBCFS_ALLOC (server->in_buf, MAXSIZE);
         if(!server->in_buf){
                 CDEBUG (D_OTHER,"Allocation error\n");
                 return pingsrv_shutdown(2);
@@ -228,29 +228,36 @@ static struct pingsrv_data *pingsrv_setup(void)
         server->mdin.start     = server->in_buf;
         server->mdin.length    = MAXSIZE;
         server->mdin.threshold = 1; 
-        server->mdin.options   = PTL_MD_EVENT_START_DISABLE | PTL_MD_OP_PUT;
+        server->mdin.options   = LNET_MD_OP_PUT;
         server->mdin.user_ptr  = NULL;
         server->mdin.eq_handle = server->eq;
         memset (server->in_buf, 0, STDSIZE);
-        
-        if ((rc = PtlMDAttach (server->me, server->mdin,
-                PTL_UNLINK, &server->mdin_h))) {
-                    PDEBUG ("PtlMDAttach (bulk)", rc);
+
+        if ((rc = LNetMDAttach (server->me, server->mdin,
+                LNET_UNLINK, &server->mdin_h))) {
+                    PDEBUG ("LNetMDAttach (bulk)", rc);
                 CDEBUG (D_OTHER, "ping server resources allocated\n");
        }
+
         /* Success! */
-        return server; 
+        return server;
 } /* pingsrv_setup() */
 
-static int pingsrv_start(void) 
+static int pingsrv_start(void)
 {
+        long pid;
+
         /* Setup our server */
         if (!pingsrv_setup()) {
                 CDEBUG (D_OTHER, "pingsrv_setup() failed, server stopped\n");
                 return -ENOMEM;
         }
-        cfs_kernel_thread (pingsrv_thread,NULL,0);
+        pid = cfs_kernel_thread (pingsrv_thread,NULL,0);
+        if (pid < 0) {
+                CERROR("Can't start pingsrv thread: rc = %ld\n", pid);
+                return (int)pid;
+        }
+
         return 0;
 } /* pingsrv_start() */
 
@@ -258,7 +265,7 @@ static int __init pingsrv_init(void)
 {
         ping_head_magic = __cpu_to_le32(PING_HEADER_MAGIC);
         ping_bulk_magic = __cpu_to_le32(PING_BULK_MAGIC);
-        PORTAL_ALLOC (server, sizeof(struct pingsrv_data));  
+        LIBCFS_ALLOC (server, sizeof(struct pingsrv_data));  
         atomic_set(&pkt, 0);
         return pingsrv_start ();
 } /* pingsrv_init() */
@@ -270,17 +277,13 @@ static void /*__exit*/ pingsrv_cleanup(void)
         running = 0;
         wake_up_process (server->tsk);
         while (running != 1) {
-                set_current_state (TASK_UNINTERRUPTIBLE);
-                schedule_timeout (cfs_time_seconds(1));
+                set_current_state (CFS_TASK_UNINT);
+                cfs_schedule_timeout (CFS_TASK_UNINT, cfs_time_seconds(1));
         }
         
 } /* pingsrv_cleanup() */
 
 
-MODULE_PARM(nal, "i");
-MODULE_PARM_DESC(nal, "Use the specified NAL "
-                "(2-ksocknal, 1-kqswnal)");
 MODULE_AUTHOR("Brian Behlendorf (LLNL)");
 MODULE_DESCRIPTION("A kernel space ping server for portals testing");
 MODULE_LICENSE("GPL");