All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Moger, Babu" <babu.moger@amd.com>
To: Reinette Chatre <reinette.chatre@intel.com>,
	corbet@lwn.net, tglx@linutronix.de, mingo@redhat.com,
	bp@alien8.de
Cc: 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
Subject: Re: [PATCH v4 09/13] x86/resctrl: Add sysfs interface files to read/write event configuration
Date: Mon, 19 Sep 2022 10:46:46 -0500	[thread overview]
Message-ID: <04132d34-c69e-62a0-35ba-bafa44210c0a@amd.com> (raw)
In-Reply-To: <13294a8f-e76f-a6a9-284c-67adbc80ec7c@intel.com>

Hi Reinette,

On 9/16/22 10:58, Reinette Chatre wrote:
> Hi Babu,
>
> On 9/7/2022 11:01 AM, Babu Moger wrote:
>> Add two new sysfs files to read/write the event configuration if
>> the feature Bandwidth Monitoring Event Configuration (BMEC) is
>> supported. The file mbm_local_config is for the configuration
>> of the event mbm_local_bytes and the file mbm_total_config is
>> for the configuration of mbm_total_bytes.
>>
>> $ls /sys/fs/resctrl/mon_data/mon_L3_00/mbm_local*
>> /sys/fs/resctrl/mon_data/mon_L3_00/mbm_local_bytes
>> /sys/fs/resctrl/mon_data/mon_L3_00/mbm_local_config
>>
>> $ls /sys/fs/resctrl/mon_data/mon_L3_00/mbm_total*
>> /sys/fs/resctrl/mon_data/mon_L3_00/mbm_total_bytes
>> /sys/fs/resctrl/mon_data/mon_L3_00/mbm_total_config
>>
> This patch makes the mbm*config files per monitor group. Looking
> ahead at later patches how the configuration is set it is not clear
> to me that this is the right place for these configuration files.
>
> Looking ahead to patch 10 there is neither rmid nor closid within
> the (MSR_IA32_EVT_CFG_BASE + index) register - it only takes
> the bits indicating what access types needs to be counted. Also
> in patch 10 I understand that the scope of this register is per L3 cache
> domain.
Yes. Scope of  MSR_IA32_EVT_CFG_BASE per L3 domain.
>
> Considering this, why is the sysfs file associated with each
> monitor group?
Please see the response below.
>
> For example, consider the following scenario:
> # cd /sys/fs/resctrl
> # mkdir g2
> # mkdir mon_groups/m1
> # mkdir mon_groups/m2
> # find . | grep mbm_local_config
> ./mon_data/mon_L3_00/mbm_local_config
> ./mon_data/mon_L3_01/mbm_local_config
> ./g2/mon_data/mon_L3_00/mbm_local_config
> ./g2/mon_data/mon_L3_01/mbm_local_config
> ./mon_groups/m2/mon_data/mon_L3_00/mbm_local_config
> ./mon_groups/m2/mon_data/mon_L3_01/mbm_local_config
> ./mon_groups/m1/mon_data/mon_L3_00/mbm_local_config
> ./mon_groups/m1/mon_data/mon_L3_01/mbm_local_config
>
>
> From what I understand, the following sysfs files are
> associated with cache domain #0 and thus writing to any of these
> files would change the same configuration:
> ./mon_data/mon_L3_00/mbm_local_config
> ./g2/mon_data/mon_L3_00/mbm_local_config
> ./mon_groups/m2/mon_data/mon_L3_00/mbm_local_config
> ./mon_groups/m1/mon_data/mon_L3_00/mbm_local_config
>
> Could you please correct me where I am wrong?

For example, we have CPUs 0-7 in domain 0. We have two counters which are
configurable.

Lets consider same example as your mentioned about.

g2 is a control group.

m1 and m2 are monitor group.

We can have control group g2 with CPUs 0-7 to limit the L3 bandwidth (or
memory bandwidth with required schemata setting).

We can have mon group m1 with cpus 0-3 to monitor mbm_local_bytes.

We can have mon group m2 with cpus  4-7 to monitor mbm_total_bytes.

Each group is independently, monitoring two separate thing. Without having
sysfs file (mbm_local_config and mbm_total_config) in each monitor group,
we wont be able to configure the above configuration.


>
>> Signed-off-by: Babu Moger <babu.moger@amd.com>
>> ---
>>  arch/x86/kernel/cpu/resctrl/rdtgroup.c |   40 ++++++++++++++++++++++++--------
>>  1 file changed, 30 insertions(+), 10 deletions(-)
>>
>> diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
>> index f55a693fa958..da11fdad204d 100644
>> --- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c
>> +++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
>> @@ -254,6 +254,10 @@ static const struct kernfs_ops kf_mondata_ops = {
>>  	.seq_show		= rdtgroup_mondata_show,
>>  };
>>  
>> +static const struct kernfs_ops kf_mondata_config_ops = {
>> +	.atomic_write_len       = PAGE_SIZE,
>> +};
>> +
> Please use coding style (tabs vs spaces) that is consistent with area
> you are contributing to.
Sure
>
>>  static bool is_cpu_list(struct kernfs_open_file *of)
>>  {
>>  	struct rftype *rft = of->kn->priv;
>> @@ -2478,24 +2482,40 @@ static struct file_system_type rdt_fs_type = {
>>  	.kill_sb		= rdt_kill_sb,
>>  };
>>  
>> -static int mon_addfile(struct kernfs_node *parent_kn, const char *name,
>> +static int mon_addfile(struct kernfs_node *parent_kn, struct mon_evt *mevt,
>>  		       void *priv)
>>  {
>> -	struct kernfs_node *kn;
>> +	struct kernfs_node *kn_evt, *kn_evt_config;
>>  	int ret = 0;
>>  
>> -	kn = __kernfs_create_file(parent_kn, name, 0444,
>> -				  GLOBAL_ROOT_UID, GLOBAL_ROOT_GID, 0,
>> -				  &kf_mondata_ops, priv, NULL, NULL);
>> -	if (IS_ERR(kn))
>> -		return PTR_ERR(kn);
>> +	kn_evt = __kernfs_create_file(parent_kn, mevt->name, 0444,
>> +			GLOBAL_ROOT_UID, GLOBAL_ROOT_GID, 0,
>> +			&kf_mondata_ops, priv, NULL, NULL);
> Please run your series through checkpatch (alignment issue above)
Sure
>
>> +	if (IS_ERR(kn_evt))
>> +		return PTR_ERR(kn_evt);
>>  
>> -	ret = rdtgroup_kn_set_ugid(kn);
>> +	ret = rdtgroup_kn_set_ugid(kn_evt);
>>  	if (ret) {
>> -		kernfs_remove(kn);
>> +		kernfs_remove(kn_evt);
>>  		return ret;
>>  	}
>>  
>> +	if (mevt->configurable) {
>> +		kn_evt_config = __kernfs_create_file(parent_kn,
>> +				mevt->config_name, 0644,
>> +				GLOBAL_ROOT_UID, GLOBAL_ROOT_GID, 0,
>> +				&kf_mondata_config_ops, priv, NULL, NULL);
>> +		if (IS_ERR(kn_evt_config))
>> +			return PTR_ERR(kn_evt_config);
>> +
> Since an error is returned here it seems that some cleanup (kn_evt) is missing?

Yes. That is correct.  Will fix it.

Thanks

Babu

>
>
>> +		ret = rdtgroup_kn_set_ugid(kn_evt_config);
>> +		if (ret) {
>> +			kernfs_remove(kn_evt_config);
>> +			kernfs_remove(kn_evt);
>> +			return ret;
>> +		}
>> +	}
>> +
>>  	return ret;
>>  }
>>  
> Reinette

-- 
Thanks
Babu Moger


  reply	other threads:[~2022-09-19 15:47 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-07 17:59 [PATCH v4 00/13] x86/resctrl: Support for AMD QoS new features and bug fix Babu Moger
2022-09-07 17:59 ` [PATCH v4 01/13] x86/resctrl: Fix min_cbm_bits for AMD Babu Moger
2022-09-09 17:00   ` James Morse
2022-09-12 14:54     ` Moger, Babu
2022-09-16 15:52       ` Reinette Chatre
2022-09-16 18:28         ` Moger, Babu
2022-09-16 15:53   ` Reinette Chatre
2022-09-16 18:31     ` Moger, Babu
2022-09-07 18:00 ` [PATCH v4 02/13] x86/resctrl: Remove arch_has_empty_bitmaps Babu Moger
2022-09-16 15:53   ` Reinette Chatre
2022-09-16 19:00     ` Moger, Babu
2022-09-07 18:00 ` [PATCH v4 03/13] x86/cpufeatures: Add Slow Memory Bandwidth Allocation feature flag Babu Moger
2022-09-16 15:54   ` Reinette Chatre
2022-09-16 19:02     ` Moger, Babu
2022-09-07 18:00 ` [PATCH v4 04/13] x86/resctrl: Add a new resource type RDT_RESOURCE_SMBA Babu Moger
2022-09-16 15:54   ` Reinette Chatre
2022-09-16 19:11     ` Moger, Babu
2022-09-07 18:00 ` [PATCH v4 05/13] x86/cpufeatures: Add Bandwidth Monitoring Event Configuration feature flag Babu Moger
2022-09-07 18:36   ` Daniel Sneddon
2022-09-07 19:59     ` Moger, Babu
2022-09-16 15:55   ` Reinette Chatre
2022-09-16 20:19     ` Moger, Babu
2022-09-07 18:00 ` [PATCH v4 06/13] x86/resctrl: Include new features in command line options Babu Moger
2022-09-16 15:55   ` Reinette Chatre
2022-09-16 20:22     ` Moger, Babu
2022-09-07 18:00 ` [PATCH v4 07/13] x86/resctrl: Detect and configure Slow Memory Bandwidth allocation Babu Moger
2022-09-07 18:00 ` [PATCH v4 08/13] x86/resctrl : Introduce data structure to support monitor configuration Babu Moger
2022-09-16 15:56   ` Reinette Chatre
2022-09-16 21:23     ` Moger, Babu
2022-09-07 18:01 ` [PATCH v4 09/13] x86/resctrl: Add sysfs interface files to read/write event configuration Babu Moger
2022-09-16 15:58   ` Reinette Chatre
2022-09-19 15:46     ` Moger, Babu [this message]
2022-09-19 16:42       ` Reinette Chatre
2022-09-19 20:26         ` Moger, Babu
2022-09-19 21:07           ` Reinette Chatre
2022-09-20 17:09             ` Moger, Babu
2022-09-07 18:01 ` [PATCH v4 10/13] x86/resctrl: Add the sysfs interface to read the " Babu Moger
2022-09-16 15:59   ` Reinette Chatre
2022-09-19 16:07     ` Moger, Babu
2022-09-07 18:01 ` [PATCH v4 11/13] x86/resctrl: Add sysfs interface to write " Babu Moger
2022-09-16 16:17   ` Reinette Chatre
2022-09-19 16:50     ` Moger, Babu
2022-09-07 18:01 ` [PATCH v4 12/13] x86/resctrl: Replace smp_call_function_many with on_each_cpu_mask Babu Moger
2022-09-16 16:17   ` Reinette Chatre
2022-09-16 20:38     ` Moger, Babu
2022-09-07 18:01 ` [PATCH v4 13/13] Documentation/x86: Update resctrl_ui.rst for new features Babu Moger
2022-09-08  4:07   ` Bagas Sanjaya
2022-09-08  9:26     ` Bagas Sanjaya
2022-09-08 13:40       ` 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=04132d34-c69e-62a0-35ba-bafa44210c0a@amd.com \
    --to=babu.moger@amd.com \
    --cc=akpm@linux-foundation.org \
    --cc=bagasdotme@gmail.com \
    --cc=bp@alien8.de \
    --cc=chang.seok.bae@intel.com \
    --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=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=peterz@infradead.org \
    --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.