diff options
| author | Anna Schumaker <Anna.Schumaker@Netapp.com> | 2019-06-18 14:57:33 -0400 |
|---|---|---|
| committer | Anna Schumaker <Anna.Schumaker@Netapp.com> | 2019-06-21 14:43:42 -0400 |
| commit | 502980e84e4025d82e81f7d9684a708a3b31bcde (patch) | |
| tree | 63cde48fc619ab1122fd6f3e72503adf702eb7b9 | |
| parent | b96226148491505318228ac52624956bd98f9e0c (diff) | |
Revert "SUNRPC: Declare RPC timers as TIMER_DEFERRABLE"
Jon Hunter reports:
"I have been noticing intermittent failures with a system suspend test on
some of our machines that have a NFS mounted root file-system. Bisecting
this issue points to your commit 431235818bc3 ("SUNRPC: Declare RPC
timers as TIMER_DEFERRABLE") and reverting this on top of v5.2-rc3 does
appear to resolve the problem.
The cause of the suspend failure appears to be a long delay observed
sometimes when resuming from suspend, and this is causing our test to
timeout."
This reverts commit 431235818bc3a919ca7487500c67c3144feece80.
Reported-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
| -rw-r--r-- | net/sunrpc/sched.c | 4 | ||||
| -rw-r--r-- | net/sunrpc/xprt.c | 4 |
2 files changed, 2 insertions, 6 deletions
diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c index bb04ae52803a..a2c114812717 100644 --- a/net/sunrpc/sched.c +++ b/net/sunrpc/sched.c | |||
| @@ -250,9 +250,7 @@ static void __rpc_init_priority_wait_queue(struct rpc_wait_queue *queue, const c | |||
| 250 | queue->maxpriority = nr_queues - 1; | 250 | queue->maxpriority = nr_queues - 1; |
| 251 | rpc_reset_waitqueue_priority(queue); | 251 | rpc_reset_waitqueue_priority(queue); |
| 252 | queue->qlen = 0; | 252 | queue->qlen = 0; |
| 253 | timer_setup(&queue->timer_list.timer, | 253 | timer_setup(&queue->timer_list.timer, __rpc_queue_timer_fn, 0); |
| 254 | __rpc_queue_timer_fn, | ||
| 255 | TIMER_DEFERRABLE); | ||
| 256 | INIT_LIST_HEAD(&queue->timer_list.list); | 254 | INIT_LIST_HEAD(&queue->timer_list.list); |
| 257 | rpc_assign_waitqueue_name(queue, qname); | 255 | rpc_assign_waitqueue_name(queue, qname); |
| 258 | } | 256 | } |
diff --git a/net/sunrpc/xprt.c b/net/sunrpc/xprt.c index ad21880d5601..f6c82b1651e7 100644 --- a/net/sunrpc/xprt.c +++ b/net/sunrpc/xprt.c | |||
| @@ -1876,9 +1876,7 @@ found: | |||
| 1876 | xprt->idle_timeout = 0; | 1876 | xprt->idle_timeout = 0; |
| 1877 | INIT_WORK(&xprt->task_cleanup, xprt_autoclose); | 1877 | INIT_WORK(&xprt->task_cleanup, xprt_autoclose); |
| 1878 | if (xprt_has_timer(xprt)) | 1878 | if (xprt_has_timer(xprt)) |
| 1879 | timer_setup(&xprt->timer, | 1879 | timer_setup(&xprt->timer, xprt_init_autodisconnect, 0); |
| 1880 | xprt_init_autodisconnect, | ||
| 1881 | TIMER_DEFERRABLE); | ||
| 1882 | else | 1880 | else |
| 1883 | timer_setup(&xprt->timer, NULL, 0); | 1881 | timer_setup(&xprt->timer, NULL, 0); |
| 1884 | 1882 | ||
