diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-05-09 17:33:15 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-05-09 17:33:15 -0400 |
commit | 06cbd26d312edfe4a83ff541c23f8f866265eb24 (patch) | |
tree | 45046d0daca202df6c590390df05fbd07ed84a5d /include/trace | |
parent | abde77eb5c66b2f98539c4644b54f34b7e179e6b (diff) | |
parent | 5940d1cf9f42f67e9cc3f7df9eda39f5888d6e9e (diff) |
Merge tag 'nfs-for-5.2-1' of git://git.linux-nfs.org/projects/anna/linux-nfs
Pull NFS client updates from Anna Schumaker:
"Highlights include:
Stable bugfixes:
- Fall back to MDS if no deviceid is found rather than aborting # v4.11+
- NFS4: Fix v4.0 client state corruption when mount
Features:
- Much improved handling of soft mounts with NFS v4.0:
- Reduce risk of false positive timeouts
- Faster failover of reads and writes after a timeout
- Added a "softerr" mount option to return ETIMEDOUT instead of
EIO to the application after a timeout
- Increase number of xprtrdma backchannel requests
- Add additional xprtrdma tracepoints
- Improved send completion batching for xprtrdma
Other bugfixes and cleanups:
- Return -EINVAL when NFS v4.2 is passed an invalid dedup mode
- Reduce usage of GFP_ATOMIC pages in SUNRPC
- Various minor NFS over RDMA cleanups and bugfixes
- Use the correct container namespace for upcalls
- Don't share superblocks between user namespaces
- Various other container fixes
- Make nfs_match_client() killable to prevent soft lockups
- Don't mark all open state for recovery when handling recallable
state revoked flag"
* tag 'nfs-for-5.2-1' of git://git.linux-nfs.org/projects/anna/linux-nfs: (69 commits)
SUNRPC: Rebalance a kref in auth_gss.c
NFS: Fix a double unlock from nfs_match,get_client
nfs: pass the correct prototype to read_cache_page
NFSv4: don't mark all open state for recovery when handling recallable state revoked flag
SUNRPC: Fix an error code in gss_alloc_msg()
SUNRPC: task should be exit if encode return EKEYEXPIRED more times
NFS4: Fix v4.0 client state corruption when mount
PNFS fallback to MDS if no deviceid found
NFS: make nfs_match_client killable
lockd: Store the lockd client credential in struct nlm_host
NFS: When mounting, don't share filesystems between different user namespaces
NFS: Convert NFSv2 to use the container user namespace
NFSv4: Convert the NFS client idmapper to use the container user namespace
NFS: Convert NFSv3 to use the container user namespace
SUNRPC: Use namespace of listening daemon in the client AUTH_GSS upcall
SUNRPC: Use the client user namespace when encoding creds
NFS: Store the credential of the mount process in the nfs_server
SUNRPC: Cache cred of process creating the rpc_client
xprtrdma: Remove stale comment
xprtrdma: Update comments that reference ib_drain_qp
...
Diffstat (limited to 'include/trace')
-rw-r--r-- | include/trace/events/rpcrdma.h | 27 | ||||
-rw-r--r-- | include/trace/events/sunrpc.h | 8 |
2 files changed, 31 insertions, 4 deletions
diff --git a/include/trace/events/rpcrdma.h b/include/trace/events/rpcrdma.h index 962975b4313f..df9851cb82b2 100644 --- a/include/trace/events/rpcrdma.h +++ b/include/trace/events/rpcrdma.h | |||
@@ -511,6 +511,33 @@ TRACE_EVENT(xprtrdma_marshal, | |||
511 | ) | 511 | ) |
512 | ); | 512 | ); |
513 | 513 | ||
514 | TRACE_EVENT(xprtrdma_marshal_failed, | ||
515 | TP_PROTO(const struct rpc_rqst *rqst, | ||
516 | int ret | ||
517 | ), | ||
518 | |||
519 | TP_ARGS(rqst, ret), | ||
520 | |||
521 | TP_STRUCT__entry( | ||
522 | __field(unsigned int, task_id) | ||
523 | __field(unsigned int, client_id) | ||
524 | __field(u32, xid) | ||
525 | __field(int, ret) | ||
526 | ), | ||
527 | |||
528 | TP_fast_assign( | ||
529 | __entry->task_id = rqst->rq_task->tk_pid; | ||
530 | __entry->client_id = rqst->rq_task->tk_client->cl_clid; | ||
531 | __entry->xid = be32_to_cpu(rqst->rq_xid); | ||
532 | __entry->ret = ret; | ||
533 | ), | ||
534 | |||
535 | TP_printk("task:%u@%u xid=0x%08x: ret=%d", | ||
536 | __entry->task_id, __entry->client_id, __entry->xid, | ||
537 | __entry->ret | ||
538 | ) | ||
539 | ); | ||
540 | |||
514 | TRACE_EVENT(xprtrdma_post_send, | 541 | TRACE_EVENT(xprtrdma_post_send, |
515 | TP_PROTO( | 542 | TP_PROTO( |
516 | const struct rpcrdma_req *req, | 543 | const struct rpcrdma_req *req, |
diff --git a/include/trace/events/sunrpc.h b/include/trace/events/sunrpc.h index f0a6f0c5549c..ffa3c51dbb1a 100644 --- a/include/trace/events/sunrpc.h +++ b/include/trace/events/sunrpc.h | |||
@@ -82,7 +82,6 @@ TRACE_DEFINE_ENUM(RPC_TASK_SWAPPER); | |||
82 | TRACE_DEFINE_ENUM(RPC_CALL_MAJORSEEN); | 82 | TRACE_DEFINE_ENUM(RPC_CALL_MAJORSEEN); |
83 | TRACE_DEFINE_ENUM(RPC_TASK_ROOTCREDS); | 83 | TRACE_DEFINE_ENUM(RPC_TASK_ROOTCREDS); |
84 | TRACE_DEFINE_ENUM(RPC_TASK_DYNAMIC); | 84 | TRACE_DEFINE_ENUM(RPC_TASK_DYNAMIC); |
85 | TRACE_DEFINE_ENUM(RPC_TASK_KILLED); | ||
86 | TRACE_DEFINE_ENUM(RPC_TASK_SOFT); | 85 | TRACE_DEFINE_ENUM(RPC_TASK_SOFT); |
87 | TRACE_DEFINE_ENUM(RPC_TASK_SOFTCONN); | 86 | TRACE_DEFINE_ENUM(RPC_TASK_SOFTCONN); |
88 | TRACE_DEFINE_ENUM(RPC_TASK_SENT); | 87 | TRACE_DEFINE_ENUM(RPC_TASK_SENT); |
@@ -97,7 +96,6 @@ TRACE_DEFINE_ENUM(RPC_TASK_NO_RETRANS_TIMEOUT); | |||
97 | { RPC_CALL_MAJORSEEN, "MAJORSEEN" }, \ | 96 | { RPC_CALL_MAJORSEEN, "MAJORSEEN" }, \ |
98 | { RPC_TASK_ROOTCREDS, "ROOTCREDS" }, \ | 97 | { RPC_TASK_ROOTCREDS, "ROOTCREDS" }, \ |
99 | { RPC_TASK_DYNAMIC, "DYNAMIC" }, \ | 98 | { RPC_TASK_DYNAMIC, "DYNAMIC" }, \ |
100 | { RPC_TASK_KILLED, "KILLED" }, \ | ||
101 | { RPC_TASK_SOFT, "SOFT" }, \ | 99 | { RPC_TASK_SOFT, "SOFT" }, \ |
102 | { RPC_TASK_SOFTCONN, "SOFTCONN" }, \ | 100 | { RPC_TASK_SOFTCONN, "SOFTCONN" }, \ |
103 | { RPC_TASK_SENT, "SENT" }, \ | 101 | { RPC_TASK_SENT, "SENT" }, \ |
@@ -111,6 +109,7 @@ TRACE_DEFINE_ENUM(RPC_TASK_ACTIVE); | |||
111 | TRACE_DEFINE_ENUM(RPC_TASK_NEED_XMIT); | 109 | TRACE_DEFINE_ENUM(RPC_TASK_NEED_XMIT); |
112 | TRACE_DEFINE_ENUM(RPC_TASK_NEED_RECV); | 110 | TRACE_DEFINE_ENUM(RPC_TASK_NEED_RECV); |
113 | TRACE_DEFINE_ENUM(RPC_TASK_MSG_PIN_WAIT); | 111 | TRACE_DEFINE_ENUM(RPC_TASK_MSG_PIN_WAIT); |
112 | TRACE_DEFINE_ENUM(RPC_TASK_SIGNALLED); | ||
114 | 113 | ||
115 | #define rpc_show_runstate(flags) \ | 114 | #define rpc_show_runstate(flags) \ |
116 | __print_flags(flags, "|", \ | 115 | __print_flags(flags, "|", \ |
@@ -119,7 +118,8 @@ TRACE_DEFINE_ENUM(RPC_TASK_MSG_PIN_WAIT); | |||
119 | { (1UL << RPC_TASK_ACTIVE), "ACTIVE" }, \ | 118 | { (1UL << RPC_TASK_ACTIVE), "ACTIVE" }, \ |
120 | { (1UL << RPC_TASK_NEED_XMIT), "NEED_XMIT" }, \ | 119 | { (1UL << RPC_TASK_NEED_XMIT), "NEED_XMIT" }, \ |
121 | { (1UL << RPC_TASK_NEED_RECV), "NEED_RECV" }, \ | 120 | { (1UL << RPC_TASK_NEED_RECV), "NEED_RECV" }, \ |
122 | { (1UL << RPC_TASK_MSG_PIN_WAIT), "MSG_PIN_WAIT" }) | 121 | { (1UL << RPC_TASK_MSG_PIN_WAIT), "MSG_PIN_WAIT" }, \ |
122 | { (1UL << RPC_TASK_SIGNALLED), "SIGNALLED" }) | ||
123 | 123 | ||
124 | DECLARE_EVENT_CLASS(rpc_task_running, | 124 | DECLARE_EVENT_CLASS(rpc_task_running, |
125 | 125 | ||
@@ -186,7 +186,7 @@ DECLARE_EVENT_CLASS(rpc_task_queued, | |||
186 | __entry->client_id = task->tk_client ? | 186 | __entry->client_id = task->tk_client ? |
187 | task->tk_client->cl_clid : -1; | 187 | task->tk_client->cl_clid : -1; |
188 | __entry->task_id = task->tk_pid; | 188 | __entry->task_id = task->tk_pid; |
189 | __entry->timeout = task->tk_timeout; | 189 | __entry->timeout = rpc_task_timeout(task); |
190 | __entry->runstate = task->tk_runstate; | 190 | __entry->runstate = task->tk_runstate; |
191 | __entry->status = task->tk_status; | 191 | __entry->status = task->tk_status; |
192 | __entry->flags = task->tk_flags; | 192 | __entry->flags = task->tk_flags; |