[PATCH V2 0/9] x86/intel_rdt: MBA integration fixes

From: Fenghua Yu
Date: Sat Sep 15 2018 - 18:02:01 EST


Chen Yu reported an issue where reading the resctrl "size" file results in
a divide-by-zero issue on a system with a MBA resource. Further
investigation revealed more issues where the recent RDT features are not
well integrated with the MBA resource handling.

This series consists out of:
- One helper function in support of fixes that need to know the number of
supported CLOSIDs on the system (the minimum of all CLOSIDs of all
resources).
- The fix to the issue reported by Chen Yu - now reading a resource
group's "size" file will show a MB resource's allocation as its size.
- A fix from Xiaochen Shen to the MB parsing callback that was never
changed to accept a new parameter format.
- Functions that iterate over the number of CLOSIDs need to take care
whether it is using a particular resource's supported CLOSIDs or the
number of CLOSIDs supported by the system. This was done incorrectly in
a few places and fixed here.
- When a new resource group is created it is intended to be configured
with sane defaults. This new feature blindly assumed that the resource
group only consists out of cache resources - make this explicit to not
cause invalid register writes on a system with MBA resources.
- The new "exclusive" mode assumes that all resources support a CBM, while
a MBA resource does not. Since the MBA resource allocations cannot be
done in a way to specify whether allocations can overlap or not the
"exclusive" mode of a resource group will only apply to the cache
resources within the group, if only a MBA resource is present then
"exclusive" mode will not be allowed.

Changelog
v2:
- Patch 1: Change 'data' from void pointer to struct rdt_parse_data
pointer in parsing callbacks based on suggestion from Thomas.
- Patch 2, 4, 5: Condense backtraces in commit description to minimum
based on suggestion from Thomas

Reinette Chatre (8):
x86/intel_rdt: Fix size reporting of MBA resource
x86/intel_rdt: Global closid helper to support future fixes
x86/intel_rdt: Fix invalid mode warning when multiple resources are
managed
x86/intel_rdt: Fix unchecked MSR access
x86/intel_rdt: Do not allow pseudo-locking of MBA resource
x86/intel_rdt: Fix incorrect loop end condition
x86/intel_rdt: Fix exclusive mode handling of MBA resource
x86/intel_rdt: Fix incorrect loop end condition

Xiaochen Shen (1):
x86/intel_rdt: Fix data type in parsing callbacks

arch/x86/kernel/cpu/intel_rdt.h | 17 +++++--
arch/x86/kernel/cpu/intel_rdt_ctrlmondata.c | 27 ++++++-----
arch/x86/kernel/cpu/intel_rdt_rdtgroup.c | 53 +++++++++++++++++----
3 files changed, 71 insertions(+), 26 deletions(-)

--
2.19.0