Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* Updated ranal prior to the Great Schism
[fs/lustre-release.git]
/
lnet
/
klnds
/
ralnd
/
ralnd.c
diff --git
a/lnet/klnds/ralnd/ralnd.c
b/lnet/klnds/ralnd/ralnd.c
index
a59757d
..
c924827
100644
(file)
--- a/
lnet/klnds/ralnd/ralnd.c
+++ b/
lnet/klnds/ralnd/ralnd.c
@@
-122,7
+122,7
@@
kranal_sock_read (struct socket *sock, void *buffer, int nob, int timeout)
/* Set receive timeout to remaining time */
tv = (struct timeval) {
.tv_sec = ticks / HZ,
/* Set receive timeout to remaining time */
tv = (struct timeval) {
.tv_sec = ticks / HZ,
- .tv_usec = ((ticks % HZ) * 1000000) / HZ
;
+ .tv_usec = ((ticks % HZ) * 1000000) / HZ
};
set_fs(KERNEL_DS);
rc = sock_setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO,
};
set_fs(KERNEL_DS);
rc = sock_setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO,
@@
-130,7
+130,7
@@
kranal_sock_read (struct socket *sock, void *buffer, int nob, int timeout)
set_fs(oldmm);
if (rc != 0) {
CERROR("Can't set socket recv timeout %d: %d\n",
set_fs(oldmm);
if (rc != 0) {
CERROR("Can't set socket recv timeout %d: %d\n",
-
send_
timeout, rc);
+ timeout, rc);
return rc;
}
return rc;
}
@@
-211,6
+211,8
@@
kranal_pause(int ticks)
void
kranal_pack_connreq(kra_connreq_t *connreq, kra_conn_t *conn)
{
void
kranal_pack_connreq(kra_connreq_t *connreq, kra_conn_t *conn)
{
+ RAP_RETURN rrc;
+
memset(connreq, 0, sizeof(*connreq));
connreq->racr_magic = RANAL_MSG_MAGIC;
memset(connreq, 0, sizeof(*connreq));
connreq->racr_magic = RANAL_MSG_MAGIC;
@@
-225,12
+227,12
@@
kranal_pack_connreq(kra_connreq_t *connreq, kra_conn_t *conn)
}
int
}
int
-kranal_recv_connreq(struct sock *sock, kra_connreq_t *connreq, int timeout)
+kranal_recv_connreq(struct sock
et
*sock, kra_connreq_t *connreq, int timeout)
{
int i;
int rc;
{
int i;
int rc;
- rc = kranal_sock_read(
new
sock, connreq, sizeof(*connreq), timeout);
+ rc = kranal_sock_read(sock, connreq, sizeof(*connreq), timeout);
if (rc != 0) {
CERROR("Read failed: %d\n", rc);
return rc;
if (rc != 0) {
CERROR("Read failed: %d\n", rc);
return rc;
@@
-273,7
+275,7
@@
kranal_recv_connreq(struct sock *sock, kra_connreq_t *connreq, int timeout)
for (i = 0; i < kranal_data.kra_ndevs; i++)
if (connreq->racr_devid ==
for (i = 0; i < kranal_data.kra_ndevs; i++)
if (connreq->racr_devid ==
- kranal_data.kra_devices[i]
->
rad_id)
+ kranal_data.kra_devices[i]
.
rad_id)
break;
if (i == kranal_data.kra_ndevs) {
break;
if (i == kranal_data.kra_ndevs) {
@@
-285,7
+287,7
@@
kranal_recv_connreq(struct sock *sock, kra_connreq_t *connreq, int timeout)
}
int
}
int
-kranal_conn_isdup_locked(kra
nal
_peer_t *peer, __u64 incarnation)
+kranal_conn_isdup_locked(kra_peer_t *peer, __u64 incarnation)
{
kra_conn_t *conn;
struct list_head *tmp;
{
kra_conn_t *conn;
struct list_head *tmp;
@@
-294,13
+296,13
@@
kranal_conn_isdup_locked(kranal_peer_t *peer, __u64 incarnation)
list_for_each(tmp, &peer->rap_conns) {
conn = list_entry(tmp, kra_conn_t, rac_list);
list_for_each(tmp, &peer->rap_conns) {
conn = list_entry(tmp, kra_conn_t, rac_list);
- if (conn->rac_incarnation < incarnation) {
+ if (conn->rac_
peer_
incarnation < incarnation) {
/* Conns with an older incarnation get culled later */
continue;
}
if (!loopback &&
/* Conns with an older incarnation get culled later */
continue;
}
if (!loopback &&
- conn->rac_incarnation == incarnation &&
+ conn->rac_
peer_
incarnation == incarnation &&
peer->rap_nid == kranal_lib.libnal_ni.ni_pid.nid) {
/* loopback creates 2 conns */
loopback = 1;
peer->rap_nid == kranal_lib.libnal_ni.ni_pid.nid) {
/* loopback creates 2 conns */
loopback = 1;
@@
-324,7
+326,7
@@
kranal_set_conn_uniqueness (kra_conn_t *conn)
do { /* allocate a unique cqid */
conn->rac_cqid = kranal_data.kra_next_cqid++;
do { /* allocate a unique cqid */
conn->rac_cqid = kranal_data.kra_next_cqid++;
- } while (kranal_cqid2conn_locked(conn->rac_cqid) != NULL)
+ } while (kranal_cqid2conn_locked(conn->rac_cqid) != NULL)
;
write_unlock_irqrestore(&kranal_data.kra_global_lock, flags);
write_unlock_irqrestore(&kranal_data.kra_global_lock, flags);
@@
-343,7
+345,6
@@
kranal_alloc_conn(kra_conn_t **connp, kra_device_t *dev)
return -ENOMEM;
memset(conn, 0, sizeof(*conn));
return -ENOMEM;
memset(conn, 0, sizeof(*conn));
- conn->rac_cqid = cqid;
atomic_set(&conn->rac_refcount, 1);
INIT_LIST_HEAD(&conn->rac_list);
INIT_LIST_HEAD(&conn->rac_hashlist);
atomic_set(&conn->rac_refcount, 1);
INIT_LIST_HEAD(&conn->rac_list);
INIT_LIST_HEAD(&conn->rac_hashlist);
@@
-352,10
+353,13
@@
kranal_alloc_conn(kra_conn_t **connp, kra_device_t *dev)
INIT_LIST_HEAD(&conn->rac_replyq);
spin_lock_init(&conn->rac_lock);
INIT_LIST_HEAD(&conn->rac_replyq);
spin_lock_init(&conn->rac_lock);
+ kranal_set_conn_uniqueness(conn);
+
conn->rac_timeout = MAX(kranal_tunables.kra_timeout, RANAL_MIN_TIMEOUT);
kranal_update_reaper_timeout(conn->rac_timeout);
conn->rac_timeout = MAX(kranal_tunables.kra_timeout, RANAL_MIN_TIMEOUT);
kranal_update_reaper_timeout(conn->rac_timeout);
- rrc = RapkCreateRi(dev->rad_handle, cqid, dev->rad_ptag,
+ rrc = RapkCreateRi(dev->rad_handle, conn->rac_cqid,
+ dev->rad_ptag,
dev->rad_rdma_cq, dev->rad_fma_cq,
&conn->rac_rihandle);
if (rrc != RAP_SUCCESS) {
dev->rad_rdma_cq, dev->rad_fma_cq,
&conn->rac_rihandle);
if (rrc != RAP_SUCCESS) {
@@
-412,7
+416,7
@@
__kranal_conn_decref(kra_conn_t *conn)
void
kranal_terminate_conn_locked (kra_conn_t *conn)
{
void
kranal_terminate_conn_locked (kra_conn_t *conn)
{
- kra_peer_t
*peer -
conn->rac_peer;
+ kra_peer_t
*peer =
conn->rac_peer;
LASSERT (!in_interrupt());
LASSERT (conn->rac_closing);
LASSERT (!in_interrupt());
LASSERT (conn->rac_closing);
@@
-469,7
+473,7
@@
kranal_close_conn (kra_conn_t *conn, int error)
int
kranal_passive_conn_handshake (struct socket *sock,
int
kranal_passive_conn_handshake (struct socket *sock,
- ptl_nid_t *
*
peer_nidp, kra_conn_t **connp)
+ ptl_nid_t *peer_nidp, kra_conn_t **connp)
{
struct sockaddr_in addr;
__u32 peer_ip;
{
struct sockaddr_in addr;
__u32 peer_ip;
@@
-480,16
+484,18
@@
kranal_passive_conn_handshake (struct socket *sock,
kra_device_t *dev;
RAP_RETURN rrc;
int rc;
kra_device_t *dev;
RAP_RETURN rrc;
int rc;
+ int len;
int i;
int i;
- rc = sock->ops->getname(newsock, (struct sockaddr *)addr, &len, 2);
+ len = sizeof(addr);
+ rc = sock->ops->getname(sock, (struct sockaddr *)&addr, &len, 2);
if (rc != 0) {
CERROR("Can't get peer's IP: %d\n", rc);
return rc;
}
if (rc != 0) {
CERROR("Can't get peer's IP: %d\n", rc);
return rc;
}
- peer_ip = ntohl(
sin
.sin_addr.s_addr);
- peer_port = ntohs(
sin
.sin_port);
+ peer_ip = ntohl(
addr
.sin_addr.s_addr);
+ peer_port = ntohs(
addr
.sin_port);
if (peer_port >= 1024) {
CERROR("Refusing unprivileged connection from %u.%u.%u.%u/%d\n",
if (peer_port >= 1024) {
CERROR("Refusing unprivileged connection from %u.%u.%u.%u/%d\n",
@@
-498,7
+504,7
@@
kranal_passive_conn_handshake (struct socket *sock,
}
rc = kranal_recv_connreq(sock, &connreq,
}
rc = kranal_recv_connreq(sock, &connreq,
- kranal_
data
.kra_listener_timeout);
+ kranal_
tunables
.kra_listener_timeout);
if (rc != 0) {
CERROR("Can't rx connreq from %u.%u.%u.%u/%d: %d\n",
HIPQUAD(peer_ip), peer_port, rc);
if (rc != 0) {
CERROR("Can't rx connreq from %u.%u.%u.%u/%d: %d\n",
HIPQUAD(peer_ip), peer_port, rc);
@@
-511,11
+517,11
@@
kranal_passive_conn_handshake (struct socket *sock,
for (i = 0;;i++) {
LASSERT(i < kranal_data.kra_ndevs);
dev = &kranal_data.kra_devices[i];
for (i = 0;;i++) {
LASSERT(i < kranal_data.kra_ndevs);
dev = &kranal_data.kra_devices[i];
- if (dev->rad_id == connreq
->
racr_devid)
+ if (dev->rad_id == connreq
.
racr_devid)
break;
}
break;
}
- rc = kranal_alloc_conn(&conn, dev
,(__u32)(peer_nid & 0xffffffff)
);
+ rc = kranal_alloc_conn(&conn, dev);
if (rc != 0)
return rc;
if (rc != 0)
return rc;
@@
-523,7
+529,7
@@
kranal_passive_conn_handshake (struct socket *sock,
conn->rac_keepalive = RANAL_TIMEOUT2KEEPALIVE(connreq.racr_timeout);
kranal_update_reaper_timeout(conn->rac_keepalive);
conn->rac_keepalive = RANAL_TIMEOUT2KEEPALIVE(connreq.racr_timeout);
kranal_update_reaper_timeout(conn->rac_keepalive);
- rrc = RapkSetRiParams(conn->rac_rihandle, &connreq
->
racr_riparams);
+ rrc = RapkSetRiParams(conn->rac_rihandle, &connreq
.
racr_riparams);
if (rrc != RAP_SUCCESS) {
CERROR("Can't set riparams for "LPX64": %d\n", peer_nid, rrc);
kranal_conn_decref(conn);
if (rrc != RAP_SUCCESS) {
CERROR("Can't set riparams for "LPX64": %d\n", peer_nid, rrc);
kranal_conn_decref(conn);
@@
-534,7
+540,7
@@
kranal_passive_conn_handshake (struct socket *sock,
rc = kranal_sock_write(sock, &connreq, sizeof(connreq));
if (rc != 0) {
rc = kranal_sock_write(sock, &connreq, sizeof(connreq));
if (rc != 0) {
- CERROR("Can't tx connreq to %u.%u.%u.%u/%
p
: %d\n",
+ CERROR("Can't tx connreq to %u.%u.%u.%u/%
d
: %d\n",
HIPQUAD(peer_ip), peer_port, rc);
kranal_conn_decref(conn);
return rc;
HIPQUAD(peer_ip), peer_port, rc);
kranal_conn_decref(conn);
return rc;
@@
-606,36
+612,33
@@
ranal_connect_sock(kra_peer_t *peer, struct socket **sockp)
CDEBUG(D_NET, "Port %d not available for %u.%u.%u.%u/%d\n",
port, HIPQUAD(peer->rap_ip), peer->rap_port);
}
CDEBUG(D_NET, "Port %d not available for %u.%u.%u.%u/%d\n",
port, HIPQUAD(peer->rap_ip), peer->rap_port);
}
+
+ /* all ports busy */
+ return -EHOSTUNREACH;
}
int
kranal_active_conn_handshake(kra_peer_t *peer, kra_conn_t **connp)
{
}
int
kranal_active_conn_handshake(kra_peer_t *peer, kra_conn_t **connp)
{
+ struct sockaddr_in dstaddr;
kra_connreq_t connreq;
kra_conn_t *conn;
kra_device_t *dev;
struct socket *sock;
kra_connreq_t connreq;
kra_conn_t *conn;
kra_device_t *dev;
struct socket *sock;
- __u32 id32;
RAP_RETURN rrc;
int rc;
RAP_RETURN rrc;
int rc;
+ int idx;
+
+ idx = peer->rap_nid & 0x7fffffff;
+ dev = &kranal_data.kra_devices[idx % kranal_data.kra_ndevs];
- id32 = (peer_nid & 0xffffffff);
- dev = &kranal_data.kra_devices[id32 % kranal_data.kra_ndevs];
-
- rc = kranal_alloc_conn(&conn, dev, id32);
+ rc = kranal_alloc_conn(&conn, dev);
if (rc != 0)
return rc;
kranal_pack_connreq(&connreq, conn);
if (rc != 0)
return rc;
kranal_pack_connreq(&connreq, conn);
- memset(&dstaddr, 0, sizeof(addr));
- dstaddr.sin_family = AF_INET;
- dstaddr.sin_port = htons(peer->rap_port);
- dstaddr.sin_addr.s_addr = htonl(peer->rap_ip);
-
- memset(&srcaddr, 0, sizeof(addr));
-
rc = ranal_connect_sock(peer, &sock);
if (rc != 0)
goto failed_0;
rc = ranal_connect_sock(peer, &sock);
if (rc != 0)
goto failed_0;
@@
-651,7
+654,7
@@
kranal_active_conn_handshake(kra_peer_t *peer, kra_conn_t **connp)
goto failed_1;
}
goto failed_1;
}
- rc = kranal_recv_connreq(sock, &connreq, kranal_
data
.kra_timeout);
+ rc = kranal_recv_connreq(sock, &connreq, kranal_
tunables
.kra_timeout);
if (rc != 0) {
CERROR("Can't rx connreq from %u.%u.%u.%u/%d: %d\n",
HIPQUAD(peer->rap_ip), peer->rap_port, rc);
if (rc != 0) {
CERROR("Can't rx connreq from %u.%u.%u.%u/%d: %d\n",
HIPQUAD(peer->rap_ip), peer->rap_port, rc);
@@
-682,11
+685,10
@@
kranal_active_conn_handshake(kra_peer_t *peer, kra_conn_t **connp)
kranal_update_reaper_timeout(conn->rac_keepalive);
rc = -ENETDOWN;
kranal_update_reaper_timeout(conn->rac_keepalive);
rc = -ENETDOWN;
- rrc = RapkSetRiParams(conn->rac_rihandle,
- &connreq->racr_riparams);
+ rrc = RapkSetRiParams(conn->rac_rihandle, &connreq.racr_riparams);
if (rrc != RAP_SUCCESS) {
CERROR("Can't set riparams for "LPX64": %d\n",
if (rrc != RAP_SUCCESS) {
CERROR("Can't set riparams for "LPX64": %d\n",
- peer_nid, rrc);
+ peer
->rap
_nid, rrc);
goto failed_0;
}
goto failed_0;
}
@@
-694,16
+696,17
@@
kranal_active_conn_handshake(kra_peer_t *peer, kra_conn_t **connp)
return 0;
failed_1:
return 0;
failed_1:
-
release_sock
(sock);
+
sock_release
(sock);
failed_0:
kranal_conn_decref(conn);
return rc;
}
int
failed_0:
kranal_conn_decref(conn);
return rc;
}
int
-kranal_conn_handshake (struct socket *sock, kra
nal
_peer_t *peer)
+kranal_conn_handshake (struct socket *sock, kra_peer_t *peer)
{
{
- kranal_peer_t *peer2;
+ kra_peer_t *peer2;
+ kra_tx_t *tx;
ptl_nid_t peer_nid;
unsigned long flags;
unsigned long timeout;
ptl_nid_t peer_nid;
unsigned long flags;
unsigned long timeout;
@@
-770,7
+773,7
@@
kranal_conn_handshake (struct socket *sock, kranal_peer_t *peer)
* to connect at once). NB we return success! We _do_ have a
* connection (so we don't need to remove the peer from the peer
* table) and we _don't_ have any blocked txs to complete */
* to connect at once). NB we return success! We _do_ have a
* connection (so we don't need to remove the peer from the peer
* table) and we _don't_ have any blocked txs to complete */
- if (kranal_conn_isdup_locked(peer, conn->rac_incarnation)) {
+ if (kranal_conn_isdup_locked(peer, conn->rac_
peer_
incarnation)) {
LASSERT (!list_empty(&peer->rap_conns));
LASSERT (list_empty(&peer->rap_tx_queue));
write_unlock_irqrestore(&kranal_data.kra_global_lock, flags);
LASSERT (!list_empty(&peer->rap_conns));
LASSERT (list_empty(&peer->rap_tx_queue));
write_unlock_irqrestore(&kranal_data.kra_global_lock, flags);
@@
-794,10
+797,10
@@
kranal_conn_handshake (struct socket *sock, kranal_peer_t *peer)
kra_tx_t, tx_list);
list_del(&tx->tx_list);
kra_tx_t, tx_list);
list_del(&tx->tx_list);
- kranal_
queue_tx_locked(tx, conn
);
+ kranal_
post_fma(conn, tx
);
}
}
- nstale = kranal_close_stale_conns_locked(peer, conn->rac_incarnation);
+ nstale = kranal_close_stale_conns_locked(peer, conn->rac_
peer_
incarnation);
write_unlock_irqrestore(&kranal_data.kra_global_lock, flags);
write_unlock_irqrestore(&kranal_data.kra_global_lock, flags);
@@
-824,7
+827,7
@@
kranal_connect (kra_peer_t *peer)
rc = kranal_conn_handshake(NULL, peer);
rc = kranal_conn_handshake(NULL, peer);
- write_lock_irq
q
save(&kranal_data.kra_global_lock, flags);
+ write_lock_irqsave(&kranal_data.kra_global_lock, flags);
LASSERT (peer->rap_connecting);
peer->rap_connecting = 0;
LASSERT (peer->rap_connecting);
peer->rap_connecting = 0;
@@
-838,7
+841,7
@@
kranal_connect (kra_peer_t *peer)
peer->rap_reconnect_interval = RANAL_MIN_RECONNECT_INTERVAL;
peer->rap_reconnect_time = CURRENT_TIME;
peer->rap_reconnect_interval = RANAL_MIN_RECONNECT_INTERVAL;
peer->rap_reconnect_time = CURRENT_TIME;
- write_unlock_irqrestore(&kranal
-
data.kra_global_lock, flags);
+ write_unlock_irqrestore(&kranal
_
data.kra_global_lock, flags);
return;
}
return;
}
@@
-876,16
+879,15
@@
kranal_listener(void *arg)
struct socket *sock;
struct socket *newsock;
int port;
struct socket *sock;
struct socket *newsock;
int port;
- int backlog;
- int timeout;
kra_connreq_t *connreqs;
char name[16];
kra_connreq_t *connreqs;
char name[16];
+ int rc;
/* Parent thread holds kra_nid_mutex, and is, or is about to
* block on kra_listener_signal */
/* Parent thread holds kra_nid_mutex, and is, or is about to
* block on kra_listener_signal */
- port = kra_tunables.kra_port;
- snprintf(name, "kranal_lstn%03d", port);
+ port = kra
nal
_tunables.kra_port;
+ snprintf(name,
sizeof(name),
"kranal_lstn%03d", port);
kportal_daemonize(name);
kportal_blockallsigs();
kportal_daemonize(name);
kportal_blockallsigs();
@@
-896,24
+898,25
@@
kranal_listener(void *arg)
if (connreqs == NULL)
goto out_0;
if (connreqs == NULL)
goto out_0;
- rc = kranal_create_sock(&sock
, port
);
+ rc = kranal_create_sock(&sock);
if (rc != 0)
goto out_1;
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
if (rc != 0)
goto out_1;
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
- addr.sin_addr.s_addr = INADDR_ANY
+ addr.sin_addr.s_addr = INADDR_ANY
;
- rc = sock->ops->bind(sock, &addr, sizeof(addr));
+ rc = sock->ops->bind(sock,
(struct sockaddr *)
&addr, sizeof(addr));
if (rc != 0) {
CERROR("Can't bind to port %d\n", port);
goto out_2;
}
if (rc != 0) {
CERROR("Can't bind to port %d\n", port);
goto out_2;
}
- rc = sock->ops->listen(sock, kra
_tunalb
es.kra_backlog);
+ rc = sock->ops->listen(sock, kra
nal_tunabl
es.kra_backlog);
if (rc != 0) {
if (rc != 0) {
- CERROR("Can't set listen backlog %d: %d\n", backlog, rc);
+ CERROR("Can't set listen backlog %d: %d\n",
+ kranal_tunables.kra_backlog, rc);
goto out_2;
}
goto out_2;
}
@@
-976,7
+979,7
@@
kranal_listener(void *arg)
}
int
}
int
-kranal_start_listener ()
+kranal_start_listener (
void
)
{
long pid;
int rc;
{
long pid;
int rc;
@@
-987,7
+990,7
@@
kranal_start_listener ()
LASSERT (kranal_data.kra_listener_sock == NULL);
kranal_data.kra_listener_shutdown == 0;
LASSERT (kranal_data.kra_listener_sock == NULL);
kranal_data.kra_listener_shutdown == 0;
- pid = kernel_thread(kranal_listener,
sock
, 0);
+ pid = kernel_thread(kranal_listener,
NULL
, 0);
if (pid < 0) {
CERROR("Can't spawn listener: %ld\n", pid);
return (int)pid;
if (pid < 0) {
CERROR("Can't spawn listener: %ld\n", pid);
return (int)pid;
@@
-1004,7
+1007,7
@@
kranal_start_listener ()
}
void
}
void
-kranal_stop_listener()
+kranal_stop_listener(
void
)
{
CDEBUG(D_WARNING, "Stopping listener\n");
{
CDEBUG(D_WARNING, "Stopping listener\n");
@@
-1012,7
+1015,7
@@
kranal_stop_listener()
LASSERT (kranal_data.kra_listener_sock != NULL);
kranal_data.kra_listener_shutdown = 1;
LASSERT (kranal_data.kra_listener_sock != NULL);
kranal_data.kra_listener_shutdown = 1;
- wake_up_all(kranal_data
->
kra_listener_sock->sk->sk_sleep);
+ wake_up_all(kranal_data
.
kra_listener_sock->sk->sk_sleep);
/* Block until listener has torn down. */
down(&kranal_data.kra_listener_signal);
/* Block until listener has torn down. */
down(&kranal_data.kra_listener_signal);
@@
-1031,8
+1034,8
@@
kranal_listener_procint(ctl_table *table, int write, struct file *filp,
down(&kranal_data.kra_nid_mutex);
down(&kranal_data.kra_nid_mutex);
- LASSERT (tunable == &kranal_
data
.kra_port ||
- tunable == &kranal_
data
.kra_backlog);
+ LASSERT (tunable == &kranal_
tunables
.kra_port ||
+ tunable == &kranal_
tunables
.kra_backlog);
old_val = *tunable;
rc = proc_dointvec(table, write, filp, buffer, lenp);
old_val = *tunable;
rc = proc_dointvec(table, write, filp, buffer, lenp);
@@
-1060,7
+1063,7
@@
int
kranal_set_mynid(ptl_nid_t nid)
{
lib_ni_t *ni = &kranal_lib.libnal_ni;
kranal_set_mynid(ptl_nid_t nid)
{
lib_ni_t *ni = &kranal_lib.libnal_ni;
- int rc;
+ int rc
= 0
;
CDEBUG(D_NET, "setting mynid to "LPX64" (old nid="LPX64")\n",
nid, ni->ni_pid.nid);
CDEBUG(D_NET, "setting mynid to "LPX64" (old nid="LPX64")\n",
nid, ni->ni_pid.nid);
@@
-1190,7
+1193,8
@@
kranal_unlink_peer_locked (kra_peer_t *peer)
}
int
}
int
-kranal_get_peer_info (int index, ptl_nid_t *nidp, int *portp, int *persistencep)
+kranal_get_peer_info (int index, ptl_nid_t *nidp, __u32 *ipp, int *portp,
+ int *persistencep)
{
kra_peer_t *peer;
struct list_head *ptmp;
{
kra_peer_t *peer;
struct list_head *ptmp;
@@
-1210,6
+1214,7
@@
kranal_get_peer_info (int index, ptl_nid_t *nidp, int *portp, int *persistencep)
continue;
*nidp = peer->rap_nid;
continue;
*nidp = peer->rap_nid;
+ *ipp = peer->rap_ip;
*portp = peer->rap_port;
*persistencep = peer->rap_persistence;
*portp = peer->rap_port;
*persistencep = peer->rap_persistence;
@@
-1240,7
+1245,7
@@
kranal_add_persistent_peer (ptl_nid_t nid, __u32 ip, int port)
peer2 = kranal_find_peer_locked(nid);
if (peer2 != NULL) {
peer2 = kranal_find_peer_locked(nid);
if (peer2 != NULL) {
- kranal_p
ut_peer
(peer);
+ kranal_p
eer_decref
(peer);
peer = peer2;
} else {
/* peer table takes existing ref on peer */
peer = peer2;
} else {
/* peer table takes existing ref on peer */
@@
-1392,12
+1397,12
@@
kranal_close_stale_conns_locked (kra_peer_t *peer, __u64 incarnation)
list_for_each_safe (ctmp, cnxt, &peer->rap_conns) {
conn = list_entry(ctmp, kra_conn_t, rac_list);
list_for_each_safe (ctmp, cnxt, &peer->rap_conns) {
conn = list_entry(ctmp, kra_conn_t, rac_list);
- if (conn->rac_incarnation == incarnation)
+ if (conn->rac_
peer_
incarnation == incarnation)
continue;
CDEBUG(D_NET, "Closing stale conn nid:"LPX64" incarnation:"LPX64"("LPX64")\n",
continue;
CDEBUG(D_NET, "Closing stale conn nid:"LPX64" incarnation:"LPX64"("LPX64")\n",
- peer->rap_nid, conn->rac_incarnation, incarnation);
- LASSERT (conn->rac_incarnation < incarnation);
+ peer->rap_nid, conn->rac_
peer_
incarnation, incarnation);
+ LASSERT (conn->rac_
peer_
incarnation < incarnation);
count++;
kranal_close_conn_locked(conn, -ESTALE);
count++;
kranal_close_conn_locked(conn, -ESTALE);
@@
-1497,7
+1502,7
@@
kranal_cmd(struct portals_cfg *pcfg, void * private)
pcfg->pcfg_id = 0;
pcfg->pcfg_misc = 0;
pcfg->pcfg_flags = 0;
pcfg->pcfg_id = 0;
pcfg->pcfg_misc = 0;
pcfg->pcfg_flags = 0;
- kranal_
put_conn
(conn);
+ kranal_
conn_decref
(conn);
}
break;
}
}
break;
}
@@
-1546,24
+1551,24
@@
kranal_alloc_txdescs(struct list_head *freelist, int n)
PORTAL_ALLOC(tx, sizeof(*tx));
if (tx == NULL) {
PORTAL_ALLOC(tx, sizeof(*tx));
if (tx == NULL) {
- CERROR("Can't allocate %stx[%d]\n",
- isnblk ? "nblk ", i);
- kranal_free_txdescs();
+ CERROR("Can't allocate %stx[%d]\n",
+ isnblk ? "nblk "
: ""
, i);
+ kranal_free_txdescs(
freelist
);
return -ENOMEM;
}
PORTAL_ALLOC(tx->tx_phys,
return -ENOMEM;
}
PORTAL_ALLOC(tx->tx_phys,
- P
LT
_MD_MAX_IOV * sizeof(*tx->tx_phys));
+ P
TL
_MD_MAX_IOV * sizeof(*tx->tx_phys));
if (tx->tx_phys == NULL) {
CERROR("Can't allocate %stx[%d]->tx_phys\n",
if (tx->tx_phys == NULL) {
CERROR("Can't allocate %stx[%d]->tx_phys\n",
- isnblk ? "nblk ", i);
+ isnblk ? "nblk "
: ""
, i);
PORTAL_FREE(tx, sizeof(*tx));
kranal_free_txdescs(freelist);
return -ENOMEM;
}
PORTAL_FREE(tx, sizeof(*tx));
kranal_free_txdescs(freelist);
return -ENOMEM;
}
- tx->tx_isnblk = isnblk
+ tx->tx_isnblk = isnblk
;
tx->tx_buftype = RANAL_BUF_NONE;
list_add(&tx->tx_list, freelist);
tx->tx_buftype = RANAL_BUF_NONE;
list_add(&tx->tx_list, freelist);
@@
-1579,17
+1584,17
@@
kranal_device_init(int id, kra_device_t *dev)
RAP_RETURN rrc;
dev->rad_id = id;
RAP_RETURN rrc;
dev->rad_id = id;
- rrc = RapkGetDeviceByIndex(id,
NULL,
kranal_device_callback,
+ rrc = RapkGetDeviceByIndex(id, kranal_device_callback,
&dev->rad_handle);
if (rrc != RAP_SUCCESS) {
&dev->rad_handle);
if (rrc != RAP_SUCCESS) {
- CERROR("Can't get Rapidarray Device %d: %d\n", id
x
, rrc);
+ CERROR("Can't get Rapidarray Device %d: %d\n", id, rrc);
goto failed_0;
}
rrc = RapkReserveRdma(dev->rad_handle, total_ntx);
if (rrc != RAP_SUCCESS) {
CERROR("Can't reserve %d RDMA descriptors"
goto failed_0;
}
rrc = RapkReserveRdma(dev->rad_handle, total_ntx);
if (rrc != RAP_SUCCESS) {
CERROR("Can't reserve %d RDMA descriptors"
- " for device
[%d]: %d\n", total_ntx, i
, rrc);
+ " for device
%d: %d\n", total_ntx, id
, rrc);
goto failed_1;
}
goto failed_1;
}
@@
-1597,7
+1602,7
@@
kranal_device_init(int id, kra_device_t *dev)
&dev->rad_ptag);
if (rrc != RAP_SUCCESS) {
CERROR("Can't create ptag"
&dev->rad_ptag);
if (rrc != RAP_SUCCESS) {
CERROR("Can't create ptag"
- " for device
[%d]: %d\n", i
, rrc);
+ " for device
%d: %d\n", id
, rrc);
goto failed_1;
}
goto failed_1;
}
@@
-1605,7
+1610,7
@@
kranal_device_init(int id, kra_device_t *dev)
&dev->rad_rdma_cq);
if (rrc != RAP_SUCCESS) {
CERROR("Can't create rdma cq size %d"
&dev->rad_rdma_cq);
if (rrc != RAP_SUCCESS) {
CERROR("Can't create rdma cq size %d"
- " for device
[%d]: %d\n", total_ntx, i
, rrc);
+ " for device
%d: %d\n", total_ntx, id
, rrc);
goto failed_2;
}
goto failed_2;
}
@@
-1613,7
+1618,7
@@
kranal_device_init(int id, kra_device_t *dev)
dev->rad_ptag, &dev->rad_fma_cq);
if (rrc != RAP_SUCCESS) {
CERROR("Can't create fma cq size %d"
dev->rad_ptag, &dev->rad_fma_cq);
if (rrc != RAP_SUCCESS) {
CERROR("Can't create fma cq size %d"
- " for device
[%d]: %d\n", RANAL_RX_CQ_SIZE, i
, rrc);
+ " for device
%d: %d\n", RANAL_FMA_CQ_SIZE, id
, rrc);
goto failed_3;
}
goto failed_3;
}
@@
-1632,7
+1637,7
@@
kranal_device_init(int id, kra_device_t *dev)
void
kranal_device_fini(kra_device_t *dev)
{
void
kranal_device_fini(kra_device_t *dev)
{
- RapkDestroyCQ(dev->rad_handle, dev->rad_
rx
_cq, dev->rad_ptag);
+ RapkDestroyCQ(dev->rad_handle, dev->rad_
fma
_cq, dev->rad_ptag);
RapkDestroyCQ(dev->rad_handle, dev->rad_rdma_cq, dev->rad_ptag);
RapkDestroyPtag(dev->rad_handle, dev->rad_ptag);
RapkReleaseDevice(dev->rad_handle);
RapkDestroyCQ(dev->rad_handle, dev->rad_rdma_cq, dev->rad_ptag);
RapkDestroyPtag(dev->rad_handle, dev->rad_ptag);
RapkReleaseDevice(dev->rad_handle);
@@
-1663,7
+1668,7
@@
kranal_api_shutdown (nal_t *nal)
case RANAL_INIT_ALL:
/* stop calls to nal_cmd */
case RANAL_INIT_ALL:
/* stop calls to nal_cmd */
- libcfs_nal_cmd_unregister(
OPEN
RANAL);
+ libcfs_nal_cmd_unregister(RANAL);
/* No new persistent peers */
/* resetting my NID to unadvertises me, removes my
/* No new persistent peers */
/* resetting my NID to unadvertises me, removes my
@@
-1674,7
+1679,7
@@
kranal_api_shutdown (nal_t *nal)
/* Wait for all peer/conn state to clean up */
i = 2;
while (atomic_read(&kranal_data.kra_nconns) != 0 ||
/* Wait for all peer/conn state to clean up */
i = 2;
while (atomic_read(&kranal_data.kra_nconns) != 0 ||
- atomic_read(&kranal
-
data.kra_npeers) != 0) {
+ atomic_read(&kranal
_
data.kra_npeers) != 0) {
i++;
CDEBUG(((i & (-i)) == i) ? D_WARNING : D_NET, /* power of 2? */
"waiting for %d peers and %d conns to close down\n",
i++;
CDEBUG(((i & (-i)) == i) ? D_WARNING : D_NET, /* power of 2? */
"waiting for %d peers and %d conns to close down\n",
@@
-1710,9
+1715,9
@@
kranal_api_shutdown (nal_t *nal)
spin_unlock_irqrestore(&kranal_data.kra_reaper_lock, flags);
LASSERT (list_empty(&kranal_data.kra_connd_peers));
spin_unlock_irqrestore(&kranal_data.kra_reaper_lock, flags);
LASSERT (list_empty(&kranal_data.kra_connd_peers));
- spin_lock_irqsave(&kranal
-
data.kra_connd_lock, flags);
+ spin_lock_irqsave(&kranal
_
data.kra_connd_lock, flags);
wake_up_all(&kranal_data.kra_connd_waitq);
wake_up_all(&kranal_data.kra_connd_waitq);
- spin_unlock_irqrestore(&kranal
-
data.kra_connd_lock, flags);
+ spin_unlock_irqrestore(&kranal
_
data.kra_connd_lock, flags);
i = 2;
while (atomic_read(&kranal_data.kra_nthreads) != 0) {
i = 2;
while (atomic_read(&kranal_data.kra_nthreads) != 0) {
@@
-1897,7
+1902,7
@@
kranal_api_startup (nal_t *nal, ptl_pid_t requested_pid,
if (kranal_data.kra_ndevs == 0)
goto failed;
if (kranal_data.kra_ndevs == 0)
goto failed;
- rc = libcfs_nal_cmd_register(
OPEN
RANAL, &kranal_cmd, NULL);
+ rc = libcfs_nal_cmd_register(RANAL, &kranal_cmd, NULL);
if (rc != 0) {
CERROR("Can't initialise command interface (rc = %d)\n", rc);
goto failed;
if (rc != 0) {
CERROR("Can't initialise command interface (rc = %d)\n", rc);
goto failed;
@@
-1927,7
+1932,7
@@
kranal_module_fini (void)
#endif
PtlNIFini(kranal_ni);
#endif
PtlNIFini(kranal_ni);
- ptl_unregister_nal(
OPEN
RANAL);
+ ptl_unregister_nal(RANAL);
}
int __init
}
int __init
@@
-1949,16
+1954,16
@@
kranal_module_init (void)
/* Initialise dynamic tunables to defaults once only */
kranal_tunables.kra_timeout = RANAL_TIMEOUT;
/* Initialise dynamic tunables to defaults once only */
kranal_tunables.kra_timeout = RANAL_TIMEOUT;
- rc = ptl_register_nal(
OPEN
RANAL, &kranal_api);
+ rc = ptl_register_nal(RANAL, &kranal_api);
if (rc != PTL_OK) {
CERROR("Can't register RANAL: %d\n", rc);
return -ENOMEM; /* or something... */
}
/* Pure gateways want the NAL started up at module load time... */
if (rc != PTL_OK) {
CERROR("Can't register RANAL: %d\n", rc);
return -ENOMEM; /* or something... */
}
/* Pure gateways want the NAL started up at module load time... */
- rc = PtlNIInit(
OPEN
RANAL, LUSTRE_SRV_PTL_PID, NULL, NULL, &kranal_ni);
+ rc = PtlNIInit(RANAL, LUSTRE_SRV_PTL_PID, NULL, NULL, &kranal_ni);
if (rc != PTL_OK && rc != PTL_IFACE_DUP) {
if (rc != PTL_OK && rc != PTL_IFACE_DUP) {
- ptl_unregister_nal(
OPEN
RANAL);
+ ptl_unregister_nal(RANAL);
return -ENODEV;
}
return -ENODEV;
}