lkml.org 
[lkml]   [2024]   [Mar]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH v1 09/31] x86/resctrl: Add a resctrl helper to reset all the resources
Date
On umount(), resctrl resets each resource back to its default
configuration. It only ever does this for all resources in one go.

reset_all_ctrls() is architecture specific as it works with struct
rdt_hw_resource.

Add an architecture helper to reset all resources.

Signed-off-by: James Morse <james.morse@arm.com>
---
arch/x86/include/asm/resctrl.h | 2 ++
arch/x86/kernel/cpu/resctrl/rdtgroup.c | 16 +++++++++++-----
2 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/arch/x86/include/asm/resctrl.h b/arch/x86/include/asm/resctrl.h
index f61382258743..5f6a5375bb4a 100644
--- a/arch/x86/include/asm/resctrl.h
+++ b/arch/x86/include/asm/resctrl.h
@@ -15,6 +15,8 @@
*/
#define X86_RESCTRL_EMPTY_CLOSID ((u32)~0)

+void resctrl_arch_reset_resources(void);
+
/**
* struct resctrl_pqr_state - State cache for the PQR MSR
* @cur_rmid: The cached Resource Monitoring ID
diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
index 1a49c9918f8d..13c24cb18d76 100644
--- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c
+++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
@@ -2859,6 +2859,14 @@ static int reset_all_ctrls(struct rdt_resource *r)
return 0;
}

+void resctrl_arch_reset_resources(void)
+{
+ struct rdt_resource *r;
+
+ for_each_capable_rdt_resource(r)
+ reset_all_ctrls(r);
+}
+
/*
* Move tasks from one to the other group. If @from is NULL, then all tasks
* in the systems are moved unconditionally (used for teardown).
@@ -2968,16 +2976,14 @@ static void rmdir_all_sub(void)

static void rdt_kill_sb(struct super_block *sb)
{
- struct rdt_resource *r;
-
cpus_read_lock();
mutex_lock(&rdtgroup_mutex);

rdt_disable_ctx();

- /*Put everything back to default values. */
- for_each_alloc_capable_rdt_resource(r)
- reset_all_ctrls(r);
+ /* Put everything back to default values. */
+ resctrl_arch_reset_resources();
+
rmdir_all_sub();
rdt_pseudo_lock_release();
rdtgroup_default.mode = RDT_MODE_SHAREABLE;
--
2.39.2

\
 
 \ /
  Last update: 2024-03-21 18:00    [W:0.504 / U:1.308 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site