Hi, this is a resend of patch series that I sent a little over a month ago. Since then I've recieved Reviewed-By:from James Simmons (thanks) and confirmation that it passes his testing. I cannot quite say that all tests pass for me with these patch, but the tests produce the same results both with and without the patches.
No non-trivial changes - a couple of typos in change descriptions fixes, and reviewed-by's added. Previous intro text: Hi, this is a revised version of the patch series I sent under a similar subject in mid December. Improvements are: - new wait_event_idle* macros are now in include/linux/wait.h which Ack from peterz. - *all* waits are now TASK_IDLE or TASK_INTERRUPTIBLE and so don't affect the load average. There is no need to choose whether load is appropriate or not in each case. - all l_wait_event() users are handled so l_wait_event() is removed. The one case I had left out before uses wait_event_idle_exclusive() with and option of using wait_event_idle_exclusive_lifo() is that ever gets approved. I think this set is ready to go. If you only review two patches, please review staging: lustre: simplify waiting in ldlm_completion_ast() and staging: lustre: remove back_to_sleep() as in both of those, the actual behaviour of the current code (as I understand it) doesn't seem to agree with comments/debug message, or just generally looks odd. Thanks, NeilBrown --- NeilBrown (19): sched/wait: add wait_event_idle() functions. staging: lustre: discard SVC_SIGNAL and related functions staging: lustre: replace simple cases of l_wait_event() with wait_event(). staging: lustre: discard cfs_time_seconds() staging: lustre: use wait_event_idle_timeout() where appropriate. staging: lustre: introduce and use l_wait_event_abortable() staging: lustre: simplify l_wait_event when intr handler but no timeout. staging: lustre: simplify waiting in ldlm_completion_ast() staging: lustre: open code polling loop instead of using l_wait_event() staging: lustre: simplify waiting in ptlrpc_invalidate_import() staging: lustre: remove back_to_sleep() staging: lustre: make polling loop in ptlrpc_unregister_bulk more obvious staging: lustre: use wait_event_idle_timeout in ptlrpcd() staging: lustre: improve waiting in sptlrpc_req_refresh_ctx staging: lustre: use explicit poll loop in ptlrpc_service_unlink_rqbd staging: lustre: use explicit poll loop in ptlrpc_unregister_reply staging: lustre: remove l_wait_event from ptlrpc_set_wait staging: lustre: replace l_wait_event_exclusive_head() with wait_event_idle_exclusive staging: lustre: remove l_wait_event() and related code .../lustre/include/linux/libcfs/libcfs_debug.h | 4 .../lustre/include/linux/libcfs/libcfs_time.h | 2 .../lustre/include/linux/libcfs/linux/linux-time.h | 7 .../staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c | 8 - .../staging/lustre/lnet/klnds/o2iblnd/o2iblnd_cb.c | 4 .../staging/lustre/lnet/klnds/socklnd/socklnd.c | 6 .../staging/lustre/lnet/klnds/socklnd/socklnd_cb.c | 22 + drivers/staging/lustre/lnet/libcfs/debug.c | 2 drivers/staging/lustre/lnet/libcfs/fail.c | 2 drivers/staging/lustre/lnet/libcfs/tracefile.c | 4 drivers/staging/lustre/lnet/lnet/acceptor.c | 2 drivers/staging/lustre/lnet/lnet/api-ni.c | 4 drivers/staging/lustre/lnet/lnet/lib-move.c | 4 drivers/staging/lustre/lnet/lnet/net_fault.c | 14 - drivers/staging/lustre/lnet/lnet/peer.c | 2 drivers/staging/lustre/lnet/lnet/router.c | 8 - drivers/staging/lustre/lnet/selftest/conrpc.c | 4 drivers/staging/lustre/lnet/selftest/rpc.c | 2 drivers/staging/lustre/lnet/selftest/selftest.h | 2 drivers/staging/lustre/lnet/selftest/timer.c | 2 drivers/staging/lustre/lustre/include/lustre_dlm.h | 2 drivers/staging/lustre/lustre/include/lustre_lib.h | 296 ++------------------ drivers/staging/lustre/lustre/include/lustre_mdc.h | 2 drivers/staging/lustre/lustre/include/lustre_net.h | 8 - drivers/staging/lustre/lustre/ldlm/ldlm_flock.c | 30 -- drivers/staging/lustre/lustre/ldlm/ldlm_lock.c | 14 - drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c | 12 - drivers/staging/lustre/lustre/ldlm/ldlm_pool.c | 17 - drivers/staging/lustre/lustre/ldlm/ldlm_request.c | 55 +--- drivers/staging/lustre/lustre/ldlm/ldlm_resource.c | 14 - drivers/staging/lustre/lustre/llite/llite_lib.c | 23 +- drivers/staging/lustre/lustre/llite/statahead.c | 60 ++-- drivers/staging/lustre/lustre/lov/lov_object.c | 6 drivers/staging/lustre/lustre/lov/lov_request.c | 12 - drivers/staging/lustre/lustre/mdc/mdc_request.c | 5 drivers/staging/lustre/lustre/mgc/mgc_request.c | 19 - drivers/staging/lustre/lustre/obdclass/cl_io.c | 23 +- drivers/staging/lustre/lustre/obdclass/genops.c | 24 +- drivers/staging/lustre/lustre/obdclass/llog_obd.c | 5 .../staging/lustre/lustre/obdecho/echo_client.c | 2 drivers/staging/lustre/lustre/osc/osc_cache.c | 28 +- drivers/staging/lustre/lustre/osc/osc_object.c | 6 drivers/staging/lustre/lustre/osc/osc_page.c | 6 drivers/staging/lustre/lustre/osc/osc_request.c | 6 drivers/staging/lustre/lustre/ptlrpc/client.c | 101 +++---- drivers/staging/lustre/lustre/ptlrpc/events.c | 7 drivers/staging/lustre/lustre/ptlrpc/import.c | 51 +-- drivers/staging/lustre/lustre/ptlrpc/niobuf.c | 15 + .../staging/lustre/lustre/ptlrpc/pack_generic.c | 9 - drivers/staging/lustre/lustre/ptlrpc/pinger.c | 28 +- .../staging/lustre/lustre/ptlrpc/ptlrpc_internal.h | 2 drivers/staging/lustre/lustre/ptlrpc/ptlrpcd.c | 18 + drivers/staging/lustre/lustre/ptlrpc/recover.c | 12 - drivers/staging/lustre/lustre/ptlrpc/sec.c | 34 ++ drivers/staging/lustre/lustre/ptlrpc/sec_gc.c | 23 -- drivers/staging/lustre/lustre/ptlrpc/service.c | 84 +++--- include/linux/wait.h | 114 ++++++++ 57 files changed, 516 insertions(+), 762 deletions(-) -- Signature