From: Reinette Chatre <reinette.chatre@intel.com>
To: Fenghua Yu <fenghua.yu@intel.com>,
"Luck, Tony" <tony.luck@intel.com>,
Peter Newman <peternewman@google.com>,
Jonathan Corbet <corbet@lwn.net>,
Shuah Khan <skhan@linuxfoundation.org>,
"x86@kernel.org" <x86@kernel.org>
Cc: James Morse <james.morse@arm.com>,
Jamie Iles <quic_jiles@quicinc.com>,
Babu Moger <babu.moger@amd.com>,
Randy Dunlap <rdunlap@infradead.org>,
"Shaopeng Tan (Fujitsu)" <tan.shaopeng@fujitsu.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
"patches@lists.linux.dev" <patches@lists.linux.dev>
Subject: Re: [PATCH v8 6/7] x86/resctrl: Add write option to "mba_MBps_event" file
Date: Tue, 12 Nov 2024 14:00:36 -0800 [thread overview]
Message-ID: <71eb17c7-acca-412c-bd59-17ee5aa0aa07@intel.com> (raw)
In-Reply-To: <7f5f1f66-df3e-bebd-4786-7fe8a8115f05@intel.com>
Hi Fenghua and Tony,
On 11/1/24 5:57 PM, Fenghua Yu wrote:
> Hi, Tony,
>
> On 11/1/24 16:55, Luck, Tony wrote:
>>>> + if (!strcmp(buf, "mbm_local_bytes")) {
>>>> + if (is_mbm_local_enabled())
>>>> + rdtgrp->mba_mbps_event = QOS_L3_MBM_LOCAL_EVENT_ID;
>>>> + else
>>>> + ret = -ENXIO;
>>>> + } else if (!strcmp(buf, "mbm_total_bytes")) {
>>>> + if (is_mbm_total_enabled())
>>>> + rdtgrp->mba_mbps_event = QOS_L3_MBM_TOTAL_EVENT_ID;
>>>
>>>
>>> User may think each time toggling the local/total event will effect MBA.
>>> And they may create usage case like frequently changing the events to
>>> maintain/adjust both total and local within bw boundary.
>>>
>>> But toggling mba_mbps_event faster than 1sec doesn't have any effect on
>>> MBA SC because MBA SC is called every one second.
>>>
>>> Maybe need to add a ratelimit of 1 second on calling this function? And
>>> adding info in the document that toggling speed should be slower than 1
>>> second?
>>
>> The limit would need to be per ctrl_mon group, not on calls to this function.
>> It's perfectly ok to switch multiple groups in a short interval.
>
> Agree.
>
>>
>> I'm not sure how to rate limit here. I could add a delay so that the write()
>> call blocks until enough time passes before making the change. But
>> what should I do if a user submits more writes to the file? Queue them
>> all and apply at one second intervals?
>
> Maybe define "mba_mbps_last_time" in rdtgroup. Then
>
> if (time_before(jiffies, rdtgrp->mba_mbps_last_time + HZ) {
> rdt_last_cmd_printf("Too fast (>1/s) mba_MBps event change)\n");
> rdtgroup_kn_unlock(of->kn);
> return -EAGAIN;
> }
> rdtgrp->mba_mbps_last_time = jiffies;
This seems like enforcing an unnecessary limitation. For example, this would mean
that user space needs to wait for a second to undo a change to the monitoring event
in case there was a mistake. This seems like an unnecessary restriction to me.
I am also afraid that there may be some corner cases where a write to the file and
the actual run of the overflow handler (on every domain) may not be exactly HZ apart.
Bandwidth allocation remains to be adjusted in either direction with at most the bandwidth
granularity. A user attempting to toggle bandwidth event cannot expecting large
changes in allocated bandwidth even if the events differ significantly.
Surely we can explore more if we learn about a specific use case.
>> Maybe it would be better to just to add some additional text to the
>> documentation pointing out that resctrl only checks bandwidth once
>> per second to make throttling adjustments. So changes to the event
>> will only have effect after some seconds have passed?
>
>
> Add additional text would be great.
Agreed.
Reinette
next prev parent reply other threads:[~2024-11-12 22:00 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-29 17:28 [PATCH v8 0/7] x86/resctrl: mba_MBps enhancement Tony Luck
2024-10-29 17:28 ` [PATCH v8 1/7] x86/resctrl: Prepare for per-ctrl_mon group mba_MBps control Tony Luck
2024-11-01 22:03 ` Fenghua Yu
2024-11-01 22:40 ` Tony Luck
2024-11-12 19:24 ` Reinette Chatre
2024-10-29 17:28 ` [PATCH v8 2/7] x86/resctrl: Compute memory bandwidth for all supported events Tony Luck
2024-11-12 19:25 ` Reinette Chatre
2024-10-29 17:28 ` [PATCH v8 3/7] x86/resctrl: Refactor mbm_update() Tony Luck
2024-11-01 22:08 ` Fenghua Yu
2024-11-01 22:57 ` Tony Luck
2024-11-13 22:25 ` Reinette Chatre
2024-11-13 22:58 ` Tony Luck
2024-11-13 23:58 ` Reinette Chatre
2024-11-14 10:31 ` Peter Newman
2024-11-14 17:20 ` Tony Luck
2024-10-29 17:28 ` [PATCH v8 4/7] x86/resctrl: Relax checks for mba_MBps mount option Tony Luck
2024-10-29 17:28 ` [PATCH v8 5/7] x86/resctrl: Add "mba_MBps_event" file to ctrl_mon directories Tony Luck
2024-11-12 22:12 ` Reinette Chatre
2024-11-12 23:42 ` Luck, Tony
2024-11-13 0:20 ` Reinette Chatre
2024-11-13 0:53 ` Luck, Tony
2024-11-13 2:54 ` Reinette Chatre
2024-10-29 17:28 ` [PATCH v8 6/7] x86/resctrl: Add write option to "mba_MBps_event" file Tony Luck
2024-11-01 23:26 ` Fenghua Yu
2024-11-01 23:55 ` Luck, Tony
2024-11-02 0:57 ` Fenghua Yu
2024-11-12 22:00 ` Reinette Chatre [this message]
2024-11-12 23:57 ` Luck, Tony
2024-11-13 0:40 ` Reinette Chatre
2024-11-12 22:18 ` Reinette Chatre
2024-10-29 17:28 ` [PATCH v8 7/7] x86/resctrl: Document the new " Tony Luck
2024-11-12 22:25 ` Reinette Chatre
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=71eb17c7-acca-412c-bd59-17ee5aa0aa07@intel.com \
--to=reinette.chatre@intel.com \
--cc=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=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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox