[Devel] [PATCH rh7 v2] tswap: do not account kmem allocations to memcg
Vladimir Davydov
vdavydov at parallels.com
Tue Jul 28 00:45:19 PDT 2015
The reason is the same as in case of tcache: auxiliary kmem allocations,
namely radix-tree nodes, are used for storing tswap pages on the host
and so belong to the host and reclaimed only on global pressure.
https://jira.sw.ru/browse/PSBM-35205
Signed-off-by: Vladimir Davydov <vdavydov at parallels.com>
---
Changes in v2:
- Do not account radix_tree_preload either. Actually, in the scope of
patch 3 of the series this makes no difference. However, when (if) we
make radix_tree_preload memcg-aware, we won't have to change anything
in tswap.
mm/tswap.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/mm/tswap.c b/mm/tswap.c
index dc1253f8e5b2..91bee46e7a97 100644
--- a/mm/tswap.c
+++ b/mm/tswap.c
@@ -16,7 +16,7 @@
#define TSWAP_GFP_MASK (GFP_NOIO | __GFP_NORETRY | __GFP_NOWARN)
-static RADIX_TREE(tswap_page_tree, GFP_ATOMIC | __GFP_NOWARN);
+static RADIX_TREE(tswap_page_tree, GFP_ATOMIC | __GFP_NOWARN | __GFP_NOACCOUNT);
static DEFINE_SPINLOCK(tswap_lock);
struct tswap_lru {
@@ -69,7 +69,7 @@ static int tswap_insert_page(swp_entry_t entry, struct page *page)
{
int err;
- err = radix_tree_preload(TSWAP_GFP_MASK);
+ err = radix_tree_preload(TSWAP_GFP_MASK | __GFP_NOACCOUNT);
if (err)
return err;
--
2.1.4
More information about the Devel
mailing list