X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lnet%2Fklnds%2Fqswlnd%2Fqswlnd.c;h=fa8e8f45e13ebaaa6f2e0f4055198531318e0a13;hp=0e2f652d7c3d95427798f164db503002fea799bf;hb=cc29ab50d271f62f540e71e23d041d2e414c2397;hpb=70e80ade90af09300396706b8910e196a7928520 diff --git a/lnet/klnds/qswlnd/qswlnd.c b/lnet/klnds/qswlnd/qswlnd.c index 0e2f652..fa8e8f4 100644 --- a/lnet/klnds/qswlnd/qswlnd.c +++ b/lnet/klnds/qswlnd/qswlnd.c @@ -1,7 +1,4 @@ /* - * -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- - * vim:expandtab:shiftwidth=8:tabstop=8: - * * GPL HEADER START * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -17,8 +14,8 @@ * in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU General Public License - * version 2 along with this program; If not, see [sun.com URL with a - * copy of GPLv2]. + * version 2 along with this program; If not, see + * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or @@ -27,8 +24,10 @@ * GPL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. + * + * Copyright (c) 2012, Intel Corporation. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -58,19 +57,19 @@ int kqswnal_get_tx_desc (struct libcfs_ioctl_data *data) { unsigned long flags; - struct list_head *tmp; + cfs_list_t *tmp; kqswnal_tx_t *ktx; lnet_hdr_t *hdr; int index = data->ioc_count; int rc = -ENOENT; - spin_lock_irqsave (&kqswnal_data.kqn_idletxd_lock, flags); + spin_lock_irqsave(&kqswnal_data.kqn_idletxd_lock, flags); - list_for_each (tmp, &kqswnal_data.kqn_activetxds) { + cfs_list_for_each (tmp, &kqswnal_data.kqn_activetxds) { if (index-- != 0) continue; - ktx = list_entry (tmp, kqswnal_tx_t, ktx_list); + ktx = cfs_list_entry (tmp, kqswnal_tx_t, ktx_list); hdr = (lnet_hdr_t *)ktx->ktx_buffer; data->ioc_count = le32_to_cpu(hdr->payload_length); @@ -78,13 +77,14 @@ kqswnal_get_tx_desc (struct libcfs_ioctl_data *data) data->ioc_u64[0] = ktx->ktx_nid; data->ioc_u32[0] = le32_to_cpu(hdr->type); data->ioc_u32[1] = ktx->ktx_launcher; - data->ioc_flags = (list_empty (&ktx->ktx_schedlist) ? 0 : 1) | - (ktx->ktx_state << 2); + data->ioc_flags = + (cfs_list_empty (&ktx->ktx_schedlist) ? 0 : 1) | + (ktx->ktx_state << 2); rc = 0; break; } - - spin_unlock_irqrestore (&kqswnal_data.kqn_idletxd_lock, flags); + + spin_unlock_irqrestore(&kqswnal_data.kqn_idletxd_lock, flags); return (rc); } @@ -102,14 +102,14 @@ kqswnal_ctl (lnet_ni_t *ni, unsigned int cmd, void *arg) case IOC_LIBCFS_REGISTER_MYNID: if (data->ioc_nid == ni->ni_nid) return 0; - + LASSERT (LNET_NIDNET(data->ioc_nid) == LNET_NIDNET(ni->ni_nid)); CERROR("obsolete IOC_LIBCFS_REGISTER_MYNID for %s(%s)\n", libcfs_nid2str(data->ioc_nid), libcfs_nid2str(ni->ni_nid)); return 0; - + default: return (-EINVAL); } @@ -169,7 +169,7 @@ kqswnal_shutdown(lnet_ni_t *ni) /* NB ep_free_xmtr() returns only after all outstanding transmits * have called their callback... */ - LASSERT(list_empty(&kqswnal_data.kqn_activetxds)); + LASSERT(cfs_list_empty(&kqswnal_data.kqn_activetxds)); /**********************************************************************/ /* flag threads to terminate, wake them and wait for them to die */ @@ -187,9 +187,9 @@ kqswnal_shutdown(lnet_ni_t *ni) * I control the horizontals and the verticals... */ - LASSERT (list_empty (&kqswnal_data.kqn_readyrxds)); - LASSERT (list_empty (&kqswnal_data.kqn_donetxds)); - LASSERT (list_empty (&kqswnal_data.kqn_delayedtxds)); + LASSERT (cfs_list_empty (&kqswnal_data.kqn_readyrxds)); + LASSERT (cfs_list_empty (&kqswnal_data.kqn_donetxds)); + LASSERT (cfs_list_empty (&kqswnal_data.kqn_delayedtxds)); /**********************************************************************/ /* Unmap message buffers and free all descriptors and buffers @@ -254,7 +254,7 @@ kqswnal_shutdown(lnet_ni_t *ni) CDEBUG (D_MALLOC, "done kmem %d\n", atomic_read(&libcfs_kmemory)); - PORTAL_MODULE_UNUSE; + module_put(THIS_MODULE); } int @@ -269,12 +269,6 @@ kqswnal_startup (lnet_ni_t *ni) LASSERT (ni->ni_lnd == &the_kqswlnd); -#if KQSW_CKSUM - if (the_lnet.ln_ptlcompat != 0) { - CERROR("Checksumming version not portals compatible\n"); - return -ENODEV; - } -#endif /* Only 1 instance supported */ if (kqswnal_data.kqn_init != KQN_INIT_NOTHING) { CERROR ("Only 1 instance supported\n"); @@ -304,20 +298,20 @@ kqswnal_startup (lnet_ni_t *ni) ni->ni_peertxcredits = *kqswnal_tunables.kqn_peercredits; ni->ni_maxtxcredits = *kqswnal_tunables.kqn_credits; - INIT_LIST_HEAD (&kqswnal_data.kqn_idletxds); - INIT_LIST_HEAD (&kqswnal_data.kqn_activetxds); - spin_lock_init (&kqswnal_data.kqn_idletxd_lock); + CFS_INIT_LIST_HEAD (&kqswnal_data.kqn_idletxds); + CFS_INIT_LIST_HEAD (&kqswnal_data.kqn_activetxds); + spin_lock_init(&kqswnal_data.kqn_idletxd_lock); - INIT_LIST_HEAD (&kqswnal_data.kqn_delayedtxds); - INIT_LIST_HEAD (&kqswnal_data.kqn_donetxds); - INIT_LIST_HEAD (&kqswnal_data.kqn_readyrxds); + CFS_INIT_LIST_HEAD (&kqswnal_data.kqn_delayedtxds); + CFS_INIT_LIST_HEAD (&kqswnal_data.kqn_donetxds); + CFS_INIT_LIST_HEAD (&kqswnal_data.kqn_readyrxds); - spin_lock_init (&kqswnal_data.kqn_sched_lock); + spin_lock_init(&kqswnal_data.kqn_sched_lock); init_waitqueue_head (&kqswnal_data.kqn_sched_waitq); /* pointers/lists/locks initialised */ kqswnal_data.kqn_init = KQN_INIT_DATA; - PORTAL_MODULE_USE; + try_module_get(THIS_MODULE); kqswnal_data.kqn_ep = ep_system(); if (kqswnal_data.kqn_ep == NULL) { @@ -439,12 +433,12 @@ kqswnal_startup (lnet_ni_t *ni) ktx->ktx_basepage = basepage + premapped_pages; /* message mapping starts here */ ktx->ktx_npages = KQSW_NTXMSGPAGES - premapped_pages; /* for this many pages */ - INIT_LIST_HEAD (&ktx->ktx_schedlist); + CFS_INIT_LIST_HEAD (&ktx->ktx_schedlist); ktx->ktx_state = KTX_IDLE; ktx->ktx_rail = -1; /* unset rail */ - list_add_tail (&ktx->ktx_list, &kqswnal_data.kqn_idletxds); + cfs_list_add_tail (&ktx->ktx_list, &kqswnal_data.kqn_idletxds); } /**********************************************************************/ @@ -532,7 +526,8 @@ kqswnal_startup (lnet_ni_t *ni) /**********************************************************************/ /* Spawn scheduling threads */ for (i = 0; i < num_online_cpus(); i++) { - rc = kqswnal_thread_start (kqswnal_scheduler, NULL); + rc = kqswnal_thread_start(kqswnal_scheduler, NULL, + "kqswnal_sched"); if (rc != 0) { CERROR ("failed to spawn scheduling thread: %d\n", rc);