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 v4 12/39] x86/resctrl: Wrap resctrl_arch_find_domain() around rdt_find_domain()
Date: Fri, 2 Aug 2024 17:28:26 +0000 [thread overview]
Message-ID: <20240802172853.22529-13-james.morse@arm.com> (raw)
In-Reply-To: <20240802172853.22529-1-james.morse@arm.com>
rdt_find_domain() finds a domain given a resource and a cache-id.
It's not quite right for the resctrl arch API as it also returns the
position to insert a new domain, which is needed when bringing a
domain online in the arch code.
Wrap rdt_find_domain() in another function resctrl_arch_find_domain()
in order to avoid the unnecessary argument outside the arch code.
Signed-off-by: James Morse <james.morse@arm.com>
Tested-by: Carl Worth <carl@os.amperecomputing.com> # arm64
---
Changes since v3:
* Used domain_list as a meaningful name instead of 'h'.
Changes since v1:
* [Commit message only] Minor rewording to avoid "impersonating code".
* [Commit message only] Typo fix:
s/in a another/in another/ in commit message.
---
arch/x86/kernel/cpu/resctrl/core.c | 10 ++++++++--
arch/x86/kernel/cpu/resctrl/ctrlmondata.c | 2 +-
arch/x86/kernel/cpu/resctrl/internal.h | 2 --
include/linux/resctrl.h | 3 +++
4 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/arch/x86/kernel/cpu/resctrl/core.c b/arch/x86/kernel/cpu/resctrl/core.c
index 19852ba2c826..4a0dbdc2da4d 100644
--- a/arch/x86/kernel/cpu/resctrl/core.c
+++ b/arch/x86/kernel/cpu/resctrl/core.c
@@ -398,8 +398,8 @@ void rdt_ctrl_update(void *arg)
* found (and NULL returned) then the first domain with id bigger than
* the input id can be returned to the caller via @pos.
*/
-struct rdt_domain_hdr *rdt_find_domain(struct list_head *h, int id,
- struct list_head **pos)
+static struct rdt_domain_hdr *rdt_find_domain(struct list_head *h, int id,
+ struct list_head **pos)
{
struct rdt_domain_hdr *d;
struct list_head *l;
@@ -420,6 +420,12 @@ struct rdt_domain_hdr *rdt_find_domain(struct list_head *h, int id,
return NULL;
}
+struct rdt_domain_hdr *resctrl_arch_find_domain(struct list_head *domain_list,
+ int id)
+{
+ return rdt_find_domain(domain_list, id, NULL);
+}
+
static void setup_default_ctrlval(struct rdt_resource *r, u32 *dc)
{
struct rdt_hw_resource *hw_res = resctrl_to_arch_res(r);
diff --git a/arch/x86/kernel/cpu/resctrl/ctrlmondata.c b/arch/x86/kernel/cpu/resctrl/ctrlmondata.c
index 4de1fea6190d..4fba6e79bb06 100644
--- a/arch/x86/kernel/cpu/resctrl/ctrlmondata.c
+++ b/arch/x86/kernel/cpu/resctrl/ctrlmondata.c
@@ -622,7 +622,7 @@ int rdtgroup_mondata_show(struct seq_file *m, void *arg)
* This file provides data from a single domain. Search
* the resource to find the domain with "domid".
*/
- hdr = rdt_find_domain(&r->mon_domains, domid, NULL);
+ hdr = resctrl_arch_find_domain(&r->mon_domains, domid);
if (!hdr || WARN_ON_ONCE(hdr->type != RESCTRL_MON_DOMAIN)) {
ret = -ENOENT;
goto out;
diff --git a/arch/x86/kernel/cpu/resctrl/internal.h b/arch/x86/kernel/cpu/resctrl/internal.h
index bb88be45b8c4..0b2113364caa 100644
--- a/arch/x86/kernel/cpu/resctrl/internal.h
+++ b/arch/x86/kernel/cpu/resctrl/internal.h
@@ -578,8 +578,6 @@ void rdtgroup_kn_unlock(struct kernfs_node *kn);
int rdtgroup_kn_mode_restrict(struct rdtgroup *r, const char *name);
int rdtgroup_kn_mode_restore(struct rdtgroup *r, const char *name,
umode_t mask);
-struct rdt_domain_hdr *rdt_find_domain(struct list_head *h, int id,
- struct list_head **pos);
ssize_t rdtgroup_schemata_write(struct kernfs_open_file *of,
char *buf, size_t nbytes, loff_t off);
int rdtgroup_schemata_show(struct kernfs_open_file *of,
diff --git a/include/linux/resctrl.h b/include/linux/resctrl.h
index 2271fa7eb6c4..1eb6dc5b7b79 100644
--- a/include/linux/resctrl.h
+++ b/include/linux/resctrl.h
@@ -313,6 +313,9 @@ static inline u32 resctrl_get_default_ctrl(struct rdt_resource *r)
/* The number of closid supported by this resource regardless of CDP */
u32 resctrl_arch_get_num_closid(struct rdt_resource *r);
+
+struct rdt_domain_hdr *resctrl_arch_find_domain(struct list_head *domain_list,
+ int id);
int resctrl_arch_update_domains(struct rdt_resource *r, u32 closid);
/*
--
2.39.2
next prev parent reply other threads:[~2024-08-02 17:30 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-02 17:28 [PATCH v4 00/39] x86/resctrl: Move the resctrl filesystem code to /fs/resctrl James Morse
2024-08-02 17:28 ` [PATCH v4 01/39] x86/resctrl: Fix allocation of cleanest CLOSID on platforms with no monitors James Morse
2024-08-02 17:28 ` [PATCH v4 02/39] x86/resctrl: Add a helper to avoid reaching into the arch code resource list James Morse
2024-08-02 17:28 ` [PATCH v4 03/39] x86/resctrl: Remove fflags from struct rdt_resource James Morse
2024-08-14 3:53 ` Reinette Chatre
2024-08-02 17:28 ` [PATCH v4 04/39] x86/resctrl: Use schema type to determine how to parse schema values James Morse
2024-08-14 3:56 ` Reinette Chatre
2024-09-06 18:06 ` James Morse
2024-09-16 22:33 ` Reinette Chatre
2024-09-30 16:42 ` James Morse
2024-08-02 17:28 ` [PATCH v4 05/39] x86/resctrl: Use schema type to determine the schema format string James Morse
2024-08-14 3:57 ` Reinette Chatre
2024-08-02 17:28 ` [PATCH v4 06/39] x86/resctrl: Move data_width to be a schema property James Morse
2024-08-14 3:59 ` Reinette Chatre
2024-09-13 18:07 ` James Morse
2024-08-02 17:28 ` [PATCH v4 07/39] x86/resctrl: Add max_bw to struct resctrl_membw James Morse
2024-08-14 4:00 ` Reinette Chatre
2024-08-02 17:28 ` [PATCH v4 08/39] x86/resctrl: Generate default_ctrl instead of sharing it James Morse
2024-08-14 4:00 ` Reinette Chatre
2024-09-13 18:07 ` James Morse
2024-09-16 22:34 ` Reinette Chatre
2024-08-02 17:28 ` [PATCH v4 09/39] x86/resctrl: Add helper for setting CPU default properties James Morse
2024-08-02 17:28 ` [PATCH v4 10/39] x86/resctrl: Remove rdtgroup from update_cpu_closid_rmid() James Morse
2024-08-02 17:28 ` [PATCH v4 11/39] x86/resctrl: Export resctrl fs's init function James Morse
2024-08-14 4:01 ` Reinette Chatre
2024-08-02 17:28 ` James Morse [this message]
2024-08-02 17:28 ` [PATCH v4 13/39] x86/resctrl: Move resctrl types to a separate header James Morse
2024-08-02 17:28 ` [PATCH v4 14/39] x86/resctrl: Add a resctrl helper to reset all the resources James Morse
2024-08-02 17:28 ` [PATCH v4 15/39] x86/resctrl: Move monitor exit work to a resctrl exit call James Morse
2024-08-14 4:01 ` Reinette Chatre
2024-09-30 16:42 ` James Morse
2024-08-02 17:28 ` [PATCH v4 16/39] x86/resctrl: Move monitor init work to a resctrl init call James Morse
2024-08-02 17:28 ` [PATCH v4 17/39] x86/resctrl: Rewrite and move the for_each_*_rdt_resource() walkers James Morse
2024-08-15 6:43 ` Shaopeng Tan (Fujitsu)
2024-09-30 16:42 ` James Morse
2024-08-02 17:28 ` [PATCH v4 18/39] x86/resctrl: Export the is_mbm_*_enabled() helpers to asm/resctrl.h James Morse
2024-08-02 17:28 ` [PATCH v4 19/39] x86/resctrl: Add resctrl_arch_is_evt_configurable() to abstract BMEC James Morse
2024-08-14 4:01 ` Reinette Chatre
2024-08-02 17:28 ` [PATCH v4 20/39] x86/resctrl: Change mon_event_config_{read,write}() to be arch helpers James Morse
2024-08-14 4:02 ` Reinette Chatre
2024-10-02 16:58 ` James Morse
2024-08-02 17:28 ` [PATCH v4 21/39] x86/resctrl: Move mbm_cfg_mask to struct rdt_resource James Morse
2024-08-02 17:28 ` [PATCH v4 22/39] x86/resctrl: Add resctrl_arch_ prefix to pseudo lock functions James Morse
2024-08-02 17:28 ` [PATCH v4 23/39] x86/resctrl: Allow an architecture to disable pseudo lock James Morse
2024-08-14 4:02 ` Reinette Chatre
2024-08-02 17:28 ` [PATCH v4 24/39] x86/resctrl: Make prefetch_disable_bits belong to the arch code James Morse
2024-08-02 17:28 ` [PATCH v4 25/39] x86/resctrl: Make resctrl_arch_pseudo_lock_fn() take a plr James Morse
2024-08-02 17:28 ` [PATCH v4 26/39] x86/resctrl: Move thread_throttle_mode_init() to be managed by resctrl James Morse
2024-08-02 17:28 ` [PATCH v4 27/39] x86/resctrl: Move get_config_index() to a header James Morse
2024-08-02 17:28 ` [PATCH v4 28/39] x86/resctrl: Claim get_{mon,ctrl}_domain_from_cpu() helpers for resctrl James Morse
2024-08-02 17:28 ` [PATCH v4 29/39] x86/resctrl: Describe resctrl's bitmap size assumptions James Morse
2024-08-02 17:28 ` [PATCH v4 30/39] x86/resctrl: Rename resctrl_sched_in() to begin with "resctrl_arch_" James Morse
2024-08-02 17:28 ` [PATCH v4 31/39] x86/resctrl: resctrl_exit() teardown resctrl but leave the mount point James Morse
2024-08-02 17:28 ` [PATCH v4 32/39] x86/resctrl: Drop __init/__exit on assorted symbols James Morse
2024-08-02 17:28 ` [PATCH v4 33/39] x86/resctrl: Move is_mba_sc() out of core.c James Morse
2024-08-02 17:28 ` [PATCH v4 34/39] x86/resctrl: Add end-marker to the resctrl_event_id enum James Morse
2024-08-02 17:28 ` [PATCH v4 35/39] x86/resctrl: Remove a newline to avoid confusing the code move script James Morse
2024-08-02 17:28 ` [PATCH v4 36/39] x86/resctrl: Split trace.h James Morse
2024-08-02 17:28 ` [PATCH v4 37/39] fs/resctrl: Add boiler plate for external resctrl code James Morse
2024-08-14 4:04 ` Reinette Chatre
2024-08-02 17:28 ` [PATCH v4 38/39] x86/resctrl: Move the filesystem bits to headers visible to fs/resctrl James Morse
2024-08-02 17:28 ` [PATCH v4 39/39] x86/resctrl: Add python script to move resctrl code to /fs/resctrl James Morse
2024-08-06 7:13 ` [PATCH v4 00/39] x86/resctrl: Move the resctrl filesystem " Shaopeng Tan (Fujitsu)
2024-08-15 7:04 ` Shaopeng Tan (Fujitsu)
2024-10-02 16:58 ` James Morse
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=20240802172853.22529-13-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®