Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-08-02 Thread Kirill Tkhai
On 01.08.2018 19:22, Vladimir Davydov wrote: > On Wed, Aug 01, 2018 at 11:55:52AM -0400, Johannes Weiner wrote: >> On Tue, Jul 31, 2018 at 04:39:08PM -0700, Andrew Morton wrote: >>> On Mon, 30 Jul 2018 11:31:13 -0400 Johannes Weiner >>> wrote: >>> Subject: [PATCH] mm: memcontrol: simplify

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-08-02 Thread Kirill Tkhai
On 01.08.2018 19:22, Vladimir Davydov wrote: > On Wed, Aug 01, 2018 at 11:55:52AM -0400, Johannes Weiner wrote: >> On Tue, Jul 31, 2018 at 04:39:08PM -0700, Andrew Morton wrote: >>> On Mon, 30 Jul 2018 11:31:13 -0400 Johannes Weiner >>> wrote: >>> Subject: [PATCH] mm: memcontrol: simplify

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-08-01 Thread Vladimir Davydov
On Wed, Aug 01, 2018 at 11:55:52AM -0400, Johannes Weiner wrote: > On Tue, Jul 31, 2018 at 04:39:08PM -0700, Andrew Morton wrote: > > On Mon, 30 Jul 2018 11:31:13 -0400 Johannes Weiner > > wrote: > > > > > Subject: [PATCH] mm: memcontrol: simplify memcg idr allocation and error > > > unwinding

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-08-01 Thread Vladimir Davydov
On Wed, Aug 01, 2018 at 11:55:52AM -0400, Johannes Weiner wrote: > On Tue, Jul 31, 2018 at 04:39:08PM -0700, Andrew Morton wrote: > > On Mon, 30 Jul 2018 11:31:13 -0400 Johannes Weiner > > wrote: > > > > > Subject: [PATCH] mm: memcontrol: simplify memcg idr allocation and error > > > unwinding

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-08-01 Thread Vladimir Davydov
On Mon, Jul 30, 2018 at 11:31:13AM -0400, Johannes Weiner wrote: > On Sun, Jul 29, 2018 at 10:26:21PM +0300, Vladimir Davydov wrote: > > On Fri, Jul 27, 2018 at 03:31:34PM -0400, Johannes Weiner wrote: > > > That said, the lifetime of the root reference on the ID is the online > > > state, we put

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-08-01 Thread Vladimir Davydov
On Mon, Jul 30, 2018 at 11:31:13AM -0400, Johannes Weiner wrote: > On Sun, Jul 29, 2018 at 10:26:21PM +0300, Vladimir Davydov wrote: > > On Fri, Jul 27, 2018 at 03:31:34PM -0400, Johannes Weiner wrote: > > > That said, the lifetime of the root reference on the ID is the online > > > state, we put

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-08-01 Thread Johannes Weiner
On Tue, Jul 31, 2018 at 04:39:08PM -0700, Andrew Morton wrote: > On Mon, 30 Jul 2018 11:31:13 -0400 Johannes Weiner wrote: > > > Subject: [PATCH] mm: memcontrol: simplify memcg idr allocation and error > > unwinding > > > > The memcg ID is allocated early in the multi-step memcg creation > >

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-08-01 Thread Johannes Weiner
On Tue, Jul 31, 2018 at 04:39:08PM -0700, Andrew Morton wrote: > On Mon, 30 Jul 2018 11:31:13 -0400 Johannes Weiner wrote: > > > Subject: [PATCH] mm: memcontrol: simplify memcg idr allocation and error > > unwinding > > > > The memcg ID is allocated early in the multi-step memcg creation > >

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-07-31 Thread Andrew Morton
On Mon, 30 Jul 2018 11:31:13 -0400 Johannes Weiner wrote: > Subject: [PATCH] mm: memcontrol: simplify memcg idr allocation and error > unwinding > > The memcg ID is allocated early in the multi-step memcg creation > process, which needs 2-step ID allocation and IDR publishing, as well > as two

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-07-31 Thread Andrew Morton
On Mon, 30 Jul 2018 11:31:13 -0400 Johannes Weiner wrote: > Subject: [PATCH] mm: memcontrol: simplify memcg idr allocation and error > unwinding > > The memcg ID is allocated early in the multi-step memcg creation > process, which needs 2-step ID allocation and IDR publishing, as well > as two

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-07-30 Thread Johannes Weiner
On Sun, Jul 29, 2018 at 10:26:21PM +0300, Vladimir Davydov wrote: > On Fri, Jul 27, 2018 at 03:31:34PM -0400, Johannes Weiner wrote: > > That said, the lifetime of the root reference on the ID is the online > > state, we put that in css_offline. Is there a reason we need to have > > the ID ready

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-07-30 Thread Johannes Weiner
On Sun, Jul 29, 2018 at 10:26:21PM +0300, Vladimir Davydov wrote: > On Fri, Jul 27, 2018 at 03:31:34PM -0400, Johannes Weiner wrote: > > That said, the lifetime of the root reference on the ID is the online > > state, we put that in css_offline. Is there a reason we need to have > > the ID ready

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-07-29 Thread Vladimir Davydov
On Fri, Jul 27, 2018 at 03:31:34PM -0400, Johannes Weiner wrote: > That said, the lifetime of the root reference on the ID is the online > state, we put that in css_offline. Is there a reason we need to have > the ID ready and the memcg in the IDR before onlining it? I fail to see any reason for

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-07-29 Thread Vladimir Davydov
On Fri, Jul 27, 2018 at 03:31:34PM -0400, Johannes Weiner wrote: > That said, the lifetime of the root reference on the ID is the online > state, we put that in css_offline. Is there a reason we need to have > the ID ready and the memcg in the IDR before onlining it? I fail to see any reason for

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-07-27 Thread Johannes Weiner
On Thu, Jul 26, 2018 at 04:25:12PM -0700, Andrew Morton wrote: > On Fri, 13 Apr 2018 14:51:01 +0200 Michal Hocko wrote: > > > On Fri 13-04-18 14:14:33, Michal Hocko wrote: > > [...] > > > Well, this is probably a matter of taste. I will not argue. I will not > > > object if Johannes is OK with

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-07-27 Thread Johannes Weiner
On Thu, Jul 26, 2018 at 04:25:12PM -0700, Andrew Morton wrote: > On Fri, 13 Apr 2018 14:51:01 +0200 Michal Hocko wrote: > > > On Fri 13-04-18 14:14:33, Michal Hocko wrote: > > [...] > > > Well, this is probably a matter of taste. I will not argue. I will not > > > object if Johannes is OK with

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-07-26 Thread Andrew Morton
On Fri, 13 Apr 2018 14:51:01 +0200 Michal Hocko wrote: > On Fri 13-04-18 14:14:33, Michal Hocko wrote: > [...] > > Well, this is probably a matter of taste. I will not argue. I will not > > object if Johannes is OK with your patch. But the whole thing confused > > hell out of me so I would

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-07-26 Thread Andrew Morton
On Fri, 13 Apr 2018 14:51:01 +0200 Michal Hocko wrote: > On Fri 13-04-18 14:14:33, Michal Hocko wrote: > [...] > > Well, this is probably a matter of taste. I will not argue. I will not > > object if Johannes is OK with your patch. But the whole thing confused > > hell out of me so I would

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-04-13 Thread Michal Hocko
On Fri 13-04-18 14:14:33, Michal Hocko wrote: [...] > Well, this is probably a matter of taste. I will not argue. I will not > object if Johannes is OK with your patch. But the whole thing confused > hell out of me so I would rather un-clutter it... In other words, this diff --git

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-04-13 Thread Michal Hocko
On Fri 13-04-18 14:14:33, Michal Hocko wrote: [...] > Well, this is probably a matter of taste. I will not argue. I will not > object if Johannes is OK with your patch. But the whole thing confused > hell out of me so I would rather un-clutter it... In other words, this diff --git

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-04-13 Thread Michal Hocko
On Fri 13-04-18 15:07:14, Kirill Tkhai wrote: > On 13.04.2018 14:54, Michal Hocko wrote: > > On Fri 13-04-18 14:49:32, Kirill Tkhai wrote: > >> On 13.04.2018 14:38, Michal Hocko wrote: > >>> On Fri 13-04-18 14:29:11, Kirill Tkhai wrote: > > [...] > mem_cgroup_id_put_many() unpins css, but

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-04-13 Thread Michal Hocko
On Fri 13-04-18 15:07:14, Kirill Tkhai wrote: > On 13.04.2018 14:54, Michal Hocko wrote: > > On Fri 13-04-18 14:49:32, Kirill Tkhai wrote: > >> On 13.04.2018 14:38, Michal Hocko wrote: > >>> On Fri 13-04-18 14:29:11, Kirill Tkhai wrote: > > [...] > mem_cgroup_id_put_many() unpins css, but

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-04-13 Thread Kirill Tkhai
On 13.04.2018 14:54, Michal Hocko wrote: > On Fri 13-04-18 14:49:32, Kirill Tkhai wrote: >> On 13.04.2018 14:38, Michal Hocko wrote: >>> On Fri 13-04-18 14:29:11, Kirill Tkhai wrote: > [...] mem_cgroup_id_put_many() unpins css, but this may be not the last reference to the css.

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-04-13 Thread Kirill Tkhai
On 13.04.2018 14:54, Michal Hocko wrote: > On Fri 13-04-18 14:49:32, Kirill Tkhai wrote: >> On 13.04.2018 14:38, Michal Hocko wrote: >>> On Fri 13-04-18 14:29:11, Kirill Tkhai wrote: > [...] mem_cgroup_id_put_many() unpins css, but this may be not the last reference to the css.

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-04-13 Thread Michal Hocko
On Fri 13-04-18 14:49:32, Kirill Tkhai wrote: > On 13.04.2018 14:38, Michal Hocko wrote: > > On Fri 13-04-18 14:29:11, Kirill Tkhai wrote: [...] > >> mem_cgroup_id_put_many() unpins css, but this may be not the last > >> reference to the css. > >> Thus, we release ID earlier, then all references

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-04-13 Thread Michal Hocko
On Fri 13-04-18 14:49:32, Kirill Tkhai wrote: > On 13.04.2018 14:38, Michal Hocko wrote: > > On Fri 13-04-18 14:29:11, Kirill Tkhai wrote: [...] > >> mem_cgroup_id_put_many() unpins css, but this may be not the last > >> reference to the css. > >> Thus, we release ID earlier, then all references

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-04-13 Thread Kirill Tkhai
On 13.04.2018 14:38, Michal Hocko wrote: > On Fri 13-04-18 14:29:11, Kirill Tkhai wrote: >> On 13.04.2018 14:20, Michal Hocko wrote: >>> On Fri 13-04-18 14:06:40, Kirill Tkhai wrote: On 13.04.2018 14:02, Michal Hocko wrote: > On Fri 13-04-18 12:35:22, Kirill Tkhai wrote: >> On

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-04-13 Thread Kirill Tkhai
On 13.04.2018 14:38, Michal Hocko wrote: > On Fri 13-04-18 14:29:11, Kirill Tkhai wrote: >> On 13.04.2018 14:20, Michal Hocko wrote: >>> On Fri 13-04-18 14:06:40, Kirill Tkhai wrote: On 13.04.2018 14:02, Michal Hocko wrote: > On Fri 13-04-18 12:35:22, Kirill Tkhai wrote: >> On

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-04-13 Thread Michal Hocko
On Fri 13-04-18 14:29:11, Kirill Tkhai wrote: > On 13.04.2018 14:20, Michal Hocko wrote: > > On Fri 13-04-18 14:06:40, Kirill Tkhai wrote: > >> On 13.04.2018 14:02, Michal Hocko wrote: > >>> On Fri 13-04-18 12:35:22, Kirill Tkhai wrote: > On 13.04.2018 11:55, Michal Hocko wrote: > > On

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-04-13 Thread Michal Hocko
On Fri 13-04-18 14:29:11, Kirill Tkhai wrote: > On 13.04.2018 14:20, Michal Hocko wrote: > > On Fri 13-04-18 14:06:40, Kirill Tkhai wrote: > >> On 13.04.2018 14:02, Michal Hocko wrote: > >>> On Fri 13-04-18 12:35:22, Kirill Tkhai wrote: > On 13.04.2018 11:55, Michal Hocko wrote: > > On

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-04-13 Thread Kirill Tkhai
On 13.04.2018 14:20, Michal Hocko wrote: > On Fri 13-04-18 14:06:40, Kirill Tkhai wrote: >> On 13.04.2018 14:02, Michal Hocko wrote: >>> On Fri 13-04-18 12:35:22, Kirill Tkhai wrote: On 13.04.2018 11:55, Michal Hocko wrote: > On Thu 12-04-18 17:52:04, Kirill Tkhai wrote: > [...]

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-04-13 Thread Kirill Tkhai
On 13.04.2018 14:20, Michal Hocko wrote: > On Fri 13-04-18 14:06:40, Kirill Tkhai wrote: >> On 13.04.2018 14:02, Michal Hocko wrote: >>> On Fri 13-04-18 12:35:22, Kirill Tkhai wrote: On 13.04.2018 11:55, Michal Hocko wrote: > On Thu 12-04-18 17:52:04, Kirill Tkhai wrote: > [...]

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-04-13 Thread Michal Hocko
On Fri 13-04-18 14:06:40, Kirill Tkhai wrote: > On 13.04.2018 14:02, Michal Hocko wrote: > > On Fri 13-04-18 12:35:22, Kirill Tkhai wrote: > >> On 13.04.2018 11:55, Michal Hocko wrote: > >>> On Thu 12-04-18 17:52:04, Kirill Tkhai wrote: > >>> [...] > @@ -4471,6 +4477,7 @@

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-04-13 Thread Michal Hocko
On Fri 13-04-18 14:06:40, Kirill Tkhai wrote: > On 13.04.2018 14:02, Michal Hocko wrote: > > On Fri 13-04-18 12:35:22, Kirill Tkhai wrote: > >> On 13.04.2018 11:55, Michal Hocko wrote: > >>> On Thu 12-04-18 17:52:04, Kirill Tkhai wrote: > >>> [...] > @@ -4471,6 +4477,7 @@

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-04-13 Thread Kirill Tkhai
On 13.04.2018 14:02, Michal Hocko wrote: > On Fri 13-04-18 12:35:22, Kirill Tkhai wrote: >> On 13.04.2018 11:55, Michal Hocko wrote: >>> On Thu 12-04-18 17:52:04, Kirill Tkhai wrote: >>> [...] @@ -4471,6 +4477,7 @@ mem_cgroup_css_alloc(struct cgroup_subsys_state *parent_css)

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-04-13 Thread Kirill Tkhai
On 13.04.2018 14:02, Michal Hocko wrote: > On Fri 13-04-18 12:35:22, Kirill Tkhai wrote: >> On 13.04.2018 11:55, Michal Hocko wrote: >>> On Thu 12-04-18 17:52:04, Kirill Tkhai wrote: >>> [...] @@ -4471,6 +4477,7 @@ mem_cgroup_css_alloc(struct cgroup_subsys_state *parent_css)

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-04-13 Thread Michal Hocko
On Fri 13-04-18 12:35:22, Kirill Tkhai wrote: > On 13.04.2018 11:55, Michal Hocko wrote: > > On Thu 12-04-18 17:52:04, Kirill Tkhai wrote: > > [...] > >> @@ -4471,6 +4477,7 @@ mem_cgroup_css_alloc(struct cgroup_subsys_state > >> *parent_css) > >> > >>return >css; > >> fail: > >> +

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-04-13 Thread Michal Hocko
On Fri 13-04-18 12:35:22, Kirill Tkhai wrote: > On 13.04.2018 11:55, Michal Hocko wrote: > > On Thu 12-04-18 17:52:04, Kirill Tkhai wrote: > > [...] > >> @@ -4471,6 +4477,7 @@ mem_cgroup_css_alloc(struct cgroup_subsys_state > >> *parent_css) > >> > >>return >css; > >> fail: > >> +

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-04-13 Thread Kirill Tkhai
On 13.04.2018 11:55, Michal Hocko wrote: > On Thu 12-04-18 17:52:04, Kirill Tkhai wrote: > [...] >> @@ -4471,6 +4477,7 @@ mem_cgroup_css_alloc(struct cgroup_subsys_state >> *parent_css) >> >> return >css; >> fail: >> +mem_cgroup_id_remove(memcg); >> mem_cgroup_free(memcg); >>

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-04-13 Thread Kirill Tkhai
On 13.04.2018 11:55, Michal Hocko wrote: > On Thu 12-04-18 17:52:04, Kirill Tkhai wrote: > [...] >> @@ -4471,6 +4477,7 @@ mem_cgroup_css_alloc(struct cgroup_subsys_state >> *parent_css) >> >> return >css; >> fail: >> +mem_cgroup_id_remove(memcg); >> mem_cgroup_free(memcg); >>

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-04-13 Thread Michal Hocko
On Thu 12-04-18 17:52:04, Kirill Tkhai wrote: [...] > @@ -4471,6 +4477,7 @@ mem_cgroup_css_alloc(struct cgroup_subsys_state > *parent_css) > > return >css; > fail: > + mem_cgroup_id_remove(memcg); > mem_cgroup_free(memcg); > return ERR_PTR(-ENOMEM); > } The only path

Re: [PATCH] memcg: Remove memcg_cgroup::id from IDR on mem_cgroup_css_alloc() failure

2018-04-13 Thread Michal Hocko
On Thu 12-04-18 17:52:04, Kirill Tkhai wrote: [...] > @@ -4471,6 +4477,7 @@ mem_cgroup_css_alloc(struct cgroup_subsys_state > *parent_css) > > return >css; > fail: > + mem_cgroup_id_remove(memcg); > mem_cgroup_free(memcg); > return ERR_PTR(-ENOMEM); > } The only path