public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: "Carlos O'Donell" <carlos@redhat.com>
To: "H.J. Lu" <hjl.tools@gmail.com>
Cc: Florian Weimer <fw@deneb.enyo.de>,
	"H.J. Lu via Libc-alpha" <libc-alpha@sourceware.org>,
	 Hushiyuan <hushiyuan@huawei.com>
Subject: Re: [PATCH] x86: Add thresholds for "rep movsb/stosb" to tunables
Date: Mon, 1 Jun 2020 22:08:15 -0400	[thread overview]
Message-ID: <CAEMqeSo20+fnYAMAd=suMj3ozYk=BQ-qtGQESBgEg_G6Wv6X_g@mail.gmail.com> (raw)
In-Reply-To: <CAMe9rOrYUtfZAxOBYoG_j+EJoJFH6pYN05z6yCP-2tcNVeL16A@mail.gmail.com>

On Mon, Jun 1, 2020 at 6:44 PM H.J. Lu <hjl.tools@gmail.com> wrote:
> Tunables are designed to pass info from user to glibc, not the other
> way around.  When __libc_main is called, init_cacheinfo is never
> called.  I can call init_cacheinfo from __libc_main.  But there is no
> interface to update min and max values from init_cacheinfo.  I don't
> think --list-tunables will work here without changes to tunables.

You have a dynamic threshold.

You have to tell the user what that minimum is, otherwise they can't
use the tunable reliably.

This is the first instance of a min/max that is dynamically determined.

You must fetch the cache info ahead of the tunable initialization, that
is you must call init_cacheinfo before __init_tunables.

You can initialize the tunable data dynamically like this:

/* Dynamically set the min and max of glibc.foo.bar.  */
tunable_id_t id = TUNABLE_ENUM_NAME (glibc, foo, bar);
tunable_list[id].type.min = lowval;
tunable_list[id].type.max = highval;

We do something similar for maybe_enable_malloc_check.

Then once the tunables are parsed, and the cpu features are loaded
you can print the tunables, and the printed tunables will have meaningful
min and max values.

If you have circular dependency, then you must process the cpu features
first without reading from the tunables, then allow the tunables to be
initialized from the system, *then* process the tunables to alter the existing
cpu feature settings.

Cheers,
Carlos.


  reply	other threads:[~2020-06-02  2:08 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-16  7:30 pthread_cond performence Discussion liqingqing
2020-03-18 12:12 ` Carlos O'Donell
2020-03-18 12:53   ` Torvald Riegel
2020-03-18 14:42     ` Carlos O'Donell
2020-05-23  4:04 ` liqingqing
2020-05-23  4:10   ` [PATCH]x86: update REP_STOSB_THRESHOLD's default value from 2k to 1M liqingqing
2020-05-23  4:37     ` [PATCH] x86: Add thresholds for "rep movsb/stosb" to tunables H.J. Lu
2020-05-28 11:56       ` H.J. Lu
2020-05-28 13:47         ` liqingqing
2020-05-29 13:13       ` Carlos O'Donell
2020-05-29 13:21         ` H.J. Lu
2020-05-29 16:18           ` Carlos O'Donell
2020-06-01 19:32             ` H.J. Lu
2020-06-01 19:38               ` Carlos O'Donell
2020-06-01 20:15                 ` H.J. Lu
2020-06-01 20:19                   ` H.J. Lu
2020-06-01 20:48                     ` Florian Weimer
2020-06-01 20:56                       ` Carlos O'Donell
2020-06-01 21:13                         ` H.J. Lu
2020-06-01 22:43                           ` H.J. Lu
2020-06-02  2:08                             ` Carlos O'Donell [this message]
2020-06-04 21:00                               ` [PATCH] libc.so: Add --list-tunables H.J. Lu
2020-06-05 22:45                                 ` V2 " H.J. Lu
2020-06-06 21:51                                   ` V3 [PATCH] libc.so: Add --list-tunables support to __libc_main H.J. Lu
2020-07-02 18:00                                     ` Carlos O'Donell
2020-07-02 19:08                                       ` [PATCH] Update tunable min/max values H.J. Lu
2020-07-03 16:14                                         ` Carlos O'Donell
2020-07-03 16:54                                           ` [PATCH] x86: Add thresholds for "rep movsb/stosb" to tunables H.J. Lu
2020-07-03 17:43                                             ` Carlos O'Donell
2020-07-03 17:53                                               ` H.J. Lu
2020-12-21  4:38     ` [PATCH]x86: update REP_STOSB_THRESHOLD's default value from 2k to 1M Siddhesh Poyarekar
2020-12-22  1:02       ` Qingqing Li

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='CAEMqeSo20+fnYAMAd=suMj3ozYk=BQ-qtGQESBgEg_G6Wv6X_g@mail.gmail.com' \
    --to=carlos@redhat.com \
    --cc=fw@deneb.enyo.de \
    --cc=hjl.tools@gmail.com \
    --cc=hushiyuan@huawei.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).