Whamcloud - gitweb
LU-5696 ptlrpc: missing wakeup for ptlrpc_check_set 58/12158/10
authorLiang Zhen <liang.zhen@intel.com>
Wed, 1 Oct 2014 16:47:46 +0000 (00:47 +0800)
committerOleg Drokin <oleg.drokin@intel.com>
Fri, 5 Dec 2014 13:40:44 +0000 (13:40 +0000)
commitb8e981df1ae9866cc02650205e18ee42835f5822
tree6a2b4690cc85f31c7c21b838bb1a49f5d4a9948a
parent8641822bdb248a034bf4065c7e2e60cdb7a47041
LU-5696 ptlrpc: missing wakeup for ptlrpc_check_set

This patch changes a few things:

- There is no guarantee that request_out_callback will happen
  before reply_in_callback, if a request got reply and unlinked
  reply buffer before request_out_callback is called, then the
  thread waiting on ptlrpc_request_set will miss wakeup event.

  This may seriously impact performance of some IO workloads or
  result in RPC timeout

- To make code more easier to understand, this patch changes
  action-bits "rq_req_unlink" and "rq_reply_unlink" to
  status-bits "rq_req_unlinked" and "rq_reply_unlinked"

Signed-off-by: Liang Zhen <liang.zhen@intel.com>
Change-Id: Ie6043534af3c9b48a52da30210d327f3de83b866
Reviewed-on: http://review.whamcloud.com/12158
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Johann Lombardi <johann.lombardi@intel.com>
Reviewed-by: Li Wei <wei.g.li@intel.com>
Reviewed-by: Mike Pershin <mike.pershin@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/include/lustre_net.h
lustre/ptlrpc/client.c
lustre/ptlrpc/events.c
lustre/ptlrpc/niobuf.c
lustre/ptlrpc/ptlrpc_internal.h