All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH][RFC] x86/intel_rdt: Do not display size for non-CAT resource
@ 2018-09-04 17:46 Chen Yu
  2018-09-04 20:24 ` Reinette Chatre
  0 siblings, 1 reply; 24+ messages in thread
From: Chen Yu @ 2018-09-04 17:46 UTC (permalink / raw)
  To: Fenghua Yu, Thomas Gleixner, Ingo Molnar, H. Peter Anvin
  Cc: x86, linux-kernel, Chen Yu, Reinette Chatre, Tony Luck

On a platform with MB resource enabled, a divided-by-zero
exception is triggered when accessing 'size':

[  151.193447] divide error: 0000 [#1] SMP PTI
[  151.197743] CPU: 93 PID: 1929 Comm: cat Not tainted 4.19.0-rc2-debug-rdt+ #25
[  151.205070] Hardware name: Dell Inc. PowerEdge R640/0CRT1G, BIOS 1.3.7 02/08/2018
[  151.212783] RIP: 0010:rdtgroup_cbm_to_size+0x7e/0xa0
[  151.237172] RSP: 0018:ffffb3454f90bd88 EFLAGS: 00010246
[  151.242538] RAX: 00000000023c0000 RBX: 0000000000000000 RCX: 0000000000000003
[  151.249878] RDX: 0000000000000000 RSI: 0000000000000004 RDI: 0000000000000003
[  151.257213] RBP: ffff96ff0089e000 R08: 0000000000000000 R09: 0000000000aaaaaa
[  151.264544] R10: ffffb3454f90bd8c R11: 00000000ffffffff R12: ffffffffb5028910
[  151.271887] R13: ffffffffb5028910 R14: 0000000000000064 R15: ffff96ff0089e000
[  151.279217] FS:  00007f95a623a500(0000) GS:ffff97170f9c0000(0000) knlGS:0000000000000000
[  151.287532] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  151.293432] CR2: 00007f95a6217000 CR3: 00000023f696c003 CR4: 00000000007606e0
[  151.300766] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[  151.308094] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[  151.315426] PKRU: 55555554
[  151.318212] Call Trace:
[  151.320732]  rdtgroup_size_show+0x11a/0x1d0
[  151.325039]  seq_read+0xd8/0x3b0
[  151.328363]  __vfs_read+0x36/0x170
[  151.331857]  vfs_read+0x89/0x130
[  151.335179]  ksys_read+0x52/0xc0
[  151.338500]  do_syscall_64+0x5b/0x180
[  151.342261]  entry_SYSCALL_64_after_hwframe+0x44/0xa9

This is because for MB resource, the r->cache.cbm_len is zero, thus
calculating size in rdtgroup_cbm_to_size() will trigger the exception.

Fix this issue by not exposing 'size' for non-CAT resources.

Fixes: d9b48c86eb38 ("x86/intel_rdt: Display resource groups'
allocations in bytes")
Cc: Reinette Chatre <reinette.chatre@intel.com>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Chen Yu <yu.c.chen@intel.com>
---
 arch/x86/kernel/cpu/intel_rdt_rdtgroup.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/kernel/cpu/intel_rdt_rdtgroup.c b/arch/x86/kernel/cpu/intel_rdt_rdtgroup.c
index b799c00bef09..53fd07b2f61a 100644
--- a/arch/x86/kernel/cpu/intel_rdt_rdtgroup.c
+++ b/arch/x86/kernel/cpu/intel_rdt_rdtgroup.c
@@ -1329,7 +1329,7 @@ static struct rftype res_common_files[] = {
 		.mode		= 0444,
 		.kf_ops		= &rdtgroup_kf_single_ops,
 		.seq_show	= rdtgroup_size_show,
-		.fflags		= RF_CTRL_BASE,
+		.fflags		= RF_CTRL_INFO | RFTYPE_RES_CACHE,
 	},
 
 };
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 24+ messages in thread
* [PATCH V2 0/9] x86/intel_rdt: MBA integration fixes
@ 2018-09-15 21:58 Fenghua Yu
  2018-09-15 21:58 ` [PATCH V2 1/9] x86/intel_rdt: Fix data type in parsing callbacks Fenghua Yu
                   ` (8 more replies)
  0 siblings, 9 replies; 24+ messages in thread
From: Fenghua Yu @ 2018-09-15 21:58 UTC (permalink / raw)
  To: Thomas Gleixner, Ingo Molnar, H Peter Anvin, Tony Luck
  Cc: Chatre, Reinette, Xiaochen Shen, Chen Yu, linux-kernel, x86,
	Fenghua Yu

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


^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2018-09-18 21:47 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-09-04 17:46 [PATCH][RFC] x86/intel_rdt: Do not display size for non-CAT resource Chen Yu
2018-09-04 20:24 ` Reinette Chatre
2018-09-04 22:36   ` Reinette Chatre
2018-09-05  6:28     ` Yu Chen
2018-09-05 20:52       ` Reinette Chatre
  -- strict thread matches above, loose matches on Subject: below --
2018-09-15 21:58 [PATCH V2 0/9] x86/intel_rdt: MBA integration fixes Fenghua Yu
2018-09-15 21:58 ` [PATCH V2 1/9] x86/intel_rdt: Fix data type in parsing callbacks Fenghua Yu
2018-09-18 21:42   ` [tip:x86/urgent] " tip-bot for Xiaochen Shen
2018-09-15 21:58 ` [PATCH V2 2/9] x86/intel_rdt: Fix size reporting of MBA resource Fenghua Yu
2018-09-18 21:43   ` [tip:x86/urgent] " tip-bot for Reinette Chatre
2018-09-15 21:58 ` [PATCH V2 3/9] x86/intel_rdt: Global closid helper to support future fixes Fenghua Yu
2018-09-18 21:43   ` [tip:x86/urgent] " tip-bot for Reinette Chatre
2018-09-15 21:58 ` [PATCH V2 4/9] x86/intel_rdt: Fix invalid mode warning when multiple resources are managed Fenghua Yu
2018-09-18 21:44   ` [tip:x86/urgent] " tip-bot for Reinette Chatre
2018-09-15 21:58 ` [PATCH V2 5/9] x86/intel_rdt: Fix unchecked MSR access Fenghua Yu
2018-09-18 21:45   ` [tip:x86/urgent] " tip-bot for Reinette Chatre
2018-09-15 21:58 ` [PATCH V2 6/9] x86/intel_rdt: Do not allow pseudo-locking of MBA resource Fenghua Yu
2018-09-18 21:45   ` [tip:x86/urgent] " tip-bot for Reinette Chatre
2018-09-15 21:58 ` [PATCH V2 7/9] x86/intel_rdt: Fix incorrect loop end condition Fenghua Yu
2018-09-18 21:46   ` [tip:x86/urgent] " tip-bot for Reinette Chatre
2018-09-15 21:58 ` [PATCH V2 8/9] x86/intel_rdt: Fix exclusive mode handling of MBA resource Fenghua Yu
2018-09-18 21:46   ` [tip:x86/urgent] " tip-bot for Reinette Chatre
2018-09-15 21:58 ` [PATCH V2 9/9] x86/intel_rdt: Fix incorrect loop end condition Fenghua Yu
2018-09-18 21:47   ` [tip:x86/urgent] " tip-bot for Reinette Chatre

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.