diff mbox

powerpc/mm: Dump hash table

Message ID 20170410020404.11375-1-rashmica.g@gmail.com (mailing list archive)
State Accepted
Commit 9e4114b3913cff37be509224116b6f58a2a3918f
Headers show

Commit Message

Rashmica Gupta April 10, 2017, 2:04 a.m. UTC
Current behaviour assumes that memory in RAM is contiguous and
iterates from the start of RAM to (start + size of memory). When the
memory isn't physically contiguous, this approach doesn't work.

If memory exists at 0-5 GB and 6-10 GB then the current approach will
check if entries exist in the hash table from 0GB to 9GB. This patch
changes the behaviour to iterate up to the end of RAM.

Signed-off-by: Rashmica Gupta <rashmica.g@gmail.com>
---
 arch/powerpc/mm/dump_hashpagetable.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Anshuman Khandual April 10, 2017, 4:02 a.m. UTC | #1
On 04/10/2017 07:34 AM, Rashmica Gupta wrote:
> Current behaviour assumes that memory in RAM is contiguous and
> iterates from the start of RAM to (start + size of memory). When the
> memory isn't physically contiguous, this approach doesn't work.

In dis contiguous platform, we just finish up walking linear
mapping prematurely before the end of the RAM ?

> 
> If memory exists at 0-5 GB and 6-10 GB then the current approach will
> check if entries exist in the hash table from 0GB to 9GB. This patch
> changes the behaviour to iterate up to the end of RAM.

So it fixes the commit which added memblock_phys_mem_size().
Hence needs "Fixes: " tag as well.
Rashmica Gupta April 10, 2017, 5:14 a.m. UTC | #2
On 10/04/17 14:02, Anshuman Khandual wrote:
> On 04/10/2017 07:34 AM, Rashmica Gupta wrote:
>> Current behaviour assumes that memory in RAM is contiguous and
>> iterates from the start of RAM to (start + size of memory). When the
>> memory isn't physically contiguous, this approach doesn't work.
> In dis contiguous platform, we just finish up walking linear
> mapping prematurely before the end of the RAM ?
Yes, that is what the following example explains.
>
>> If memory exists at 0-5 GB and 6-10 GB then the current approach will
>> check if entries exist in the hash table from 0GB to 9GB. This patch
>> changes the behaviour to iterate up to the end of RAM.
> So it fixes the commit which added memblock_phys_mem_size().
> Hence needs "Fixes: " tag as well.
>
Woops, will add that!
Michael Ellerman April 13, 2017, 11:23 a.m. UTC | #3
On Mon, 2017-04-10 at 02:04:04 UTC, Rashmica Gupta wrote:
> Current behaviour assumes that memory in RAM is contiguous and
> iterates from the start of RAM to (start + size of memory). When the
> memory isn't physically contiguous, this approach doesn't work.
> 
> If memory exists at 0-5 GB and 6-10 GB then the current approach will
> check if entries exist in the hash table from 0GB to 9GB. This patch
> changes the behaviour to iterate up to the end of RAM.
> 
> Signed-off-by: Rashmica Gupta <rashmica.g@gmail.com>

Applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/9e4114b3913cff37be509224116b6f

cheers
diff mbox

Patch

diff --git a/arch/powerpc/mm/dump_hashpagetable.c b/arch/powerpc/mm/dump_hashpagetable.c
index d979709..ee07398 100644
--- a/arch/powerpc/mm/dump_hashpagetable.c
+++ b/arch/powerpc/mm/dump_hashpagetable.c
@@ -468,7 +468,7 @@  static void walk_linearmapping(struct pg_state *st)
 	unsigned long psize = 1 << mmu_psize_defs[mmu_linear_psize].shift;
 
 	for (addr = PAGE_OFFSET; addr < PAGE_OFFSET +
-			memblock_phys_mem_size(); addr += psize)
+			memblock_end_of_DRAM(); addr += psize)
 		hpte_find(st, addr, mmu_linear_psize);
 }