From: Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: Glauber Costa <glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
Cc: cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.org,
devel-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org
Subject: Re: [PATCH 4/4] get rid of populate for memcg
Date: Wed, 21 Mar 2012 09:06:10 -0700 [thread overview]
Message-ID: <20120321160610.GA4246@google.com> (raw)
In-Reply-To: <4F6984F3.2010009-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
Hello, Glauber.
On Wed, Mar 21, 2012 at 11:36:19AM +0400, Glauber Costa wrote:
> On 03/20/2012 10:31 PM, Tejun Heo wrote:
> >Hello, Glauber.
> >
> >On Tue, Mar 20, 2012 at 08:50:56PM +0400, Glauber Costa wrote:
> >>@@ -4929,7 +4929,9 @@ mem_cgroup_create(struct cgroup *cont)
> >> atomic_set(&memcg->refcnt, 1);
> >> memcg->move_charge_at_immigrate = 0;
> >> mutex_init(&memcg->thresholds_lock);
> >>- return&memcg->css;
> >>+
> >>+ if (!register_kmem_files(memcg,&mem_cgroup_subsys))
> >>+ return&memcg->css;
> >
> >After the change, I think register_kmem_files() is a quite misleading
> >name.
>
> how about init_kmem() ?
>
> Remember the slab bits will are likely to end up here as well in the end.
I don't know. Whatever which describes what's going on.
memcg_init_kmem()?
> >So, init_cgroup() is overloaded to do two things - one load time init
> >and per-cgroup init, depending on the args.
>
> Yes. I don't love it, but there is quite a bunch of precedents for this.
> Like the shrinkers in vmscan, for instance.
>
> a NULL argument is a probe, a valid argument should have action taken.
Please don't. Just add a new callback if necessary.
> >What I don't get is why you can't just keep this. Is it because the
> >files might appear before the protocol is registered? Wouldn't it be
> >much better to add ipv4_tcp_init_cgroup() or whatever call to
> >inet_init() instead of overloading init_cgroup() with mostly unrelated
> >stuff?
> >
>
> The reason is that this has to be kept generic for protocols that
> may want to implement this in the future - since the pressure
> controls themselves are generic, the per-cgroup versions should be
> as well.
>
> And in general, a protocol can live in a module, or not be registered
> despite being compiled in.
Hmmmm... yeah, CGROUP_SUBSYS_CFTYPES() would register the files on
module load but won't unregister them on unload. Will fix that.
However, the fact that files living in modules shouldn't be a problem
in itself. If those file handlers can cope with protocol not being
registered yet, everything should be fine.
> Now, what we do with the files, are our decision in the end. If you
> want, we can use CGROUP_SUBSYS_CFTYPES(mem_cgroup_subsys, tcp_files)
> as you suggested. tcp itself is always available if it is compiled in.
> Then in the future, if anyone cares about adding support for a
> protocol that may differ in that aspect, we can put the files
> nevertheless, and
> use ENOTSUPP as kame suggested for the swap accounting.
I don't quite get why a protocol module would be loaded but not
reigstered. Do we actually have cases like that? I know it's
mechanically possible but don't think there's any actual use case or
existing code which does that, so no need to worry about them.
Thanks.
--
tejun
next prev parent reply other threads:[~2012-03-21 16:06 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-20 16:50 [PATCH 0/4] My contribution towards the end of populate() Glauber Costa
[not found] ` <1332262256-13407-1-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-03-20 16:50 ` [PATCH 1/4] don't trigger warning when d_subdirs is not empty Glauber Costa
2012-03-20 16:50 ` [PATCH 2/4] pass struct mem_cgroup instead of struct cgroup to socket memcg Glauber Costa
2012-03-20 16:50 ` [PATCH 3/4] provide a function to register more cftype files into memcg Glauber Costa
[not found] ` <1332262256-13407-4-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-03-20 18:32 ` Tejun Heo
[not found] ` <4F6982D0.1060403@parallels.com>
[not found] ` <4F6982D0.1060403-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-03-21 16:11 ` Tejun Heo
2012-03-20 16:50 ` [PATCH 4/4] get rid of populate for memcg Glauber Costa
[not found] ` <1332262256-13407-5-git-send-email-glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-03-20 18:31 ` Tejun Heo
[not found] ` <20120320183149.GB20832-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-03-21 7:36 ` Glauber Costa
[not found] ` <4F6984F3.2010009-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
2012-03-21 16:06 ` Tejun Heo [this message]
[not found] ` <20120321160610.GA4246-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2012-03-21 16:19 ` Tejun Heo
2012-03-21 16:30 ` Glauber Costa
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=20120321160610.GA4246@google.com \
--to=tj-dgejt+ai2ygdnm+yrofe0a@public.gmane.org \
--cc=cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=devel-GEFAQzZX7r8dnm+yROfE0A@public.gmane.org \
--cc=glommer-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org \
--cc=kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A@public.gmane.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;
as well as URLs for NNTP newsgroup(s).