Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1726009 > unrolled thread
| Started by | Michal Hocko <mhocko@kernel.org> |
|---|---|
| First post | 2017-09-04 13:30 +0200 |
| Last post | 2017-09-06 10:20 +0200 |
| Articles | 6 — 3 participants |
Back to article view | Back to linux.kernel
[PATCH] mm, sparse: fix typo in online_mem_sections Michal Hocko <mhocko@kernel.org> - 2017-09-04 13:30 +0200
Re: [PATCH] mm, sparse: fix typo in online_mem_sections Anshuman Khandual <khandual@linux.vnet.ibm.com> - 2017-09-05 09:10 +0200
Re: [PATCH] mm, sparse: fix typo in online_mem_sections Michal Hocko <mhocko@kernel.org> - 2017-09-05 09:30 +0200
Re: [PATCH] mm, sparse: fix typo in online_mem_sections Michal Hocko <mhocko@kernel.org> - 2017-09-05 09:40 +0200
Re: [PATCH] mm, sparse: fix typo in online_mem_sections Anshuman Khandual <khandual@linux.vnet.ibm.com> - 2017-09-05 10:50 +0200
Re: [PATCH] mm, sparse: fix typo in online_mem_sections Vlastimil Babka <vbabka@suse.cz> - 2017-09-06 10:20 +0200
| From | Michal Hocko <mhocko@kernel.org> |
|---|---|
| Date | 2017-09-04 13:30 +0200 |
| Subject | [PATCH] mm, sparse: fix typo in online_mem_sections |
| Message-ID | <ulXJN-4RW-37@gated-at.bofh.it> |
From: Michal Hocko <mhocko@suse.com>
online_mem_sections accidentally marks online only the first section in
the given range. This is a typo which hasn't been noticed because I
haven't tested large 2GB blocks previously. All users of
pfn_to_online_page would get confused on the the rest of the pfn range
in the block.
All we need to fix this is to use iterator (pfn) rather than start_pfn.
Fixes: 2d070eab2e82 ("mm: consider zone which is not fully populated to have holes")
Cc: stable
Signed-off-by: Michal Hocko <mhocko@suse.com>
---
mm/sparse.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mm/sparse.c b/mm/sparse.c
index a9783acf2bb9..83b3bf6461af 100644
--- a/mm/sparse.c
+++ b/mm/sparse.c
@@ -626,7 +626,7 @@ void online_mem_sections(unsigned long start_pfn, unsigned long end_pfn)
unsigned long pfn;
for (pfn = start_pfn; pfn < end_pfn; pfn += PAGES_PER_SECTION) {
- unsigned long section_nr = pfn_to_section_nr(start_pfn);
+ unsigned long section_nr = pfn_to_section_nr(pfn);
struct mem_section *ms;
/* onlining code should never touch invalid ranges */
--
2.14.1
[toc] | [next] | [standalone]
| From | Anshuman Khandual <khandual@linux.vnet.ibm.com> |
|---|---|
| Date | 2017-09-05 09:10 +0200 |
| Message-ID | <umg9I-82b-15@gated-at.bofh.it> |
| In reply to | #1726009 |
On 09/04/2017 04:52 PM, Michal Hocko wrote: > From: Michal Hocko <mhocko@suse.com> > > online_mem_sections accidentally marks online only the first section in > the given range. This is a typo which hasn't been noticed because I > haven't tested large 2GB blocks previously. All users of Section sizes are normally less than 2GB. Could you please elaborate why this never got noticed before ?
[toc] | [prev] | [next] | [standalone]
| From | Michal Hocko <mhocko@kernel.org> |
|---|---|
| Date | 2017-09-05 09:30 +0200 |
| Message-ID | <umgt5-8b3-45@gated-at.bofh.it> |
| In reply to | #1726387 |
On Tue 05-09-17 12:32:28, Anshuman Khandual wrote: > On 09/04/2017 04:52 PM, Michal Hocko wrote: > > From: Michal Hocko <mhocko@suse.com> > > > > online_mem_sections accidentally marks online only the first section in > > the given range. This is a typo which hasn't been noticed because I > > haven't tested large 2GB blocks previously. All users of > > Section sizes are normally less than 2GB. Could you please elaborate > why this never got noticed before ? Section size is 128MB which is the default block size as well. So we have one section per block. But if the amount of memory is very large (64GB - see probe_memory_block_size) then we have a 2GB memory blocks so multiple sections per block. -- Michal Hocko SUSE Labs
[toc] | [prev] | [next] | [standalone]
| From | Michal Hocko <mhocko@kernel.org> |
|---|---|
| Date | 2017-09-05 09:40 +0200 |
| Message-ID | <umgCL-8ei-27@gated-at.bofh.it> |
| In reply to | #1726474 |
On Tue 05-09-17 09:28:36, Michal Hocko wrote: > On Tue 05-09-17 12:32:28, Anshuman Khandual wrote: > > On 09/04/2017 04:52 PM, Michal Hocko wrote: > > > From: Michal Hocko <mhocko@suse.com> > > > > > > online_mem_sections accidentally marks online only the first section in > > > the given range. This is a typo which hasn't been noticed because I > > > haven't tested large 2GB blocks previously. All users of > > > > Section sizes are normally less than 2GB. Could you please elaborate > > why this never got noticed before ? > > Section size is 128MB which is the default block size as well. So we > have one section per block. But if the amount of memory is very large > (64GB - see probe_memory_block_size) then we have a 2GB memory blocks > so multiple sections per block. And just to clarify. Not that 64G would be too large but the original patch has been merged in 4.13 so nobody probably managed to hit that _yet_. -- Michal Hocko SUSE Labs
[toc] | [prev] | [next] | [standalone]
| From | Anshuman Khandual <khandual@linux.vnet.ibm.com> |
|---|---|
| Date | 2017-09-05 10:50 +0200 |
| Message-ID | <umhIu-pS-21@gated-at.bofh.it> |
| In reply to | #1726486 |
On 09/05/2017 01:07 PM, Michal Hocko wrote: > On Tue 05-09-17 09:28:36, Michal Hocko wrote: >> On Tue 05-09-17 12:32:28, Anshuman Khandual wrote: >>> On 09/04/2017 04:52 PM, Michal Hocko wrote: >>>> From: Michal Hocko <mhocko@suse.com> >>>> >>>> online_mem_sections accidentally marks online only the first section in >>>> the given range. This is a typo which hasn't been noticed because I >>>> haven't tested large 2GB blocks previously. All users of >>> >>> Section sizes are normally less than 2GB. Could you please elaborate >>> why this never got noticed before ? >> >> Section size is 128MB which is the default block size as well. So we >> have one section per block. But if the amount of memory is very large >> (64GB - see probe_memory_block_size) then we have a 2GB memory blocks >> so multiple sections per block. > > And just to clarify. Not that 64G would be too large but the original > patch has been merged in 4.13 so nobody probably managed to hit that > _yet_. Got it. Section size is 16MB and block size is 256MB on most of the POWER platforms. Hence this could have affected them as well.
[toc] | [prev] | [next] | [standalone]
| From | Vlastimil Babka <vbabka@suse.cz> |
|---|---|
| Date | 2017-09-06 10:20 +0200 |
| Message-ID | <umDJ0-7kw-19@gated-at.bofh.it> |
| In reply to | #1726009 |
On 09/04/2017 01:22 PM, Michal Hocko wrote:
> From: Michal Hocko <mhocko@suse.com>
>
> online_mem_sections accidentally marks online only the first section in
> the given range. This is a typo which hasn't been noticed because I
> haven't tested large 2GB blocks previously. All users of
> pfn_to_online_page would get confused on the the rest of the pfn range
> in the block.
>
> All we need to fix this is to use iterator (pfn) rather than start_pfn.
>
> Fixes: 2d070eab2e82 ("mm: consider zone which is not fully populated to have holes")
> Cc: stable
> Signed-off-by: Michal Hocko <mhocko@suse.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
> ---
> mm/sparse.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mm/sparse.c b/mm/sparse.c
> index a9783acf2bb9..83b3bf6461af 100644
> --- a/mm/sparse.c
> +++ b/mm/sparse.c
> @@ -626,7 +626,7 @@ void online_mem_sections(unsigned long start_pfn, unsigned long end_pfn)
> unsigned long pfn;
>
> for (pfn = start_pfn; pfn < end_pfn; pfn += PAGES_PER_SECTION) {
> - unsigned long section_nr = pfn_to_section_nr(start_pfn);
> + unsigned long section_nr = pfn_to_section_nr(pfn);
> struct mem_section *ms;
>
> /* onlining code should never touch invalid ranges */
>
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web