read_ahead_stats were updated. Copied stats section from
osc_send_oap_rpc() into async_internal().
+Severity : minor
+Bugzilla : 11706
+Frequency : only for Cray XT3
+Description: peer credits not enough on many OST per OSS systems.
+Details : Use new lnet way to add credits as we need those for pings and ASTs
+
--------------------------------------------------------------------------------
2007-07-30 Cluster File Systems, Inc. <info@clusterfs.com>
int ptlrpc_init_import(struct obd_import *imp);
int ptlrpc_disconnect_import(struct obd_import *imp, int noclose);
int ptlrpc_import_recovery_state_machine(struct obd_import *imp);
+void ptlrpc_import_setasync(struct obd_import *imp, int count);
/* ptlrpc/pack_generic.c */
int lustre_msg_swabbed(struct lustre_msg *msg);
switch (event) {
case IMP_EVENT_DISCON: {
+ ptlrpc_import_setasync(imp, -obd->obd_namespace->ns_max_unused);
break;
}
case IMP_EVENT_INACTIVE: {
break;
}
case IMP_EVENT_OCD:
+ ptlrpc_import_setasync(imp, obd->obd_namespace->ns_max_unused);
break;
default:
cli->cl_avail_grant = 0;
cli->cl_lost_grant = 0;
client_obd_list_unlock(&cli->cl_loi_list_lock);
+ ptlrpc_import_setasync(imp, -1);
break;
}
if (ocd->ocd_connect_flags & OBD_CONNECT_REQPORTAL)
imp->imp_client->cli_request_portal =OST_REQUEST_PORTAL;
+ ptlrpc_import_setasync(imp, 1);
rc = obd_notify_observer(obd, obd, OBD_NOTIFY_OCD, NULL);
break;
}
RETURN(rc);
}
+/* Sets maximal number of RPCs possible originating from other side of this
+ import (server) to us and number of async RPC replies that we are not waiting
+ for arriving */
+void ptlrpc_import_setasync(struct obd_import *imp, int count)
+{
+ LNetSetAsync(imp->imp_connection->c_peer, count);
+}
+
EXPORT_SYMBOL(ptlrpc_invalidate_import);
EXPORT_SYMBOL(ptlrpc_fail_import);
EXPORT_SYMBOL(ptlrpc_recover_import);
+EXPORT_SYMBOL(ptlrpc_import_setasync);
/* pinger.c */
EXPORT_SYMBOL(ptlrpc_pinger_add_import);