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 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.