From: Tony Luck <tony.luck@intel.com>
To: "Yu, Fenghua" <fenghua.yu@intel.com>
Cc: "Chatre, Reinette" <reinette.chatre@intel.com>,
Peter Newman <peternewman@google.com>,
"Eranian, Stephane" <eranian@google.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
James Morse <james.morse@arm.com>,
Babu Moger <Babu.Moger@amd.com>
Subject: Re: [RFD] resctrl: reassigning a running container's CTRL_MON group
Date: Fri, 7 Oct 2022 10:28:44 -0700 [thread overview]
Message-ID: <Y0BhzKkksSjSeE3W@agluck-desk3.sc.intel.com> (raw)
In-Reply-To: <IA1PR11MB6097236CFF891041DBA42ECB9B5F9@IA1PR11MB6097.namprd11.prod.outlook.com>
On Fri, Oct 07, 2022 at 08:44:53AM -0700, Yu, Fenghua wrote:
> Hi, Peter,
>
> > On 10/7/2022 3:39 AM, Peter Newman wrote:
> > > The CLOSID management rules would roughly be:
> > >
> > > 1. If an update would cause a CTRL_MON group's config to match that of
> > > an existing group, the CTRL_MON group's CLOSID should change to that
> > > of the existing group, where the definition of "match" is: all
> > > control values match in all domains for all resources, as well as
> > > the cpu masks matching.
So the micro steps are:
# mkdir newgroup
# New groups are created with maximum resources. So this might
# match the root/default group (if the root schemata had not
# been edited) ... so you could re-use CLOSID=0 for this, or
# perhaps allocate a new CLOSID
# edit newgroup/schemata
# if this update makes this schemata match some other group,
# then update the CLOSID for this group to be same as the other
# group.
> > >
> > > 2. If an update to a CTRL_MON group sharing a CLOSID with another group
> > > causes that group to no longer match any others, a new CLOSID must
> > > be allocated.
# So you have reference counts for CLOSIDs for how many groups
# share it. In above example the change to the schemata and
# alloction of a new CLOSID would decrement the reference count
# and free the old CLOSID if it goes to zero
> > >
> > > 3. An update to a CTRL_MON group using a non-shared CLOSID which
> > > continues to not match any others follows the current resctrl
> > > behavior.
# An update to a CTRL_MON group that has a CLOSID reference
# count > 1 would try to allocate a new CLOSID if the new
# schemata doesn't match any other group. If all CLOSIDs are
# already in use, the write(2) to the schemata file must fail
# ... maybe -ENOSPC is the right error code?
Note that if the root/default CTRL_MON had been editted you might not be
able to create a new group (even though you intend to make to match some
existing group and share a CLOSID). Perhaps we could change existing
semantics so that new groups copy the root group schemata instead of
being maximally permissibe with all resources?
> > >
> > > Before I prepare any patches for review, I'm interested in any
> > > comments or suggestions on the use case and solution.
> > >
> > > Are there simpler strategies for reassigning a running container's
> > > tasks to a different CTRL_MON group that we should be considering first?
Do tasks in a container share a "process group"? If they do, then a
simpler option would be some syntax to assign a group to a resctrl group
(perhaps as a negative task-id? or with a "G" prefix??).
Or is there some other simple way to enumerate all the tasks in a
container with some syntax that is convenient for both the user and the
kernel? If there is, then add code to allow something like:
# echo C{containername} > tasks
and have the resctrl code move all tasks en masse.
Yet another option would be syntax to apply the move recursively to all
descendents of the given task id.
# echo R{process-id} > tasks
I don't know how complex it would for the kernel to implement this. Or
whether it would meet Google's needs.
> > > Any concerns about the CLOSID-reusing behavior? The hope is existing
> > > users who aren't creating identically-configured CTRL_MON groups would
> > > be minimally impacted. Would it help if the proposed behavior were
> > > opt-in at mount-time?
I would suppose that few users are *deliberatley* creating groups with
identical schemata files (doesn't seem like there is a use case for
this). So I agree with your "minimal impact" assessment.
I think I'd prefer you explore modes for bulk moving tasks in a
container before going to the shared-CLOSID path.
-Tony
next prev parent reply other threads:[~2022-10-07 17:28 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-07 10:39 Peter Newman
2022-10-07 15:36 ` Reinette Chatre
2022-10-07 15:44 ` Yu, Fenghua
2022-10-07 17:28 ` Tony Luck [this message]
2022-10-10 23:35 ` Reinette Chatre
2022-10-12 11:21 ` Peter Newman
2022-10-12 16:55 ` James Morse
2022-10-17 10:15 ` Peter Newman
2022-10-19 13:57 ` James Morse
2022-10-20 10:39 ` Peter Newman
2022-10-21 12:42 ` Peter Newman
2022-10-25 15:55 ` James Morse
2022-10-26 8:52 ` Peter Newman
2022-10-26 21:12 ` Reinette Chatre
2022-10-27 7:56 ` Peter Newman
2022-10-27 17:35 ` Reinette Chatre
2022-11-01 15:23 ` Peter Newman
2022-11-01 15:53 ` Peter Newman
2022-11-01 16:48 ` Reinette Chatre
2022-10-25 15:56 ` James Morse
2022-10-21 20:09 ` Reinette Chatre
2022-10-21 20:22 ` Luck, Tony
2022-10-21 21:34 ` Reinette Chatre
2022-11-03 17:06 ` James Morse
2022-11-08 21:28 ` Reinette Chatre
2022-11-08 21:56 ` Luck, Tony
2022-11-08 23:18 ` Reinette Chatre
2022-11-09 17:58 ` James Morse
2022-11-09 9:50 ` Peter Newman
2022-11-09 19:11 ` Reinette Chatre
2022-11-11 18:38 ` James Morse
2022-11-14 18:02 ` Reinette Chatre
2022-11-16 13:20 ` Peter Newman
2022-11-09 17:59 ` James Morse
2022-11-09 19:12 ` Reinette Chatre
2022-11-11 18:36 ` James Morse
2022-10-12 16:57 ` Yu, Fenghua
2022-10-12 17:23 ` Reinette Chatre
2022-10-14 12:56 ` James Morse
2022-10-19 9:08 ` Peter Newman
2022-10-19 13:20 ` James Morse
2022-10-19 23:54 ` Reinette Chatre
2022-10-20 8:48 ` Peter Newman
2022-10-20 19:08 ` Reinette Chatre
2022-10-21 10:09 ` Peter Newman
2022-10-25 15:56 ` James Morse
2022-10-25 15:55 ` James Morse
2022-10-26 9:36 ` Peter Newman
2022-11-03 17:06 ` James Morse
2022-11-08 21:25 ` Reinette Chatre
2022-10-07 17:57 ` Moger, Babu
2022-10-11 15:00 ` Stephane Eranian
2022-10-11 14:59 ` Stephane Eranian
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=Y0BhzKkksSjSeE3W@agluck-desk3.sc.intel.com \
--to=tony.luck@intel.com \
--cc=Babu.Moger@amd.com \
--cc=eranian@google.com \
--cc=fenghua.yu@intel.com \
--cc=james.morse@arm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=peternewman@google.com \
--cc=reinette.chatre@intel.com \
--cc=tglx@linutronix.de \
/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
all inboxes | Powered by JetHome®