All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Moger, Babu" <babu.moger@amd.com>
To: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.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 v4 7/7] x86/resctrl: Add debug files when mounted with debug option
Date: Wed, 19 Apr 2023 10:16:08 -0500	[thread overview]
Message-ID: <8e1903a4-28c3-a38b-8e65-5f37ce7c0d66@amd.com> (raw)
In-Reply-To: <56497126-8f60-e590-bb13-b3739114375@linux.intel.com>



On 4/19/23 08:20, Ilpo Järvinen wrote:
> On Mon, 17 Apr 2023, Babu Moger wrote:
> 
>> Add the debug files to the resctrl hierarchy.
>>
>> Signed-off-by: Babu Moger <babu.moger@amd.com>
>> ---
>>  arch/x86/kernel/cpu/resctrl/internal.h |    1 +
>>  arch/x86/kernel/cpu/resctrl/rdtgroup.c |   54 +++++++++++++++++++++++++++++++-
>>  2 files changed, 54 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/x86/kernel/cpu/resctrl/internal.h b/arch/x86/kernel/cpu/resctrl/internal.h
>> index 1eac07ebc31b..855109abb480 100644
>> --- a/arch/x86/kernel/cpu/resctrl/internal.h
>> +++ b/arch/x86/kernel/cpu/resctrl/internal.h
>> @@ -288,6 +288,7 @@ struct rdtgroup {
>>  #define RFTYPE_TOP			BIT(4)
>>  #define RFTYPE_RES_CACHE		BIT(5)
>>  #define RFTYPE_RES_MB			BIT(6)
>> +#define RFTYPE_DEBUG			BIT(7)
>>  #define RFTYPE_CTRL_INFO		(RFTYPE_INFO | RFTYPE_CTRL)
>>  #define RFTYPE_MON_INFO			(RFTYPE_INFO | RFTYPE_MON)
>>  #define RFTYPE_TOP_INFO			(RFTYPE_INFO | RFTYPE_TOP)
>> diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
>> index 15ded0dd5b09..1ec4359348c2 100644
>> --- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c
>> +++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
>> @@ -1880,6 +1880,7 @@ static struct rftype res_common_files[] = {
>>  		.mode		= 0444,
>>  		.kf_ops		= &rdtgroup_kf_single_ops,
>>  		.seq_show	= rdtgroup_rmid_show,
>> +		.fflags		= RFTYPE_BASE | RFTYPE_DEBUG,
>>  	},
>>  	{
>>  		.name		= "schemata",
>> @@ -1909,6 +1910,7 @@ static struct rftype res_common_files[] = {
>>  		.mode		= 0444,
>>  		.kf_ops		= &rdtgroup_kf_single_ops,
>>  		.seq_show	= rdtgroup_closid_show,
>> +		.fflags		= RFTYPE_CTRL_BASE | RFTYPE_DEBUG,
>>  	},
>>  
>>  };
>> @@ -2420,6 +2422,49 @@ static int mkdir_mondata_all(struct kernfs_node *parent_kn,
>>  			     struct rdtgroup *prgrp,
>>  			     struct kernfs_node **mon_data_kn);
>>  
>> +static void resctrl_add_debug_files(void)
>> +{
>> +	struct rftype *rfts, *rft;
>> +	int len;
>> +
>> +	rfts = res_common_files;
>> +	len = ARRAY_SIZE(res_common_files);
>> +
>> +	lockdep_assert_held(&rdtgroup_mutex);
>> +
>> +	for (rft = rfts; rft < rfts + len; rft++) {
>> +		if (rft->fflags & RFTYPE_DEBUG) {
>> +			rft->fflags &= ~RFTYPE_DEBUG;
> 
> I don't fully follow why you need to play with ->fflags like this.

Yes. It is because of this check.
    if (rft->fflags && ((fflags & rft->fflags) == rft->fflags)) {

I am not sure about "== rft->fflags" check. If I remove this check then I
may not have to do all this trick. I can try that.


> Is it for the ->fflags test in rdtgroup_add_files()? Can't you just do 
> some extra masking there for RFTYPE_DEBUG based on resctrl_debug which 
> you already keep?

Yes. Let me experiment little bit.
Thanks
Babu
> 
>> +			rdtgroup_add_file(rdtgroup_default.kn, rft);
>> +		}
>> +	}
>> +
>> +	kernfs_activate(rdtgroup_default.kn);
>> +}
>> +
>> +static void resctrl_remove_debug_files(void)
>> +{
>> +	struct rftype *rfts, *rft;
>> +	int len;
>> +
>> +	rfts = res_common_files;
>> +	len = ARRAY_SIZE(res_common_files);
>> +
>> +	lockdep_assert_held(&rdtgroup_mutex);
>> +
>> +	for (rft = rfts; rft < rfts + len; rft++) {
>> +		if (!strcmp(rft->name, "mon_hw_id")) {
>> +			rft->fflags |= RFTYPE_DEBUG;
>> +			kernfs_remove_by_name(rdtgroup_default.kn, rft->name);
>> +		} else if (!strcmp(rft->name, "ctrl_hw_id")) {
>> +			rft->fflags |= RFTYPE_DEBUG;
>> +			kernfs_remove_by_name(rdtgroup_default.kn, rft->name);
>> +		}
>> +	}
>> +
>> +	kernfs_activate(rdtgroup_default.kn);
>> +}
>> +
>>  static int rdt_enable_ctx(struct rdt_fs_context *ctx)
>>  {
>>  	int ret = 0;
>> @@ -2433,8 +2478,10 @@ static int rdt_enable_ctx(struct rdt_fs_context *ctx)
>>  	if (!ret && ctx->enable_mba_mbps)
>>  		ret = set_mba_sc(true);
>>  
>> -	if (!ret && ctx->enable_debug)
>> +	if (!ret && ctx->enable_debug) {
>>  		resctrl_debug = true;
>> +		resctrl_add_debug_files();
>> +	}
>>  
>>  	return ret;
>>  }
>> @@ -2851,6 +2898,11 @@ static void rdt_kill_sb(struct super_block *sb)
>>  
>>  	set_mba_sc(false);
>>  
>> +	if (resctrl_debug) {
>> +		resctrl_remove_debug_files();
>> +		resctrl_debug = false;
> 
> Logically, this false assignment belongs to the earlier patch.
> 

-- 
Thanks
Babu Moger

  reply	other threads:[~2023-04-19 15:20 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-17 23:33 [PATCH v4 0/7] x86/resctrl: Miscellaneous resctrl features Babu Moger
2023-04-17 23:34 ` [PATCH v4 1/7] x86/resctrl: Add multiple tasks to the resctrl group at once Babu Moger
2023-04-19 12:58   ` Ilpo Järvinen
2023-04-19 14:52     ` Moger, Babu
2023-04-20  9:38       ` Ilpo Järvinen
2023-05-04 18:57   ` Reinette Chatre
2023-05-05 17:09     ` Moger, Babu
2023-05-05 18:49       ` Reinette Chatre
2023-05-09 17:13         ` Moger, Babu
2023-04-17 23:34 ` [PATCH v4 2/7] x86/resctrl: Remove unnecessary rftype flags Babu Moger
2023-05-04 18:58   ` Reinette Chatre
2023-05-05 18:31     ` Moger, Babu
2023-05-05 18:54       ` Reinette Chatre
2023-05-05 19:04         ` Moger, Babu
2023-05-05 21:28           ` Reinette Chatre
2023-05-09 18:54             ` Moger, Babu
2023-05-09 19:31             ` Moger, Babu
2023-04-17 23:34 ` [PATCH v4 3/7] x86/resctrl: Rename rftype flags for consistency Babu Moger
2023-04-19 12:44   ` Ilpo Järvinen
2023-04-19 14:29     ` Moger, Babu
2023-05-04 19:00   ` Reinette Chatre
     [not found]     ` <232c8e85-0d5b-8e24-33d0-eab5eee186f0@amd.com>
2023-05-05 21:24       ` Reinette Chatre
2023-05-09 17:42         ` Moger, Babu
2023-04-17 23:34 ` [PATCH v4 4/7] x86/resctrl: Re-arrange RFTYPE flags and add more comments Babu Moger
2023-05-04 19:00   ` Reinette Chatre
2023-05-05 20:40     ` Moger, Babu
2023-05-05 21:24       ` Reinette Chatre
2023-05-09 17:33         ` Moger, Babu
2023-04-17 23:34 ` [PATCH v4 5/7] x86/resctrl: Introduce "-o debug" mount option Babu Moger
2023-05-04 19:02   ` Reinette Chatre
2023-05-05 21:26     ` Moger, Babu
2023-04-17 23:34 ` [PATCH v4 6/7] x86/resctrl: Display CLOSID and RMID for the resctrl groups Babu Moger
2023-04-18  2:22   ` Bagas Sanjaya
2023-04-18 14:11     ` Moger, Babu
2023-05-04 19:04   ` Reinette Chatre
2023-05-05 21:45     ` Moger, Babu
2023-05-05 23:25       ` Reinette Chatre
2023-04-17 23:35 ` [PATCH v4 7/7] x86/resctrl: Add debug files when mounted with debug option Babu Moger
2023-04-19 13:20   ` Ilpo Järvinen
2023-04-19 15:16     ` Moger, Babu [this message]
2023-04-19 15:16     ` Moger, Babu
2023-04-19 17:16     ` Moger, Babu
2023-04-20  8:59       ` Ilpo Järvinen
2023-04-21 18:47         ` Moger, Babu
2023-04-24 15:12           ` Ilpo Järvinen
2023-05-04 18:54 ` [PATCH v4 0/7] x86/resctrl: Miscellaneous resctrl features Reinette Chatre
2023-05-05 15:43   ` Moger, Babu
2023-05-05 17:47     ` Reinette Chatre
2023-05-05 18:03       ` Moger, Babu
2023-05-29 10:18 ` Shaopeng Tan (Fujitsu)

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=8e1903a4-28c3-a38b-8e65-5f37ce7c0d66@amd.com \
    --to=babu.moger@amd.com \
    --cc=adrian.hunter@intel.com \
    --cc=akpm@linux-foundation.org \
    --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=ilpo.jarvinen@linux.intel.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.