From: James Morse <james.morse@arm.com>
To: x86@kernel.org, linux-kernel@vger.kernel.org
Cc: Fenghua Yu <fenghua.yu@intel.com>,
Reinette Chatre <reinette.chatre@intel.com>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
H Peter Anvin <hpa@zytor.com>, Babu Moger <Babu.Moger@amd.com>,
James Morse <james.morse@arm.com>,
shameerali.kolothum.thodi@huawei.com,
D Scott Phillips OS <scott@os.amperecomputing.com>,
carl@os.amperecomputing.com, lcherian@marvell.com,
bobo.shaobowang@huawei.com, tan.shaopeng@fujitsu.com,
baolin.wang@linux.alibaba.com,
Jamie Iles <quic_jiles@quicinc.com>,
Xin Hao <xhao@linux.alibaba.com>,
peternewman@google.com, dfustini@baylibre.com,
amitsinght@marvell.com, David Hildenbrand <david@redhat.com>,
Rex Nie <rex.nie@jaguarmicro.com>,
Dave Martin <dave.martin@arm.com>
Subject: [PATCH v1 11/31] x86/resctrl: Move monitor exit work to a restrl exit call
Date: Thu, 21 Mar 2024 16:50:46 +0000 [thread overview]
Message-ID: <20240321165106.31602-12-james.morse@arm.com> (raw)
In-Reply-To: <20240321165106.31602-1-james.morse@arm.com>
rdt_put_mon_l3_config() is called via the architecture's
resctrl_arch_exit() call, and appears to free the rmid_ptrs[]
and closid_num_dirty_rmid[] arrays. In reality this code is marked
__exit, and is removed by the linker as resctl can't be built
as a module.
MPAM can make use of this code from its error interrupt handler,
a later patch drops all the __init/__exit annotations.
To separate the filesystem and architecture parts of resctrl,
this free()ing work needs to be triggered by the filesystem,
as these structures belong to the filesystem code.
Rename rdt_put_mon_l3_config() resctrl_mon_resource_exit()
and call it from resctrl_exit(). The kfree() is currently
dependent on r->mon_capable. resctrl_mon_resource_init()
takes no arguments, so resctrl_mon_resource_exit() shouldn't
take any either. Add the check to dom_data_exit(), making it
take the resource as an argument. This makes it more symmetrical
with dom_data_init().
Signed-off-by: James Morse <james.morse@arm.com>
---
arch/x86/kernel/cpu/resctrl/core.c | 5 -----
arch/x86/kernel/cpu/resctrl/internal.h | 2 +-
arch/x86/kernel/cpu/resctrl/monitor.c | 12 ++++++++----
arch/x86/kernel/cpu/resctrl/rdtgroup.c | 2 ++
4 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/arch/x86/kernel/cpu/resctrl/core.c b/arch/x86/kernel/cpu/resctrl/core.c
index 06dc12b08afc..9a09a64bbb7f 100644
--- a/arch/x86/kernel/cpu/resctrl/core.c
+++ b/arch/x86/kernel/cpu/resctrl/core.c
@@ -988,14 +988,9 @@ late_initcall(resctrl_arch_late_init);
static void __exit resctrl_arch_exit(void)
{
- struct rdt_resource *r = &rdt_resources_all[RDT_RESOURCE_L3].r_resctrl;
-
cpuhp_remove_state(rdt_online);
resctrl_exit();
-
- if (r->mon_capable)
- rdt_put_mon_l3_config();
}
__exitcall(resctrl_arch_exit);
diff --git a/arch/x86/kernel/cpu/resctrl/internal.h b/arch/x86/kernel/cpu/resctrl/internal.h
index 7a0c74779c53..01fcd4ef26ca 100644
--- a/arch/x86/kernel/cpu/resctrl/internal.h
+++ b/arch/x86/kernel/cpu/resctrl/internal.h
@@ -533,7 +533,7 @@ void closid_free(int closid);
int alloc_rmid(u32 closid);
void free_rmid(u32 closid, u32 rmid);
int rdt_get_mon_l3_config(struct rdt_resource *r);
-void __exit rdt_put_mon_l3_config(void);
+void __exit resctrl_mon_resource_exit(void);
bool __init rdt_cpu_has(int flag);
void mon_event_count(void *info);
int rdtgroup_mondata_show(struct seq_file *m, void *arg);
diff --git a/arch/x86/kernel/cpu/resctrl/monitor.c b/arch/x86/kernel/cpu/resctrl/monitor.c
index 929ec1430b45..2a1cbd4de6ee 100644
--- a/arch/x86/kernel/cpu/resctrl/monitor.c
+++ b/arch/x86/kernel/cpu/resctrl/monitor.c
@@ -954,10 +954,12 @@ static int dom_data_init(struct rdt_resource *r)
return err;
}
-static void __exit dom_data_exit(void)
+static void __exit dom_data_exit(struct rdt_resource *r)
{
- mutex_lock(&rdtgroup_mutex);
+ if (!r->mon_capable)
+ return;
+ mutex_lock(&rdtgroup_mutex);
if (IS_ENABLED(CONFIG_RESCTRL_RMID_DEPENDS_ON_CLOSID)) {
kfree(closid_num_dirty_rmid);
closid_num_dirty_rmid = NULL;
@@ -1074,9 +1076,11 @@ int __init rdt_get_mon_l3_config(struct rdt_resource *r)
return 0;
}
-void __exit rdt_put_mon_l3_config(void)
+void __exit resctrl_mon_resource_exit(void)
{
- dom_data_exit();
+ struct rdt_resource *r = resctrl_arch_get_resource(RDT_RESOURCE_L3);
+
+ dom_data_exit(r);
}
void __init intel_rdt_mbm_apply_quirk(void)
diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
index 7a9696f53f2b..6cf4ebe9c058 100644
--- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c
+++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
@@ -4186,4 +4186,6 @@ void __exit resctrl_exit(void)
debugfs_remove_recursive(debugfs_resctrl);
unregister_filesystem(&rdt_fs_type);
sysfs_remove_mount_point(fs_kobj, "resctrl");
+
+ resctrl_mon_resource_exit();
}
--
2.39.2
next prev parent reply other threads:[~2024-03-21 16:52 UTC|newest]
Thread overview: 179+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-21 16:50 [PATCH v1 00/31] x86/resctrl: Move the resctrl filesystem code to /fs/resctrl James Morse
2024-03-21 16:50 ` [PATCH v1 01/31] x86/resctrl: Fix allocation of cleanest CLOSID on platforms with no monitors James Morse
2024-04-09 3:13 ` Reinette Chatre
2024-04-11 14:13 ` Dave Martin
2024-04-09 8:05 ` David Hildenbrand
2024-04-09 15:02 ` Reinette Chatre
2024-04-09 15:06 ` David Hildenbrand
2024-04-11 15:02 ` Dave Martin
2024-04-11 14:13 ` Dave Martin
2024-04-11 17:35 ` Reinette Chatre
2024-04-12 16:17 ` Dave Martin
2024-04-15 20:27 ` Moger, Babu
2024-04-16 16:13 ` Dave Martin
2024-04-16 20:33 ` Moger, Babu
2024-03-21 16:50 ` [PATCH v1 02/31] x86/resctrl: Add a helper to avoid reaching into the arch code resource list James Morse
2024-04-09 3:13 ` Reinette Chatre
2024-04-11 14:14 ` Dave Martin
2024-04-09 8:09 ` David Hildenbrand
2024-04-11 14:13 ` Dave Martin
2024-04-15 20:28 ` Moger, Babu
2024-04-16 16:15 ` Dave Martin
2024-04-16 20:44 ` Moger, Babu
2024-04-17 14:40 ` Dave Martin
2024-03-21 16:50 ` [PATCH v1 03/31] x86/resctrl: Move ctrlval string parsing policy away from the arch code James Morse
2024-04-09 3:14 ` Reinette Chatre
2024-04-12 16:16 ` Dave Martin
2024-04-15 17:44 ` Reinette Chatre
2024-04-16 16:16 ` Dave Martin
2024-04-18 5:34 ` Reinette Chatre
2024-05-23 18:04 ` James Morse
2024-04-09 15:13 ` David Hildenbrand
2024-04-12 16:13 ` Dave Martin
2024-03-21 16:50 ` [PATCH v1 04/31] x86/resctrl: Add helper for setting CPU default properties James Morse
2024-04-09 3:15 ` Reinette Chatre
2024-04-12 16:13 ` Dave Martin
2024-04-15 17:45 ` Reinette Chatre
2024-04-16 16:16 ` Dave Martin
2024-03-21 16:50 ` [PATCH v1 05/31] x86/resctrl: Remove rdtgroup from update_cpu_closid_rmid() James Morse
2024-04-09 3:16 ` Reinette Chatre
2024-04-12 16:12 ` Dave Martin
2024-04-15 17:47 ` Reinette Chatre
2024-04-16 16:16 ` Dave Martin
2024-04-18 5:12 ` Reinette Chatre
2024-04-18 15:21 ` Dave Martin
2024-04-20 3:58 ` Reinette Chatre
2024-04-15 20:40 ` Moger, Babu
2024-04-16 16:17 ` Dave Martin
2024-03-21 16:50 ` [PATCH v1 06/31] x86/resctrl: Export resctrl fs's init function James Morse
2024-04-03 7:51 ` Shaopeng Tan (Fujitsu)
2024-04-11 14:14 ` Dave Martin
2024-04-09 3:16 ` Reinette Chatre
2024-04-11 14:14 ` Dave Martin
2024-04-11 17:36 ` Reinette Chatre
2024-03-21 16:50 ` [PATCH v1 07/31] x86/resctrl: Wrap resctrl_arch_find_domain() around rdt_find_domain() James Morse
2024-04-09 3:17 ` Reinette Chatre
2024-04-11 14:15 ` Dave Martin
2024-03-21 16:50 ` [PATCH v1 08/31] x86/resctrl: Move resctrl types to a separate header James Morse
2024-04-09 3:18 ` Reinette Chatre
2024-04-12 16:17 ` Dave Martin
2024-04-15 18:03 ` Reinette Chatre
2024-04-16 16:19 ` Dave Martin
2024-04-18 5:15 ` Reinette Chatre
2024-04-18 15:25 ` Dave Martin
2024-04-20 3:59 ` Reinette Chatre
2024-03-21 16:50 ` [PATCH v1 09/31] x86/resctrl: Add a resctrl helper to reset all the resources James Morse
2024-04-03 7:52 ` Shaopeng Tan (Fujitsu)
2024-04-12 16:17 ` Dave Martin
2024-03-21 16:50 ` [PATCH v1 10/31] x86/resctrl: Move monitor init work to a resctrl init call James Morse
2024-04-09 3:18 ` Reinette Chatre
2024-04-10 2:57 ` Shawn Wang
2024-04-11 15:35 ` Dave Martin
2024-06-05 16:40 ` James Morse
2024-03-21 16:50 ` James Morse [this message]
2024-04-09 3:19 ` [PATCH v1 11/31] x86/resctrl: Move monitor exit work to a restrl exit call Reinette Chatre
2024-04-11 14:15 ` Dave Martin
2024-04-11 17:37 ` Reinette Chatre
2024-03-21 16:50 ` [PATCH v1 12/31] x86/resctrl: Move max_{name,data}_width into resctrl code James Morse
2024-04-09 3:19 ` Reinette Chatre
2024-04-11 14:15 ` Dave Martin
2024-04-11 17:38 ` Reinette Chatre
2024-04-17 14:41 ` Dave Martin
2024-04-18 5:16 ` Reinette Chatre
2024-04-18 15:26 ` Dave Martin
2024-03-21 16:50 ` [PATCH v1 13/31] x86/resctrl: Stop using the for_each_*_rdt_resource() walkers James Morse
2024-04-09 3:19 ` Reinette Chatre
2024-04-11 14:16 ` Dave Martin
2024-03-21 16:50 ` [PATCH v1 14/31] x86/resctrl: Export the is_mbm_*_enabled() helpers to asm/resctrl.h James Morse
2024-04-09 3:20 ` Reinette Chatre
2024-04-11 14:16 ` Dave Martin
2024-03-21 16:50 ` [PATCH v1 15/31] x86/resctrl: Add resctrl_arch_is_evt_configurable() to abstract BMEC James Morse
2024-03-21 16:50 ` [PATCH v1 16/31] x86/resctrl: Change mon_event_config_{read,write}() to be arch helpers James Morse
2024-04-09 3:20 ` Reinette Chatre
2024-04-11 14:16 ` Dave Martin
2024-03-21 16:50 ` [PATCH v1 17/31] x86/resctrl: Move mbm_cfg_mask to struct rdt_resource James Morse
2024-04-09 3:21 ` Reinette Chatre
2024-04-11 14:16 ` Dave Martin
2024-04-11 17:39 ` Reinette Chatre
2024-04-17 14:41 ` Dave Martin
2024-04-18 5:18 ` Reinette Chatre
2024-04-18 15:26 ` Dave Martin
2024-06-14 13:57 ` James Morse
2024-03-21 16:50 ` [PATCH v1 18/31] x86/resctrl: Allow resctrl_arch_mon_event_config_write() to return an error James Morse
2024-04-09 3:23 ` Reinette Chatre
2024-04-11 14:17 ` Dave Martin
2024-04-11 17:39 ` Reinette Chatre
2024-04-17 14:42 ` Dave Martin
2024-04-18 5:19 ` Reinette Chatre
2024-04-18 15:31 ` Dave Martin
2024-06-14 13:57 ` James Morse
2024-03-21 16:50 ` [PATCH v1 19/31] x86/resctrl: Add resctrl_arch_ prefix to pseudo lock functions James Morse
2024-03-21 16:50 ` [PATCH v1 20/31] x86/resctrl: Allow an architecture to disable pseudo lock James Morse
2024-04-09 3:24 ` Reinette Chatre
2024-04-11 14:17 ` Dave Martin
2024-04-11 17:40 ` Reinette Chatre
2024-04-17 14:42 ` Dave Martin
2024-03-21 16:50 ` [PATCH v1 21/31] x86/resctrl: Make prefetch_disable_bits belong to the arch code James Morse
2024-03-21 16:50 ` [PATCH v1 22/31] x86/resctrl: Make resctrl_arch_pseudo_lock_fn() take a plr James Morse
2024-04-09 3:24 ` Reinette Chatre
2024-04-11 14:38 ` Dave Martin
2024-04-11 17:40 ` Reinette Chatre
2024-03-21 16:50 ` [PATCH v1 23/31] x86/resctrl: Move thread_throttle_mode_init() to be managed by resctrl James Morse
2024-03-21 16:50 ` [PATCH v1 24/31] x86/resctrl: Move get_config_index() to a header James Morse
2024-04-09 3:25 ` Reinette Chatre
2024-04-11 14:25 ` Dave Martin
2024-04-11 17:41 ` Reinette Chatre
2024-06-14 13:58 ` James Morse
2024-03-21 16:51 ` [PATCH v1 25/31] x86/resctrl: Claim get_domain_from_cpu() for resctrl James Morse
2024-03-21 16:51 ` [PATCH v1 26/31] x86/resctrl: Describe resctrl's bitmap size assumptions James Morse
2024-03-21 16:51 ` [PATCH v1 27/31] x86/resctrl: Rename resctrl_sched_in() to begin resctrl_arch_ James Morse
2024-04-09 3:26 ` Reinette Chatre
2024-04-11 14:25 ` Dave Martin
2024-04-15 20:43 ` Moger, Babu
2024-03-21 16:51 ` [PATCH v1 28/31] x86/resctrl: Drop __init/__exit on assorted symbols James Morse
2024-04-09 3:32 ` Reinette Chatre
2024-04-11 14:26 ` Dave Martin
2024-04-11 15:51 ` [EXTERNAL] " Amit Singh Tomar
2024-04-12 16:20 ` Dave Martin
2024-04-30 7:13 ` Amit Singh Tomar
2024-04-30 16:19 ` Dave Martin
2024-05-01 16:21 ` Amit Singh Tomar
2024-05-02 15:58 ` Dave Martin
2024-06-14 13:59 ` James Morse
2024-06-14 13:59 ` [EXTERNAL] " James Morse
2024-03-21 16:51 ` [PATCH v1 29/31] fs/resctrl: Add boiler plate for external resctrl code James Morse
2024-04-09 3:41 ` Reinette Chatre
2024-04-11 14:27 ` Dave Martin
2024-04-11 17:42 ` Reinette Chatre
2024-04-12 16:23 ` Dave Martin
2024-04-12 16:23 ` Dave Martin
2024-03-21 16:51 ` [PATCH v1 30/31] x86/resctrl: Move the filesystem bits to headers visible to fs/resctrl James Morse
2024-04-04 7:43 ` Shaopeng Tan (Fujitsu)
2024-04-11 14:27 ` Dave Martin
2024-04-09 3:42 ` Reinette Chatre
2024-04-11 14:28 ` Dave Martin
2024-04-11 17:43 ` Reinette Chatre
2024-04-12 16:20 ` Dave Martin
2024-04-15 18:03 ` Reinette Chatre
2024-04-17 14:42 ` Dave Martin
2024-03-21 16:51 ` [PATCH v1 31/31] x86/resctrl: Move the resctrl filesystem code to /fs/resctrl James Morse
2024-03-26 19:44 ` Fenghua Yu
2024-04-11 14:30 ` Dave Martin
2024-04-11 17:45 ` Reinette Chatre
2024-04-12 16:20 ` Dave Martin
2024-04-09 3:43 ` Reinette Chatre
2024-04-11 14:38 ` Dave Martin
2024-04-15 20:44 ` Moger, Babu
2024-04-17 14:43 ` Dave Martin
2024-06-14 13:59 ` James Morse
2024-04-09 3:13 ` [PATCH v1 00/31] " Reinette Chatre
2024-04-11 14:38 ` Dave Martin
2024-04-18 15:32 ` Dave Martin
2024-04-20 4:06 ` Reinette Chatre
2024-04-22 13:51 ` Moger, Babu
2024-04-22 16:01 ` Reinette Chatre
2024-04-22 18:35 ` Moger, Babu
2024-04-22 18:39 ` Peter Newman
2024-04-23 12:37 ` Dave Martin
2024-06-14 13:59 ` James Morse
2024-04-11 13:52 ` Dave Martin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240321165106.31602-12-james.morse@arm.com \
--to=james.morse@arm.com \
--cc=Babu.Moger@amd.com \
--cc=amitsinght@marvell.com \
--cc=baolin.wang@linux.alibaba.com \
--cc=bobo.shaobowang@huawei.com \
--cc=bp@alien8.de \
--cc=carl@os.amperecomputing.com \
--cc=dave.martin@arm.com \
--cc=david@redhat.com \
--cc=dfustini@baylibre.com \
--cc=fenghua.yu@intel.com \
--cc=hpa@zytor.com \
--cc=lcherian@marvell.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=peternewman@google.com \
--cc=quic_jiles@quicinc.com \
--cc=reinette.chatre@intel.com \
--cc=rex.nie@jaguarmicro.com \
--cc=scott@os.amperecomputing.com \
--cc=shameerali.kolothum.thodi@huawei.com \
--cc=tan.shaopeng@fujitsu.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
--cc=xhao@linux.alibaba.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®