Whamcloud - gitweb
LU-15926 nrs: fix tbf realtime rules
authorEtienne AUJAMES <etienne.aujames@cea.fr>
Thu, 9 Jun 2022 20:50:06 +0000 (22:50 +0200)
committerAndreas Dilger <adilger@whamcloud.com>
Mon, 28 Aug 2023 16:17:54 +0000 (16:17 +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 )

Lustre-change: https://review.whamcloud.com/47585
Lustre-commit: 530861b344e46bef51c80adac4640c4586d8463a

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

index fc0cd19..6bdf48f 100644 (file)
@@ -133,6 +133,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_nsecs_resid = 0;
        cli->tc_depth = rule->tr_depth;
        cli->tc_ntoken = rule->tr_depth;
        cli->tc_check_time = ktime_to_ns(ktime_get());