From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.4 required=3.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 76AFAC433E1 for ; Thu, 20 Aug 2020 15:46:47 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 327F42054F for ; Thu, 20 Aug 2020 15:46:47 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="B66nR30x" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 327F42054F Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=google.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id CEF3C8D002F; Thu, 20 Aug 2020 11:46:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CA0078D0001; Thu, 20 Aug 2020 11:46:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B676B8D002F; Thu, 20 Aug 2020 11:46:46 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0222.hostedemail.com [216.40.44.222]) by kanga.kvack.org (Postfix) with ESMTP id A0D9B8D0001 for ; Thu, 20 Aug 2020 11:46:46 -0400 (EDT) Received: from smtpin23.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id 5F32A181AEF00 for ; Thu, 20 Aug 2020 15:46:46 +0000 (UTC) X-FDA: 77171374812.23.bead23_6013eae27031 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin23.hostedemail.com (Postfix) with ESMTP id BC08037609 for ; Thu, 20 Aug 2020 15:46:45 +0000 (UTC) X-HE-Tag: bead23_6013eae27031 X-Filterd-Recvd-Size: 6096 Received: from mail-lj1-f195.google.com (mail-lj1-f195.google.com [209.85.208.195]) by imf27.hostedemail.com (Postfix) with ESMTP for ; Thu, 20 Aug 2020 15:46:45 +0000 (UTC) Received: by mail-lj1-f195.google.com with SMTP id w14so2628120ljj.4 for ; Thu, 20 Aug 2020 08:46:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=J1RrYNr31NQi6xNHXP2IRc+NcviE0ZSrBQayM98jfLA=; b=B66nR30x++j+0C6TC7iGxqjyYlJdwDK1j7E7nieS/4aXdOCO0M8a/jFKAtiw85Q+nG ieb5GxU155DY0Dh3SvFGyBaBDNAb6JRuhPmIt7S+QiiKGe2bQTwVYBoA1fGVAU6okfSJ RRiTXS4u+PFueBC8wjb2zeohu0Ie7ja9DN+i3K16n3LUK6HEk0fMCd6dWblnnKyS2ei7 3eQdvarbSACmkDn6nfAzjuUUh8yXU7o3Jcg+0En+/v7rM1MxUqbvc/RReMDdW9up1bHA LT7SQl4hEfm16MsHes5PHoJ2qRPzuijyk+uljFR0v7utOJtWG3CitkqEh2kSy7/awP0c a3kg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=J1RrYNr31NQi6xNHXP2IRc+NcviE0ZSrBQayM98jfLA=; b=Jh85Y5W32iDAw4zN6M6hPBH5sgCH8jfuBGThQyQzgOqho+GAMps1T0qRB+n4JmUzw4 JqY9yoKbVoPqdh1IHuAbWX/ORmIPjRMDQYlUQqz1rrdAMOt0FG/QCvBDD0lXfEc3W579 zp3Ybs0uGmEOcjbRQPX8p4sh9bHEklM4cxPJmcbfv/totsD/DKcNDfKaBF09zkRcttip Givk43HRHwj2bVTxxOPm43MzINb1SKbwKCt85jdxjyomaxsMv+3Edw4RqCk5OyBSX7M9 pe6DWxpCMohME0JkyPYKitTOjYkPsrKClB6fVZG6HRpqCcQCLbFUzqlZI52zE+HSi4ET o1nw== X-Gm-Message-State: AOAM531uOosFTlcyuCK9WfqtapNKBxLlOX1JEsEobKrckLgmTE0Nbdmn Q+gvdakkDwZzYIrZLVvMO8LPl4dz0n0VQ+OGdE3AKA== X-Google-Smtp-Source: ABdhPJwoCdm+N1AxiYk/1lBjrYcLmf0ZuNk8IyAfuDNgXgQHz2fUUgkcpq+Tblv/Rig+AH7Vx7Rd11XIpM05l6TL+ws= X-Received: by 2002:a2e:2a04:: with SMTP id q4mr1770388ljq.192.1597938403738; Thu, 20 Aug 2020 08:46:43 -0700 (PDT) MIME-Version: 1.0 References: <20200820130350.3211-1-longman@redhat.com> <20200820130350.3211-4-longman@redhat.com> In-Reply-To: <20200820130350.3211-4-longman@redhat.com> From: Shakeel Butt Date: Thu, 20 Aug 2020 08:46:32 -0700 Message-ID: Subject: Re: [PATCH 3/3] mm/memcg: Unify swap and memsw page counters To: Waiman Long Cc: Johannes Weiner , Michal Hocko , Vladimir Davydov , Andrew Morton , Tejun Heo , LKML , Cgroups , Linux MM , Chris Down , Roman Gushchin , Yafang Shao Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: BC08037609 X-Spamd-Result: default: False [0.00 / 100.00] X-Rspamd-Server: rspam04 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Thu, Aug 20, 2020 at 6:04 AM Waiman Long wrote: > > The swap page counter is v2 only while memsw is v1 only. As v1 and v2 > controllers cannot be active at the same time, there is no point to keep > both swap and memsw page counters in mem_cgroup. The previous patch has > made sure that memsw page counter is updated and accessed only when in > v1 code paths. So it is now safe to alias the v1 memsw page counter to v2 > swap page counter. This saves 14 long's in the size of mem_cgroup. This > is a saving of 112 bytes for 64-bit archs. > > Signed-off-by: Waiman Long > --- > include/linux/memcontrol.h | 3 +-- > mm/memcontrol.c | 8 +++++--- > 2 files changed, 6 insertions(+), 5 deletions(-) > > diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h > index d0b036123c6a..d2a819d7db70 100644 > --- a/include/linux/memcontrol.h > +++ b/include/linux/memcontrol.h > @@ -216,10 +216,9 @@ struct mem_cgroup { > > /* Accounted resources */ > struct page_counter memory; > - struct page_counter swap; > + struct page_counter swap; /* memsw (memory+swap) for v1 */ > > /* Legacy consumer-oriented counters */ > - struct page_counter memsw; > struct page_counter kmem; > struct page_counter tcpmem; > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index d219dca5239f..04c3794cdc98 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -68,6 +68,11 @@ > > #include > > +/* > + * The v1 memsw page counter is aliased to the v2 swap page counter. > + */ > +#define memsw swap > + Personally I would prefer a union instead of #define. > struct cgroup_subsys memory_cgrp_subsys __read_mostly; > EXPORT_SYMBOL(memory_cgrp_subsys); > > @@ -5279,13 +5284,11 @@ mem_cgroup_css_alloc(struct cgroup_subsys_state *parent_css) > memcg->use_hierarchy = true; > page_counter_init(&memcg->memory, &parent->memory); > page_counter_init(&memcg->swap, &parent->swap); > - page_counter_init(&memcg->memsw, &parent->memsw); > page_counter_init(&memcg->kmem, &parent->kmem); > page_counter_init(&memcg->tcpmem, &parent->tcpmem); > } else { > page_counter_init(&memcg->memory, NULL); > page_counter_init(&memcg->swap, NULL); > - page_counter_init(&memcg->memsw, NULL); > page_counter_init(&memcg->kmem, NULL); > page_counter_init(&memcg->tcpmem, NULL); > /* > @@ -5414,7 +5417,6 @@ static void mem_cgroup_css_reset(struct cgroup_subsys_state *css) > > page_counter_set_max(&memcg->memory, PAGE_COUNTER_MAX); > page_counter_set_max(&memcg->swap, PAGE_COUNTER_MAX); > - page_counter_set_max(&memcg->memsw, PAGE_COUNTER_MAX); > page_counter_set_max(&memcg->kmem, PAGE_COUNTER_MAX); > page_counter_set_max(&memcg->tcpmem, PAGE_COUNTER_MAX); > page_counter_set_min(&memcg->memory, 0); > -- > 2.18.1 >