Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp112903ybz; Thu, 23 Apr 2020 19:41:21 -0700 (PDT) X-Google-Smtp-Source: APiQypIJ7hh4U2PTXJvAQMLmbgBB8CFvNaWnPue3KJMKvkQXSoZ03z0o3qVAVwxxyaK3fzIPxFsG X-Received: by 2002:a50:eb8b:: with SMTP id y11mr5402227edr.229.1587696081691; Thu, 23 Apr 2020 19:41:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587696081; cv=none; d=google.com; s=arc-20160816; b=II1c9ZsntqtGBjdGbS1KTDaB3d+LIlfkib2WEyb5kUnAA8Ekp5M6EE4A9pKlb1H0Np S9J34pMj/akHefQlL+1FHAC3kIsmncnmvs7yaNmcLC6HrkRm2eRzdiPpdBq5PhuwPGrg BeMWkTyZrs0y1coFhHPHd2qqWok9xOSjIzt3jS2MZClNcTca6gSNbScAfGkJ/zQ8DaZV zYrlAUTB1k45W1J4pBqyjXmaYPpj39iCF9T1ZF5a/shL4WFMjIb/gDbyf6LsNYPriv7Q NMLErwR/TB8UvjleaSKIdecAYzvAkCJyMkVoTHR3uvx0F7pUwWFTTmjsfyiKyLccQ2dl xb+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=ldECbwkx2KzC+gjraTT+5K+gEB5icL0nRQIC9XPuGkU=; b=bwcvCH+YjhwkvHdFzceyKW3B4dyxX1OEYKt7oOurHr9S5Z5yW9Kd3HfLwM1hXgCCvl 5wxUkCLC3CmZDkP8fyPxHY+RaoMuWGsJXoF0lkWeFLqXuMrO/xrF8sIAoxyR/GH3b0iL YE52UaGX+7FcCc9rMeeCEM5X/toeVfi0KgKwk7B5z8+Gkt/StY6r2Al3DLtJ0ARqIwF/ 4aqI6yauiTkNVEo/Pk64rMrATTXFk+vb76Sw7MN+sAXuxDofYW5hhyNP5vJ1J9EdZ/et nSEF6+FyW3saWeEtXuvTioHf/7+udk+WC98+jgK72WZ8ZgOBJRIdNKOp31NXCiCNzRfD rSRg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cmpxchg-org.20150623.gappssmtp.com header.s=20150623 header.b=Ddtvcj1n; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=cmpxchg.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id c4si2207558ejk.442.2020.04.23.19.40.58; Thu, 23 Apr 2020 19:41:21 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@cmpxchg-org.20150623.gappssmtp.com header.s=20150623 header.b=Ddtvcj1n; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=cmpxchg.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726424AbgDXCi5 (ORCPT + 99 others); Thu, 23 Apr 2020 22:38:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44774 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726415AbgDXCiz (ORCPT ); Thu, 23 Apr 2020 22:38:55 -0400 Received: from mail-qt1-x843.google.com (mail-qt1-x843.google.com [IPv6:2607:f8b0:4864:20::843]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 75F65C09B044 for ; Thu, 23 Apr 2020 19:38:55 -0700 (PDT) Received: by mail-qt1-x843.google.com with SMTP id w29so6813057qtv.3 for ; Thu, 23 Apr 2020 19:38:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=ldECbwkx2KzC+gjraTT+5K+gEB5icL0nRQIC9XPuGkU=; b=Ddtvcj1n3A2iRjbjaGXKb42PeJjcfV41WkfP5jznQsOoAXtq4Aq0YAI+jC0sCsKnvx 3ZUlrZSEr3HUWZp9NZZUR0WJE+gtm9Uewof/FeE8jRb+3r2wee/XOWlmOAmQMF85e2cW QBsM3r65qePLq09dyRU//VQ1HxsdWxOOkQ5hV/kB6m09C/86n/XsphQWiUecxZrtcy5j EFolcHbY7QejWuMaqC22oW+PcDruwHWEGwRIKo9ovvU5K4MZuxo++hLjAlegnyZ2T3hU mBUEvRefs3krgdLJT5E4/GkLAylz+osjnZ55rZwa2wXOUEN0L6QFj3VRgJErkjjZe4Gy UfrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=ldECbwkx2KzC+gjraTT+5K+gEB5icL0nRQIC9XPuGkU=; b=fOG9egSqRKfFJmEA8CgK7k/2uQiwKzWtybPWhf6TqSlNKc5dSTPj3ajYZeQhqGPNna Tz397xiyz8TjmjBHT6x01P3H57RYVK0l3zcv9ZMhPNL2wSWQ4v12+yEwNSJ6wYyevWRh FUMfpJPb4KQx3mZhYmkcynboHeuuWs2HWPv9JUPi+ggrYIgcIMLtwK+5MYoP8Jif6J6o abzWBGz3oR83ohA2SroWHOsmqiwAZ8bGa3dyWg4thd+1pdAQK1o69U6j0o/Fm/xHCu/k 2RRvxlXe19I1ERdEzql+OayF1oL237FRMnxeR2d/FZLjMrqMXtOSefs1V/YUKffTrQwP n2ig== X-Gm-Message-State: AGi0PuYjJf6HvGndifa+jfeeDaxUpdJxMv7mZWunRs3glPXmIg9Bx2fz orbdqQvB7dOSyor2hcPcPb8S5w== X-Received: by 2002:ac8:7552:: with SMTP id b18mr6922401qtr.312.1587695934661; Thu, 23 Apr 2020 19:38:54 -0700 (PDT) Received: from localhost ([2620:10d:c091:480::921]) by smtp.gmail.com with ESMTPSA id g92sm3250225qtd.42.2020.04.23.19.38.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Apr 2020 19:38:54 -0700 (PDT) Date: Thu, 23 Apr 2020 22:38:52 -0400 From: Johannes Weiner To: Andrew Morton Cc: Shakeel Butt , Roman Gushchin , Michal Hocko , Linux MM , Cgroups , LKML Subject: Re: [PATCH] memcg: optimize memory.numa_stat like memory.stat Message-ID: <20200424023852.GA464082@cmpxchg.org> References: <20200304022058.248270-1-shakeelb@google.com> <20200305204109.be23f5053e2368d3b8ccaa06@linux-foundation.org> <20200423161009.973c645420a4d17ded2a67ee@linux-foundation.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200423161009.973c645420a4d17ded2a67ee@linux-foundation.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Apr 23, 2020 at 04:10:09PM -0700, Andrew Morton wrote: > From: Shakeel Butt > Subject: mm/memcg: optimize memory.numa_stat like memory.stat > > Currently reading memory.numa_stat traverses the underlying memcg tree > multiple times to accumulate the stats to present the hierarchical view of > the memcg tree. However the kernel already maintains the hierarchical > view of the stats and use it in memory.stat. Just use the same mechanism > in memory.numa_stat as well. > > I ran a simple benchmark which reads root_mem_cgroup's memory.numa_stat > file in the presense of 10000 memcgs. The results are: > > Without the patch: > $ time cat /dev/cgroup/memory/memory.numa_stat > /dev/null > > real 0m0.700s > user 0m0.001s > sys 0m0.697s > > With the patch: > $ time cat /dev/cgroup/memory/memory.numa_stat > /dev/null > > real 0m0.001s > user 0m0.001s > sys 0m0.000s > > [akpm@linux-foundation.org: avoid forcing out-of-line code generation] > Link: http://lkml.kernel.org/r/20200304022058.248270-1-shakeelb@google.com > Signed-off-by: Shakeel Butt > Reviewed-by: Andrew Morton > Cc: Johannes Weiner > Cc: Roman Gushchin > Cc: Michal Hocko > Signed-off-by: Andrew Morton Ouch, yes. That makes sense. Acked-by: Johannes Weiner