All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zhenhua Huang <zhenhuah@codeaurora.org>
To: Minchan Kim <minchan@kernel.org>
Cc: vjitta@codeaurora.org, linux-mm <linux-mm@kvack.org>,
	glider@google.com, Dan Williams <dan.j.williams@intel.com>,
	broonie@kernel.org, mhiramat@kernel.org,
	linux-kernel@vger.kernel.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Yogesh Lal <ylal@codeaurora.org>,
	Vinayak Menon <vinmenon@codeaurora.org>,
	tingwei@codeaurora.org
Subject: Re: [PATCH] lib: stackdepot: Add support to configure STACK_HASH_SIZE
Date: Thu, 19 Nov 2020 11:34:32 +0800	[thread overview]
Message-ID: <20201119033317.GA5128@codeaurora.org> (raw)
In-Reply-To: <CAEwNFnBvxu7+oNkcO9D70OFrxQXswcJG4OvDPyzNf7kpXfpSuw@mail.gmail.com>

On Wed, Nov 04, 2020 at 07:27:03AM +0800, Minchan Kim wrote:
> Sorry if this mail corrupts the mail thread or had heavy mangling
> since I lost this mail from my mailbox so I am sending this mail by
> web gmail.
> 
> On Thu, Oct 22, 2020 at 10:18 AM <vjitta@codeaurora.org> wrote:
> >
> > From: Yogesh Lal <ylal@codeaurora.org>
> >
> > Use STACK_HASH_ORDER_SHIFT to configure STACK_HASH_SIZE.
> >
> > Aim is to have configurable value for  STACK_HASH_SIZE,
> > so depend on use case one can configure it.
> >
> > One example is of Page Owner, default value of
> > STACK_HASH_SIZE lead stack depot to consume 8MB of static memory.
> > Making it configurable and use lower value helps to enable features like
> > CONFIG_PAGE_OWNER without any significant overhead.
> >
> > Signed-off-by: Yogesh Lal <ylal@codeaurora.org>
> > Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
> > Signed-off-by: Vijayanand Jitta <vjitta@codeaurora.org>
> > ---
> >  lib/Kconfig      | 9 +++++++++
> >  lib/stackdepot.c | 3 +--
> >  2 files changed, 10 insertions(+), 2 deletions(-)
> >
> > diff --git a/lib/Kconfig b/lib/Kconfig
> > index 18d76b6..b3f8259 100644
> > --- a/lib/Kconfig
> > +++ b/lib/Kconfig
> > @@ -651,6 +651,15 @@ config STACKDEPOT
> >         bool
> >         select STACKTRACE
> >
> > +config STACK_HASH_ORDER_SHIFT
> > +       int "stack depot hash size (12 => 4KB, 20 => 1024KB)"
> > +       range 12 20
> > +       default 20
> > +       depends on STACKDEPOT
> > +       help
> > +        Select the hash size as a power of 2 for the stackdepot hash 
> > table.
> > +        Choose a lower value to reduce the memory impact.
> > +
> >  config SBITMAP
> >         bool
> >
> > diff --git a/lib/stackdepot.c b/lib/stackdepot.c
> > index 2caffc6..413c20b 100644
> > --- a/lib/stackdepot.c
> > +++ b/lib/stackdepot.c
> > @@ -142,8 +142,7 @@ static struct stack_record *depot_alloc_stack(unsigned 
> > long *entries, int size,
> >         return stack;
> >  }
> >
> > -#define STACK_HASH_ORDER 20
> > -#define STACK_HASH_SIZE (1L << STACK_HASH_ORDER)
> > +#define STACK_HASH_SIZE (1L << CONFIG_STACK_HASH_ORDER_SHIFT)
> >  #define STACK_HASH_MASK (STACK_HASH_SIZE - 1)
> >  #define STACK_HASH_SEED 0x9747b28c
> >
> > --
> > QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member 
> > of Code Aurora Forum, hosted by The Linux Foundation
> > 2.7.4
> >
> 
> 1. When we don't use page_owner, we don't want to waste any memory for
> stackdepot hash array.
> 2. When we use page_owner, we want to have reasonable stackdeport hash array
> 
> With this configuration, it couldn't meet since we always need to
> reserve a reasonable size for the array.
> Can't we make the hash size as a kernel parameter?
> With it, we could use it like this.
> 
> 1. page_owner=off, stackdepot_stack_hash=0 -> no more wasted memory
> when we don't use page_owner
> 2. page_owner=on, stackdepot_stack_hash=8M -> reasonable hash size
> when we use page_owner.
Seems we have other users like kasan, and dma_buf_ref which we introduced.
Also we can't guarantee there will not be any other users for stackdepot, so
it's better we not depend on only page owner?
> 
> 
> -- 
> Kind regards,
> Minchan Kim
> 


  parent reply	other threads:[~2020-11-19  3:34 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-22 13:15 [PATCH] lib: stackdepot: Add support to configure STACK_HASH_SIZE vjitta
2020-11-03 23:27 ` Minchan Kim
2020-11-04 10:29   ` Vijayanand Jitta
2020-11-12 12:56     ` Vijayanand Jitta
2020-11-12 22:56       ` Andrew Morton
2020-11-17 20:42         ` Minchan Kim
2020-11-19  3:34   ` Zhenhua Huang [this message]
2020-11-20  5:04     ` Minchan Kim
2020-11-20  7:08       ` Zhenhua Huang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201119033317.GA5128@codeaurora.org \
    --to=zhenhuah@codeaurora.org \
    --cc=akpm@linux-foundation.org \
    --cc=broonie@kernel.org \
    --cc=dan.j.williams@intel.com \
    --cc=glider@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mhiramat@kernel.org \
    --cc=minchan@kernel.org \
    --cc=tingwei@codeaurora.org \
    --cc=vinmenon@codeaurora.org \
    --cc=vjitta@codeaurora.org \
    --cc=ylal@codeaurora.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.