All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Alexander Potapenko <glider@google.com>
Cc: Yury Norov <yury.norov@gmail.com>,
	catalin.marinas@arm.com, will@kernel.org, pcc@google.com,
	andreyknvl@gmail.com, linux@rasmusvillemoes.dk,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, eugenis@google.com,
	syednwaris@gmail.com, william.gray@linaro.org,
	Arnd Bergmann <arnd@arndb.de>
Subject: Re: [PATCH v3 1/5] lib/bitmap: add bitmap_{set,get}_value()
Date: Tue, 18 Jul 2023 17:01:28 +0300	[thread overview]
Message-ID: <ZLabOHmNQm2EOXWR@smile.fi.intel.com> (raw)
In-Reply-To: <CAG_fn=UPqyFhEMLDz3nhc7fgpCvprLsYrNjUnw3z4KfWCJGTHA@mail.gmail.com>

On Tue, Jul 18, 2023 at 11:30:00AM +0200, Alexander Potapenko wrote:
> On Mon, Jul 17, 2023 at 5:51 PM Yury Norov <yury.norov@gmail.com> wrote:
> > On Mon, Jul 17, 2023 at 01:37:04PM +0200, Alexander Potapenko wrote:

...

> > When nbits == 0, copy-like functions shouldn't touch any memory. See how
> > other bitmap and find_bit functions hold it.
> 
> I think this is different from what other bitmap functions do, but it
> should be enough to bail out on !nbits, i.e.:
> 
>     if (!nbits)
>         return 0;
> 
> You probably meant adding a __builtin_constant_p() (which is used all
> over the place in bitmap.h), but:
>  - the compiler won't have problem optimizing away the code for a
> constant nbits=0;
>  - we anyway need a dynamic check for the case nbits is not constant
> (for both bitmap_get_value() and bitmap_set_value(), I assume).
> 
> What do you think?

The idea behind is to eliminate the code completely for the cases nbits != 0.
In your case the dynamic check will be there. That's what we want to avoid.

-- 
With Best Regards,
Andy Shevchenko



_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Alexander Potapenko <glider@google.com>
Cc: Yury Norov <yury.norov@gmail.com>,
	catalin.marinas@arm.com, will@kernel.org, pcc@google.com,
	andreyknvl@gmail.com, linux@rasmusvillemoes.dk,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, eugenis@google.com,
	syednwaris@gmail.com, william.gray@linaro.org,
	Arnd Bergmann <arnd@arndb.de>
Subject: Re: [PATCH v3 1/5] lib/bitmap: add bitmap_{set,get}_value()
Date: Tue, 18 Jul 2023 17:01:28 +0300	[thread overview]
Message-ID: <ZLabOHmNQm2EOXWR@smile.fi.intel.com> (raw)
In-Reply-To: <CAG_fn=UPqyFhEMLDz3nhc7fgpCvprLsYrNjUnw3z4KfWCJGTHA@mail.gmail.com>

On Tue, Jul 18, 2023 at 11:30:00AM +0200, Alexander Potapenko wrote:
> On Mon, Jul 17, 2023 at 5:51 PM Yury Norov <yury.norov@gmail.com> wrote:
> > On Mon, Jul 17, 2023 at 01:37:04PM +0200, Alexander Potapenko wrote:

...

> > When nbits == 0, copy-like functions shouldn't touch any memory. See how
> > other bitmap and find_bit functions hold it.
> 
> I think this is different from what other bitmap functions do, but it
> should be enough to bail out on !nbits, i.e.:
> 
>     if (!nbits)
>         return 0;
> 
> You probably meant adding a __builtin_constant_p() (which is used all
> over the place in bitmap.h), but:
>  - the compiler won't have problem optimizing away the code for a
> constant nbits=0;
>  - we anyway need a dynamic check for the case nbits is not constant
> (for both bitmap_get_value() and bitmap_set_value(), I assume).
> 
> What do you think?

The idea behind is to eliminate the code completely for the cases nbits != 0.
In your case the dynamic check will be there. That's what we want to avoid.

-- 
With Best Regards,
Andy Shevchenko



  reply	other threads:[~2023-07-19  6:09 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-17 11:37 [PATCH v3 0/5] Implement MTE tag compression for swapped pages Alexander Potapenko
2023-07-17 11:37 ` Alexander Potapenko
2023-07-17 11:37 ` [PATCH v3 1/5] lib/bitmap: add bitmap_{set,get}_value() Alexander Potapenko
2023-07-17 11:37   ` Alexander Potapenko
2023-07-17 13:01   ` Andy Shevchenko
2023-07-17 13:01     ` Andy Shevchenko
2023-07-17 14:14     ` Alexander Potapenko
2023-07-17 14:14       ` Alexander Potapenko
2023-07-17 14:29       ` Andy Shevchenko
2023-07-17 14:29         ` Andy Shevchenko
2023-07-17 14:31         ` Andy Shevchenko
2023-07-17 14:31           ` Andy Shevchenko
2023-07-17 16:15           ` Yury Norov
2023-07-17 16:15             ` Yury Norov
2023-07-17 14:53       ` Alexander Potapenko
2023-07-17 14:53         ` Alexander Potapenko
2023-07-17 15:03         ` Andy Shevchenko
2023-07-17 15:03           ` Andy Shevchenko
2023-07-17 16:29           ` Alexander Potapenko
2023-07-17 16:29             ` Alexander Potapenko
2023-07-17 15:50   ` Yury Norov
2023-07-17 15:50     ` Yury Norov
2023-07-18  9:30     ` Alexander Potapenko
2023-07-18  9:30       ` Alexander Potapenko
2023-07-18 14:01       ` Andy Shevchenko [this message]
2023-07-18 14:01         ` Andy Shevchenko
2023-07-18 17:03         ` Yury Norov
2023-07-18 17:03           ` Yury Norov
2023-07-18 17:20           ` Andy Shevchenko
2023-07-18 17:20             ` Andy Shevchenko
2023-07-19  9:00           ` Alexander Potapenko
2023-07-19  9:00             ` Alexander Potapenko
2023-07-17 11:37 ` [PATCH v3 2/5] lib/test_bitmap: add tests for bitmap_{set,get}_value() Alexander Potapenko
2023-07-17 11:37   ` Alexander Potapenko
2023-07-17 13:04   ` Andy Shevchenko
2023-07-17 13:04     ` Andy Shevchenko
2023-07-18 10:19     ` Alexander Potapenko
2023-07-18 10:19       ` Alexander Potapenko
2023-07-17 16:11   ` Yury Norov
2023-07-17 16:11     ` Yury Norov
2023-07-17 16:28     ` Andy Shevchenko
2023-07-17 16:28       ` Andy Shevchenko
2023-07-17 16:42     ` Alexander Potapenko
2023-07-17 16:42       ` Alexander Potapenko
2023-07-17 11:37 ` [PATCH v3 3/5] arm64: mte: implement CONFIG_ARM64_MTE_COMP Alexander Potapenko
2023-07-17 11:37   ` Alexander Potapenko
2023-07-17 13:49   ` Andy Shevchenko
2023-07-17 13:49     ` Andy Shevchenko
2023-07-18 15:33     ` Alexander Potapenko
2023-07-18 15:33       ` Alexander Potapenko
2023-07-18 17:17       ` Andy Shevchenko
2023-07-18 17:17         ` Andy Shevchenko
2023-07-19 12:16         ` Alexander Potapenko
2023-07-19 12:16           ` Alexander Potapenko
2023-07-19  6:09   ` Yury Norov
2023-07-19  6:09     ` Yury Norov
2023-07-19 14:00     ` Alexander Potapenko
2023-07-19 14:00       ` Alexander Potapenko
2023-07-19 21:06       ` Yury Norov
2023-07-19 21:06         ` Yury Norov
2023-07-20 12:00         ` Alexander Potapenko
2023-07-20 12:00           ` Alexander Potapenko
2023-07-19 20:32     ` Evgenii Stepanov
2023-07-19 20:32       ` Evgenii Stepanov
2023-07-17 11:37 ` [PATCH v3 4/5] arm64: mte: add a test for MTE tags compression Alexander Potapenko
2023-07-17 11:37   ` Alexander Potapenko
2023-07-17 11:37 ` [PATCH v3 5/5] arm64: mte: add compression support to mteswap.c Alexander Potapenko
2023-07-17 11:37   ` Alexander Potapenko
2023-07-17 13:53   ` Andy Shevchenko
2023-07-17 13:53     ` Andy Shevchenko
2023-07-18 10:48     ` Alexander Potapenko
2023-07-18 10:48       ` Alexander Potapenko
2023-07-18 14:13       ` Andy Shevchenko
2023-07-18 14:13         ` Andy Shevchenko

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=ZLabOHmNQm2EOXWR@smile.fi.intel.com \
    --to=andriy.shevchenko@linux.intel.com \
    --cc=andreyknvl@gmail.com \
    --cc=arnd@arndb.de \
    --cc=catalin.marinas@arm.com \
    --cc=eugenis@google.com \
    --cc=glider@google.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@rasmusvillemoes.dk \
    --cc=pcc@google.com \
    --cc=syednwaris@gmail.com \
    --cc=will@kernel.org \
    --cc=william.gray@linaro.org \
    --cc=yury.norov@gmail.com \
    /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.