[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20150724081710.GG4103@dhcp22.suse.cz>
Date: Fri, 24 Jul 2015 10:17:10 +0200
From: Michal Hocko <mhocko@...nel.org>
To: Andrew Morton <akpm@...ux-foundation.org>
Cc: Tejun Heo <tj@...nel.org>, Johannes Weiner <hannes@...xchg.org>,
Vladimir Davydov <vdavydov@...allels.com>, linux-mm@...ck.org,
LKML <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 1/5] memcg: export struct mem_cgroup
On Mon 20-07-15 13:49:13, Michal Hocko wrote:
> On Fri 17-07-15 13:19:00, Andrew Morton wrote:
[...]
> > Why were cg_proto_flags and cg_proto moved from include/net/sock.h?
>
> Because they naturally belong to memcg header file. We can keep it there
> if you prefer but I felt like sock.h is quite heavy already.
> Now that I am looking into other MEMCG_KMEM related stuff there,
> memcg_proto_active sounds like a good one to move to memcontrol.h as well.
Double checked and memcg_proto_active has only one user which lives in
memcontrol.c so it doesn't make much sense to have it in the header file
---
>From e0806d48d61570f3096232f6cb509de4502e7ec3 Mon Sep 17 00:00:00 2001
From: Michal Hocko <mhocko@...e.com>
Date: Fri, 24 Jul 2015 09:46:09 +0200
Subject: [PATCH] memcg: Move memcg_proto_active from sock.h
The only user is sock_update_memcg which is living in memcontrol.c
so it doesn't make much sense to pollute sock.h by this inline helper.
Move it to memcontrol.c and open code it into its only caller.
Signed-off-by: Michal Hocko <mhocko@...e.com>
---
include/net/sock.h | 5 -----
mm/memcontrol.c | 2 +-
2 files changed, 1 insertion(+), 6 deletions(-)
diff --git a/include/net/sock.h b/include/net/sock.h
index 35628cf42044..715b1c44c9f3 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -1044,11 +1044,6 @@ struct proto {
int proto_register(struct proto *prot, int alloc_slab);
void proto_unregister(struct proto *prot);
-static inline bool memcg_proto_active(struct cg_proto *cg_proto)
-{
- return test_bit(MEMCG_SOCK_ACTIVE, &cg_proto->flags);
-}
-
#ifdef SOCK_REFCNT_DEBUG
static inline void sk_refcnt_debug_inc(struct sock *sk)
{
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index cf9fb1f41831..8c79aaf0dfe9 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -315,7 +315,7 @@ void sock_update_memcg(struct sock *sk)
rcu_read_lock();
memcg = mem_cgroup_from_task(current);
cg_proto = sk->sk_prot->proto_cgroup(memcg);
- if (cg_proto && memcg_proto_active(cg_proto) &&
+ if (cg_proto && test_bit(MEMCG_SOCK_ACTIVE, &cg_proto->flags) &&
css_tryget_online(&memcg->css)) {
sk->sk_cgrp = cg_proto;
}
--
2.1.4
--
Michal Hocko
SUSE Labs
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists