Re: [PATCH] mm: Define KB, MB, GB, TB in core VM

From: Geert Uytterhoeven
Date: Mon May 29 2017 - 07:07:16 EST


Hi Anshuman,

On Wed, May 24, 2017 at 8:40 AM, Anshuman Khandual
<khandual@xxxxxxxxxxxxxxxxxx> wrote:
> On 05/23/2017 04:49 PM, Anshuman Khandual wrote:
>> On 05/23/2017 02:08 PM, Vlastimil Babka wrote:
>>> On 05/23/2017 09:02 AM, Christoph Hellwig wrote:
>>>> On Mon, May 22, 2017 at 02:11:49PM -0700, Andrew Morton wrote:
>>>>> On Mon, 22 May 2017 16:47:42 +0530 Anshuman Khandual <khandual@xxxxxxxxxxxxxxxxxx> wrote:
>>>>>> There are many places where we define size either left shifting integers
>>>>>> or multiplying 1024s without any generic definition to fall back on. But
>>>>>> there are couples of (powerpc and lz4) attempts to define these standard
>>>>>> memory sizes. Lets move these definitions to core VM to make sure that
>>>>>> all new usage come from these definitions eventually standardizing it
>>>>>> across all places.
>>>>> Grep further - there are many more definitions and some may now
>>>>> generate warnings.
>>>>>
>>>>> Newly including mm.h for these things seems a bit heavyweight. I can't
>>>>> immediately think of a more appropriate place. Maybe printk.h or
>>>>> kernel.h.
>>>> IFF we do these kernel.h is the right place. And please also add the
>>>> MiB & co variants for the binary versions right next to the decimal
>>>> ones.
>>> Those defined in the patch are binary, not decimal. Do we even need
>>> decimal ones?
>>
>> I can define KiB, MiB, .... with the same values as binary.
>> Did not get about the decimal ones, we need different names
>> for them holding values which are multiple of 1024 ?
>
> Now it seems little bit complicated than I initially thought.
> There are three different kind of definitions scattered across
> the tree.
>
> (1) Constant defines like these which can be unified across
> with little effort.
>
> +#define KB (1UL << 10)
> +#define MB (1UL << 20)
> +#define GB (1UL << 30)
> +#define TB (1UL << 40)

Please don't add more/generalize (ab)users of decimal prefixes where
binary prefixes are needed/intended.

https://en.wikipedia.org/wiki/Binary_prefix

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds