Whamcloud - gitweb
LU-15926 nrs: fix tbf realtime rules 85/47585/3
authorEtienne AUJAMES <etienne.aujames@cea.fr>
Thu, 9 Jun 2022 20:50:06 +0000 (22:50 +0200)
committerOleg Drokin <green@whamcloud.com>
Mon, 11 Jul 2022 06:49:52 +0000 (06:49 +0000)
tc_nsecs_resid should be reset to 0 when changing a rule otherwise
this could lead to mds crashes for realtime policies.

nrs_tbf_req_get(): ASSERTION( cli->tc_nsecs_resid < cli->tc_nsecs )

Fixes: d11fa2c27959 ("LU-9228 nrs: TBF realtime policies under congestion")
Signed-off-by: Etienne AUJAMES <eaujames@ddn.com>
Change-Id: I280acb42e104088c6b8750a0bb7bf9c50cf96e73
Reviewed-on: https://review.whamcloud.com/47585
Tested-by: jenkins <devops@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Yingjin Qian <qian@ddn.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/ptlrpc/nrs_tbf.c

index 50b983e..1c8d3b0 100644 (file)
@@ -131,6 +131,7 @@ nrs_tbf_cli_reset_value(struct nrs_tbf_head *head,
 
        cli->tc_rpc_rate = rule->tr_rpc_rate;
        cli->tc_nsecs = rule->tr_nsecs_per_rpc;
 
        cli->tc_rpc_rate = rule->tr_rpc_rate;
        cli->tc_nsecs = rule->tr_nsecs_per_rpc;
+       cli->tc_nsecs_resid = 0;
        cli->tc_depth = rule->tr_depth;
        cli->tc_ntoken = rule->tr_depth;
        cli->tc_check_time = ktime_to_ns(ktime_get());
        cli->tc_depth = rule->tr_depth;
        cli->tc_ntoken = rule->tr_depth;
        cli->tc_check_time = ktime_to_ns(ktime_get());