2023-11-23 07:24:43

by Dmitry Rokosov

[permalink] [raw]
Subject: [PATCH v3 0/3] samples: introduce cgroup events listeners

To begin with, this patch series relocates the cgroup example code to
the samples/cgroup directory, which is the appropriate location for such
code snippets.

Furthermore, a new memcg events listener is introduced. This
listener is a simple yet effective tool for monitoring memory events and
managing counter changes during runtime.

Additionally, as per Andrew Morton's suggestion, a helpful reminder
comment is included in the memcontrol implementation. This comment
serves to ensure that the samples code is updated whenever new events
are added.

Changes v3 since v2 at [2]:
- rename cgroup_v2_event_listener to memcg_event_listener per
Andrew's suggestion

Changes v2 since v1 at [1]:
- create new samples subdir - cgroup
- move cgroup_event_listener for cgroup v1 to samples/cgroup
- add a reminder comment to memcontrol implementation

Links:
[1] - https://lore.kernel.org/all/[email protected]/
[2] - https://lore.kernel.org/all/[email protected]/

Dmitry Rokosov (3):
samples: introduce new samples subdir for cgroup
samples/cgroup: introduce memcg memory.events listener
mm: memcg: add reminder comment for the memcg v2 events

MAINTAINERS | 1 +
mm/memcontrol.c | 4 +
samples/Kconfig | 6 +
samples/Makefile | 1 +
samples/cgroup/Makefile | 5 +
.../cgroup/cgroup_event_listener.c | 0
samples/cgroup/memcg_event_listener.c | 330 ++++++++++++++++++
tools/cgroup/Makefile | 11 -
8 files changed, 347 insertions(+), 11 deletions(-)
create mode 100644 samples/cgroup/Makefile
rename {tools => samples}/cgroup/cgroup_event_listener.c (100%)
create mode 100644 samples/cgroup/memcg_event_listener.c
delete mode 100644 tools/cgroup/Makefile

--
2.36.0


2023-11-24 19:42:44

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH v3 0/3] samples: introduce cgroup events listeners

On Thu, 23 Nov 2023 10:19:42 +0300 Dmitry Rokosov <[email protected]> wrote:

> To begin with, this patch series relocates the cgroup example code to
> the samples/cgroup directory, which is the appropriate location for such
> code snippets.

butbut. Didn't we decide to do s/cgroup/memcg/ throughout?

2023-11-24 20:07:42

by Dmitry Rokosov

[permalink] [raw]
Subject: Re: [PATCH v3 0/3] samples: introduce cgroup events listeners

On Fri, Nov 24, 2023 at 11:42:30AM -0800, Andrew Morton wrote:
> On Thu, 23 Nov 2023 10:19:42 +0300 Dmitry Rokosov <[email protected]> wrote:
>
> > To begin with, this patch series relocates the cgroup example code to
> > the samples/cgroup directory, which is the appropriate location for such
> > code snippets.
>
> butbut. Didn't we decide to do s/cgroup/memcg/ throughout?

I believe the samples directory should be named "samples/cgroup" instead
of "memcg" because the cgroup v1 event listener cannot be renamed to
"memcg" due to the common naming of cgroup v1 event_control (this sample
uses that control to access eventfd).

Additionally, I think it would be a good idea to add the new samples for
cgroup helpers in that directory.

That's why I have only renamed the new memcg listener.

--
Thank you,
Dmitry

2023-11-25 08:07:47

by Dmitry Rokosov

[permalink] [raw]
Subject: Re: [PATCH v3 0/3] samples: introduce cgroup events listeners

Andrew,

On Fri, Nov 24, 2023 at 11:06:33PM +0300, Dmitry Rokosov wrote:
> On Fri, Nov 24, 2023 at 11:42:30AM -0800, Andrew Morton wrote:
> > On Thu, 23 Nov 2023 10:19:42 +0300 Dmitry Rokosov <[email protected]> wrote:
> >
> > > To begin with, this patch series relocates the cgroup example code to
> > > the samples/cgroup directory, which is the appropriate location for such
> > > code snippets.
> >
> > butbut. Didn't we decide to do s/cgroup/memcg/ throughout?
>
> I believe the samples directory should be named "samples/cgroup" instead
> of "memcg" because the cgroup v1 event listener cannot be renamed to
> "memcg" due to the common naming of cgroup v1 event_control (this sample
> uses that control to access eventfd).
>
> Additionally, I think it would be a good idea to add the new samples for
> cgroup helpers in that directory.
>
> That's why I have only renamed the new memcg listener.

I looked into this more deeply. And yes, the old cgroup.event_control
has the common name, but it's used in the memcg implementation only.

So, if we plan to introduce new samples for cgroup, I suggest we use the
following naming convention:

1) Directory: samples/cgroup
2) V1 sample: memcg_v1_event_listener
3) V2 sample: memcg_v2_event_listener

Please let me know what you think about this. If it's okay with you, I
will prepare the v4 version with the above changes. I would appreciate
any feedback on that!"

--
Thank you,
Dmitry