public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
To: Adhemerval Zanella Netto <adhemerval.zanella@linaro.org>,
	"libc-alpha@sourceware.org" <libc-alpha@sourceware.org>,
	Cupertino Miranda <cupertino.miranda@oracle.com>
Subject: Re: [PATCH] nptl: Disable THP on thread stack if it incurs in large RSS usage
Date: Tue, 23 May 2023 09:48:09 +0000	[thread overview]
Message-ID: <PAWPR08MB8982B7291C824D198C1046A283439@PAWPR08MB8982.eurprd08.prod.outlook.com> (raw)
In-Reply-To: <cf0cdc3f-9103-eb4f-de41-8e4ed223aa11@linaro.org>

Hi Adhemerval,

> Right, I was using the wrong assumption then on how THP acts (mostly due the
> two threads discussion).  Running more tests I see your point and it seems
> what is happening in fact.  I will drop this patch since it really does not
> make much sense.
>
> So, do you think adding a pthread extension to control it would be a improvement
> or maybe work towards a heuristic to check if THP would be indeed valuable would
> be better?

Adding something to pthread to make it more configurable seems reasonable, but
like with tunables, I bet most applications won't ever use this. So adding heuristics
that work well for most applications would be best.

It seems Linux doesn't support aligning large mmaps, and as a result the code in
alloc_new_heap looks very messy and complex. We'd need something similar to
ensure deterministic alignment of the top of the stack for the cases where we
decide to use huge pages. We could reserve a number of default pages for the
initial stack so you avoid increasing RSS size if you use a small amount of stack.

However even switching off THP for all small stacks (eg. default size or smaller)
would avoid the random use of THP without needing to set the tunable.

Cheers,
Wilco

  reply	other threads:[~2023-05-23  9:48 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-20 17:24 Adhemerval Zanella
2023-05-03 12:42 ` Wilco Dijkstra
2023-05-15 17:57   ` Adhemerval Zanella Netto
2023-05-16 15:38     ` Wilco Dijkstra
2023-05-16 16:35       ` Adhemerval Zanella Netto
2023-05-17 12:49         ` Wilco Dijkstra
2023-05-17 13:12           ` Cupertino Miranda
2023-05-17 13:20           ` Adhemerval Zanella Netto
2023-05-17 14:22             ` Wilco Dijkstra
2023-05-17 16:50               ` Adhemerval Zanella Netto
2023-05-17 18:16                 ` Wilco Dijkstra
2023-05-18 13:04                   ` Adhemerval Zanella Netto
2023-05-23  9:48                     ` Wilco Dijkstra [this message]
2024-01-31  2:03                       ` Cristian Rodríguez
2024-01-31  7:54                         ` Florian Weimer
2024-01-31 11:30                           ` Adhemerval Zanella Netto
2024-01-31 11:43                             ` Florian Weimer
2024-03-12  0:55                               ` Cristian Rodríguez
2024-01-31 15:18                             ` Cristian Rodríguez
2024-02-01  1:26                               ` Cristian Rodríguez
2023-05-16 14:30 ` Cupertino Miranda

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=PAWPR08MB8982B7291C824D198C1046A283439@PAWPR08MB8982.eurprd08.prod.outlook.com \
    --to=wilco.dijkstra@arm.com \
    --cc=adhemerval.zanella@linaro.org \
    --cc=cupertino.miranda@oracle.com \
    --cc=libc-alpha@sourceware.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).