{
const int tmpsiz = 256;
struct lnet_peer_table *ptable;
- char *tmpstr;
+ char *tmpstr = NULL;
char *s;
int cpt = LNET_PROC_CPT_GET(*ppos);
int ver = LNET_PROC_VER_GET(*ppos);
int rc = 0;
int len;
- CLASSERT(LNET_PROC_HASH_BITS >= LNET_PEER_HASH_BITS);
- LASSERT(!write);
+ if (write) {
+ int i;
+ struct lnet_peer_ni *peer;
+
+ cfs_percpt_for_each(ptable, i, the_lnet.ln_peer_tables) {
+ lnet_net_lock(i);
+ for (hash = 0; hash < LNET_PEER_HASH_SIZE; hash++) {
+ list_for_each_entry(peer,
+ &ptable->pt_hash[hash],
+ lpni_hashlist) {
+ peer->lpni_mintxcredits =
+ peer->lpni_txcredits;
+ peer->lpni_minrtrcredits =
+ peer->lpni_rtrcredits;
+ }
+ }
+ lnet_net_unlock(i);
+ }
+ *ppos += *lenp;
+ return 0;
+ }
if (*lenp == 0)
return 0;
+ CLASSERT(LNET_PROC_HASH_BITS >= LNET_PEER_HASH_BITS);
+
if (cpt >= LNET_CPT_NUMBER) {
*lenp = 0;
return 0;
struct lnet_peer_ni *peer;
struct list_head *p;
int skip;
+
again:
p = NULL;
peer = NULL;
size_t *lenp, loff_t *ppos)
{
int tmpsiz = 128 * LNET_CPT_NUMBER;
- int rc = 0;
- char *tmpstr;
- char *s;
- int len;
-
- LASSERT(!write);
+ int rc = 0;
+ char *tmpstr;
+ char *s;
+ int len;
if (*lenp == 0)
return 0;
+ if (write) {
+ /* Just reset the min stat. */
+ struct lnet_ni *ni;
+ struct lnet_net *net;
+
+ lnet_net_lock(0);
+
+ list_for_each_entry(net, &the_lnet.ln_nets, net_list) {
+ list_for_each_entry(ni, &net->net_ni_list, ni_netlist) {
+ struct lnet_tx_queue *tq;
+ int i;
+ int j;
+
+ cfs_percpt_for_each(tq, i, ni->ni_tx_queues) {
+ for (j = 0; ni->ni_cpts != NULL &&
+ j < ni->ni_ncpts; j++) {
+ if (i == ni->ni_cpts[j])
+ break;
+ }
+
+ if (j == ni->ni_ncpts)
+ continue;
+
+ if (i != 0)
+ lnet_net_lock(i);
+ tq->tq_credits_min = tq->tq_credits;
+ if (i != 0)
+ lnet_net_unlock(i);
+ }
+ }
+ }
+ lnet_net_unlock(0);
+ *ppos += *lenp;
+ return 0;
+ }
+
LIBCFS_ALLOC(tmpstr, tmpsiz);
if (tmpstr == NULL)
return -ENOMEM;
{
INIT_CTL_NAME
.procname = "peers",
- .mode = 0444,
+ .mode = 0644,
.proc_handler = &proc_lnet_peers,
},
{
{
INIT_CTL_NAME
.procname = "nis",
- .mode = 0444,
+ .mode = 0644,
.proc_handler = &proc_lnet_nis,
},
{