Whamcloud - gitweb
LU-9660 ptlrpc: do not wakeup every second 69/29969/4
authorAlex Zhuravlev <alexey.zhuravlev@intel.com>
Tue, 29 Aug 2017 12:08:42 +0000 (15:08 +0300)
committerJohn L. Hammond <john.hammond@intel.com>
Tue, 19 Dec 2017 18:28:59 +0000 (18:28 +0000)
Even if there are no RPC requests on the set, there is no need to
wake up every second. The thread is woken up when a request is added
to the set or when the STOP bit is set, so it is sufficient to only
wake up when there are requests on the set to worry about.

Lustre-change: https://review.whamcloud.com/28776
Lustre-commit: e81847bd06519dd9847c31244abe6da978bcd016
Change-Id: Iac01d8c46e8645ecb6303ce72e0f6c59f16dcd5d
Signed-off-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Patrick Farrell <paf@cray.com>
Signed-off-by: Minh Diep <minh.diep@intel.com>
Reviewed-on: https://review.whamcloud.com/29969
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
lustre/ptlrpc/ptlrpcd.c

index f305739..0532c4d 100644 (file)
@@ -413,7 +413,7 @@ static int ptlrpcd_check(struct lu_env *env, struct ptlrpcd_ctl *pc)
                }
        }
 
-       RETURN(rc);
+       RETURN(rc || test_bit(LIOD_STOP, &pc->pc_flags));
 }
 
 /**
@@ -479,8 +479,8 @@ static int ptlrpcd(void *arg)
                 int timeout;
 
                 timeout = ptlrpc_set_next_timeout(set);
-                lwi = LWI_TIMEOUT(cfs_time_seconds(timeout ? timeout : 1),
-                                  ptlrpc_expired_set, set);
+               lwi = LWI_TIMEOUT(cfs_time_seconds(timeout),
+                               ptlrpc_expired_set, set);
 
                lu_context_enter(&env.le_ctx);
                lu_context_enter(env.le_ses);