/*
* Copyright (c) 2004, 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/
#include <linux/unistd.h>
#include <linux/uio.h>
-#include <asm/system.h>
#include <asm/uaccess.h>
#include <asm/io.h>
cfs_list_t rad_ready_conns;/* connections ready to tx/rx */
cfs_list_t rad_new_conns; /* new connections to complete */
cfs_waitq_t rad_waitq; /* scheduler waits here */
- cfs_spinlock_t rad_lock; /* serialise */
+ spinlock_t rad_lock; /* serialise */
void *rad_scheduler; /* scheduling thread */
unsigned int rad_nphysmap; /* # phys mappings */
unsigned int rad_nppphysmap;/* # phys pages mapped */
kra_device_t kra_devices[RANAL_MAXDEVS]; /* device/ptag/cq */
int kra_ndevs; /* # devices */
- cfs_rwlock_t kra_global_lock; /* stabilize peer/conn ops */
+ rwlock_t kra_global_lock; /* stabilize peer/conn ops */
cfs_list_t *kra_peers; /* hash table of all my known peers */
int kra_peer_hash_size; /* size of kra_peers */
long kra_new_min_timeout; /* minimum timeout on any new conn */
cfs_waitq_t kra_reaper_waitq; /* reaper sleeps here */
- cfs_spinlock_t kra_reaper_lock; /* serialise */
+ spinlock_t kra_reaper_lock; /* serialise */
cfs_list_t kra_connd_peers; /* peers waiting for a connection */
cfs_list_t kra_connd_acceptq; /* accepted sockets to handshake */
cfs_waitq_t kra_connd_waitq; /* connection daemons sleep here */
- cfs_spinlock_t kra_connd_lock; /* serialise */
+ spinlock_t kra_connd_lock; /* serialise */
cfs_list_t kra_idle_txs; /* idle tx descriptors */
__u64 kra_next_tx_cookie; /* RDMA completion cookie */
- cfs_spinlock_t kra_tx_lock; /* serialise */
+ spinlock_t kra_tx_lock; /* serialise */
} kra_data_t;
#define RANAL_INIT_NOTHING 0
unsigned int rac_close_recvd; /* I've received CLOSE */
unsigned int rac_state; /* connection state */
unsigned int rac_scheduled; /* being attented to */
- cfs_spinlock_t rac_lock; /* serialise */
+ spinlock_t rac_lock; /* serialise */
kra_device_t *rac_device; /* which device */
RAP_PVOID rac_rihandle; /* RA endpoint */
kra_msg_t *rac_rxmsg; /* incoming message (FMA prefix) */
#define RANAL_CONN_CLOSING 1
#define RANAL_CONN_CLOSED 2
-typedef struct kra_peer
-{
- cfs_list_t rap_list; /* stash on global peer list */
- cfs_list_t rap_connd_list; /* schedule on kra_connd_peers */
- cfs_list_t rap_conns; /* all active connections */
- cfs_list_t rap_tx_queue; /* msgs waiting for a conn */
- lnet_nid_t rap_nid; /* who's on the other end(s) */
- __u32 rap_ip; /* IP address of peer */
- int rap_port; /* port on which peer listens */
- cfs_atomic_t rap_refcount; /* # users */
- int rap_persistence; /* "known" peer refs */
- int rap_connecting; /* connection forming */
- unsigned long rap_reconnect_time; /* CURRENT_SECONDS when reconnect OK */
- unsigned long rap_reconnect_interval; /* exponential backoff */
+typedef struct kra_peer {
+ cfs_list_t rap_list; /* stash on global peer list */
+ cfs_list_t rap_connd_list; /* schedule on kra_connd_peers */
+ cfs_list_t rap_conns; /* all active connections */
+ cfs_list_t rap_tx_queue; /* msgs waiting for a conn */
+ lnet_nid_t rap_nid; /* who's on the other end(s) */
+ __u32 rap_ip; /* IP address of peer */
+ int rap_port; /* port on which peer listens */
+ cfs_atomic_t rap_refcount; /* # users */
+ int rap_persistence; /* "known" peer refs */
+ int rap_connecting; /* connection forming */
+ unsigned long rap_reconnect_time; /* get_seconds() when reconnect OK */
+ unsigned long rap_reconnect_interval; /* exponential backoff */
} kra_peer_t;
extern kra_data_t kranal_data;
extern void kranal_post_fma (kra_conn_t *conn, kra_tx_t *tx);
extern int kranal_del_peer (lnet_nid_t nid);
extern void kranal_device_callback (RAP_INT32 devid, RAP_PVOID arg);
-extern int kranal_thread_start (int(*fn)(void *arg), void *arg);
+extern int kranal_thread_start(int(*fn)(void *arg), void *arg, char *name);
extern int kranal_connd (void *arg);
extern int kranal_reaper (void *arg);
extern int kranal_scheduler (void *arg);