Commit dfa6e651 authored by Wang ShaoBo's avatar Wang ShaoBo Committed by Zheng Zengkai
Browse files

arm64/mpam: Supplement err tips in info/last_cmd_status



hulk inclusion
category: bugfix
bugzilla: 48265
CVE: NA

--------------------------------

In many cases writing resctrl interface may return failure, but
err tips in info/last_cmd_status remain ok.
e.g.
    > echo 'L3:5=7fff' > schemata
      -bash: echo: write error: Invalid argument
    > cat info/last_cmd_status
      ok
    > cat ctrlmon
      1
    > echo 1 > ctrlmon
      -bash: echo: write error: No such file or directory
    > cat info/last_cmd_status
      ok
We add extra tips when goes to this branches.

Signed-off-by: default avatarWang ShaoBo <bobo.shaobowang@huawei.com>
Reviewed-by: default avatarXie XiuQi <xiexiuqi@huawei.com>
Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
Reviewed-by: default avatarCheng Jian <cj.chengjian@huawei.com>
Signed-off-by: default avatarZheng Zengkai <zhengzengkai@huawei.com>
parent 88520d23
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -858,7 +858,7 @@ static int resctrl_num_mon_show(struct kernfs_open_file *of,
int cpus_mon_write(struct rdtgroup *rdtgrp, cpumask_var_t newmask,
		   cpumask_var_t tmpmask)
{
	pr_info("unsupported on mon_groups, please use ctrlmon groups\n");
	rdt_last_cmd_puts("temporarily unsupported write cpus on mon_groups\n");
	return -EINVAL;
}

@@ -1143,6 +1143,7 @@ static ssize_t resctrl_group_ctrlmon_write(struct kernfs_open_file *of,

	if (!rdtgrp) {
		ret = -ENOENT;
		rdt_last_cmd_puts("directory was removed\n");
		goto unlock;
	}

@@ -1156,6 +1157,10 @@ static ssize_t resctrl_group_ctrlmon_write(struct kernfs_open_file *of,
		if (!ret)
			rdtgrp->flags |= RDT_CTRLMON;
	} else {
		if (ctrlmon)
			rdt_last_cmd_printf("ctrlmon has been enabled\n");
		else
			rdt_last_cmd_printf("ctrlmon has been disabled\n");
		ret = -ENOENT;
	}

+4 −0
Original line number Diff line number Diff line
@@ -171,6 +171,9 @@ static int parse_line(char *line, struct resctrl_resource *r)
			goto next;
		}
	}

	rdt_last_cmd_printf("unknown domain (%lu)\n", dom_id);

	return -EINVAL;
}

@@ -224,6 +227,7 @@ ssize_t resctrl_group_schemata_write(struct kernfs_open_file *of,
	rdtgrp = resctrl_group_kn_lock_live(of->kn);
	if (!rdtgrp) {
		resctrl_group_kn_unlock(of->kn);
		rdt_last_cmd_puts("directory was removed\n");
		return -ENOENT;
	}
	rdt_last_cmd_clear();