#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))
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;
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));
}
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)));
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;
}
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);
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) {
}
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++;
{
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);
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() */
{
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() */
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");