Message ID | 20240814062625.19794-1-cuiyunhui@bytedance.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | riscv: add a warning when physical memory address overflows | expand |
Context | Check | Description |
---|---|---|
conchuod/vmtest-fixes-PR | fail | merge-conflict |
Hi Yunhui, On 14/08/2024 08:26, Yunhui Cui wrote: > The part of physical memory that exceeds the size of the linear mapping > will be discarded. When the system starts up normally, a warning message > will be printed to prevent confusion caused by the mismatch between the > system memory and the actual physical memory. > > Signed-off-by: Yunhui Cui <cuiyunhui@bytedance.com> > --- > arch/riscv/mm/init.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c > index 52290c9bd04bd..c93164dc51658 100644 > --- a/arch/riscv/mm/init.c > +++ b/arch/riscv/mm/init.c > @@ -236,8 +236,12 @@ static void __init setup_bootmem(void) > */ > if (IS_ENABLED(CONFIG_64BIT)) { > max_mapped_addr = __pa(PAGE_OFFSET) + KERN_VIRT_SIZE; > - memblock_cap_memory_range(phys_ram_base, > - max_mapped_addr - phys_ram_base); > + if (memblock_end_of_DRAM() > max_mapped_addr) { > + memblock_cap_memory_range(phys_ram_base, > + max_mapped_addr - phys_ram_base); > + pr_warn("Physical memory overflows the linear mapping size: region above 0x%llx removed", > + max_mapped_addr); > + } > } > > A bit weird to review and test my own patch, but here it is anyway :) Reviewed-by: Alexandre Ghiti <alexghiti@rivosinc.com> Tested-by: Alexandre Ghiti <alexghiti@rivosinc.com> Thanks, Alex
Hi Palmer, A gentle ping for this patch. On Thu, Aug 15, 2024 at 7:01 PM Alexandre Ghiti <alex@ghiti.fr> wrote: > > Hi Yunhui, > > On 14/08/2024 08:26, Yunhui Cui wrote: > > The part of physical memory that exceeds the size of the linear mapping > > will be discarded. When the system starts up normally, a warning message > > will be printed to prevent confusion caused by the mismatch between the > > system memory and the actual physical memory. > > > > Signed-off-by: Yunhui Cui <cuiyunhui@bytedance.com> > > --- > > arch/riscv/mm/init.c | 8 ++++++-- > > 1 file changed, 6 insertions(+), 2 deletions(-) > > > > diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c > > index 52290c9bd04bd..c93164dc51658 100644 > > --- a/arch/riscv/mm/init.c > > +++ b/arch/riscv/mm/init.c > > @@ -236,8 +236,12 @@ static void __init setup_bootmem(void) > > */ > > if (IS_ENABLED(CONFIG_64BIT)) { > > max_mapped_addr = __pa(PAGE_OFFSET) + KERN_VIRT_SIZE; > > - memblock_cap_memory_range(phys_ram_base, > > - max_mapped_addr - phys_ram_base); > > + if (memblock_end_of_DRAM() > max_mapped_addr) { > > + memblock_cap_memory_range(phys_ram_base, > > + max_mapped_addr - phys_ram_base); > > + pr_warn("Physical memory overflows the linear mapping size: region above 0x%llx removed", > > + max_mapped_addr); > > + } > > } > > > > > > > A bit weird to review and test my own patch, but here it is anyway :) > > Reviewed-by: Alexandre Ghiti <alexghiti@rivosinc.com> > > Tested-by: Alexandre Ghiti <alexghiti@rivosinc.com> > > Thanks, > > Alex > Thanks, Yunhui
Hi Palmer, [...] >> On 14/08/2024 08:26, Yunhui Cui wrote: >> > The part of physical memory that exceeds the size of the linear mapping >> > will be discarded. When the system starts up normally, a warning message >> > will be printed to prevent confusion caused by the mismatch between the >> > system memory and the actual physical memory. >> > >> > Signed-off-by: Yunhui Cui <cuiyunhui@bytedance.com> >> > --- >> > arch/riscv/mm/init.c | 8 ++++++-- >> > 1 file changed, 6 insertions(+), 2 deletions(-) >> > >> > diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c >> > index 52290c9bd04bd..c93164dc51658 100644 >> > --- a/arch/riscv/mm/init.c >> > +++ b/arch/riscv/mm/init.c >> > @@ -236,8 +236,12 @@ static void __init setup_bootmem(void) >> > */ >> > if (IS_ENABLED(CONFIG_64BIT)) { >> > max_mapped_addr = __pa(PAGE_OFFSET) + KERN_VIRT_SIZE; >> > - memblock_cap_memory_range(phys_ram_base, >> > - max_mapped_addr - phys_ram_base); >> > + if (memblock_end_of_DRAM() > max_mapped_addr) { >> > + memblock_cap_memory_range(phys_ram_base, >> > + max_mapped_addr - phys_ram_base); >> > + pr_warn("Physical memory overflows the linear mapping size: region above 0x%llx removed", >> > + max_mapped_addr); >> > + } >> > } >> > >> > >> >> >> A bit weird to review and test my own patch, but here it is anyway :) >> >> Reviewed-by: Alexandre Ghiti <alexghiti@rivosinc.com> >> >> Tested-by: Alexandre Ghiti <alexghiti@rivosinc.com> Looks like the patch has been ready for a while now. If there are no further problems, can it be merged please? [...]
diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c index 52290c9bd04bd..c93164dc51658 100644 --- a/arch/riscv/mm/init.c +++ b/arch/riscv/mm/init.c @@ -236,8 +236,12 @@ static void __init setup_bootmem(void) */ if (IS_ENABLED(CONFIG_64BIT)) { max_mapped_addr = __pa(PAGE_OFFSET) + KERN_VIRT_SIZE; - memblock_cap_memory_range(phys_ram_base, - max_mapped_addr - phys_ram_base); + if (memblock_end_of_DRAM() > max_mapped_addr) { + memblock_cap_memory_range(phys_ram_base, + max_mapped_addr - phys_ram_base); + pr_warn("Physical memory overflows the linear mapping size: region above 0x%llx removed", + max_mapped_addr); + } }
The part of physical memory that exceeds the size of the linear mapping will be discarded. When the system starts up normally, a warning message will be printed to prevent confusion caused by the mismatch between the system memory and the actual physical memory. Signed-off-by: Yunhui Cui <cuiyunhui@bytedance.com> --- arch/riscv/mm/init.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)