All of lore.kernel.org
 help / color / mirror / Atom feed
* + mm-sparse-refine-usemap_size-a-little.patch added to -mm tree
@ 2017-03-10 22:41 akpm
  2017-03-16  9:17   ` Michal Hocko
  0 siblings, 1 reply; 4+ messages in thread
From: akpm @ 2017-03-10 22:41 UTC (permalink / raw)
  To: richard.weiyang, tj, mm-commits


The patch titled
     Subject: mm/sparse: refine usemap_size() a little
has been added to the -mm tree.  Its filename is
     mm-sparse-refine-usemap_size-a-little.patch

This patch should soon appear at
    http://ozlabs.org/~akpm/mmots/broken-out/mm-sparse-refine-usemap_size-a-little.patch
and later at
    http://ozlabs.org/~akpm/mmotm/broken-out/mm-sparse-refine-usemap_size-a-little.patch

Before you just go and hit "reply", please:
   a) Consider who else should be cc'ed
   b) Prefer to cc a suitable mailing list as well
   c) Ideally: find the original patch on the mailing list and do a
      reply-to-all to that, adding suitable additional cc's

*** Remember to use Documentation/SubmitChecklist when testing your code ***

The -mm tree is included into linux-next and is updated
there every 3-4 working days

------------------------------------------------------
From: Wei Yang <richard.weiyang@gmail.com>
Subject: mm/sparse: refine usemap_size() a little

Current implementation calculates usemap_size in two steps:
    * calculate number of bytes to cover these bits
    * calculate number of "unsigned long" to cover these bytes

It would be more clear by:
    * calculate number of "unsigned long" to cover these bits
    * multiple it with sizeof(unsigned long)

This patch refine usemap_size() a little to make it more easy to
understand.

Link: http://lkml.kernel.org/r/20170310043713.96871-1-richard.weiyang@gmail.com
Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---

 mm/sparse.c |    5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff -puN mm/sparse.c~mm-sparse-refine-usemap_size-a-little mm/sparse.c
--- a/mm/sparse.c~mm-sparse-refine-usemap_size-a-little
+++ a/mm/sparse.c
@@ -248,10 +248,7 @@ static int __meminit sparse_init_one_sec
 
 unsigned long usemap_size(void)
 {
-	unsigned long size_bytes;
-	size_bytes = roundup(SECTION_BLOCKFLAGS_BITS, 8) / 8;
-	size_bytes = roundup(size_bytes, sizeof(unsigned long));
-	return size_bytes;
+	return BITS_TO_LONGS(SECTION_BLOCKFLAGS_BITS) * sizeof(unsigned long);
 }
 
 #ifdef CONFIG_MEMORY_HOTPLUG
_

Patches currently in -mm which might be from richard.weiyang@gmail.com are

mm-sparse-refine-usemap_size-a-little.patch
mm-page_alloc-return-0-in-case-this-node-has-no-page-within-the-zone.patch


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: + mm-sparse-refine-usemap_size-a-little.patch added to -mm tree
  2017-03-10 22:41 + mm-sparse-refine-usemap_size-a-little.patch added to -mm tree akpm
@ 2017-03-16  9:17   ` Michal Hocko
  0 siblings, 0 replies; 4+ messages in thread
From: Michal Hocko @ 2017-03-16  9:17 UTC (permalink / raw)
  To: linux-kernel; +Cc: richard.weiyang, tj, mm-commits, Mel Gorman, linux-mm

[CC Mel]

On Fri 10-03-17 14:41:22, Andrew Morton wrote:
> From: Wei Yang <richard.weiyang@gmail.com>
> Subject: mm/sparse: refine usemap_size() a little
> 
> Current implementation calculates usemap_size in two steps:
>     * calculate number of bytes to cover these bits
>     * calculate number of "unsigned long" to cover these bytes
> 
> It would be more clear by:
>     * calculate number of "unsigned long" to cover these bits
>     * multiple it with sizeof(unsigned long)
> 
> This patch refine usemap_size() a little to make it more easy to
> understand.

I haven't checked deeply yet but reading through 5c0e3066474b ("Fix
corruption of memmap on IA64 SPARSEMEM when mem_section is not a power
of 2") made me ask whether the case described in the commit message
still applies after this change or whether it has been considered at
all.

> Link: http://lkml.kernel.org/r/20170310043713.96871-1-richard.weiyang@gmail.com
> Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
> Cc: Tejun Heo <tj@kernel.org>
> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> ---
> 
>  mm/sparse.c |    5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
> 
> diff -puN mm/sparse.c~mm-sparse-refine-usemap_size-a-little mm/sparse.c
> --- a/mm/sparse.c~mm-sparse-refine-usemap_size-a-little
> +++ a/mm/sparse.c
> @@ -248,10 +248,7 @@ static int __meminit sparse_init_one_sec
>  
>  unsigned long usemap_size(void)
>  {
> -	unsigned long size_bytes;
> -	size_bytes = roundup(SECTION_BLOCKFLAGS_BITS, 8) / 8;
> -	size_bytes = roundup(size_bytes, sizeof(unsigned long));
> -	return size_bytes;
> +	return BITS_TO_LONGS(SECTION_BLOCKFLAGS_BITS) * sizeof(unsigned long);
>  }
>  
>  #ifdef CONFIG_MEMORY_HOTPLUG
> _
> 
> Patches currently in -mm which might be from richard.weiyang@gmail.com are
> 
> mm-sparse-refine-usemap_size-a-little.patch
> mm-page_alloc-return-0-in-case-this-node-has-no-page-within-the-zone.patch
> 
> --
> To unsubscribe from this list: send the line "unsubscribe mm-commits" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

-- 
Michal Hocko
SUSE Labs

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: + mm-sparse-refine-usemap_size-a-little.patch added to -mm tree
@ 2017-03-16  9:17   ` Michal Hocko
  0 siblings, 0 replies; 4+ messages in thread
From: Michal Hocko @ 2017-03-16  9:17 UTC (permalink / raw)
  To: linux-kernel; +Cc: richard.weiyang, tj, mm-commits, Mel Gorman, linux-mm

[CC Mel]

On Fri 10-03-17 14:41:22, Andrew Morton wrote:
> From: Wei Yang <richard.weiyang@gmail.com>
> Subject: mm/sparse: refine usemap_size() a little
> 
> Current implementation calculates usemap_size in two steps:
>     * calculate number of bytes to cover these bits
>     * calculate number of "unsigned long" to cover these bytes
> 
> It would be more clear by:
>     * calculate number of "unsigned long" to cover these bits
>     * multiple it with sizeof(unsigned long)
> 
> This patch refine usemap_size() a little to make it more easy to
> understand.

I haven't checked deeply yet but reading through 5c0e3066474b ("Fix
corruption of memmap on IA64 SPARSEMEM when mem_section is not a power
of 2") made me ask whether the case described in the commit message
still applies after this change or whether it has been considered at
all.

> Link: http://lkml.kernel.org/r/20170310043713.96871-1-richard.weiyang@gmail.com
> Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
> Cc: Tejun Heo <tj@kernel.org>
> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> ---
> 
>  mm/sparse.c |    5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
> 
> diff -puN mm/sparse.c~mm-sparse-refine-usemap_size-a-little mm/sparse.c
> --- a/mm/sparse.c~mm-sparse-refine-usemap_size-a-little
> +++ a/mm/sparse.c
> @@ -248,10 +248,7 @@ static int __meminit sparse_init_one_sec
>  
>  unsigned long usemap_size(void)
>  {
> -	unsigned long size_bytes;
> -	size_bytes = roundup(SECTION_BLOCKFLAGS_BITS, 8) / 8;
> -	size_bytes = roundup(size_bytes, sizeof(unsigned long));
> -	return size_bytes;
> +	return BITS_TO_LONGS(SECTION_BLOCKFLAGS_BITS) * sizeof(unsigned long);
>  }
>  
>  #ifdef CONFIG_MEMORY_HOTPLUG
> _
> 
> Patches currently in -mm which might be from richard.weiyang@gmail.com are
> 
> mm-sparse-refine-usemap_size-a-little.patch
> mm-page_alloc-return-0-in-case-this-node-has-no-page-within-the-zone.patch
> 
> --
> To unsubscribe from this list: send the line "unsubscribe mm-commits" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

-- 
Michal Hocko
SUSE Labs

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: + mm-sparse-refine-usemap_size-a-little.patch added to -mm tree
  2017-03-16  9:17   ` Michal Hocko
  (?)
@ 2017-03-17  1:47   ` Wei Yang
  -1 siblings, 0 replies; 4+ messages in thread
From: Wei Yang @ 2017-03-17  1:47 UTC (permalink / raw)
  To: Michal Hocko
  Cc: linux-kernel, richard.weiyang, tj, mm-commits, Mel Gorman, linux-mm

[-- Attachment #1: Type: text/plain, Size: 1702 bytes --]

On Thu, Mar 16, 2017 at 10:17:18AM +0100, Michal Hocko wrote:
>[CC Mel]
>
>On Fri 10-03-17 14:41:22, Andrew Morton wrote:
>> From: Wei Yang <richard.weiyang@gmail.com>
>> Subject: mm/sparse: refine usemap_size() a little
>> 
>> Current implementation calculates usemap_size in two steps:
>>     * calculate number of bytes to cover these bits
>>     * calculate number of "unsigned long" to cover these bytes
>> 
>> It would be more clear by:
>>     * calculate number of "unsigned long" to cover these bits
>>     * multiple it with sizeof(unsigned long)
>> 
>> This patch refine usemap_size() a little to make it more easy to
>> understand.
>
>I haven't checked deeply yet but reading through 5c0e3066474b ("Fix
>corruption of memmap on IA64 SPARSEMEM when mem_section is not a power
>of 2") made me ask whether the case described in the commit message
>still applies after this change or whether it has been considered at
>all.
>

Hi, Michal

Thanks for your comment.

By looking into the commit 5c0e3066474b, I think it does two things:
1. Recalculate the SECTION_BLOCKFLAGS_BITS
2. Move pageblock_flags out mem_section to make the structure power of 2 in
size.

When we look at the original data structure, pageblock_flags originally is
defined as a bitmap:

    DECLARE_BITMAP(pageblock_flags, SECTION_BLOCKFLAGS_BITS);

Which in turn is:

    #define DECLARE_BITMAP(pageblock_flags,SECTION_BLOCKFLAGS_BITS) \
        unsigned long pageblock_flags[BITS_TO_LONGS(SECTION_BLOCKFLAGS_BITS)]

My patch is using BITS_TO_LONGS() to simplify the code and obviously has the
same effect.

Does this resolve your concern?

-- 
Wei Yang
Help you, Help me

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-03-17  1:47 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-10 22:41 + mm-sparse-refine-usemap_size-a-little.patch added to -mm tree akpm
2017-03-16  9:17 ` Michal Hocko
2017-03-16  9:17   ` Michal Hocko
2017-03-17  1:47   ` Wei Yang

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.