[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <741ac150-5913-7011-31c2-15292df8061c@gmail.com>
Date: Wed, 5 Jul 2023 18:19:47 +0800
From: Song Shuai <suagrfillet@...il.com>
To: Alexandre Ghiti <alexghiti@...osinc.com>,
Conor Dooley <conor.dooley@...rochip.com>
Cc: Paul Walmsley <paul.walmsley@...ive.com>,
Palmer Dabbelt <palmer@...belt.com>,
Albert Ou <aou@...s.berkeley.edu>,
linux-riscv@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] riscv: Start of DRAM should at least be aligned on PMD
size for the direct mapping
在 2023/7/4 21:16, Alexandre Ghiti 写道:
> On Tue, Jul 4, 2023 at 2:26 PM Conor Dooley <conor.dooley@...rochip.com> wrote:
>>
>> Hey Alex,
>>
>> On Tue, Jul 04, 2023 at 02:18:37PM +0200, Alexandre Ghiti wrote:
>>> So that we do not end up mapping the whole linear mapping using 4K
>>> pages, which is slow at boot time, and also very likely at runtime.
>>>
>>> So make sure we align the start of DRAM on a PMD boundary.
>>>
>>> Signed-off-by: Alexandre Ghiti <alexghiti@...osinc.com>
>>
>> Obviously correct me if I am wrong here, but was this not reported by
>> Song Shuai as a regression?
>> Accordingly, should this not have Reported-by, Closes/Link & Fixes tags?
>
> Sure we should add the reported by from Song as he did the proper report :)
>
> Reported-by: Song Shuai <suagrfillet@...il.com>
> Closes: https://lore.kernel.org/linux-riscv/20230625140931.1266216-1-songshuaishuai@tinylab.org/
>
> And yes sorry, I thought it was there before, but it was actually when
> I retrieved the first 2MB that the problem appeared, so:
>
> Fixes: 3335068f8721 ("riscv: Use PUD/P4D/PGD pages for the linear mapping")
>
> Thanks!
And you can add my tested-by:
Tested-by: Song Shuai <suagrfillet@...il.com>
>
>>
>> Cheers,
>> Conor.
>>
>>> ---
>>> arch/riscv/mm/init.c | 7 ++++++-
>>> 1 file changed, 6 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c
>>> index 4fa420faa780..4a43ec275c6d 100644
>>> --- a/arch/riscv/mm/init.c
>>> +++ b/arch/riscv/mm/init.c
>>> @@ -214,8 +214,13 @@ static void __init setup_bootmem(void)
>>> memblock_reserve(vmlinux_start, vmlinux_end - vmlinux_start);
>>>
>>> phys_ram_end = memblock_end_of_DRAM();
>>> +
>>> + /*
>>> + * Make sure we align the start of the memory on a PMD boundary so that
>>> + * at worst, we map the linear mapping with PMD mappings.
>>> + */
>>> if (!IS_ENABLED(CONFIG_XIP_KERNEL))
>>> - phys_ram_base = memblock_start_of_DRAM();
>>> + phys_ram_base = memblock_start_of_DRAM() & PMD_MASK;
>>>
>>> /*
>>> * In 64-bit, any use of __va/__pa before this point is wrong as we
>>> --
>>> 2.39.2
>>>
--
Thanks
Song Shuai
Powered by blists - more mailing lists