|
@@ -268,17 +268,27 @@ static int rdtgroup_cpus_show(struct kernfs_open_file *of,
|
|
|
struct seq_file *s, void *v)
|
|
|
{
|
|
|
struct rdtgroup *rdtgrp;
|
|
|
+ struct cpumask *mask;
|
|
|
int ret = 0;
|
|
|
|
|
|
rdtgrp = rdtgroup_kn_lock_live(of->kn);
|
|
|
|
|
|
if (rdtgrp) {
|
|
|
- if (rdtgrp->mode == RDT_MODE_PSEUDO_LOCKED)
|
|
|
- seq_printf(s, is_cpu_list(of) ? "%*pbl\n" : "%*pb\n",
|
|
|
- cpumask_pr_args(&rdtgrp->plr->d->cpu_mask));
|
|
|
- else
|
|
|
+ if (rdtgrp->mode == RDT_MODE_PSEUDO_LOCKED) {
|
|
|
+ if (!rdtgrp->plr->d) {
|
|
|
+ rdt_last_cmd_clear();
|
|
|
+ rdt_last_cmd_puts("Cache domain offline\n");
|
|
|
+ ret = -ENODEV;
|
|
|
+ } else {
|
|
|
+ mask = &rdtgrp->plr->d->cpu_mask;
|
|
|
+ seq_printf(s, is_cpu_list(of) ?
|
|
|
+ "%*pbl\n" : "%*pb\n",
|
|
|
+ cpumask_pr_args(mask));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
seq_printf(s, is_cpu_list(of) ? "%*pbl\n" : "%*pb\n",
|
|
|
cpumask_pr_args(&rdtgrp->cpu_mask));
|
|
|
+ }
|
|
|
} else {
|
|
|
ret = -ENOENT;
|
|
|
}
|
|
@@ -1282,6 +1292,7 @@ static int rdtgroup_size_show(struct kernfs_open_file *of,
|
|
|
struct rdt_resource *r;
|
|
|
struct rdt_domain *d;
|
|
|
unsigned int size;
|
|
|
+ int ret = 0;
|
|
|
bool sep;
|
|
|
u32 ctrl;
|
|
|
|
|
@@ -1292,11 +1303,18 @@ static int rdtgroup_size_show(struct kernfs_open_file *of,
|
|
|
}
|
|
|
|
|
|
if (rdtgrp->mode == RDT_MODE_PSEUDO_LOCKED) {
|
|
|
- seq_printf(s, "%*s:", max_name_width, rdtgrp->plr->r->name);
|
|
|
- size = rdtgroup_cbm_to_size(rdtgrp->plr->r,
|
|
|
- rdtgrp->plr->d,
|
|
|
- rdtgrp->plr->cbm);
|
|
|
- seq_printf(s, "%d=%u\n", rdtgrp->plr->d->id, size);
|
|
|
+ if (!rdtgrp->plr->d) {
|
|
|
+ rdt_last_cmd_clear();
|
|
|
+ rdt_last_cmd_puts("Cache domain offline\n");
|
|
|
+ ret = -ENODEV;
|
|
|
+ } else {
|
|
|
+ seq_printf(s, "%*s:", max_name_width,
|
|
|
+ rdtgrp->plr->r->name);
|
|
|
+ size = rdtgroup_cbm_to_size(rdtgrp->plr->r,
|
|
|
+ rdtgrp->plr->d,
|
|
|
+ rdtgrp->plr->cbm);
|
|
|
+ seq_printf(s, "%d=%u\n", rdtgrp->plr->d->id, size);
|
|
|
+ }
|
|
|
goto out;
|
|
|
}
|
|
|
|
|
@@ -1326,7 +1344,7 @@ static int rdtgroup_size_show(struct kernfs_open_file *of,
|
|
|
out:
|
|
|
rdtgroup_kn_unlock(of->kn);
|
|
|
|
|
|
- return 0;
|
|
|
+ return ret;
|
|
|
}
|
|
|
|
|
|
/* rdtgroup information files for one cache resource. */
|