All of lore.kernel.org
 help / color / mirror / Atom feed
From: Reinette Chatre <reinette.chatre@intel.com>
To: James Morse <james.morse@arm.com>, <x86@kernel.org>,
	<linux-kernel@vger.kernel.org>
Cc: Fenghua Yu <fenghua.yu@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>,
	<shameerali.kolothum.thodi@huawei.com>,
	Jamie Iles <jamie@nuviainc.com>,
	"D Scott Phillips OS" <scott@os.amperecomputing.com>,
	<lcherian@marvell.com>, <bobo.shaobowang@huawei.com>
Subject: Re: [PATCH v1 07/20] x86/resctrl: Remove architecture copy of mbps_val
Date: Wed, 1 Sep 2021 14:26:38 -0700	[thread overview]
Message-ID: <d52bee12-5c6c-04da-3044-7121a2c15f12@intel.com> (raw)
In-Reply-To: <20210729223610.29373-8-james.morse@arm.com>

Hi James,

On 7/29/2021 3:35 PM, James Morse wrote:
> The resctrl arch code provides a second configuration array mbps_val[]
> for the mba socftware controller.

"mba socftware" -> "MBA software"

> 
> Since resctrl switched over to allocating and freeing its own array
> when needed, nothing uses the arch code version.
> 
> Remove it.
> 
> Signed-off-by: James Morse <james.morse@arm.com>
> ---
>   arch/x86/kernel/cpu/resctrl/core.c     | 20 ++++----------------
>   arch/x86/kernel/cpu/resctrl/internal.h |  4 +---
>   arch/x86/kernel/cpu/resctrl/rdtgroup.c |  2 +-
>   3 files changed, 6 insertions(+), 20 deletions(-)
> 
> diff --git a/arch/x86/kernel/cpu/resctrl/core.c b/arch/x86/kernel/cpu/resctrl/core.c
> index 56b3541617b5..e864dbc6fe3d 100644
> --- a/arch/x86/kernel/cpu/resctrl/core.c
> +++ b/arch/x86/kernel/cpu/resctrl/core.c
> @@ -397,7 +397,7 @@ struct rdt_domain *rdt_find_domain(struct rdt_resource *r, int id,
>   	return NULL;
>   }
>   
> -void setup_default_ctrlval(struct rdt_resource *r, u32 *dc, u32 *dm)
> +void setup_default_ctrlval(struct rdt_resource *r, u32 *dc)
>   {
>   	struct rdt_hw_resource *hw_res = resctrl_to_arch_res(r);
>   	int i;
> @@ -406,12 +406,9 @@ void setup_default_ctrlval(struct rdt_resource *r, u32 *dc, u32 *dm)
>   	 * Initialize the Control MSRs to having no control.
>   	 * For Cache Allocation: Set all bits in cbm
>   	 * For Memory Allocation: Set b/w requested to 100%
> -	 * and the bandwidth in MBps to U32_MAX
>   	 */
> -	for (i = 0; i < hw_res->num_closid; i++, dc++, dm++) {
> +	for (i = 0; i < hw_res->num_closid; i++, dc++)
>   		*dc = r->default_ctrl;
> -		*dm = MBA_MAX_MBPS;
> -	}

Since this function used to reset the array to default I was expecting 
its callers to now reset the new array (more below).

>   }
>   
>   static int domain_setup_ctrlval(struct rdt_resource *r, struct rdt_domain *d)
> @@ -419,23 +416,15 @@ static int domain_setup_ctrlval(struct rdt_resource *r, struct rdt_domain *d)
>   	struct rdt_hw_resource *hw_res = resctrl_to_arch_res(r);
>   	struct rdt_hw_domain *hw_dom = resctrl_to_arch_dom(d);
>   	struct msr_param m;
> -	u32 *dc, *dm;
> +	u32 *dc;
>   
>   	dc = kmalloc_array(hw_res->num_closid, sizeof(*hw_dom->ctrl_val),
>   			   GFP_KERNEL);
>   	if (!dc)
>   		return -ENOMEM;
>   
> -	dm = kmalloc_array(hw_res->num_closid, sizeof(*hw_dom->mbps_val),
> -			   GFP_KERNEL);
> -	if (!dm) {
> -		kfree(dc);
> -		return -ENOMEM;
> -	}
> -
>   	hw_dom->ctrl_val = dc;
> -	hw_dom->mbps_val = dm;
> -	setup_default_ctrlval(r, dc, dm);
> +	setup_default_ctrlval(r, dc);
>   
>   	m.low = 0;
>   	m.high = hw_res->num_closid;
> @@ -527,7 +516,6 @@ static void domain_remove_cpu(int cpu, struct rdt_resource *r)
>   			d->plr->d = NULL;
>   
>   		kfree(hw_dom->ctrl_val);
> -		kfree(hw_dom->mbps_val);
>   		kfree(hw_dom);
>   		return;
>   	}
> diff --git a/arch/x86/kernel/cpu/resctrl/internal.h b/arch/x86/kernel/cpu/resctrl/internal.h
> index a7e2cbce29d5..796e13a0e8dc 100644
> --- a/arch/x86/kernel/cpu/resctrl/internal.h
> +++ b/arch/x86/kernel/cpu/resctrl/internal.h
> @@ -308,14 +308,12 @@ struct mbm_state {
>    *			  a resource
>    * @d_resctrl:	Properties exposed to the resctrl file system
>    * @ctrl_val:	array of cache or mem ctrl values (indexed by CLOSID)
> - * @mbps_val:	When mba_sc is enabled, this holds the bandwidth in MBps
>    *
>    * Members of this structure are accessed via helpers that provide abstraction.
>    */
>   struct rdt_hw_domain {
>   	struct rdt_domain		d_resctrl;
>   	u32				*ctrl_val;
> -	u32				*mbps_val;
>   };
>   
>   static inline struct rdt_hw_domain *resctrl_to_arch_dom(struct rdt_domain *r)
> @@ -529,7 +527,7 @@ void mbm_setup_overflow_handler(struct rdt_domain *dom,
>   void mbm_handle_overflow(struct work_struct *work);
>   void __init intel_rdt_mbm_apply_quirk(void);
>   bool is_mba_sc(struct rdt_resource *r);
> -void setup_default_ctrlval(struct rdt_resource *r, u32 *dc, u32 *dm);
> +void setup_default_ctrlval(struct rdt_resource *r, u32 *dc);
>   u32 delay_bw_map(unsigned long bw, struct rdt_resource *r);
>   void cqm_setup_limbo_handler(struct rdt_domain *dom, unsigned long delay_ms);
>   void cqm_handle_limbo(struct work_struct *work);
> diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
> index 185f9bb992d1..297c20491549 100644
> --- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c
> +++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
> @@ -1906,7 +1906,7 @@ static int set_mba_sc(bool mba_sc)
>   	r->membw.mba_sc = mba_sc;
>   	list_for_each_entry(d, &r->domains, list) {
>   		hw_dom = resctrl_to_arch_dom(d);
> -		setup_default_ctrlval(r, hw_dom->ctrl_val, hw_dom->mbps_val);
> +		setup_default_ctrlval(r, hw_dom->ctrl_val);
>   	}
>   

I am wondering why new array is not reset instead of original at this 
call site? oh ... I see it is removed in following patch BUT it mentions 
that it is ok because reset_all_ctrls() does similar reset ... but it 
does not seem to do so for mbps_val.

Reinette

  reply	other threads:[~2021-09-01 21:26 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-29 22:35 [PATCH v1 00/20] x86/resctrl: Make resctrl_arch_rmid_read() return values in bytes James Morse
2021-07-29 22:35 ` [PATCH v1 01/20] x86/resctrl: Kill off alloc_enabled James Morse
2021-08-11 12:12   ` Jamie Iles
2021-09-01 21:18   ` Reinette Chatre
2021-07-29 22:35 ` [PATCH v1 02/20] x86/resctrl: Merge mon_capable and mon_enabled James Morse
2021-08-11 12:15   ` Jamie Iles
2021-08-11 15:16     ` James Morse
2021-07-29 22:35 ` [PATCH v1 03/20] x86/resctrl: Add domain online callback for resctrl work James Morse
2021-09-01 21:19   ` Reinette Chatre
2021-09-17 16:57     ` James Morse
2021-07-29 22:35 ` [PATCH v1 04/20] x86/resctrl: Add domain offline " James Morse
2021-08-11 16:10   ` Jamie Iles
2021-09-01 21:21   ` Reinette Chatre
2021-07-29 22:35 ` [PATCH v1 05/20] x86/resctrl: Create mba_sc configuration in the rdt_domain James Morse
2021-08-11 16:32   ` Jamie Iles
2021-08-31 16:24     ` James Morse
2021-09-01 21:22   ` Reinette Chatre
2021-09-17 16:57     ` James Morse
2021-07-29 22:35 ` [PATCH v1 06/20] x86/resctrl: Switch over to the resctrl mbps_val list James Morse
2021-09-01 21:25   ` Reinette Chatre
2021-09-17 16:57     ` James Morse
2021-09-17 18:20       ` Reinette Chatre
2021-10-01 16:02         ` James Morse
2021-07-29 22:35 ` [PATCH v1 07/20] x86/resctrl: Remove architecture copy of mbps_val James Morse
2021-09-01 21:26   ` Reinette Chatre [this message]
2021-09-17 16:57     ` James Morse
2021-07-29 22:35 ` [PATCH v1 08/20] x86/resctrl: Remove set_mba_sc()s control array re-initialisation James Morse
2021-07-29 22:35 ` [PATCH v1 09/20] x86/resctrl: Abstract and use supports_mba_mbps() James Morse
2021-09-01 21:27   ` Reinette Chatre
2021-09-17 16:57     ` James Morse
2021-09-24  6:23   ` tan.shaopeng
2021-10-01 16:01     ` James Morse
2021-07-29 22:36 ` [PATCH v1 10/20] x86/resctrl: Allow update_mba_bw() to update controls directly James Morse
2021-09-01 21:28   ` Reinette Chatre
2021-07-29 22:36 ` [PATCH v1 11/20] x86/resctrl: Calculate bandwidth from the total bytes counter James Morse
2021-09-01 21:31   ` Reinette Chatre
2021-09-17 16:58     ` James Morse
2021-07-29 22:36 ` [PATCH v1 12/20] x86/recstrl: Add per-rmid arch private storage for overflow and chunks James Morse
2021-08-11 17:14   ` Jamie Iles
2021-08-31 16:25     ` James Morse
2021-07-29 22:36 ` [PATCH v1 13/20] x86/recstrl: Allow per-rmid arch private storage to be reset James Morse
2021-09-24  6:34   ` tan.shaopeng
2021-10-01 16:01     ` James Morse
2021-07-29 22:36 ` [PATCH v1 14/20] x86/resctrl: Abstract __rmid_read() James Morse
2021-07-29 22:36 ` [PATCH v1 15/20] x86/resctrl: Pass the required parameters into resctrl_arch_rmid_read() James Morse
2021-07-29 22:36 ` [PATCH v1 16/20] x86/resctrl: Move mbm_overflow_count() " James Morse
2021-07-29 22:36 ` [PATCH v1 17/20] x86/resctrl: Move get_corrected_mbm_count() " James Morse
2021-07-29 22:36 ` [PATCH v1 18/20] x86/resctrl: Rename and change the units of resctrl_cqm_threshold James Morse
2021-07-29 22:36 ` [PATCH v1 19/20] x86/resctrl: Add resctrl_rmid_realloc_limit to abstract x86's boot_cpu_data James Morse
2021-07-29 22:36 ` [PATCH v1 20/20] x86/resctrl: Make resctrl_arch_rmid_read() return values in bytes 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=d52bee12-5c6c-04da-3044-7121a2c15f12@intel.com \
    --to=reinette.chatre@intel.com \
    --cc=Babu.Moger@amd.com \
    --cc=bobo.shaobowang@huawei.com \
    --cc=bp@alien8.de \
    --cc=fenghua.yu@intel.com \
    --cc=hpa@zytor.com \
    --cc=james.morse@arm.com \
    --cc=jamie@nuviainc.com \
    --cc=lcherian@marvell.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=scott@os.amperecomputing.com \
    --cc=shameerali.kolothum.thodi@huawei.com \
    --cc=tglx@linutronix.de \
    --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.