From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-eopbgr690125.outbound.protection.outlook.com ([40.107.69.125]:5584 "EHLO NAM04-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726674AbeH3WFn (ORCPT ); Thu, 30 Aug 2018 18:05:43 -0400 From: Sasha Levin To: "stable@vger.kernel.org" CC: Kirill Tkhai , Al Viro , Andrey Ryabinin , Chris Wilson , Greg Kroah-Hartman , Guenter Roeck , "Huang, Ying" , Johannes Weiner , Josef Bacik , Li RongQing , Matthew Wilcox , Matthias Kaehlcke , Mel Gorman , Michal Hocko , Minchan Kim , Philippe Ombredanne , Roman Gushchin , Sahitya Tummala , Stephen Rothwell , Tetsuo Handa , Thomas Gleixner , Waiman Long , Andrew Morton , Linus Torvalds , Sasha Levin Subject: [PATCH AUTOSEL 4.18 025/113] mm/list_lru.c: add memcg argument to list_lru_from_kmem() Date: Thu, 30 Aug 2018 18:02:19 +0000 Message-ID: <20180830180050.35735-25-alexander.levin@microsoft.com> References: <20180830180050.35735-1-alexander.levin@microsoft.com> In-Reply-To: <20180830180050.35735-1-alexander.levin@microsoft.com> Content-Language: en-US Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org List-ID: From: Kirill Tkhai [ Upstream commit 44bd4a4759d5a714767aa6be7e806ab54b7fa3a8 ] This is just refactoring to allow the next patches to have memcg pointer in list_lru_from_kmem(). Link: http://lkml.kernel.org/r/153063060664.1818.9541345386733498582.stgit@= localhost.localdomain Signed-off-by: Kirill Tkhai Acked-by: Vladimir Davydov Tested-by: Shakeel Butt Cc: Al Viro Cc: Andrey Ryabinin Cc: Chris Wilson Cc: Greg Kroah-Hartman Cc: Guenter Roeck Cc: "Huang, Ying" Cc: Johannes Weiner Cc: Josef Bacik Cc: Li RongQing Cc: Matthew Wilcox Cc: Matthias Kaehlcke Cc: Mel Gorman Cc: Michal Hocko Cc: Minchan Kim Cc: Philippe Ombredanne Cc: Roman Gushchin Cc: Sahitya Tummala Cc: Stephen Rothwell Cc: Tetsuo Handa Cc: Thomas Gleixner Cc: Waiman Long Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Sasha Levin --- mm/list_lru.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/mm/list_lru.c b/mm/list_lru.c index fcfb6c89ed47..426ec49f9325 100644 --- a/mm/list_lru.c +++ b/mm/list_lru.c @@ -75,18 +75,24 @@ static __always_inline struct mem_cgroup *mem_cgroup_fr= om_kmem(void *ptr) } =20 static inline struct list_lru_one * -list_lru_from_kmem(struct list_lru_node *nlru, void *ptr) +list_lru_from_kmem(struct list_lru_node *nlru, void *ptr, + struct mem_cgroup **memcg_ptr) { - struct mem_cgroup *memcg; + struct list_lru_one *l =3D &nlru->lru; + struct mem_cgroup *memcg =3D NULL; =20 if (!nlru->memcg_lrus) - return &nlru->lru; + goto out; =20 memcg =3D mem_cgroup_from_kmem(ptr); if (!memcg) - return &nlru->lru; + goto out; =20 - return list_lru_from_memcg_idx(nlru, memcg_cache_id(memcg)); + l =3D list_lru_from_memcg_idx(nlru, memcg_cache_id(memcg)); +out: + if (memcg_ptr) + *memcg_ptr =3D memcg; + return l; } #else static inline bool list_lru_memcg_aware(struct list_lru *lru) @@ -101,8 +107,11 @@ list_lru_from_memcg_idx(struct list_lru_node *nlru, in= t idx) } =20 static inline struct list_lru_one * -list_lru_from_kmem(struct list_lru_node *nlru, void *ptr) +list_lru_from_kmem(struct list_lru_node *nlru, void *ptr, + struct mem_cgroup **memcg_ptr) { + if (memcg_ptr) + *memcg_ptr =3D NULL; return &nlru->lru; } #endif /* CONFIG_MEMCG && !CONFIG_SLOB */ @@ -115,7 +124,7 @@ bool list_lru_add(struct list_lru *lru, struct list_hea= d *item) =20 spin_lock(&nlru->lock); if (list_empty(item)) { - l =3D list_lru_from_kmem(nlru, item); + l =3D list_lru_from_kmem(nlru, item, NULL); list_add_tail(item, &l->list); l->nr_items++; nlru->nr_items++; @@ -135,7 +144,7 @@ bool list_lru_del(struct list_lru *lru, struct list_hea= d *item) =20 spin_lock(&nlru->lock); if (!list_empty(item)) { - l =3D list_lru_from_kmem(nlru, item); + l =3D list_lru_from_kmem(nlru, item, NULL); list_del_init(item); l->nr_items--; nlru->nr_items--; --=20 2.17.1