* [PATCH] riscv: mm: remove the BUG_ON check of mapping the last 4K bytes of memory @ 2022-01-25 15:55 Jisheng Zhang 2022-01-25 16:10 ` Alexandre Ghiti 0 siblings, 1 reply; 4+ messages in thread From: Jisheng Zhang @ 2022-01-25 15:55 UTC (permalink / raw) To: Paul Walmsley, Palmer Dabbelt, Albert Ou Cc: linux-riscv, linux-kernel, Alexandre Ghiti remove the BUG_ON check of mapping the last 4K bytes of the addressable memory since "this is true for every kernel actually" as pointed out by Alexandre. Signed-off-by: Jisheng Zhang <jszhang@kernel.org> Reviewed-by: Alexandre Ghiti <alex@ghiti.fr> --- arch/riscv/mm/init.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c index cf4d018b7d66..8347d0fda8cd 100644 --- a/arch/riscv/mm/init.c +++ b/arch/riscv/mm/init.c @@ -811,14 +811,6 @@ asmlinkage void __init setup_vm(uintptr_t dtb_pa) BUG_ON((PAGE_OFFSET % PGDIR_SIZE) != 0); BUG_ON((kernel_map.phys_addr % PMD_SIZE) != 0); -#ifdef CONFIG_64BIT - /* - * The last 4K bytes of the addressable memory can not be mapped because - * of IS_ERR_VALUE macro. - */ - BUG_ON((kernel_map.virt_addr + kernel_map.size) > ADDRESS_SPACE_END - SZ_4K); -#endif - pt_ops_set_early(); /* Setup early PGD for fixmap */ -- 2.34.1 _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] riscv: mm: remove the BUG_ON check of mapping the last 4K bytes of memory 2022-01-25 15:55 [PATCH] riscv: mm: remove the BUG_ON check of mapping the last 4K bytes of memory Jisheng Zhang @ 2022-01-25 16:10 ` Alexandre Ghiti 2022-02-14 23:41 ` Palmer Dabbelt 0 siblings, 1 reply; 4+ messages in thread From: Alexandre Ghiti @ 2022-01-25 16:10 UTC (permalink / raw) To: Jisheng Zhang, Paul Walmsley, Palmer Dabbelt, Albert Ou Cc: linux-riscv, linux-kernel On 1/25/22 16:55, Jisheng Zhang wrote: > remove the BUG_ON check of mapping the last 4K bytes of the addressable > memory since "this is true for every kernel actually" as pointed out > by Alexandre. > > Signed-off-by: Jisheng Zhang <jszhang@kernel.org> > Reviewed-by: Alexandre Ghiti <alex@ghiti.fr> > --- > arch/riscv/mm/init.c | 8 -------- > 1 file changed, 8 deletions(-) > > diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c > index cf4d018b7d66..8347d0fda8cd 100644 > --- a/arch/riscv/mm/init.c > +++ b/arch/riscv/mm/init.c > @@ -811,14 +811,6 @@ asmlinkage void __init setup_vm(uintptr_t dtb_pa) > BUG_ON((PAGE_OFFSET % PGDIR_SIZE) != 0); > BUG_ON((kernel_map.phys_addr % PMD_SIZE) != 0); > > -#ifdef CONFIG_64BIT > - /* > - * The last 4K bytes of the addressable memory can not be mapped because > - * of IS_ERR_VALUE macro. > - */ > - BUG_ON((kernel_map.virt_addr + kernel_map.size) > ADDRESS_SPACE_END - SZ_4K); > -#endif This BUG_ON seems pretty legit to me: I re-read the exchanges we had, and I see that I didn't notice that in your v2, you actually removed the BUG_ON. So that's my bad, what I meant in the first place was that the BUG_ON is true for 32-bit and 64-bit kernels actually. Sorry my RB was not right on this one :( Alex > - > pt_ops_set_early(); > > /* Setup early PGD for fixmap */ _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] riscv: mm: remove the BUG_ON check of mapping the last 4K bytes of memory 2022-01-25 16:10 ` Alexandre Ghiti @ 2022-02-14 23:41 ` Palmer Dabbelt 2022-02-18 14:00 ` Alexandre Ghiti 0 siblings, 1 reply; 4+ messages in thread From: Palmer Dabbelt @ 2022-02-14 23:41 UTC (permalink / raw) To: alex; +Cc: jszhang, Paul Walmsley, aou, linux-riscv, linux-kernel On Tue, 25 Jan 2022 08:10:41 PST (-0800), alex@ghiti.fr wrote: > > On 1/25/22 16:55, Jisheng Zhang wrote: >> remove the BUG_ON check of mapping the last 4K bytes of the addressable >> memory since "this is true for every kernel actually" as pointed out >> by Alexandre. >> >> Signed-off-by: Jisheng Zhang <jszhang@kernel.org> >> Reviewed-by: Alexandre Ghiti <alex@ghiti.fr> >> --- >> arch/riscv/mm/init.c | 8 -------- >> 1 file changed, 8 deletions(-) >> >> diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c >> index cf4d018b7d66..8347d0fda8cd 100644 >> --- a/arch/riscv/mm/init.c >> +++ b/arch/riscv/mm/init.c >> @@ -811,14 +811,6 @@ asmlinkage void __init setup_vm(uintptr_t dtb_pa) >> BUG_ON((PAGE_OFFSET % PGDIR_SIZE) != 0); >> BUG_ON((kernel_map.phys_addr % PMD_SIZE) != 0); >> >> -#ifdef CONFIG_64BIT >> - /* >> - * The last 4K bytes of the addressable memory can not be mapped because >> - * of IS_ERR_VALUE macro. >> - */ >> - BUG_ON((kernel_map.virt_addr + kernel_map.size) > ADDRESS_SPACE_END - SZ_4K); >> -#endif > > > This BUG_ON seems pretty legit to me: I re-read the exchanges we had, > and I see that I didn't notice that in your v2, you actually removed the > BUG_ON. So that's my bad, what I meant in the first place was that the > BUG_ON is true for 32-bit and 64-bit kernels actually. There's actually an ifndef 64BIT above that sort of handles this case (though I didn't check to see if we're getting the limits correct, so it may not work properly). That's shrinking the memory, rather than just firing a BUG, and it's not really any more code so we should go that way for both. I could see leaving a BUG in there, maybe just explicitly using IS_ERR_VALUE as that's really what we're checking for (though if that's not 4K a bunch of stuff will break, so maybe it just doesn't matter). > Sorry my RB was not right on this one :( > > Alex > > >> - >> pt_ops_set_early(); >> >> /* Setup early PGD for fixmap */ _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] riscv: mm: remove the BUG_ON check of mapping the last 4K bytes of memory 2022-02-14 23:41 ` Palmer Dabbelt @ 2022-02-18 14:00 ` Alexandre Ghiti 0 siblings, 0 replies; 4+ messages in thread From: Alexandre Ghiti @ 2022-02-18 14:00 UTC (permalink / raw) To: Palmer Dabbelt; +Cc: jszhang, Paul Walmsley, aou, linux-riscv, linux-kernel Hi Palmer, On 2/15/22 00:41, Palmer Dabbelt wrote: > On Tue, 25 Jan 2022 08:10:41 PST (-0800), alex@ghiti.fr wrote: >> >> On 1/25/22 16:55, Jisheng Zhang wrote: >>> remove the BUG_ON check of mapping the last 4K bytes of the addressable >>> memory since "this is true for every kernel actually" as pointed out >>> by Alexandre. >>> >>> Signed-off-by: Jisheng Zhang <jszhang@kernel.org> >>> Reviewed-by: Alexandre Ghiti <alex@ghiti.fr> >>> --- >>> arch/riscv/mm/init.c | 8 -------- >>> 1 file changed, 8 deletions(-) >>> >>> diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c >>> index cf4d018b7d66..8347d0fda8cd 100644 >>> --- a/arch/riscv/mm/init.c >>> +++ b/arch/riscv/mm/init.c >>> @@ -811,14 +811,6 @@ asmlinkage void __init setup_vm(uintptr_t dtb_pa) >>> BUG_ON((PAGE_OFFSET % PGDIR_SIZE) != 0); >>> BUG_ON((kernel_map.phys_addr % PMD_SIZE) != 0); >>> >>> -#ifdef CONFIG_64BIT >>> - /* >>> - * The last 4K bytes of the addressable memory can not be >>> mapped because >>> - * of IS_ERR_VALUE macro. >>> - */ >>> - BUG_ON((kernel_map.virt_addr + kernel_map.size) > >>> ADDRESS_SPACE_END - SZ_4K); >>> -#endif >> >> >> This BUG_ON seems pretty legit to me: I re-read the exchanges we had, >> and I see that I didn't notice that in your v2, you actually removed the >> BUG_ON. So that's my bad, what I meant in the first place was that the >> BUG_ON is true for 32-bit and 64-bit kernels actually. > > There's actually an ifndef 64BIT above that sort of handles this case > (though I didn't check to see if we're getting the limits correct, so > it may not work properly). That's shrinking the memory, rather than > just firing a BUG, and it's not really any more code so we should go > that way for both. I could see leaving a BUG in there, maybe just > explicitly using IS_ERR_VALUE as that's really what we're checking for > (though if that's not 4K a bunch of stuff will break, so maybe it just > doesn't matter). I think you're talking about: memory_limit = KERN_VIRT_SIZE - (IS_ENABLED(CONFIG_64BIT) ? SZ_4G : 0); If yes, that's shrinking the available physical memory we can map in the linear mapping, whereas the BUG_ON here is triggered if the kernel mapping is very (very) large and overlaps the last *4K* of the address space, so I still think the BUG_ON is legit although very unlikely. However, I'm wondering if the shrinking still holds with the recent move of KASAN, I may be back with a fix for that. Alex > >> Sorry my RB was not right on this one :( >> >> Alex >> >> >>> - >>> pt_ops_set_early(); >>> >>> /* Setup early PGD for fixmap */ _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-02-18 14:00 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-01-25 15:55 [PATCH] riscv: mm: remove the BUG_ON check of mapping the last 4K bytes of memory Jisheng Zhang 2022-01-25 16:10 ` Alexandre Ghiti 2022-02-14 23:41 ` Palmer Dabbelt 2022-02-18 14:00 ` Alexandre Ghiti
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.