From: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
To: Babu Moger <babu.moger@amd.com>
Cc: corbet@lwn.net, Reinette Chatre <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, LKML <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 05/10] x86/resctrl: Unwind the errors inside rdt_enable_ctx()
Date: Fri, 29 Sep 2023 18:22:26 +0300 (EEST) [thread overview]
Message-ID: <1f11b7d3-cb83-4e2b-a5c-11de87bb43b5@linux.intel.com> (raw)
In-Reply-To: <20230915224227.1336967-6-babu.moger@amd.com>
[-- Attachment #1: Type: text/plain, Size: 3998 bytes --]
On Fri, 15 Sep 2023, Babu Moger wrote:
> rdt_enable_ctx() enables the features provided during resctrl mount.
>
> Additions to rdt_enable_ctx() are required to also modify error paths
> of rdt_enable_ctx() callers to ensure correct unwinding if errors
> are encountered after calling rdt_enable_ctx(). This is error prone.
>
> Introduce rdt_disable_ctx() to refactor the error unwinding of
> rdt_enable_ctx() to simplify future additions. This also simplifies
> cleanup in rdt_kill_sb().
>
> Remove cdp_disable_all() as it is not used anymore after the refactor.
>
> 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 | 53 ++++++++++++++++----------
> 1 file changed, 32 insertions(+), 21 deletions(-)
>
> diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
> index 35945b4bf196..3ea874c80c22 100644
> --- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c
> +++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
> @@ -2290,14 +2290,6 @@ int resctrl_arch_set_cdp_enabled(enum resctrl_res_level l, bool enable)
> return 0;
> }
>
> -static void cdp_disable_all(void)
> -{
> - if (resctrl_arch_get_cdp_enabled(RDT_RESOURCE_L3))
> - resctrl_arch_set_cdp_enabled(RDT_RESOURCE_L3, false);
> - if (resctrl_arch_get_cdp_enabled(RDT_RESOURCE_L2))
> - resctrl_arch_set_cdp_enabled(RDT_RESOURCE_L2, false);
> -}
> -
> /*
> * We don't allow rdtgroup directories to be created anywhere
> * except the root directory. Thus when looking for the rdtgroup
> @@ -2377,19 +2369,42 @@ static int mkdir_mondata_all(struct kernfs_node *parent_kn,
> struct rdtgroup *prgrp,
> struct kernfs_node **mon_data_kn);
>
> +static void rdt_disable_ctx(void)
> +{
> + resctrl_arch_set_cdp_enabled(RDT_RESOURCE_L3, false);
> + resctrl_arch_set_cdp_enabled(RDT_RESOURCE_L2, false);
> + set_mba_sc(false);
> +}
> +
> static int rdt_enable_ctx(struct rdt_fs_context *ctx)
> {
> int ret = 0;
>
> - if (ctx->enable_cdpl2)
> + if (ctx->enable_cdpl2) {
> ret = resctrl_arch_set_cdp_enabled(RDT_RESOURCE_L2, true);
> + if (ret)
> + goto out_done;
> + }
>
> - if (!ret && ctx->enable_cdpl3)
> + if (ctx->enable_cdpl3) {
> ret = resctrl_arch_set_cdp_enabled(RDT_RESOURCE_L3, true);
> + if (ret)
> + goto out_cdpl2;
> + }
>
> - if (!ret && ctx->enable_mba_mbps)
> + if (ctx->enable_mba_mbps) {
> ret = set_mba_sc(true);
> + if (ret)
> + goto out_cdpl3;
> + }
> +
> + return 0;
>
> +out_cdpl3:
> + resctrl_arch_set_cdp_enabled(RDT_RESOURCE_L3, false);
> +out_cdpl2:
> + resctrl_arch_set_cdp_enabled(RDT_RESOURCE_L2, false);
> +out_done:
> return ret;
> }
>
> @@ -2497,13 +2512,13 @@ static int rdt_get_tree(struct fs_context *fc)
> }
>
> ret = rdt_enable_ctx(ctx);
> - if (ret < 0)
> - goto out_cdp;
> + if (ret)
> + goto out;
>
> ret = schemata_list_create();
> if (ret) {
> schemata_list_destroy();
> - goto out_mba;
> + goto out_ctx;
> }
>
> closid_init();
> @@ -2562,11 +2577,8 @@ static int rdt_get_tree(struct fs_context *fc)
> kernfs_remove(kn_info);
> out_schemata_free:
> schemata_list_destroy();
> -out_mba:
> - if (ctx->enable_mba_mbps)
> - set_mba_sc(false);
> -out_cdp:
> - cdp_disable_all();
> +out_ctx:
> + rdt_disable_ctx();
> out:
> rdt_last_cmd_clear();
> mutex_unlock(&rdtgroup_mutex);
> @@ -2798,12 +2810,11 @@ static void rdt_kill_sb(struct super_block *sb)
> cpus_read_lock();
> mutex_lock(&rdtgroup_mutex);
>
> - set_mba_sc(false);
> + rdt_disable_ctx();
>
> /*Put everything back to default values. */
> for_each_alloc_capable_rdt_resource(r)
> reset_all_ctrls(r);
> - cdp_disable_all();
> rmdir_all_sub();
> rdt_pseudo_lock_release();
> rdtgroup_default.mode = RDT_MODE_SHAREABLE;
>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
--
i.
next prev parent reply other threads:[~2023-09-29 15:23 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 [this message]
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
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=1f11b7d3-cb83-4e2b-a5c-11de87bb43b5@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.