linux/arch
Babu Moger e3e54a9300 x86/resctrl: Fix default monitoring groups reporting
commit 064855a69003c24bd6b473b367d364e418c57625 upstream.

Creating a new sub monitoring group in the root /sys/fs/resctrl leads to
getting the "Unavailable" value for mbm_total_bytes and mbm_local_bytes
on the entire filesystem.

Steps to reproduce:

  1. mount -t resctrl resctrl /sys/fs/resctrl/

  2. cd /sys/fs/resctrl/

  3. cat mon_data/mon_L3_00/mbm_total_bytes
     23189832

  4. Create sub monitor group:
  mkdir mon_groups/test1

  5. cat mon_data/mon_L3_00/mbm_total_bytes
     Unavailable

When a new monitoring group is created, a new RMID is assigned to the
new group. But the RMID is not active yet. When the events are read on
the new RMID, it is expected to report the status as "Unavailable".

When the user reads the events on the default monitoring group with
multiple subgroups, the events on all subgroups are consolidated
together. Currently, if any of the RMID reads report as "Unavailable",
then everything will be reported as "Unavailable".

Fix the issue by discarding the "Unavailable" reads and reporting all
the successful RMID reads. This is not a problem on Intel systems as
Intel reports 0 on Inactive RMIDs.

Fixes: d89b737901 ("x86/intel_rdt/cqm: Add mon_data")
Reported-by: Paweł Szulik <pawel.szulik@intel.com>
Signed-off-by: Babu Moger <Babu.Moger@amd.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Acked-by: Reinette Chatre <reinette.chatre@intel.com>
Cc: stable@vger.kernel.org
Link: https://bugzilla.kernel.org/show_bug.cgi?id=213311
Link: https://lkml.kernel.org/r/162793309296.9224.15871659871696482080.stgit@bmoger-ubuntu
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-08-18 08:57:02 +02:00
..
alpha alpha: Send stop IPI to send to online CPUs 2021-08-12 13:21:05 +02:00
arc
arm omap5-board-common: remove not physically existing vdds_1v8_main fixed-regulator 2021-08-12 13:20:55 +02:00
arm64 arm64: fix compat syscall return truncation 2021-08-12 13:21:05 +02:00
c6x
csky
h8300
hexagon
ia64
m68k
microblaze
mips MIPS: Malta: Do not byte-swap accesses to the CBUS UART 2021-08-12 13:21:02 +02:00
nds32 nds32: fix up stack guard gap 2021-07-28 13:31:01 +02:00
nios2
openrisc
parisc
powerpc powerpc/kprobes: Fix kprobe Oops happens in booke 2021-08-18 08:57:01 +02:00
riscv
s390 s390/boot: fix use of expolines in the DMA code 2021-07-28 13:30:58 +02:00
sh
sparc
um
unicore32
x86 x86/resctrl: Fix default monitoring groups reporting 2021-08-18 08:57:02 +02:00
xtensa
.gitignore
Kconfig