From 35a9ac1e95a60cf35bf36456b300c71ba39179c5 Mon Sep 17 00:00:00 2001 From: eeb Date: Thu, 18 Nov 2004 10:36:06 +0000 Subject: [PATCH] * Backed out lbnal (it's going to be called lonal) --- lnet/klnds/lblnd/.cvsignore | 10 -- lnet/klnds/lblnd/Makefile.in | 4 - lnet/klnds/lblnd/autoMakefile.am | 11 -- lnet/klnds/lblnd/lbnal.c | 170 ------------------------ lnet/klnds/lblnd/lbnal.h | 77 ----------- lnet/klnds/lblnd/lbnal_cb.c | 272 --------------------------------------- 6 files changed, 544 deletions(-) delete mode 100644 lnet/klnds/lblnd/.cvsignore delete mode 100644 lnet/klnds/lblnd/Makefile.in delete mode 100644 lnet/klnds/lblnd/autoMakefile.am delete mode 100644 lnet/klnds/lblnd/lbnal.c delete mode 100644 lnet/klnds/lblnd/lbnal.h delete mode 100644 lnet/klnds/lblnd/lbnal_cb.c diff --git a/lnet/klnds/lblnd/.cvsignore b/lnet/klnds/lblnd/.cvsignore deleted file mode 100644 index 5ed596b..0000000 --- a/lnet/klnds/lblnd/.cvsignore +++ /dev/null @@ -1,10 +0,0 @@ -.deps -Makefile -.*.cmd -autoMakefile.in -autoMakefile -*.ko -*.mod.c -.*.flags -.tmp_versions -.depend diff --git a/lnet/klnds/lblnd/Makefile.in b/lnet/klnds/lblnd/Makefile.in deleted file mode 100644 index 0b4ca19..0000000 --- a/lnet/klnds/lblnd/Makefile.in +++ /dev/null @@ -1,4 +0,0 @@ -MODULES := klbnal -klbnal-objs := lbnal.o lbnal_cb.o - -@INCLUDE_RULES@ diff --git a/lnet/klnds/lblnd/autoMakefile.am b/lnet/klnds/lblnd/autoMakefile.am deleted file mode 100644 index 103e2df..0000000 --- a/lnet/klnds/lblnd/autoMakefile.am +++ /dev/null @@ -1,11 +0,0 @@ -# Copyright (C) 2001 Cluster File Systems, Inc. -# -# This code is issued under the GNU General Public License. -# See the file COPYING in this distribution - -if MODULES -modulenet_DATA = klbnal$(KMODEXT) -endif - -MOSTLYCLEANFILES = *.o *.ko *.mod.c -DIST_SOURCES = $(klbnal-objs:%.o=%.c) lbnal.h diff --git a/lnet/klnds/lblnd/lbnal.c b/lnet/klnds/lblnd/lbnal.c deleted file mode 100644 index cfb8614..0000000 --- a/lnet/klnds/lblnd/lbnal.c +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Copyright (C) 2002 Cluster File Systems, Inc. - * Author: Eric Barton - * - * Copyright (C) 2002, Lawrence Livermore National Labs (LLNL) - * W. Marcus Miller - Based on ksocknal - * - * This file is part of Portals, http://www.sf.net/projects/lustre/ - * - * Portals is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * Portals is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Portals; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include "lbnal.h" - -nal_t klbnal_api; -klbnal_data_t klbnal_data; -ptl_handle_ni_t klbnal_ni; - - -int -klbnal_cmd (struct portals_cfg *pcfg, void *private) -{ - LASSERT (pcfg != NULL); - - switch (pcfg->pcfg_command) { - case NAL_CMD_REGISTER_MYNID: - CDEBUG (D_IOCTL, "setting NID to "LPX64" (was "LPX64")\n", - pcfg->pcfg_nid, klbnal_lib.libnal_ni.ni_pid.nid); - klbnal_lib.libnal_ni.ni_pid.nid = pcfg->pcfg_nid; - return (0); - - default: - return (-EINVAL); - } -} - -static void -klbnal_shutdown(nal_t *nal) -{ - unsigned long flags; - - /* NB The first ref was this module! */ - if (nal->nal_refct != 0) - return; - - CDEBUG (D_NET, "shutdown\n"); - LASSERT (nal == &klbnal_api); - - switch (klbnal_data.klb_init) - { - default: - LASSERT (0); - - case KLB_INIT_ALL: - libcfs_nal_cmd_unregister(LBNAL); - /* fall through */ - - case KLB_INIT_LIB: - lib_fini (&klbnal_lib); - break; - - case KLB_INIT_NOTHING: - return; - } - - memset(&klbnal_data, 0, sizeof (klbnal_data)); - - CDEBUG (D_MALLOC, "done kmem %d\n", atomic_read(&portal_kmemory)); - - printk (KERN_INFO "Lustre: LB NAL unloaded (final mem %d)\n", - atomic_read(&portal_kmemory)); - PORTAL_MODULE_UNUSE; -} - -static int -klbnal_startup (nal_t *nal, ptl_pid_t requested_pid, - ptl_ni_limits_t *requested_limits, - ptl_ni_limits_t *actual_limits) -{ - int rc; - int i; - ptl_process_id_t my_process_id; - int pkmem = atomic_read(&portal_kmemory); - - LASSERT (nal == &klbnal_api); - - if (nal->nal_refct != 0) { - if (actual_limits != NULL) - *actual_limits = klbnal_lib.libnal_ni.ni_actual_limits; - return (PTL_OK); - } - - LASSERT (klbnal_data.klb_init == KLB_INIT_NOTHING); - - CDEBUG (D_MALLOC, "start kmem %d\n", atomic_read(&portal_kmemory)); - - /* ensure all pointers NULL etc */ - memset (&klbnal_data, 0, sizeof (klbnal_data)); - - my_process_id.nid = 0; - my_process_id.pid = requested_pid; - - rc = lib_init(&klbnal_lib, nal, my_process_id, - requested_limits, actual_limits); - if (rc != PTL_OK) { - CERROR ("lib_init failed %d\n", rc); - klbnal_shutdown (nal); - return (rc); - } - - klbnal_data.klb_init = KLB_INIT_LIB; - - rc = libcfs_nal_cmd_register (LBNAL, &klbnal_cmd, NULL); - if (rc != 0) { - CERROR ("Can't initialise command interface (rc = %d)\n", rc); - klbnal_shutdown (nal); - return (PTL_FAIL); - } - - klbnal_data.klb_init = KLB_INIT_ALL; - - printk(KERN_INFO "Lustre: LB NAL (initial mem %d)\n", pkmem); - PORTAL_MODULE_USE; - - return (PTL_OK); -} - -void __exit -klbnal_finalise (void) -{ - PtlNIFini(klbnal_ni); - - ptl_unregister_nal(LBNAL); -} - -static int __init -klbnal_initialise (void) -{ - int rc; - - klbnal_api.nal_ni_init = klbnal_startup; - klbnal_api.nal_ni_fini = klbnal_shutdown; - - rc = ptl_register_nal(LBNAL, &klbnal_api); - if (rc != PTL_OK) { - CERROR("Can't register LBNAL: %d\n", rc); - return (-ENOMEM); /* or something... */ - } - - return (0); -} - -MODULE_AUTHOR("Cluster File Systems, Inc. "); -MODULE_DESCRIPTION("Loopback NAL v0.01"); -MODULE_LICENSE("GPL"); - -module_init (klbnal_initialise); -module_exit (klbnal_finalise); diff --git a/lnet/klnds/lblnd/lbnal.h b/lnet/klnds/lblnd/lbnal.h deleted file mode 100644 index f24b409..0000000 --- a/lnet/klnds/lblnd/lbnal.h +++ /dev/null @@ -1,77 +0,0 @@ -/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- - * vim:expandtab:shiftwidth=8:tabstop=8: - * - * Copyright (C) 2001 Cluster File Systems, Inc. - * - * This file is part of Lustre, http://www.lustre.org. - * - * Lustre is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * Lustre is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Lustre; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - * Basic library routines. - * - */ - -#ifndef _LBNAL_H -#define _LBNAL_H -#ifndef EXPORT_SYMTAB -# define EXPORT_SYMTAB -#endif - -#include -#include -#include -#include -#include -#include -#include -#include - -#define DEBUG_SUBSYSTEM S_LBNAL - -#include -#include -#include -#include - -#define KLBD_IOV 153401 -#define KLBD_KIOV 153402 - -typedef struct -{ - unsigned int klbd_type; - unsigned int klbd_niov; - size_t klbd_offset; - size_t klbd_nob; - union { - struct iovec *iov; - ptl_kiov_t *kiov; - } klbd_iov; - -} klb_desc_t; - -typedef struct -{ - char klb_init; /* what's been initialised */ -} klbnal_data_t; - -/* kqn_init state */ -#define KLB_INIT_NOTHING 0 /* MUST BE ZERO so zeroed state is initialised OK */ -#define KLB_INIT_LIB 1 -#define KLB_INIT_ALL 2 - -extern lib_nal_t klbnal_lib; -extern nal_t klbnal_api; -extern klbnal_data_t klbnal_data; - -#endif /* _LBNAL_H */ diff --git a/lnet/klnds/lblnd/lbnal_cb.c b/lnet/klnds/lblnd/lbnal_cb.c deleted file mode 100644 index 1caf476..0000000 --- a/lnet/klnds/lblnd/lbnal_cb.c +++ /dev/null @@ -1,272 +0,0 @@ -/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- - * vim:expandtab:shiftwidth=8:tabstop=8: - * - * Copyright (C) 2002 Cluster File Systems, Inc. - * Author: Eric Barton - * - * Copyright (C) 2002, Lawrence Livermore National Labs (LLNL) - * W. Marcus Miller - Based on ksocknal - * - * This file is part of Portals, http://www.sf.net/projects/sandiaportals/ - * - * Portals is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public - * License as published by the Free Software Foundation. - * - * Portals is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Portals; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include "lbnal.h" - -/* - * LIB functions follow - * - */ -static int -klbnal_dist(lib_nal_t *nal, ptl_nid_t nid, unsigned long *dist) -{ - *dist = 0; /* it's me */ - return (0); -} - -static ptl_err_t -klbnal_send (lib_nal_t *nal, - void *private, - lib_msg_t *libmsg, - ptl_hdr_t *hdr, - int type, - ptl_nid_t nid, - ptl_pid_t pid, - unsigned int payload_niov, - struct iovec *payload_iov, - size_t payload_offset, - size_t payload_nob) -{ - klb_desc_t klbd = { - .klbd_type = KLBD_IOV, - .klbd_niov = payload_niov, - .klbd_offset = payload_offset, - .klbd_nob = payload_nob, - .klbd_iov.iov = payload_iov}; - ptl_err_t rc; - - LASSERT(nid == klbnal_lib.libnal_ni.ni_pid.nid); - - rc = lib_parse(&klbnal_lib, hdr, &klbd); - if (rc == PTL_OK) - lib_finalize(&klbnal_lib, private, libmsg, PTL_OK); - - return rc; -} - -static ptl_err_t -klbnal_send_pages (lib_nal_t *nal, - void *private, - lib_msg_t *libmsg, - ptl_hdr_t *hdr, - int type, - ptl_nid_t nid, - ptl_pid_t pid, - unsigned int payload_niov, - ptl_kiov_t *payload_kiov, - size_t payload_offset, - size_t payload_nob) -{ - klb_desc_t klbd = { - .klbd_type = KLBD_KIOV, - .klbd_niov = payload_niov, - .klbd_offset = payload_offset, - .klbd_nob = payload_nob, - .klbd_iov.kiov = payload_kiov}; - ptl_err_t rc; - - LASSERT(nid == klbnal_lib.libnal_ni.ni_pid.nid); - - rc = lib_parse(&klbnal_lib, hdr, &klbd); - if (rc == PTL_OK) - lib_finalize(&klbnal_lib, private, libmsg, PTL_OK); - - return rc; -} - -static ptl_err_t -klbnal_recv(lib_nal_t *nal, - void *private, - lib_msg_t *libmsg, - unsigned int niov, - struct iovec *iov, - size_t offset, - size_t mlen, - size_t rlen) -{ - klb_desc_t *klbd = (klb_desc_t *)private; - - /* I only handle mapped->mapped matches */ - LASSERT(klbd->klbd_type == KLBD_IOV); - - if (mlen == 0) - return PTL_OK; - - while (offset >= iov->iov_len) { - offset -= iov->iov_len; - iov++; - niov--; - LASSERT(niov > 0); - } - - while (klbd->klbd_offset >= klbd->klbd_iov.iov->iov_len) { - klbd->klbd_offset -= klbd->klbd_iov.iov->iov_len; - klbd->klbd_iov.iov++; - klbd->klbd_niov--; - LASSERT(klbd->klbd_niov > 0); - } - - do { - int fraglen = MIN(iov->iov_len - offset, - klbd->klbd_iov.iov->iov_len - klbd->klbd_offset); - - LASSERT(niov > 0); - LASSERT(klbd->klbd_niov > 0); - - if (fraglen > mlen) - fraglen = mlen; - - memcpy((void *)((unsigned long)iov->iov_base + offset), - (void *)((unsigned long)klbd->klbd_iov.iov->iov_base + - klbd->klbd_offset), - fraglen); - - if (offset + fraglen < iov->iov_len) { - offset += fraglen; - } else { - offset = 0; - iov++; - niov--; - } - - if (klbd->klbd_offset + fraglen < klbd->klbd_iov.iov->iov_len ) { - klbd->klbd_offset += fraglen; - } else { - klbd->klbd_offset = 0; - klbd->klbd_iov.iov++; - klbd->klbd_niov--; - } - - mlen -= fraglen; - } while (mlen > 0); - - lib_finalize(&klbnal_lib, private, libmsg, PTL_OK); - return PTL_OK; -} - -static ptl_err_t -klbnal_recv_pages(lib_nal_t *nal, - void *private, - lib_msg_t *libmsg, - unsigned int niov, - ptl_kiov_t *kiov, - size_t offset, - size_t mlen, - size_t rlen) -{ - void *srcaddr = NULL; - void *dstaddr = NULL; - unsigned long srcfrag = 0; - unsigned long dstfrag = 0; - unsigned long fraglen; - klb_desc_t *klbd = (klb_desc_t *)private; - - /* I only handle unmapped->unmapped matches */ - LASSERT(klbd->klbd_type == KLBD_KIOV); - - if (mlen == 0) - return PTL_OK; - - while (offset >= kiov->kiov_len) { - offset -= kiov->kiov_len; - kiov++; - niov--; - LASSERT(niov > 0); - } - - while (klbd->klbd_offset >= klbd->klbd_iov.kiov->kiov_len) { - klbd->klbd_offset -= klbd->klbd_iov.kiov->kiov_len; - klbd->klbd_iov.kiov++; - klbd->klbd_niov--; - LASSERT(klbd->klbd_niov > 0); - } - - do { - /* CAVEAT EMPTOR: I kmap 2 pages at once == slight risk of deadlock */ - LASSERT(niov > 0); - if (dstaddr == NULL) { - dstaddr = (void *)((unsigned long)kmap(kiov->kiov_page) + - kiov->kiov_offset + offset); - dstfrag = kiov->kiov_len - offset; - } - - LASSERT(klbd->klbd_niov > 0); - if (srcaddr == NULL) { - srcaddr = (void *)((unsigned long)kmap(klbd->klbd_iov.kiov->kiov_page) + - klbd->klbd_iov.kiov->kiov_offset + klbd->klbd_offset); - srcfrag = klbd->klbd_iov.kiov->kiov_len - klbd->klbd_offset; - } - - fraglen = MIN(srcfrag, dstfrag); - if (fraglen > mlen) - fraglen = mlen; - - memcpy(dstaddr, srcaddr, fraglen); - - if (fraglen < dstfrag) { - dstfrag -= fraglen; - dstaddr = (void *)((unsigned long)dstaddr + fraglen); - } else { - kunmap(kiov->kiov_page); - dstaddr = NULL; - offset = 0; - kiov++; - niov--; - } - - if (fraglen < srcfrag) { - srcfrag -= fraglen; - srcaddr = (void *)((unsigned long)srcaddr + fraglen); - } else { - kunmap(klbd->klbd_iov.kiov->kiov_page); - srcaddr = NULL; - klbd->klbd_offset = 0; - klbd->klbd_iov.kiov++; - klbd->klbd_niov--; - } - - mlen -= fraglen; - } while (mlen > 0); - - if (dstaddr != NULL) - kunmap(kiov->kiov_page); - - if (srcaddr != NULL) - kunmap(klbd->klbd_iov.kiov->kiov_page); - - lib_finalize(&klbnal_lib, private, libmsg, PTL_OK); - return PTL_OK; -} - -lib_nal_t klbnal_lib = -{ - libnal_data: &klbnal_data, /* NAL private data */ - libnal_send: klbnal_send, - libnal_send_pages: klbnal_send_pages, - libnal_recv: klbnal_recv, - libnal_recv_pages: klbnal_recv_pages, - libnal_dist: klbnal_dist -}; -- 1.8.3.1