From: "Moger, Babu" <babu.moger@amd.com>
To: Tony Luck <tony.luck@intel.com>, Peter Newman <peternewman@google.com>
Cc: Fenghua Yu <fenghua.yu@intel.com>,
Reinette Chatre <reinette.chatre@intel.com>,
Jonathan Corbet <corbet@lwn.net>,
Shuah Khan <skhan@linuxfoundation.org>,
x86@kernel.org, Shaopeng Tan <tan.shaopeng@fujitsu.com>,
James Morse <james.morse@arm.com>,
Jamie Iles <quic_jiles@quicinc.com>,
Randy Dunlap <rdunlap@infradead.org>,
linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org,
patches@lists.linux.dev
Subject: Re: [PATCH] x86/resctrl: mba_MBps: Fall back to total b/w if local b/w unavailable
Date: Wed, 25 Oct 2023 15:42:14 -0500 [thread overview]
Message-ID: <b8ea0a74-347d-475f-a36d-8944ced16951@amd.com> (raw)
In-Reply-To: <e4994218-a7a2-4505-868e-a5c825ca4db0@amd.com>
Tony,
On 10/25/23 15:39, Moger, Babu wrote:
> Hi Tony,
>
> On 10/25/23 14:38, Tony Luck wrote:
>> On Wed, Oct 25, 2023 at 02:46:53PM +0200, Peter Newman wrote:
>>> Hi Tony,
>>>
>>> On Tue, Oct 24, 2023 at 8:16 PM Tony Luck <tony.luck@intel.com> wrote:
>>>> --- a/arch/x86/kernel/cpu/resctrl/monitor.c
>>>> +++ b/arch/x86/kernel/cpu/resctrl/monitor.c
>>>> @@ -418,6 +418,14 @@ static int __mon_event_count(u32 rmid, struct rmid_read *rr)
>>>> return 0;
>>>> }
>>>>
>>>> +static struct mbm_state *get_mbm_data(struct rdt_domain *dom_mbm, int rmid)
>>>> +{
>>>> + if (is_mbm_local_enabled())
>>>> + return &dom_mbm->mbm_local[rmid];
>>>> +
>>>> + return &dom_mbm->mbm_total[rmid];
>>>> +}
>>>
>>> That looks very similar to the get_mbm_state() function I added to
>>> this same file recently:
>>>
>>> https://lore.kernel.org/all/20221220164132.443083-2-peternewman%40google.com
>>>
>>> I think the name you picked is misleadingly general. "local if
>>> available, otherwise total" seems to be a choice specific to the mbps
>>> controller. I think these functions should be reconciled a little
>>> better.
>>>
>>
>> Peter (and Babu, who made the same point about get_mbm_state().
>>
>> Do you want to see your function extended to do the "pick an MBM event?"
>>
>> I could add a s/w defined "event" to the enum resctrl_event_id and
>> extend get_mbm_state() like this:
>>
>>
>> static struct mbm_state *get_mbm_state(struct rdt_domain *d, u32 rmid,
>> enum resctrl_event_id evtid)
>> {
>> switch (evtid) {
>> case QOS_L3_MBM_TOTAL_EVENT_ID:
>> return &d->mbm_total[rmid];
>> case QOS_L3_MBM_LOCAL_EVENT_ID:
>> return &d->mbm_local[rmid];
>> + case QOS_L3_MBM_LOCAL_OR_TOTAL_EVENT_ID:
>> + if (is_mbm_local_enabled())
>> + return &d->mbm_local[rmid];
>> + if (is_mbm_total_enabled())
>> + return &d->mbm_total[rmid];
>> + fallthrough;
>> default:
>> return NULL;
>> }
>> }
>>
>> Is this the direction you are thinking of?
>
> No. I was not thinking bit different.
I meant, I was thinking bit different.
>
> You need these changes in only two functions, mbm_bw_count and
> update_mba_bw. You decide which event you want to use based on availability,
>
> Something like this. I updated mbm_bw_count.
>
> diff --git a/arch/x86/kernel/cpu/resctrl/monitor.c
> b/arch/x86/kernel/cpu/resctrl/monitor.c
> index 0ad23475fe16..302993e4fbc3 100644
> --- a/arch/x86/kernel/cpu/resctrl/monitor.c
> +++ b/arch/x86/kernel/cpu/resctrl/monitor.c
> @@ -436,8 +436,16 @@ static int __mon_event_count(u32 rmid, struct
> rmid_read *rr)
> */
> static void mbm_bw_count(u32 rmid, struct rmid_read *rr)
> {
> - struct mbm_state *m = &rr->d->mbm_local[rmid];
> u64 cur_bw, bytes, cur_bytes;
> + struct mbm_state *m;
> + int evtid;
> +
> + if (is_mbm_local_enabled())
> + evtid = QOS_L3_MBM_LOCAL_EVENT_ID;
> + else
> + evtid = QOS_L3_MBM_TOTAL_EVENT_ID;
> +
> + m = get_mbm_state(rr->d, rmid, evtid);
>
> cur_bytes = rr->val;
> bytes = cur_bytes - m->prev_bw_bytes;
>
>
> Will this work?
>
> Thanks
> Babu
>
>
>>
>> Callers then look like:
>>
>> static void mbm_bw_count(u32 rmid, struct rmid_read *rr)
>> {
>> struct mbm_state *m = get_mbm_state(rr->d, rmid, QOS_L3_MBM_LOCAL_OR_TOTAL_EVENT_ID);
>> u64 cur_bw, bytes, cur_bytes;
>>
>> similar for the other three places where this is needed.
>>
>> Any suggestions on how "QOS_L3_MBM_LOCAL_OR_TOTAL_EVENT_ID" could be
>> abbreviated, or just have some different, but descriptive, name?
>>
>> -Tony
>
--
Thanks
Babu Moger
next prev parent reply other threads:[~2023-10-25 20:42 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-24 18:16 [PATCH] x86/resctrl: mba_MBps: Fall back to total b/w if local b/w unavailable Tony Luck
2023-10-24 18:24 ` Luck, Tony
2023-10-24 23:20 ` Moger, Babu
2023-10-24 23:43 ` Luck, Tony
2023-10-25 16:01 ` Moger, Babu
2023-10-25 12:46 ` Peter Newman
2023-10-25 19:38 ` Tony Luck
2023-10-25 20:39 ` Moger, Babu
2023-10-25 20:42 ` Moger, Babu [this message]
2023-10-25 20:52 ` Tony Luck
2023-10-25 23:41 ` Moger, Babu
2023-10-26 0:07 ` Luck, Tony
2023-10-25 21:06 ` Peter Newman
2023-10-26 13:55 ` Moger, Babu
2023-10-26 16:09 ` Luck, Tony
2023-10-26 17:19 ` Moger, Babu
2023-10-26 19:54 ` Tony Luck
2023-10-25 23:50 ` [PATCH v2] " Tony Luck
2023-10-26 20:02 ` [PATCH v3] " Tony Luck
2023-10-26 22:40 ` Moger, Babu
2023-10-26 22:59 ` Luck, Tony
2023-11-03 21:43 ` Reinette Chatre
2023-11-03 21:50 ` Reinette Chatre
2023-11-07 21:15 ` Tony Luck
2023-11-08 21:49 ` Reinette Chatre
2023-11-09 21:27 ` Luck, Tony
2023-11-15 16:09 ` Reinette Chatre
2023-11-15 21:54 ` Tony Luck
2023-11-16 19:48 ` Reinette Chatre
2023-11-28 23:14 ` [PATCH v4] x86/resctrl: Add mount option to pick total MBM event Tony Luck
2023-11-29 23:48 ` Reinette Chatre
2023-12-01 20:45 ` Tony Luck
2023-12-01 21:47 ` [PATCH v5] x86/resctrl: Add event choices for mba_MBps Tony Luck
2023-12-04 16:24 ` Moger, Babu
2023-12-04 18:16 ` Tony Luck
2023-12-04 19:04 ` Moger, Babu
2023-12-04 19:45 ` Luck, Tony
2023-12-04 20:03 ` Reinette Chatre
2023-12-04 21:08 ` Tony Luck
2023-12-04 22:15 ` Reinette Chatre
2023-12-04 22:51 ` Reinette Chatre
2023-12-07 19:56 ` [PATCH v6 0/3] x86/resctrl: mba_MBps enhancements Tony Luck
2023-12-07 19:56 ` [PATCH v6 1/3] x86/resctrl: Add mount option "mba_MBps_event" Tony Luck
2023-12-08 18:17 ` Peter Newman
2023-12-08 21:57 ` Tony Luck
2023-12-08 22:09 ` Peter Newman
2023-12-08 22:37 ` Luck, Tony
2023-12-12 17:54 ` Reinette Chatre
2023-12-12 20:02 ` Tony Luck
2023-12-12 21:42 ` Reinette Chatre
2023-12-13 1:07 ` Luck, Tony
2023-12-08 18:29 ` Moger, Babu
2023-12-08 21:50 ` Tony Luck
2023-12-12 18:59 ` Reinette Chatre
2023-12-07 19:56 ` [PATCH v6 2/3] x86/resctrl: Use total bandwidth for mba_MBps option when local isn't present Tony Luck
2023-12-08 18:26 ` Peter Newman
2023-12-07 19:56 ` [PATCH v6 3/3] x86/resctrl: Add new "mba_MBps_event" mount option to documentation Tony Luck
2023-12-08 19:22 ` Peter Newman
2023-12-12 18:59 ` Reinette Chatre
2024-01-09 22:00 ` [PATCH] x86/resctrl: Implement new MBA_mbps throttling heuristic Tony Luck
2024-01-16 19:55 ` Reinette Chatre
2024-01-17 3:36 ` Xiaochen Shen
2024-01-17 3:40 ` Xiaochen Shen
2024-01-18 0:26 ` Reinette Chatre
2024-01-18 21:42 ` [PATCH v2] x86/resctrl: Implement new mba_MBps " Tony Luck
2024-01-22 17:34 ` Reinette Chatre
2024-01-22 18:07 ` Luck, Tony
2024-01-22 18:18 ` Reinette Chatre
2024-01-22 18:21 ` Borislav Petkov
2024-01-22 18:41 ` Reinette Chatre
2024-01-22 18:47 ` Borislav Petkov
2024-01-22 20:58 ` Luck, Tony
2024-01-23 12:12 ` James Morse
2024-01-23 17:07 ` Luck, Tony
2024-01-24 0:29 ` Tony Luck
2024-01-25 17:29 ` Tony Luck
2024-01-22 18:08 ` [PATCH v3] " Tony Luck
2024-01-24 10:42 ` [tip: x86/cache] " tip-bot2 for Tony Luck
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=b8ea0a74-347d-475f-a36d-8944ced16951@amd.com \
--to=babu.moger@amd.com \
--cc=corbet@lwn.net \
--cc=fenghua.yu@intel.com \
--cc=james.morse@arm.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=patches@lists.linux.dev \
--cc=peternewman@google.com \
--cc=quic_jiles@quicinc.com \
--cc=rdunlap@infradead.org \
--cc=reinette.chatre@intel.com \
--cc=skhan@linuxfoundation.org \
--cc=tan.shaopeng@fujitsu.com \
--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.