public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Siddhesh Poyarekar <siddhesh@sourceware.org>
To: "H.J. Lu" <hjl.tools@gmail.com>
Cc: Florian Weimer <fweimer@redhat.com>,
	"H.J. Lu via Libc-alpha" <libc-alpha@sourceware.org>
Subject: Re: V4 [PATCH] Set tunable value as well as min/max values
Date: Tue, 29 Sep 2020 19:20:11 +0530	[thread overview]
Message-ID: <8046ee6e-b0e9-405a-b266-3f28ad75165d@sourceware.org> (raw)
In-Reply-To: <CAMe9rOo9pm2_XQ=wih-f+U3t_LJMLaNCLKTur-dfoC4Ca=1-KQ@mail.gmail.com>

On 29/09/20 18:00, H.J. Lu wrote:
> Here is the updated patch with TUNABLE_SET_BOUNDS_IF_VALID.
> 
> OK for master?

I don't think TUNABLE_SET_BOUNDS_IF_VALID is doing what it intends to do.

> +#define TUNABLE_SET_BOUNDS_IF_VALID(__cur, __maxp, __minp, __type)	      \

minp and maxp are switched around.

> +({									      \
> +  __type min = __minp ? *((__type *) __minp) : (__cur)->type.min;	      \
> +  __type max = __maxp ? *((__type *) __maxp) : (__cur)->type.max;	      \
> +  if (__minp)								      \
> +    {									      \
> +      if (__maxp)							      \
> +	{								      \
> +	  if (max > min)						      \
> +	    {								      \
> +	      (__cur)->type.min = min;					      \
> +	      (__cur)->type.max = max;					      \
> +	    }								      \

When both minp and maxp are specified, it checks if they're sane with
respect to each other but it should also check whether the range they
describe is a *subset* of (__cur)->type.min and (__cur)->type.max.

> +	}								      \
> +      else if (max > min)						      \
> +	(__cur)->type.min = min;					      \

You also need to make sure that (__cur)->type.min < min to ensure a more
restrictive range.

> +    }									      \
> +  else if (max > min)							      \
> +    (__cur)->type.max = min;						      \

I did not understand this one.

Basically, this is what it should look like:

    if (__minp != NULL
        && *__minp <= *__maxp
        && *__minp >= (__cur)->type.min
        && *__minp <= (__cur)->type.max)
      (__cur)->type.min = *__minp;

    if (__maxp != NULL
        && *__minp <= *_maxp
        && *__maxp >= (__cur)->type.min
        && *__maxp <= (__cur)->type.max)
      (__cur)->type.max = *maxp;

You could collapse some of these conditions if we assume that maxp and
minp are always either NULL or not NULL together.

Siddhesh

  reply	other threads:[~2020-09-29 13:50 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-18 16:07 V2 [PATCH 0/4] ld.so: Add --list-tunables to print tunable values H.J. Lu
2020-09-18 16:07 ` [PATCH 1/4] x86: Initialize CPU info via IFUNC relocation [BZ 26203] H.J. Lu
2020-09-28 13:08   ` Florian Weimer
2020-09-28 13:48     ` H.J. Lu
2020-09-28 14:05       ` Florian Weimer
2020-09-28 14:20         ` H.J. Lu
2020-09-28 14:22           ` Florian Weimer
2020-09-28 14:39             ` H.J. Lu
2020-09-28 14:47               ` Florian Weimer
2020-09-28 17:54                 ` V3 [PATCH] " H.J. Lu
2020-09-29  7:53                   ` Florian Weimer
2020-09-29 11:44                     ` H.J. Lu
2020-10-01  8:46                       ` Florian Weimer
2020-10-01 19:50                         ` V4 " H.J. Lu
2020-10-08 13:22                           ` PING: " H.J. Lu
2020-10-15 12:53                             ` PING^2: " H.J. Lu
2022-05-02 13:59                               ` Sunil Pandey
2022-05-03 18:51                                 ` Sunil Pandey
2020-09-18 16:07 ` [PATCH 2/4] Set tunable value as well as min/max values H.J. Lu
2020-09-28 13:35   ` Florian Weimer
2020-09-28 13:53     ` H.J. Lu
2020-09-28 14:03       ` Florian Weimer
2020-09-28 17:30     ` Siddhesh Poyarekar
2020-09-29  4:00       ` V3 [PATCH] " H.J. Lu
2020-09-29  4:45         ` Siddhesh Poyarekar
2020-09-29  4:47           ` Siddhesh Poyarekar
2020-09-29 12:30             ` V4 " H.J. Lu
2020-09-29 13:50               ` Siddhesh Poyarekar [this message]
2020-09-29 14:54                 ` V5 " H.J. Lu
2020-09-29 15:58                   ` Siddhesh Poyarekar
2020-09-18 16:07 ` [PATCH 3/4] x86: Move x86 processor cache info to cpu_features H.J. Lu
2020-09-18 16:07 ` [PATCH 4/4] ld.so: Add --list-tunables to print tunable values H.J. Lu
2020-09-21  8:25   ` Florian Weimer

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=8046ee6e-b0e9-405a-b266-3f28ad75165d@sourceware.org \
    --to=siddhesh@sourceware.org \
    --cc=fweimer@redhat.com \
    --cc=hjl.tools@gmail.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).