linux-doc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Reinette Chatre <reinette.chatre@intel.com>
To: <babu.moger@amd.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>, <christophe.leroy@csgroup.eu>,
	<jarkko@kernel.org>, <adrian.hunter@intel.com>,
	<quic_jiles@quicinc.com>, <peternewman@google.com>
Subject: Re: [PATCH v7 4/8] x86/resctrl: Add comments on RFTYPE flags hierarchy
Date: Wed, 16 Aug 2023 11:36:52 -0700	[thread overview]
Message-ID: <25c23223-520b-f6ff-ec8f-678e2524c511@intel.com> (raw)
In-Reply-To: <c341b2cf-7ebc-f52b-76ba-77a106dc20fc@amd.com>

Hi Babu,

On 8/16/2023 8:34 AM, Moger, Babu wrote:
> Hi Reinette,
> 
> On 8/15/23 17:45, Reinette Chatre wrote:
>> Hi Babu,
>>
>> On 8/11/2023 1:09 PM, Babu Moger wrote:
>>> resctrl uses RFTYPE flags for creating resctrl directory structure.
>>>
>>> Definitions and directory structures are not documented. Add
>>> comments to improve the readability and help future additions.
>>>
>>> Signed-off-by: Babu Moger <babu.moger@amd.com>
>>> ---
>>>  arch/x86/kernel/cpu/resctrl/internal.h |   49 ++++++++++++++++++++++++++++++++
>>>  1 file changed, 49 insertions(+)
>>>
>>> diff --git a/arch/x86/kernel/cpu/resctrl/internal.h b/arch/x86/kernel/cpu/resctrl/internal.h
>>> index 2051179a3b91..37800724e002 100644
>>> --- a/arch/x86/kernel/cpu/resctrl/internal.h
>>> +++ b/arch/x86/kernel/cpu/resctrl/internal.h
>>> @@ -240,6 +240,55 @@ struct rdtgroup {
>>>  
>>>  /*
>>>   * Define the file type flags for base and info directories.
>>> + *
>>> + * RESCTRL filesystem has two main components
>>> + *	a. info
>>> + *	b. base
>>> + *
>>> + * /sys/fs/resctrl/
>>> + *	|
>>> + *	--> info (Top level directory named "info". Contains files that
>>> + *	|	  provide details on control and monitoring resources.)
>>> + *	|
>>> + *	--> base (Root directory associated with default resource group
>>> + *		  as well as directories created by user for MON and CTRL
>>> + *		  groups. Contains files to interact with MON and CTRL
>>> + *		  groups.)
>>> + *
>>> + *	info directory structure
>>> + *	------------------------------------------------------------------
>>> + *	--> RFTYPE_INFO
>>> + *	--> <info> directory
>>> + *		--> RFTYPE_TOP_INFO
>>> + *		    Files: last_cmd_status
>>> + *
>>> + *		--> RFTYPE_MON_INFO
>>> + *		--> <L3_MON> directory
>>> + *		    Files: max_threshold_occupancy, mon_features,
>>> + *			   num_rmids, mbm_total_bytes_config,
>>> + *			   mbm_local_bytes_config
>>> + *
>>
>> I think the monitor files need the same split as what you did for
>> control files in this version. That is, there are some files
>> that depend on RFTYPE_MON_INFO and others that depend on
>> RFTYPE_MON_INFO | RFTYPE_RES_CACHE. In above it appears that
>> all files depend on RFTYPE_MON_INFO only.
> 
> ok. Sure.
> 
> 
>>> + *		--> RFTYPE_CTRL_INFO
>>> + *		    Files: num_closids
>>> + *
>>
>> Looking at this closer I can see some potential confusion about where these
>> files appear. A note saying that these files appear in all sub-directories
>> may be helpful because at this point it appears that this file is at the
>> same level as the directories.
> 
> Sure..
> 
> With both these changes. Here is the diff on top of current patch.
> 
> diff --git a/arch/x86/kernel/cpu/resctrl/internal.h
> b/arch/x86/kernel/cpu/resctrl/internal.h
> index 37800724e002..412a9ef98171 100644
> --- a/arch/x86/kernel/cpu/resctrl/internal.h
> +++ b/arch/x86/kernel/cpu/resctrl/internal.h
> @@ -264,12 +264,16 @@ struct rdtgroup {
>   *
>   *             --> RFTYPE_MON_INFO
>   *             --> <L3_MON> directory

I understand that resctrl does not use flags for directories
but I do find it inconsistent how the L3_MON directory is
layered when compared to how the, for example, L3 directory
is layered below. I actually start to wonder if it may not
simplify interpretation if the names of directories
are removed entirely from this documentation

I also think that the current hierarchy is confusing since it
uses combined flags while also creating a hierarchy.
What I mean is, the documentation looks like;

      *	--> RFTYPE_INFO
      *	--> <info> directory
      *		--> RFTYPE_TOP_INFO
      *		    Files: last_cmd_status

If I understand correctly the hierarchy is intended to mean
that all items below flag at that level has that flag set.
The confusing part is when combined flags are also used, like
above where RFTYPE_TOP_INFO is (RFTYPE_INFO | RFTYPE_TOP)
If hierarchy is followed, should it not rather be:

      *	--> RFTYPE_INFO
      *	--> <info> directory
      *		--> RFTYPE_TOP
      *		    Files: last_cmd_status



> - *                 Files: max_threshold_occupancy, mon_features,
> - *                        num_rmids, mbm_total_bytes_config,
> - *                        mbm_local_bytes_config
> + *                 Files: mon_features, num_rmids
> + *
> + *                     --> RFTYPE_RES_CACHE
> + *                         Files: max_threshold_occupancy,
> + *                                mbm_total_bytes_config,
> + *                                mbm_local_bytes_config
>   *
>   *             --> RFTYPE_CTRL_INFO
>   *                 Files: num_closids
> + *                        These files appear in all the sub-directories.
>   *
>   *                     --> RFTYPE_RES_CACHE
>   *                     --> <L2,L3> directories


I made an attempt at capturing all the items I mention
above. Please do not just copy this into your next version but
consider first if it makes sense to you with the goal of
reducing ambiguity.

*	info directory structure
*	------------------------------------------------------------------
*	--> RFTYPE_INFO
*		--> RFTYPE_TOP (Files in top level of info directory)
*		    Files: last_cmd_status
*
*		--> RFTYPE_MON (Files for all monitoring resources)
*		    Files: mon_features, num_rmids
*
*		    --> RFTYPE_RES_CACHE (Files for cache monitoring resources)
*		    Files: max_threshold_occupancy,
*			   mbm_total_bytes_config,
*			   mbm_local_bytes_config
*
*		--> RFTYPE_CTRL (Files for all control resources)
*		    Files: num_closids
*
*			--> RFTYPE_RES_CACHE (Files for cache control resources)
*			    Files: bit_usage, cbm_mask, min_cbm_bits,
*				   shareable_bits
*
*			--> RFTYPE_RES_MB (Files for MBA and SMBA control resources)
*			    Files: bandwidth_gran, delay_linear,
*				   min_bandwidth, thread_throttle_mode
*
*	base directory structure
*	------------------------------------------------------------------
*	--> RFTYPE_BASE (Files for both MON and CTRL groups)
*	    Files: cpus, cpus_list, tasks
*
*		--> RFTYPE_CTRL (Files only for CTRL group)
*	    	Files: mode, schemata, size
*

Reinette




  reply	other threads:[~2023-08-16 18:38 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-11 20:08 [PATCH v7 0/8] x86/resctrl: Miscellaneous resctrl features Babu Moger
2023-08-11 20:08 ` [PATCH v7 1/8] x86/resctrl: Add multiple tasks to the resctrl group at once Babu Moger
2023-08-15 22:43   ` Reinette Chatre
2023-08-11 20:08 ` [PATCH v7 2/8] x86/resctrl: Simplify rftype flag definitions Babu Moger
2023-08-11 20:09 ` [PATCH v7 3/8] x86/resctrl: Rename rftype flags for consistency Babu Moger
2023-08-11 20:09 ` [PATCH v7 4/8] x86/resctrl: Add comments on RFTYPE flags hierarchy Babu Moger
2023-08-15 22:45   ` Reinette Chatre
2023-08-16 15:34     ` Moger, Babu
2023-08-16 18:36       ` Reinette Chatre [this message]
2023-08-17 14:20         ` Moger, Babu
2023-08-17 15:37           ` Reinette Chatre
2023-08-17 17:07             ` Moger, Babu
2023-08-17 17:42               ` Reinette Chatre
2023-08-17 19:21                 ` Moger, Babu
2023-08-11 20:09 ` [PATCH v7 5/8] x86/resctrl: Unwind the errors inside rdt_enable_ctx() Babu Moger
2023-08-15 22:47   ` Reinette Chatre
2023-08-16 18:17     ` Moger, Babu
2023-08-16 19:07       ` Reinette Chatre
2023-08-17 14:22         ` Moger, Babu
2023-08-11 20:10 ` [PATCH v7 6/8] x86/resctrl: Move default control group creation during mount Babu Moger
2023-08-15 22:50   ` Reinette Chatre
2023-08-16 19:14     ` Moger, Babu
2023-08-16 23:02       ` Reinette Chatre
2023-08-17 14:23         ` Moger, Babu
2023-08-11 20:10 ` [PATCH v7 7/8] x86/resctrl: Introduce "-o debug" mount option Babu Moger
2023-08-15 22:51   ` Reinette Chatre
2023-08-16 19:15     ` Moger, Babu
2023-08-11 20:10 ` [PATCH v7 8/8] x86/resctrl: Display hardware ids of resource groups Babu Moger
2023-08-15 22:52   ` Reinette Chatre
2023-08-17 19:24     ` 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=25c23223-520b-f6ff-ec8f-678e2524c511@intel.com \
    --to=reinette.chatre@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=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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).