From: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
To: Babu Moger <babu.moger@amd.com>
Cc: corbet@lwn.net, reinette.chatre@intel.com, tglx@linutronix.de,
mingo@redhat.com, bp@alien8.de, fenghua.yu@intel.com,
dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
paulmck@kernel.org, akpm@linux-foundation.org,
quic_neeraju@quicinc.com, rdunlap@infradead.org,
damien.lemoal@opensource.wdc.com, songmuchun@bytedance.com,
peterz@infradead.org, jpoimboe@kernel.org, pbonzini@redhat.com,
chang.seok.bae@intel.com, pawan.kumar.gupta@linux.intel.com,
jmattson@google.com, daniel.sneddon@linux.intel.com,
sandipan.das@amd.com, tony.luck@intel.com, james.morse@arm.com,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
bagasdotme@gmail.com, eranian@google.com,
christophe.leroy@csgroup.eu, jarkko@kernel.org,
adrian.hunter@intel.com, quic_jiles@quicinc.com,
peternewman@google.com
Subject: Re: [PATCH v10 06/10] x86/resctrl: Move default group file creation to mount
Date: Fri, 29 Sep 2023 18:50:25 +0300 (EEST) [thread overview]
Message-ID: <98f0a397-bdc3-136b-e42a-bbcb169cff4@linux.intel.com> (raw)
In-Reply-To: <20230915224227.1336967-7-babu.moger@amd.com>
[-- Attachment #1: Type: text/plain, Size: 5457 bytes --]
On Fri, 15 Sep 2023, Babu Moger wrote:
> The default resource group and its files are created during kernel
> init time. Upcoming changes will make some resctrl files optional
> based on a mount parameter. If optional files are to be added to the
> default group based on the mount option, then each new file needs to
> be created separately and call kernfs_activate() again.
>
> Create all files of the default resource group during resctrl
> mount, destroyed during unmount, to avoid scattering resctrl
> file addition across two separate code flows.
>
> Suggested-by: Reinette Chatre <reinette.chatre@intel.com>
> Reviewed-by: Fenghua Yu <fenghua.yu@intel.com>
> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com>
> Signed-off-by: Babu Moger <babu.moger@amd.com>
> ---
> arch/x86/kernel/cpu/resctrl/rdtgroup.c | 58 +++++++++++++++-----------
> 1 file changed, 34 insertions(+), 24 deletions(-)
>
> diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
> index 3ea874c80c22..a34657f0bd0c 100644
> --- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c
> +++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
> @@ -54,6 +54,9 @@ static struct kernfs_node *kn_mondata;
> static struct seq_buf last_cmd_status;
> static char last_cmd_status_buf[512];
>
> +static int rdtgroup_setup_root(struct rdt_fs_context *ctx);
> +static void rdtgroup_destroy_root(void);
> +
> struct dentry *debugfs_resctrl;
>
> void rdt_last_cmd_clear(void)
> @@ -2511,10 +2514,14 @@ static int rdt_get_tree(struct fs_context *fc)
> goto out;
> }
>
> - ret = rdt_enable_ctx(ctx);
> + ret = rdtgroup_setup_root(ctx);
> if (ret)
> goto out;
>
> + ret = rdt_enable_ctx(ctx);
> + if (ret)
> + goto out_root;
> +
> ret = schemata_list_create();
> if (ret) {
> schemata_list_destroy();
> @@ -2523,6 +2530,12 @@ static int rdt_get_tree(struct fs_context *fc)
>
> closid_init();
>
> + ret = rdtgroup_add_files(rdtgroup_default.kn, RFTYPE_CTRL_BASE);
> + if (ret)
> + goto out_schemata_free;
> +
> + kernfs_activate(rdtgroup_default.kn);
> +
> ret = rdtgroup_create_info_dir(rdtgroup_default.kn);
> if (ret < 0)
> goto out_schemata_free;
> @@ -2579,6 +2592,8 @@ static int rdt_get_tree(struct fs_context *fc)
> schemata_list_destroy();
> out_ctx:
> rdt_disable_ctx();
> +out_root:
> + rdtgroup_destroy_root();
> out:
> rdt_last_cmd_clear();
> mutex_unlock(&rdtgroup_mutex);
> @@ -2649,7 +2664,6 @@ static int rdt_init_fs_context(struct fs_context *fc)
> if (!ctx)
> return -ENOMEM;
>
> - ctx->kfc.root = rdt_root;
> ctx->kfc.magic = RDTGROUP_SUPER_MAGIC;
> fc->fs_private = &ctx->kfc;
> fc->ops = &rdt_fs_context_ops;
> @@ -2819,6 +2833,7 @@ static void rdt_kill_sb(struct super_block *sb)
> rdt_pseudo_lock_release();
> rdtgroup_default.mode = RDT_MODE_SHAREABLE;
> schemata_list_destroy();
> + rdtgroup_destroy_root();
> static_branch_disable_cpuslocked(&rdt_alloc_enable_key);
> static_branch_disable_cpuslocked(&rdt_mon_enable_key);
> static_branch_disable_cpuslocked(&rdt_enable_key);
> @@ -3700,10 +3715,8 @@ static struct kernfs_syscall_ops rdtgroup_kf_syscall_ops = {
> .show_options = rdtgroup_show_options,
> };
>
> -static int __init rdtgroup_setup_root(void)
> +static int rdtgroup_setup_root(struct rdt_fs_context *ctx)
> {
> - int ret;
> -
> rdt_root = kernfs_create_root(&rdtgroup_kf_syscall_ops,
> KERNFS_ROOT_CREATE_DEACTIVATED |
> KERNFS_ROOT_EXTRA_OPEN_PERM_CHECK,
> @@ -3711,6 +3724,20 @@ static int __init rdtgroup_setup_root(void)
> if (IS_ERR(rdt_root))
> return PTR_ERR(rdt_root);
>
> + ctx->kfc.root = rdt_root;
> + rdtgroup_default.kn = kernfs_root_to_node(rdt_root);
> +
> + return 0;
> +}
> +
> +static void rdtgroup_destroy_root(void)
> +{
> + kernfs_destroy_root(rdt_root);
> + rdtgroup_default.kn = NULL;
> +}
> +
> +static void __init rdtgroup_setup_default(void)
> +{
> mutex_lock(&rdtgroup_mutex);
>
> rdtgroup_default.closid = 0;
> @@ -3720,19 +3747,7 @@ static int __init rdtgroup_setup_root(void)
>
> list_add(&rdtgroup_default.rdtgroup_list, &rdt_all_groups);
>
> - ret = rdtgroup_add_files(kernfs_root_to_node(rdt_root), RFTYPE_CTRL_BASE);
> - if (ret) {
> - kernfs_destroy_root(rdt_root);
> - goto out;
> - }
> -
> - rdtgroup_default.kn = kernfs_root_to_node(rdt_root);
> - kernfs_activate(rdtgroup_default.kn);
> -
> -out:
> mutex_unlock(&rdtgroup_mutex);
> -
> - return ret;
> }
>
> static void domain_destroy_mon_state(struct rdt_domain *d)
> @@ -3854,13 +3869,11 @@ int __init rdtgroup_init(void)
> seq_buf_init(&last_cmd_status, last_cmd_status_buf,
> sizeof(last_cmd_status_buf));
>
> - ret = rdtgroup_setup_root();
> - if (ret)
> - return ret;
> + rdtgroup_setup_default();
>
> ret = sysfs_create_mount_point(fs_kobj, "resctrl");
> if (ret)
> - goto cleanup_root;
> + return ret;
>
> ret = register_filesystem(&rdt_fs_type);
> if (ret)
> @@ -3893,8 +3906,6 @@ int __init rdtgroup_init(void)
>
> cleanup_mountpoint:
> sysfs_remove_mount_point(fs_kobj, "resctrl");
> -cleanup_root:
> - kernfs_destroy_root(rdt_root);
>
> return ret;
> }
> @@ -3904,5 +3915,4 @@ void __exit rdtgroup_exit(void)
> debugfs_remove_recursive(debugfs_resctrl);
> unregister_filesystem(&rdt_fs_type);
> sysfs_remove_mount_point(fs_kobj, "resctrl");
> - kernfs_destroy_root(rdt_root);
> }
>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
--
i.
next prev parent reply other threads:[~2023-09-29 15:50 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-15 22:42 [PATCH v10 00/10] x86/resctrl: Miscellaneous resctrl features Babu Moger
2023-09-15 22:42 ` [PATCH v10 01/10] x86/resctrl: Add multiple tasks to the resctrl group at once Babu Moger
2023-09-27 18:30 ` Reinette Chatre
2023-09-27 21:44 ` Moger, Babu
2023-09-27 22:20 ` Reinette Chatre
2023-09-29 15:08 ` Ilpo Järvinen
2023-09-15 22:42 ` [PATCH v10 02/10] x86/resctrl: Simplify rftype flag definitions Babu Moger
2023-09-29 15:09 ` Ilpo Järvinen
2023-09-15 22:42 ` [PATCH v10 03/10] x86/resctrl: Rename rftype flags for consistency Babu Moger
2023-09-25 21:16 ` Fenghua Yu
2023-09-27 18:31 ` Reinette Chatre
2023-09-27 21:51 ` Moger, Babu
2023-09-29 15:14 ` Ilpo Järvinen
2023-09-15 22:42 ` [PATCH v10 04/10] x86/resctrl: Add comments on RFTYPE flags hierarchy Babu Moger
2023-09-29 15:17 ` Ilpo Järvinen
2023-09-15 22:42 ` [PATCH v10 05/10] x86/resctrl: Unwind the errors inside rdt_enable_ctx() Babu Moger
2023-09-29 15:22 ` Ilpo Järvinen
2023-09-15 22:42 ` [PATCH v10 06/10] x86/resctrl: Move default group file creation to mount Babu Moger
2023-09-29 15:50 ` Ilpo Järvinen [this message]
2023-09-15 22:42 ` [PATCH v10 07/10] x86/resctrl: Introduce "-o debug" mount option Babu Moger
2023-09-29 15:25 ` Ilpo Järvinen
2023-09-15 22:42 ` [PATCH v10 08/10] x86/resctrl: Display CLOSID for resource group Babu Moger
2023-09-25 21:19 ` Fenghua Yu
2023-09-27 18:32 ` Reinette Chatre
2023-09-29 15:40 ` Ilpo Järvinen
2023-09-15 22:42 ` [PATCH v10 09/10] x86/resctrl: Add support for the files for MON groups only Babu Moger
2023-09-25 21:20 ` Fenghua Yu
2023-09-27 18:34 ` Reinette Chatre
2023-09-27 21:34 ` Moger, Babu
2023-09-27 22:02 ` Reinette Chatre
2023-10-02 17:26 ` Moger, Babu
2023-09-29 15:59 ` Ilpo Järvinen
2023-09-15 22:42 ` [PATCH v10 10/10] x86/resctrl: Display RMID of resource group Babu Moger
2023-09-22 14:36 ` Peter Newman
2023-09-22 15:49 ` Moger, Babu
2023-09-22 17:59 ` Fenghua Yu
2023-09-25 8:10 ` Peter Newman
2023-09-25 21:21 ` Fenghua Yu
2023-09-27 18:35 ` Reinette Chatre
2023-09-29 15:56 ` Ilpo Järvinen
2023-09-28 5:28 ` [PATCH v10 00/10] x86/resctrl: Miscellaneous resctrl features Shaopeng Tan (Fujitsu)
2023-09-28 14:21 ` Moger, Babu
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=98f0a397-bdc3-136b-e42a-bbcb169cff4@linux.intel.com \
--to=ilpo.jarvinen@linux.intel.com \
--cc=adrian.hunter@intel.com \
--cc=akpm@linux-foundation.org \
--cc=babu.moger@amd.com \
--cc=bagasdotme@gmail.com \
--cc=bp@alien8.de \
--cc=chang.seok.bae@intel.com \
--cc=christophe.leroy@csgroup.eu \
--cc=corbet@lwn.net \
--cc=damien.lemoal@opensource.wdc.com \
--cc=daniel.sneddon@linux.intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=eranian@google.com \
--cc=fenghua.yu@intel.com \
--cc=hpa@zytor.com \
--cc=james.morse@arm.com \
--cc=jarkko@kernel.org \
--cc=jmattson@google.com \
--cc=jpoimboe@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=paulmck@kernel.org \
--cc=pawan.kumar.gupta@linux.intel.com \
--cc=pbonzini@redhat.com \
--cc=peternewman@google.com \
--cc=peterz@infradead.org \
--cc=quic_jiles@quicinc.com \
--cc=quic_neeraju@quicinc.com \
--cc=rdunlap@infradead.org \
--cc=reinette.chatre@intel.com \
--cc=sandipan.das@amd.com \
--cc=songmuchun@bytedance.com \
--cc=tglx@linutronix.de \
--cc=tony.luck@intel.com \
--cc=x86@kernel.org \
/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 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.