extern int lprocfs_str_with_units_to_s64(const char __user *buffer,
unsigned long count, __s64 *val,
char defunit);
+
+char *lprocfs_strnstr(const char *s1, const char *s2, size_t len);
char *lprocfs_find_named_value(const char *buffer, const char *name,
size_t *count);
void lprocfs_oh_tally(struct obd_histogram *oh, unsigned int value);
}
EXPORT_SYMBOL(lprocfs_str_with_units_to_s64);
-static char *lprocfs_strnstr(const char *s1, const char *s2, size_t len)
+char *lprocfs_strnstr(const char *s1, const char *s2, size_t len)
{
size_t l2;
}
return NULL;
}
+EXPORT_SYMBOL(lprocfs_strnstr);
/**
* Find the string \a name in the input \a buffer, and return a pointer to the
nrs_tbf_jobid_list_add(struct cfs_lstr *id, struct list_head *jobid_list)
{
struct nrs_tbf_jobid *jobid;
- struct cfs_lstr res;
- int rc;
+ char *ptr;
OBD_ALLOC(jobid, sizeof(struct nrs_tbf_jobid));
if (jobid == NULL)
}
memcpy(jobid->tj_id, id->ls_str, id->ls_len);
- rc = cfs_gettok(id, '*', &res);
- if (rc == 0)
+ ptr = lprocfs_strnstr(id->ls_str, "*", id->ls_len);
+ if (ptr == NULL)
jobid->tj_match_flag = NRS_TBF_MATCH_FULL;
else
jobid->tj_match_flag = NRS_TBF_MATCH_WILDCARD;
}
run_test 77m "check NRS Delay slows write RPC processing"
+test_77n() { #LU-10802
+ if [ $(lustre_version_code ost1) -lt $(version_code 2.10.58) ]; then
+ skip "Need OST version at least 2.10.58"
+ return 0
+ fi
+
+ # Configure jobid_var
+ local saved_jobid_var=$($LCTL get_param -n jobid_var)
+ if [ $saved_jobid_var != procname_uid ]; then
+ set_conf_param_and_check client \
+ "$LCTL get_param -n jobid_var" \
+ "$FSNAME.sys.jobid_var" procname_uid
+ fi
+
+ do_nodes $(comma_list $(osts_nodes)) \
+ lctl set_param ost.OSS.ost_io.nrs_policies="tbf\ jobid" \
+ ost.OSS.ost_io.nrs_tbf_rule="stop\ dd_runas" \
+ ost.OSS.ost_io.nrs_tbf_rule="start\ dd_runas\ jobid={*.$RUNAS_ID}\ rate=20"
+
+ nrs_write_read
+ tbf_verify 20 20 "$RUNAS"
+
+ do_nodes $(comma_list $(osts_nodes)) \
+ lctl set_param ost.OSS.ost_io.nrs_tbf_rule="stop\ dd_runas" \
+ ost.OSS.ost_io.nrs_tbf_rule="start\ dd_runas\ jobid={dd.*}\ rate=20"
+
+ nrs_write_read
+ tbf_verify 20 20
+
+ do_nodes $(comma_list $(osts_nodes)) \
+ lctl set_param ost.OSS.ost_io.nrs_tbf_rule="stop\ dd_runas" \
+ ost.OSS.ost_io.nrs_policies="fifo"
+
+ sleep 3
+
+ local current_jobid_var=$($LCTL get_param -n jobid_var)
+ if [ $saved_jobid_var != $current_jobid_var ]; then
+ set_conf_param_and_check client \
+ "$LCTL get_param -n jobid_var" \
+ "$FSNAME.sys.jobid_var" $saved_jobid_var
+ fi
+}
+run_test 77n "check wildcard support for TBF JobID NRS policy"
+
test_78() { #LU-6673
local server_version=$(lustre_version_code ost1)
[[ $server_version -ge $(version_code 2.7.58) ]] ||