* Re: [v5.4 stable] arm: stm32: Regression observed on "no-map" reserved memory region [not found] ` <001f8550-b625-17d2-85a6-98a483557c70@foss.st.com> @ 2021-04-20 15:54 ` Rob Herring 2021-04-20 16:10 ` Ard Biesheuvel 0 siblings, 1 reply; 15+ messages in thread From: Rob Herring @ 2021-04-20 15:54 UTC (permalink / raw) To: Alexandre TORGUE Cc: Ard Biesheuvel, Quentin Perret, Greg Kroah-Hartman, Sasha Levin, stable, Arnd Bergmann, devicetree, linux-kernel, Nicolas Boichat, Stephen Boyd, Florian Fainelli, KarimAllah Ahmed, Android Kernel Team, Architecture Mailman List, Frank Rowand, linux-arm-kernel On Tue, Apr 20, 2021 at 10:12 AM Alexandre TORGUE <alexandre.torgue@foss.st.com> wrote: > > > > On 4/20/21 4:45 PM, Rob Herring wrote: > > On Tue, Apr 20, 2021 at 9:03 AM Alexandre TORGUE > > <alexandre.torgue@foss.st.com> wrote: > >> > >> Hi, > > > > Greg or Sasha won't know what to do with this. Not sure who follows > > the stable list either. Quentin sent the patch, but is not the author. > > Given the patch in question is about consistency between EFI memory > > map boot and DT memory map boot, copying EFI knowledgeable folks would > > help (Ard B for starters). > > Ok thanks for the tips. I add Ard in the loop. Sigh. If it was only Ard I was suggesting I would have done that myself. Now everyone on the patch in question and relevant lists are Cc'ed. > > Ard, let me know if other people have to be directly added or if I have > to resend to another mailing list. > > thanks > alex > > > > >> > >> Since v5.4.102 I observe a regression on stm32mp1 platform: "no-map" > >> reserved-memory regions are no more "reserved" and make part of the > >> kernel System RAM. This causes allocation failure for devices which try > >> to take a reserved-memory region. > >> > >> It has been introduced by the following path: > >> > >> "fdt: Properly handle "no-map" field in the memory region > >> [ Upstream commit 86588296acbfb1591e92ba60221e95677ecadb43 ]" > >> which replace memblock_remove by memblock_mark_nomap in no-map case. > >> > >> Reverting this patch it's fine. > >> > >> I add part of my DT (something is maybe wrong inside): > >> > >> memory@c0000000 { > >> reg = <0xc0000000 0x20000000>; > >> }; > >> > >> reserved-memory { > >> #address-cells = <1>; > >> #size-cells = <1>; > >> ranges; > >> > >> gpu_reserved: gpu@d4000000 { > >> reg = <0xd4000000 0x4000000>; > >> no-map; > >> }; > >> }; > >> > >> Sorry if this issue has already been raised and discussed. > >> > >> Thanks > >> alex _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [v5.4 stable] arm: stm32: Regression observed on "no-map" reserved memory region 2021-04-20 15:54 ` [v5.4 stable] arm: stm32: Regression observed on "no-map" reserved memory region Rob Herring @ 2021-04-20 16:10 ` Ard Biesheuvel 2021-04-20 16:33 ` Florian Fainelli 2021-04-20 21:05 ` Rob Herring 0 siblings, 2 replies; 15+ messages in thread From: Ard Biesheuvel @ 2021-04-20 16:10 UTC (permalink / raw) To: Rob Herring Cc: Alexandre TORGUE, Quentin Perret, Greg Kroah-Hartman, Sasha Levin, stable, Arnd Bergmann, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, linux-kernel, Nicolas Boichat, Stephen Boyd, Florian Fainelli, KarimAllah Ahmed, Android Kernel Team, Architecture Mailman List, Frank Rowand, linux-arm-kernel On Tue, 20 Apr 2021 at 17:54, Rob Herring <robh+dt@kernel.org> wrote: > > On Tue, Apr 20, 2021 at 10:12 AM Alexandre TORGUE > <alexandre.torgue@foss.st.com> wrote: > > > > > > > > On 4/20/21 4:45 PM, Rob Herring wrote: > > > On Tue, Apr 20, 2021 at 9:03 AM Alexandre TORGUE > > > <alexandre.torgue@foss.st.com> wrote: > > >> > > >> Hi, > > > > > > Greg or Sasha won't know what to do with this. Not sure who follows > > > the stable list either. Quentin sent the patch, but is not the author. > > > Given the patch in question is about consistency between EFI memory > > > map boot and DT memory map boot, copying EFI knowledgeable folks would > > > help (Ard B for starters). > > > > Ok thanks for the tips. I add Ard in the loop. > > Sigh. If it was only Ard I was suggesting I would have done that > myself. Now everyone on the patch in question and relevant lists are > Cc'ed. > Thanks for the cc. > > > > Ard, let me know if other people have to be directly added or if I have > > to resend to another mailing list. > > > > thanks > > alex > > > > > > > >> > > >> Since v5.4.102 I observe a regression on stm32mp1 platform: "no-map" > > >> reserved-memory regions are no more "reserved" and make part of the > > >> kernel System RAM. This causes allocation failure for devices which try > > >> to take a reserved-memory region. > > >> > > >> It has been introduced by the following path: > > >> > > >> "fdt: Properly handle "no-map" field in the memory region > > >> [ Upstream commit 86588296acbfb1591e92ba60221e95677ecadb43 ]" > > >> which replace memblock_remove by memblock_mark_nomap in no-map case. > > >> Why was this backported? It doesn't look like a bugfix to me. > > >> Reverting this patch it's fine. > > >> > > >> I add part of my DT (something is maybe wrong inside): > > >> > > >> memory@c0000000 { > > >> reg = <0xc0000000 0x20000000>; > > >> }; > > >> > > >> reserved-memory { > > >> #address-cells = <1>; > > >> #size-cells = <1>; > > >> ranges; > > >> > > >> gpu_reserved: gpu@d4000000 { > > >> reg = <0xd4000000 0x4000000>; > > >> no-map; > > >> }; > > >> }; > > >> > > >> Sorry if this issue has already been raised and discussed. > > >> Could you explain why it fails? The region is clearly part of system memory, and tagged as no-map, so the patch in itself is not unreasonable. However, we obviously have code that relies on how the region is represented in /proc/iomem, so it would be helpful to get some insight into why this is the case. In any case, the mere fact that this causes a regression should be sufficient justification to revert/withdraw it from v5.4, as I don't see a reason why it was merged there in the first place. (It has no fixes tag or cc:stable) _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [v5.4 stable] arm: stm32: Regression observed on "no-map" reserved memory region 2021-04-20 16:10 ` Ard Biesheuvel @ 2021-04-20 16:33 ` Florian Fainelli 2021-04-21 8:31 ` Quentin Perret 2021-04-20 21:05 ` Rob Herring 1 sibling, 1 reply; 15+ messages in thread From: Florian Fainelli @ 2021-04-20 16:33 UTC (permalink / raw) To: Ard Biesheuvel, Rob Herring Cc: Alexandre TORGUE, Quentin Perret, Greg Kroah-Hartman, Sasha Levin, stable, Arnd Bergmann, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, linux-kernel, Nicolas Boichat, Stephen Boyd, KarimAllah Ahmed, Android Kernel Team, Architecture Mailman List, Frank Rowand, linux-arm-kernel On 4/20/2021 9:10 AM, Ard Biesheuvel wrote: > On Tue, 20 Apr 2021 at 17:54, Rob Herring <robh+dt@kernel.org> wrote: >> >> On Tue, Apr 20, 2021 at 10:12 AM Alexandre TORGUE >> <alexandre.torgue@foss.st.com> wrote: >>> >>> >>> >>> On 4/20/21 4:45 PM, Rob Herring wrote: >>>> On Tue, Apr 20, 2021 at 9:03 AM Alexandre TORGUE >>>> <alexandre.torgue@foss.st.com> wrote: >>>>> >>>>> Hi, >>>> >>>> Greg or Sasha won't know what to do with this. Not sure who follows >>>> the stable list either. Quentin sent the patch, but is not the author. >>>> Given the patch in question is about consistency between EFI memory >>>> map boot and DT memory map boot, copying EFI knowledgeable folks would >>>> help (Ard B for starters). >>> >>> Ok thanks for the tips. I add Ard in the loop. >> >> Sigh. If it was only Ard I was suggesting I would have done that >> myself. Now everyone on the patch in question and relevant lists are >> Cc'ed. >> > > Thanks for the cc. > >>> >>> Ard, let me know if other people have to be directly added or if I have >>> to resend to another mailing list. >>> >>> thanks >>> alex >>> >>>> >>>>> >>>>> Since v5.4.102 I observe a regression on stm32mp1 platform: "no-map" >>>>> reserved-memory regions are no more "reserved" and make part of the >>>>> kernel System RAM. This causes allocation failure for devices which try >>>>> to take a reserved-memory region. >>>>> >>>>> It has been introduced by the following path: >>>>> >>>>> "fdt: Properly handle "no-map" field in the memory region >>>>> [ Upstream commit 86588296acbfb1591e92ba60221e95677ecadb43 ]" >>>>> which replace memblock_remove by memblock_mark_nomap in no-map case. >>>>> > > Why was this backported? It doesn't look like a bugfix to me. > >>>>> Reverting this patch it's fine. >>>>> >>>>> I add part of my DT (something is maybe wrong inside): >>>>> >>>>> memory@c0000000 { >>>>> reg = <0xc0000000 0x20000000>; >>>>> }; >>>>> >>>>> reserved-memory { >>>>> #address-cells = <1>; >>>>> #size-cells = <1>; >>>>> ranges; >>>>> >>>>> gpu_reserved: gpu@d4000000 { >>>>> reg = <0xd4000000 0x4000000>; >>>>> no-map; >>>>> }; >>>>> }; >>>>> >>>>> Sorry if this issue has already been raised and discussed. >>>>> > > Could you explain why it fails? The region is clearly part of system > memory, and tagged as no-map, so the patch in itself is not > unreasonable. However, we obviously have code that relies on how the > region is represented in /proc/iomem, so it would be helpful to get > some insight into why this is the case. I do wonder as well, we have a 32MB "no-map" reserved memory region on our platforms located at 0xfe000000. Without the offending commit, /proc/iomem looks like this: 40000000-fdffefff : System RAM 40008000-40ffffff : Kernel code 41e00000-41ef1d77 : Kernel data 100000000-13fffffff : System RAM and with the patch applied, we have this: 40000000-fdffefff : System RAM 40008000-40ffffff : Kernel code 41e00000-41ef3db7 : Kernel data fdfff000-ffffffff : System RAM 100000000-13fffffff : System RAM so we can now see that the region 0xfe000000 - 0xfffffff is also cobbled up with the preceding region which is a mailbox between Linux and the secure monitor at 0xfdfff000 and of size 4KB. It seems like there is The memblock=debug outputs is also different: [ 0.000000] MEMBLOCK configuration: [ 0.000000] memory size = 0xfdfff000 reserved size = 0x7ce4d20d [ 0.000000] memory.cnt = 0x2 [ 0.000000] memory[0x0] [0x00000040000000-0x000000fdffefff], 0xbdfff000 bytes flags: 0x0 [ 0.000000] memory[0x1] [0x00000100000000-0x0000013fffffff], 0x40000000 bytes flags: 0x0 [ 0.000000] reserved.cnt = 0x6 [ 0.000000] reserved[0x0] [0x00000040003000-0x0000004000e494], 0xb495 bytes flags: 0x0 [ 0.000000] reserved[0x1] [0x00000040200000-0x00000041ef1d77], 0x1cf1d78 bytes flags: 0x0 [ 0.000000] reserved[0x2] [0x00000045000000-0x000000450fffff], 0x100000 bytes flags: 0x0 [ 0.000000] reserved[0x3] [0x00000047000000-0x0000004704ffff], 0x50000 bytes flags: 0x0 [ 0.000000] reserved[0x4] [0x000000c2c00000-0x000000fdbfffff], 0x3b000000 bytes flags: 0x0 [ 0.000000] reserved[0x5] [0x00000100000000-0x0000013fffffff], 0x40000000 bytes flags: 0x0 [ 0.000000] MEMBLOCK configuration: [ 0.000000] memory size = 0x100000000 reserved size = 0x7ca4f24d [ 0.000000] memory.cnt = 0x3 [ 0.000000] memory[0x0] [0x00000040000000-0x000000fdffefff], 0xbdfff000 bytes flags: 0x0 [ 0.000000] memory[0x1] [0x000000fdfff000-0x000000ffffffff], 0x2001000 bytes flags: 0x4 [ 0.000000] memory[0x2] [0x00000100000000-0x0000013fffffff], 0x40000000 bytes flags: 0x0 [ 0.000000] reserved.cnt = 0x6 [ 0.000000] reserved[0x0] [0x00000040003000-0x0000004000e494], 0xb495 bytes flags: 0x0 [ 0.000000] reserved[0x1] [0x00000040200000-0x00000041ef3db7], 0x1cf3db8 bytes flags: 0x0 [ 0.000000] reserved[0x2] [0x00000045000000-0x000000450fffff], 0x100000 bytes flags: 0x0 [ 0.000000] reserved[0x3] [0x00000047000000-0x0000004704ffff], 0x50000 bytes flags: 0x0 [ 0.000000] reserved[0x4] [0x000000c3000000-0x000000fdbfffff], 0x3ac00000 bytes flags: 0x0 [ 0.000000] reserved[0x5] [0x00000100000000-0x0000013fffffff], 0x40000000 bytes flags: 0x0 in the second case we can clearly see that the 32MB no-map region is now considered as usable RAM. Hope this helps. > > In any case, the mere fact that this causes a regression should be > sufficient justification to revert/withdraw it from v5.4, as I don't > see a reason why it was merged there in the first place. (It has no > fixes tag or cc:stable) Agreed, however that means we still need to find out whether a more recent kernel is also broken, I should be able to tell you that a little later. -- Florian _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [v5.4 stable] arm: stm32: Regression observed on "no-map" reserved memory region 2021-04-20 16:33 ` Florian Fainelli @ 2021-04-21 8:31 ` Quentin Perret 2021-04-21 8:45 ` Quentin Perret 2021-04-21 14:33 ` Florian Fainelli 0 siblings, 2 replies; 15+ messages in thread From: Quentin Perret @ 2021-04-21 8:31 UTC (permalink / raw) To: Florian Fainelli Cc: Ard Biesheuvel, Rob Herring, Alexandre TORGUE, Greg Kroah-Hartman, Sasha Levin, stable, Arnd Bergmann, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, linux-kernel, Nicolas Boichat, Stephen Boyd, KarimAllah Ahmed, Android Kernel Team, Architecture Mailman List, Frank Rowand, linux-arm-kernel On Tuesday 20 Apr 2021 at 09:33:56 (-0700), Florian Fainelli wrote: > I do wonder as well, we have a 32MB "no-map" reserved memory region on > our platforms located at 0xfe000000. Without the offending commit, > /proc/iomem looks like this: > > 40000000-fdffefff : System RAM > 40008000-40ffffff : Kernel code > 41e00000-41ef1d77 : Kernel data > 100000000-13fffffff : System RAM > > and with the patch applied, we have this: > > 40000000-fdffefff : System RAM > 40008000-40ffffff : Kernel code > 41e00000-41ef3db7 : Kernel data > fdfff000-ffffffff : System RAM > 100000000-13fffffff : System RAM > > so we can now see that the region 0xfe000000 - 0xfffffff is also cobbled > up with the preceding region which is a mailbox between Linux and the > secure monitor at 0xfdfff000 and of size 4KB. It seems like there is > > The memblock=debug outputs is also different: > > [ 0.000000] MEMBLOCK configuration: > [ 0.000000] memory size = 0xfdfff000 reserved size = 0x7ce4d20d > [ 0.000000] memory.cnt = 0x2 > [ 0.000000] memory[0x0] [0x00000040000000-0x000000fdffefff], > 0xbdfff000 bytes flags: 0x0 > [ 0.000000] memory[0x1] [0x00000100000000-0x0000013fffffff], > 0x40000000 bytes flags: 0x0 > [ 0.000000] reserved.cnt = 0x6 > [ 0.000000] reserved[0x0] [0x00000040003000-0x0000004000e494], > 0xb495 bytes flags: 0x0 > [ 0.000000] reserved[0x1] [0x00000040200000-0x00000041ef1d77], > 0x1cf1d78 bytes flags: 0x0 > [ 0.000000] reserved[0x2] [0x00000045000000-0x000000450fffff], > 0x100000 bytes flags: 0x0 > [ 0.000000] reserved[0x3] [0x00000047000000-0x0000004704ffff], > 0x50000 bytes flags: 0x0 > [ 0.000000] reserved[0x4] [0x000000c2c00000-0x000000fdbfffff], > 0x3b000000 bytes flags: 0x0 > [ 0.000000] reserved[0x5] [0x00000100000000-0x0000013fffffff], > 0x40000000 bytes flags: 0x0 > > [ 0.000000] MEMBLOCK configuration: > [ 0.000000] memory size = 0x100000000 reserved size = 0x7ca4f24d > [ 0.000000] memory.cnt = 0x3 > [ 0.000000] memory[0x0] [0x00000040000000-0x000000fdffefff], > 0xbdfff000 bytes flags: 0x0 > [ 0.000000] memory[0x1] [0x000000fdfff000-0x000000ffffffff], > 0x2001000 bytes flags: 0x4 > [ 0.000000] memory[0x2] [0x00000100000000-0x0000013fffffff], > 0x40000000 bytes flags: 0x0 > [ 0.000000] reserved.cnt = 0x6 > [ 0.000000] reserved[0x0] [0x00000040003000-0x0000004000e494], > 0xb495 bytes flags: 0x0 > [ 0.000000] reserved[0x1] [0x00000040200000-0x00000041ef3db7], > 0x1cf3db8 bytes flags: 0x0 > [ 0.000000] reserved[0x2] [0x00000045000000-0x000000450fffff], > 0x100000 bytes flags: 0x0 > [ 0.000000] reserved[0x3] [0x00000047000000-0x0000004704ffff], > 0x50000 bytes flags: 0x0 > [ 0.000000] reserved[0x4] [0x000000c3000000-0x000000fdbfffff], > 0x3ac00000 bytes flags: 0x0 > [ 0.000000] reserved[0x5] [0x00000100000000-0x0000013fffffff], > 0x40000000 bytes flags: 0x0 > > in the second case we can clearly see that the 32MB no-map region is now > considered as usable RAM. > > Hope this helps. > > > > > In any case, the mere fact that this causes a regression should be > > sufficient justification to revert/withdraw it from v5.4, as I don't > > see a reason why it was merged there in the first place. (It has no > > fixes tag or cc:stable) > > Agreed, however that means we still need to find out whether a more > recent kernel is also broken, I should be able to tell you that a little > later. FWIW I did test this on Qemu before posting. With 5.12-rc8 and a 1MiB no-map region at 0x80000000, I have the following: 40000000-7fffffff : System RAM 40210000-417fffff : Kernel code 41800000-41daffff : reserved 41db0000-4210ffff : Kernel data 48000000-48008fff : reserved 80000000-800fffff : reserved 80100000-13fffffff : System RAM fa000000-ffffffff : reserved 13b000000-13f5fffff : reserved 13f6de000-13f77dfff : reserved 13f77e000-13f77efff : reserved 13f77f000-13f7dafff : reserved 13f7dd000-13f7defff : reserved 13f7df000-13f7dffff : reserved 13f7e0000-13f7f3fff : reserved 13f7f4000-13f7fdfff : reserved 13f7fe000-13fffffff : reserved If I remove the 'no-map' qualifier from DT, I get this: 40000000-13fffffff : System RAM 40210000-417fffff : Kernel code 41800000-41daffff : reserved 41db0000-4210ffff : Kernel data 48000000-48008fff : reserved 80000000-800fffff : reserved fa000000-ffffffff : reserved 13b000000-13f5fffff : reserved 13f6de000-13f77dfff : reserved 13f77e000-13f77efff : reserved 13f77f000-13f7dafff : reserved 13f7dd000-13f7defff : reserved 13f7df000-13f7dffff : reserved 13f7e0000-13f7f3fff : reserved 13f7f4000-13f7fdfff : reserved 13f7fe000-13fffffff : reserved So this does seem to be working fine on my setup. I'll try again with 5.4 to see if I can repro. Also, 8a5a75e5e9e5 ("of/fdt: Make sure no-map does not remove already reserved regions") looks more likely to cause the issue observed here, but that shouldn't be silent. I get the following error message in dmesg if I if place the no-map region on top of the kernel image: OF: fdt: Reserved memory: failed to reserve memory for node 'foobar@40210000': base 0x0000000040210000, size 1 MiB Is that triggering on your end? Thanks, Quentin _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [v5.4 stable] arm: stm32: Regression observed on "no-map" reserved memory region 2021-04-21 8:31 ` Quentin Perret @ 2021-04-21 8:45 ` Quentin Perret 2021-04-21 14:33 ` Florian Fainelli 1 sibling, 0 replies; 15+ messages in thread From: Quentin Perret @ 2021-04-21 8:45 UTC (permalink / raw) To: Florian Fainelli Cc: Ard Biesheuvel, Rob Herring, Alexandre TORGUE, Greg Kroah-Hartman, Sasha Levin, stable, Arnd Bergmann, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, linux-kernel, Nicolas Boichat, Stephen Boyd, KarimAllah Ahmed, Android Kernel Team, Architecture Mailman List, Frank Rowand, linux-arm-kernel On Wednesday 21 Apr 2021 at 08:31:00 (+0000), Quentin Perret wrote: > FWIW I did test this on Qemu before posting. With 5.12-rc8 and a 1MiB > no-map region at 0x80000000, I have the following: > > 40000000-7fffffff : System RAM > 40210000-417fffff : Kernel code > 41800000-41daffff : reserved > 41db0000-4210ffff : Kernel data > 48000000-48008fff : reserved > 80000000-800fffff : reserved > 80100000-13fffffff : System RAM > fa000000-ffffffff : reserved > 13b000000-13f5fffff : reserved > 13f6de000-13f77dfff : reserved > 13f77e000-13f77efff : reserved > 13f77f000-13f7dafff : reserved > 13f7dd000-13f7defff : reserved > 13f7df000-13f7dffff : reserved > 13f7e0000-13f7f3fff : reserved > 13f7f4000-13f7fdfff : reserved > 13f7fe000-13fffffff : reserved > > If I remove the 'no-map' qualifier from DT, I get this: > > 40000000-13fffffff : System RAM > 40210000-417fffff : Kernel code > 41800000-41daffff : reserved > 41db0000-4210ffff : Kernel data > 48000000-48008fff : reserved > 80000000-800fffff : reserved > fa000000-ffffffff : reserved > 13b000000-13f5fffff : reserved > 13f6de000-13f77dfff : reserved > 13f77e000-13f77efff : reserved > 13f77f000-13f7dafff : reserved > 13f7dd000-13f7defff : reserved > 13f7df000-13f7dffff : reserved > 13f7e0000-13f7f3fff : reserved > 13f7f4000-13f7fdfff : reserved > 13f7fe000-13fffffff : reserved > > So this does seem to be working fine on my setup. I'll try again with > 5.4 to see if I can repro. I just ran the same experiment on v5.4.102 which is where the regression was reported, and I'm seeing the same correct result... > Also, 8a5a75e5e9e5 ("of/fdt: Make sure no-map does not remove already > reserved regions") looks more likely to cause the issue observed here, > but that shouldn't be silent. I get the following error message in dmesg > if I if place the no-map region on top of the kernel image: > > OF: fdt: Reserved memory: failed to reserve memory for node 'foobar@40210000': base 0x0000000040210000, size 1 MiB > > Is that triggering on your end? So that really sounds like the cause of the issue here, though arguably this should be indicative a something funny in the DT. Thanks, Quentin _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [v5.4 stable] arm: stm32: Regression observed on "no-map" reserved memory region 2021-04-21 8:31 ` Quentin Perret 2021-04-21 8:45 ` Quentin Perret @ 2021-04-21 14:33 ` Florian Fainelli 2021-04-21 15:17 ` Florian Fainelli 2021-04-22 12:59 ` Quentin Perret 1 sibling, 2 replies; 15+ messages in thread From: Florian Fainelli @ 2021-04-21 14:33 UTC (permalink / raw) To: Quentin Perret Cc: Ard Biesheuvel, Rob Herring, Alexandre TORGUE, Greg Kroah-Hartman, Sasha Levin, stable, Arnd Bergmann, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, linux-kernel, Nicolas Boichat, Stephen Boyd, KarimAllah Ahmed, Android Kernel Team, Architecture Mailman List, Frank Rowand, linux-arm-kernel On 4/21/2021 1:31 AM, Quentin Perret wrote: > On Tuesday 20 Apr 2021 at 09:33:56 (-0700), Florian Fainelli wrote: >> I do wonder as well, we have a 32MB "no-map" reserved memory region on >> our platforms located at 0xfe000000. Without the offending commit, >> /proc/iomem looks like this: >> >> 40000000-fdffefff : System RAM >> 40008000-40ffffff : Kernel code >> 41e00000-41ef1d77 : Kernel data >> 100000000-13fffffff : System RAM >> >> and with the patch applied, we have this: >> >> 40000000-fdffefff : System RAM >> 40008000-40ffffff : Kernel code >> 41e00000-41ef3db7 : Kernel data >> fdfff000-ffffffff : System RAM >> 100000000-13fffffff : System RAM >> >> so we can now see that the region 0xfe000000 - 0xfffffff is also cobbled >> up with the preceding region which is a mailbox between Linux and the >> secure monitor at 0xfdfff000 and of size 4KB. It seems like there is >> >> The memblock=debug outputs is also different: >> >> [ 0.000000] MEMBLOCK configuration: >> [ 0.000000] memory size = 0xfdfff000 reserved size = 0x7ce4d20d >> [ 0.000000] memory.cnt = 0x2 >> [ 0.000000] memory[0x0] [0x00000040000000-0x000000fdffefff], >> 0xbdfff000 bytes flags: 0x0 >> [ 0.000000] memory[0x1] [0x00000100000000-0x0000013fffffff], >> 0x40000000 bytes flags: 0x0 >> [ 0.000000] reserved.cnt = 0x6 >> [ 0.000000] reserved[0x0] [0x00000040003000-0x0000004000e494], >> 0xb495 bytes flags: 0x0 >> [ 0.000000] reserved[0x1] [0x00000040200000-0x00000041ef1d77], >> 0x1cf1d78 bytes flags: 0x0 >> [ 0.000000] reserved[0x2] [0x00000045000000-0x000000450fffff], >> 0x100000 bytes flags: 0x0 >> [ 0.000000] reserved[0x3] [0x00000047000000-0x0000004704ffff], >> 0x50000 bytes flags: 0x0 >> [ 0.000000] reserved[0x4] [0x000000c2c00000-0x000000fdbfffff], >> 0x3b000000 bytes flags: 0x0 >> [ 0.000000] reserved[0x5] [0x00000100000000-0x0000013fffffff], >> 0x40000000 bytes flags: 0x0 >> >> [ 0.000000] MEMBLOCK configuration: >> [ 0.000000] memory size = 0x100000000 reserved size = 0x7ca4f24d >> [ 0.000000] memory.cnt = 0x3 >> [ 0.000000] memory[0x0] [0x00000040000000-0x000000fdffefff], >> 0xbdfff000 bytes flags: 0x0 >> [ 0.000000] memory[0x1] [0x000000fdfff000-0x000000ffffffff], >> 0x2001000 bytes flags: 0x4 >> [ 0.000000] memory[0x2] [0x00000100000000-0x0000013fffffff], >> 0x40000000 bytes flags: 0x0 >> [ 0.000000] reserved.cnt = 0x6 >> [ 0.000000] reserved[0x0] [0x00000040003000-0x0000004000e494], >> 0xb495 bytes flags: 0x0 >> [ 0.000000] reserved[0x1] [0x00000040200000-0x00000041ef3db7], >> 0x1cf3db8 bytes flags: 0x0 >> [ 0.000000] reserved[0x2] [0x00000045000000-0x000000450fffff], >> 0x100000 bytes flags: 0x0 >> [ 0.000000] reserved[0x3] [0x00000047000000-0x0000004704ffff], >> 0x50000 bytes flags: 0x0 >> [ 0.000000] reserved[0x4] [0x000000c3000000-0x000000fdbfffff], >> 0x3ac00000 bytes flags: 0x0 >> [ 0.000000] reserved[0x5] [0x00000100000000-0x0000013fffffff], >> 0x40000000 bytes flags: 0x0 >> >> in the second case we can clearly see that the 32MB no-map region is now >> considered as usable RAM. >> >> Hope this helps. >> >>> >>> In any case, the mere fact that this causes a regression should be >>> sufficient justification to revert/withdraw it from v5.4, as I don't >>> see a reason why it was merged there in the first place. (It has no >>> fixes tag or cc:stable) >> >> Agreed, however that means we still need to find out whether a more >> recent kernel is also broken, I should be able to tell you that a little >> later. > > FWIW I did test this on Qemu before posting. With 5.12-rc8 and a 1MiB > no-map region at 0x80000000, I have the following: > > 40000000-7fffffff : System RAM > 40210000-417fffff : Kernel code > 41800000-41daffff : reserved > 41db0000-4210ffff : Kernel data > 48000000-48008fff : reserved > 80000000-800fffff : reserved > 80100000-13fffffff : System RAM > fa000000-ffffffff : reserved > 13b000000-13f5fffff : reserved > 13f6de000-13f77dfff : reserved > 13f77e000-13f77efff : reserved > 13f77f000-13f7dafff : reserved > 13f7dd000-13f7defff : reserved > 13f7df000-13f7dffff : reserved > 13f7e0000-13f7f3fff : reserved > 13f7f4000-13f7fdfff : reserved > 13f7fe000-13fffffff : reserved > > If I remove the 'no-map' qualifier from DT, I get this: > > 40000000-13fffffff : System RAM > 40210000-417fffff : Kernel code > 41800000-41daffff : reserved > 41db0000-4210ffff : Kernel data > 48000000-48008fff : reserved > 80000000-800fffff : reserved > fa000000-ffffffff : reserved > 13b000000-13f5fffff : reserved > 13f6de000-13f77dfff : reserved > 13f77e000-13f77efff : reserved > 13f77f000-13f7dafff : reserved > 13f7dd000-13f7defff : reserved > 13f7df000-13f7dffff : reserved > 13f7e0000-13f7f3fff : reserved > 13f7f4000-13f7fdfff : reserved > 13f7fe000-13fffffff : reserved > > So this does seem to be working fine on my setup. I'll try again with > 5.4 to see if I can repro. > > Also, 8a5a75e5e9e5 ("of/fdt: Make sure no-map does not remove already > reserved regions") looks more likely to cause the issue observed here, > but that shouldn't be silent. I get the following error message in dmesg > if I if place the no-map region on top of the kernel image: > > OF: fdt: Reserved memory: failed to reserve memory for node 'foobar@40210000': base 0x0000000040210000, size 1 MiB > > Is that triggering on your end? It is not, otherwise I would have noticed earlier, can you try the same thing that happens on my platform with a reserved region (without no-map) adjacent to a reserved region with 'no-map'? I will test different and newer kernels than 5.4 today to find out if this is still a problem with upstream. I could confirm that v4.9.259 also have this problem now. -- Florian _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [v5.4 stable] arm: stm32: Regression observed on "no-map" reserved memory region 2021-04-21 14:33 ` Florian Fainelli @ 2021-04-21 15:17 ` Florian Fainelli 2021-04-22 13:03 ` Quentin Perret 2021-04-22 12:59 ` Quentin Perret 1 sibling, 1 reply; 15+ messages in thread From: Florian Fainelli @ 2021-04-21 15:17 UTC (permalink / raw) To: Quentin Perret Cc: Ard Biesheuvel, Rob Herring, Alexandre TORGUE, Greg Kroah-Hartman, Sasha Levin, stable, Arnd Bergmann, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, linux-kernel, Nicolas Boichat, Stephen Boyd, KarimAllah Ahmed, Android Kernel Team, Architecture Mailman List, Frank Rowand, linux-arm-kernel On 4/21/2021 7:33 AM, Florian Fainelli wrote: > > > On 4/21/2021 1:31 AM, Quentin Perret wrote: >> On Tuesday 20 Apr 2021 at 09:33:56 (-0700), Florian Fainelli wrote: >>> I do wonder as well, we have a 32MB "no-map" reserved memory region on >>> our platforms located at 0xfe000000. Without the offending commit, >>> /proc/iomem looks like this: >>> >>> 40000000-fdffefff : System RAM >>> 40008000-40ffffff : Kernel code >>> 41e00000-41ef1d77 : Kernel data >>> 100000000-13fffffff : System RAM >>> >>> and with the patch applied, we have this: >>> >>> 40000000-fdffefff : System RAM >>> 40008000-40ffffff : Kernel code >>> 41e00000-41ef3db7 : Kernel data >>> fdfff000-ffffffff : System RAM >>> 100000000-13fffffff : System RAM >>> >>> so we can now see that the region 0xfe000000 - 0xfffffff is also cobbled >>> up with the preceding region which is a mailbox between Linux and the >>> secure monitor at 0xfdfff000 and of size 4KB. It seems like there is >>> >>> The memblock=debug outputs is also different: >>> >>> [ 0.000000] MEMBLOCK configuration: >>> [ 0.000000] memory size = 0xfdfff000 reserved size = 0x7ce4d20d >>> [ 0.000000] memory.cnt = 0x2 >>> [ 0.000000] memory[0x0] [0x00000040000000-0x000000fdffefff], >>> 0xbdfff000 bytes flags: 0x0 >>> [ 0.000000] memory[0x1] [0x00000100000000-0x0000013fffffff], >>> 0x40000000 bytes flags: 0x0 >>> [ 0.000000] reserved.cnt = 0x6 >>> [ 0.000000] reserved[0x0] [0x00000040003000-0x0000004000e494], >>> 0xb495 bytes flags: 0x0 >>> [ 0.000000] reserved[0x1] [0x00000040200000-0x00000041ef1d77], >>> 0x1cf1d78 bytes flags: 0x0 >>> [ 0.000000] reserved[0x2] [0x00000045000000-0x000000450fffff], >>> 0x100000 bytes flags: 0x0 >>> [ 0.000000] reserved[0x3] [0x00000047000000-0x0000004704ffff], >>> 0x50000 bytes flags: 0x0 >>> [ 0.000000] reserved[0x4] [0x000000c2c00000-0x000000fdbfffff], >>> 0x3b000000 bytes flags: 0x0 >>> [ 0.000000] reserved[0x5] [0x00000100000000-0x0000013fffffff], >>> 0x40000000 bytes flags: 0x0 >>> >>> [ 0.000000] MEMBLOCK configuration: >>> [ 0.000000] memory size = 0x100000000 reserved size = 0x7ca4f24d >>> [ 0.000000] memory.cnt = 0x3 >>> [ 0.000000] memory[0x0] [0x00000040000000-0x000000fdffefff], >>> 0xbdfff000 bytes flags: 0x0 >>> [ 0.000000] memory[0x1] [0x000000fdfff000-0x000000ffffffff], >>> 0x2001000 bytes flags: 0x4 >>> [ 0.000000] memory[0x2] [0x00000100000000-0x0000013fffffff], >>> 0x40000000 bytes flags: 0x0 >>> [ 0.000000] reserved.cnt = 0x6 >>> [ 0.000000] reserved[0x0] [0x00000040003000-0x0000004000e494], >>> 0xb495 bytes flags: 0x0 >>> [ 0.000000] reserved[0x1] [0x00000040200000-0x00000041ef3db7], >>> 0x1cf3db8 bytes flags: 0x0 >>> [ 0.000000] reserved[0x2] [0x00000045000000-0x000000450fffff], >>> 0x100000 bytes flags: 0x0 >>> [ 0.000000] reserved[0x3] [0x00000047000000-0x0000004704ffff], >>> 0x50000 bytes flags: 0x0 >>> [ 0.000000] reserved[0x4] [0x000000c3000000-0x000000fdbfffff], >>> 0x3ac00000 bytes flags: 0x0 >>> [ 0.000000] reserved[0x5] [0x00000100000000-0x0000013fffffff], >>> 0x40000000 bytes flags: 0x0 >>> >>> in the second case we can clearly see that the 32MB no-map region is now >>> considered as usable RAM. >>> >>> Hope this helps. >>> >>>> >>>> In any case, the mere fact that this causes a regression should be >>>> sufficient justification to revert/withdraw it from v5.4, as I don't >>>> see a reason why it was merged there in the first place. (It has no >>>> fixes tag or cc:stable) >>> >>> Agreed, however that means we still need to find out whether a more >>> recent kernel is also broken, I should be able to tell you that a little >>> later. >> >> FWIW I did test this on Qemu before posting. With 5.12-rc8 and a 1MiB >> no-map region at 0x80000000, I have the following: >> >> 40000000-7fffffff : System RAM >> 40210000-417fffff : Kernel code >> 41800000-41daffff : reserved >> 41db0000-4210ffff : Kernel data >> 48000000-48008fff : reserved >> 80000000-800fffff : reserved >> 80100000-13fffffff : System RAM >> fa000000-ffffffff : reserved >> 13b000000-13f5fffff : reserved >> 13f6de000-13f77dfff : reserved >> 13f77e000-13f77efff : reserved >> 13f77f000-13f7dafff : reserved >> 13f7dd000-13f7defff : reserved >> 13f7df000-13f7dffff : reserved >> 13f7e0000-13f7f3fff : reserved >> 13f7f4000-13f7fdfff : reserved >> 13f7fe000-13fffffff : reserved >> >> If I remove the 'no-map' qualifier from DT, I get this: >> >> 40000000-13fffffff : System RAM >> 40210000-417fffff : Kernel code >> 41800000-41daffff : reserved >> 41db0000-4210ffff : Kernel data >> 48000000-48008fff : reserved >> 80000000-800fffff : reserved >> fa000000-ffffffff : reserved >> 13b000000-13f5fffff : reserved >> 13f6de000-13f77dfff : reserved >> 13f77e000-13f77efff : reserved >> 13f77f000-13f7dafff : reserved >> 13f7dd000-13f7defff : reserved >> 13f7df000-13f7dffff : reserved >> 13f7e0000-13f7f3fff : reserved >> 13f7f4000-13f7fdfff : reserved >> 13f7fe000-13fffffff : reserved >> >> So this does seem to be working fine on my setup. I'll try again with >> 5.4 to see if I can repro. >> >> Also, 8a5a75e5e9e5 ("of/fdt: Make sure no-map does not remove already >> reserved regions") looks more likely to cause the issue observed here, >> but that shouldn't be silent. I get the following error message in dmesg >> if I if place the no-map region on top of the kernel image: >> >> OF: fdt: Reserved memory: failed to reserve memory for node 'foobar@40210000': base 0x0000000040210000, size 1 MiB >> >> Is that triggering on your end? > > It is not, otherwise I would have noticed earlier, can you try the same > thing that happens on my platform with a reserved region (without > no-map) adjacent to a reserved region with 'no-map'? I will test > different and newer kernels than 5.4 today to find out if this is still > a problem with upstream. I could confirm that v4.9.259 also have this > problem now. 5.10.31 works correctly and shows the following for my platform: 40000000-fdffefff : System RAM 40200000-40eaffff : Kernel code 40eb0000-4237ffff : reserved 42380000-425affff : Kernel data 45000000-450fffff : reserved 47000000-4704ffff : reserved 4761e000-47624fff : reserved f8c00000-fdbfffff : reserved fdfff000-ffffffff : reserved 100000000-13fffffff : System RAM 13b000000-13effffff : reserved 13f114000-13f173fff : reserved 13f174000-13f774fff : reserved 13f775000-13f7e8fff : reserved 13f7eb000-13f7ecfff : reserved 13f7ed000-13f7effff : reserved 13f7f0000-13fffffff : reserved -- Florian _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [v5.4 stable] arm: stm32: Regression observed on "no-map" reserved memory region 2021-04-21 15:17 ` Florian Fainelli @ 2021-04-22 13:03 ` Quentin Perret 0 siblings, 0 replies; 15+ messages in thread From: Quentin Perret @ 2021-04-22 13:03 UTC (permalink / raw) To: Florian Fainelli Cc: Ard Biesheuvel, Rob Herring, Alexandre TORGUE, Greg Kroah-Hartman, Sasha Levin, stable, Arnd Bergmann, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, linux-kernel, Nicolas Boichat, Stephen Boyd, KarimAllah Ahmed, Android Kernel Team, Architecture Mailman List, Frank Rowand, linux-arm-kernel On Wednesday 21 Apr 2021 at 08:17:28 (-0700), Florian Fainelli wrote: > 5.10.31 works correctly and shows the following for my platform: > > 40000000-fdffefff : System RAM > 40200000-40eaffff : Kernel code > 40eb0000-4237ffff : reserved > 42380000-425affff : Kernel data > 45000000-450fffff : reserved > 47000000-4704ffff : reserved > 4761e000-47624fff : reserved > f8c00000-fdbfffff : reserved > fdfff000-ffffffff : reserved > 100000000-13fffffff : System RAM > 13b000000-13effffff : reserved > 13f114000-13f173fff : reserved > 13f174000-13f774fff : reserved > 13f775000-13f7e8fff : reserved > 13f7eb000-13f7ecfff : reserved > 13f7ed000-13f7effff : reserved > 13f7f0000-13fffffff : reserved OK, so if we're confident this works from 5.10 onwards, I would suggest to follow Ard's original suggestion to revert this patch from older LTSes as we're clearly missing something there. Thanks, Quentin _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [v5.4 stable] arm: stm32: Regression observed on "no-map" reserved memory region 2021-04-21 14:33 ` Florian Fainelli 2021-04-21 15:17 ` Florian Fainelli @ 2021-04-22 12:59 ` Quentin Perret 2021-05-07 15:15 ` Alexandre TORGUE 1 sibling, 1 reply; 15+ messages in thread From: Quentin Perret @ 2021-04-22 12:59 UTC (permalink / raw) To: Florian Fainelli Cc: Ard Biesheuvel, Rob Herring, Alexandre TORGUE, Greg Kroah-Hartman, Sasha Levin, stable, Arnd Bergmann, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, linux-kernel, Nicolas Boichat, Stephen Boyd, KarimAllah Ahmed, Android Kernel Team, Architecture Mailman List, Frank Rowand, linux-arm-kernel On Wednesday 21 Apr 2021 at 07:33:52 (-0700), Florian Fainelli wrote: > It is not, otherwise I would have noticed earlier, can you try the same > thing that happens on my platform with a reserved region (without > no-map) adjacent to a reserved region with 'no-map'? I just tried, but still no luck. FTR, I tried to reproduce your setup with the following DT: memory@40000000 { reg = <0x00 0x40000000 0x01 0x00>; device_type = "memory"; }; reserved-memory { #address-cells = <2>; #size-cells = <2>; ranges; foo@fdfff000{ reg = <0x00 0xfdfff000 0x0 0x1000>; }; bar@fe000000{ reg = <0x00 0xfe000000 0x0 0x2000000>; no-map; }; }; And with 5.4.102 and 5.10.31 I get the following in /proc/iomem <...> 40000000-fdffffff : System RAM 40080000-412cffff : Kernel code 412d0000-417affff : reserved 417b0000-419f8fff : Kernel data 48000000-48008fff : reserved f7c00000-fdbfffff : reserved fdfff000-fdffffff : reserved fe000000-ffffffff : reserved 100000000-13fffffff : System RAM <...> which looks about right. I'll keep trying a few other things. Thanks, Quentin _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [v5.4 stable] arm: stm32: Regression observed on "no-map" reserved memory region 2021-04-22 12:59 ` Quentin Perret @ 2021-05-07 15:15 ` Alexandre TORGUE 2021-05-10 10:09 ` Quentin Perret 0 siblings, 1 reply; 15+ messages in thread From: Alexandre TORGUE @ 2021-05-07 15:15 UTC (permalink / raw) To: Quentin Perret, Florian Fainelli Cc: Ard Biesheuvel, Rob Herring, Greg Kroah-Hartman, Sasha Levin, stable, Arnd Bergmann, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, linux-kernel, Nicolas Boichat, Stephen Boyd, KarimAllah Ahmed, Android Kernel Team, Architecture Mailman List, Frank Rowand, linux-arm-kernel Hi Quentin On 4/22/21 2:59 PM, Quentin Perret wrote: > On Wednesday 21 Apr 2021 at 07:33:52 (-0700), Florian Fainelli wrote: >> It is not, otherwise I would have noticed earlier, can you try the same >> thing that happens on my platform with a reserved region (without >> no-map) adjacent to a reserved region with 'no-map'? > > I just tried, but still no luck. FTR, I tried to reproduce your setup > with the following DT: > > memory@40000000 { > reg = <0x00 0x40000000 0x01 0x00>; > device_type = "memory"; > }; > > reserved-memory { > #address-cells = <2>; > #size-cells = <2>; > ranges; > > foo@fdfff000{ > reg = <0x00 0xfdfff000 0x0 0x1000>; > }; > bar@fe000000{ > reg = <0x00 0xfe000000 0x0 0x2000000>; > no-map; > }; > }; > > And with 5.4.102 and 5.10.31 I get the following in /proc/iomem > > <...> > 40000000-fdffffff : System RAM > 40080000-412cffff : Kernel code > 412d0000-417affff : reserved > 417b0000-419f8fff : Kernel data > 48000000-48008fff : reserved > f7c00000-fdbfffff : reserved > fdfff000-fdffffff : reserved > fe000000-ffffffff : reserved > 100000000-13fffffff : System RAM > <...> > > which looks about right. I'll keep trying a few other things. Did you get time to continue some tests on this issue ? On my side this DT is not working: memory@c0000000 { reg = <0xc0000000 0x20000000>; }; reserved-memory { #address-cells = <1>; #size-cells = <1>; ranges; gpu_reserved: gpu@d4000000 { reg = <0xd4000000 0x4000000>; no-map; }; }; Let me know if I can help. regards Alex > Thanks, > Quentin > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [v5.4 stable] arm: stm32: Regression observed on "no-map" reserved memory region 2021-05-07 15:15 ` Alexandre TORGUE @ 2021-05-10 10:09 ` Quentin Perret 2021-05-12 10:55 ` Alexandre TORGUE 0 siblings, 1 reply; 15+ messages in thread From: Quentin Perret @ 2021-05-10 10:09 UTC (permalink / raw) To: Alexandre TORGUE Cc: Florian Fainelli, Ard Biesheuvel, Rob Herring, Greg Kroah-Hartman, Sasha Levin, stable, Arnd Bergmann, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, linux-kernel, Nicolas Boichat, Stephen Boyd, KarimAllah Ahmed, Android Kernel Team, Architecture Mailman List, Frank Rowand, linux-arm-kernel Hi Alexandre, On Friday 07 May 2021 at 17:15:20 (+0200), Alexandre TORGUE wrote: > Did you get time to continue some tests on this issue ? I did try a few things, but still fail to reproduced :/ > On my side this DT is not working: > > memory@c0000000 { > reg = <0xc0000000 0x20000000>; > }; > > reserved-memory { > #address-cells = <1>; > #size-cells = <1>; > ranges; > > gpu_reserved: gpu@d4000000 { > reg = <0xd4000000 0x4000000>; > no-map; > }; > }; So this does change how memory appears in /proc/iomem for me switching from 5.4.101 to v5.4.102 -- for the former d4000000-d7ffffff doesn't appear at all, and for the latter it appears as 'reserved'. But still, it never gets accounted as System RAM for me ... > Let me know if I can help. Could you please confirm you get a correct behaviour with 5.10.31 like Florian? If so, then bisecting to figure out what we're missing in older LTSes would help, but again it feels like we should just revert -- this wasn't really a fix in the first place. Thanks, Quentin _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [v5.4 stable] arm: stm32: Regression observed on "no-map" reserved memory region 2021-05-10 10:09 ` Quentin Perret @ 2021-05-12 10:55 ` Alexandre TORGUE 2021-05-12 12:34 ` Quentin Perret 0 siblings, 1 reply; 15+ messages in thread From: Alexandre TORGUE @ 2021-05-12 10:55 UTC (permalink / raw) To: Quentin Perret Cc: Florian Fainelli, Ard Biesheuvel, Rob Herring, Greg Kroah-Hartman, Sasha Levin, stable, Arnd Bergmann, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, linux-kernel, Nicolas Boichat, Stephen Boyd, KarimAllah Ahmed, Android Kernel Team, Architecture Mailman List, Frank Rowand, linux-arm-kernel Hi Quentin, On 5/10/21 12:09 PM, Quentin Perret wrote: > Hi Alexandre, > > On Friday 07 May 2021 at 17:15:20 (+0200), Alexandre TORGUE wrote: >> Did you get time to continue some tests on this issue ? > > I did try a few things, but still fail to reproduced :/ > >> On my side this DT is not working: >> >> memory@c0000000 { >> reg = <0xc0000000 0x20000000>; >> }; >> >> reserved-memory { >> #address-cells = <1>; >> #size-cells = <1>; >> ranges; >> >> gpu_reserved: gpu@d4000000 { >> reg = <0xd4000000 0x4000000>; >> no-map; >> }; >> }; > > So this does change how memory appears in /proc/iomem for me switching > from 5.4.101 to v5.4.102 -- for the former d4000000-d7ffffff doesn't > appear at all, and for the latter it appears as 'reserved'. > > But still, it never gets accounted as System RAM for me ... > >> Let me know if I can help. > > Could you please confirm you get a correct behaviour with 5.10.31 like > Florian? If so, then bisecting to figure out what we're missing in older > LTSes would help, but again it feels like we should just revert -- this > wasn't really a fix in the first place. We saw that patches [1] and [2] cause issue on stable version (at least for 5.4). As you said issue can be seen with above device tree and check in /proc/iomem than gpu_reserved region is taken by the kernel as "System RAM". On v5.10 stream there are no issues seen taking patches [1]&[2] and the reason is linked to patches [3]&[4] which have been introduced in v5.10.0. Reverting them give me the same behavior than on stable version. [1] of/fdt: Make sure no-map does not remove already reserved regions [2] fdt: Properly handle "no-map" field in the memory region [3] arch, drivers: replace for_each_membock() with for_each_mem_range() [4] memblock: use separate iterators for memory and reserved regions regards Alex > > Thanks, > Quentin > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [v5.4 stable] arm: stm32: Regression observed on "no-map" reserved memory region 2021-05-12 10:55 ` Alexandre TORGUE @ 2021-05-12 12:34 ` Quentin Perret 2021-05-12 12:44 ` Alexandre TORGUE 0 siblings, 1 reply; 15+ messages in thread From: Quentin Perret @ 2021-05-12 12:34 UTC (permalink / raw) To: Alexandre TORGUE Cc: Florian Fainelli, Ard Biesheuvel, Rob Herring, Greg Kroah-Hartman, Sasha Levin, stable, Arnd Bergmann, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, linux-kernel, Nicolas Boichat, Stephen Boyd, KarimAllah Ahmed, Android Kernel Team, Architecture Mailman List, Frank Rowand, linux-arm-kernel On Wednesday 12 May 2021 at 12:55:53 (+0200), Alexandre TORGUE wrote: > We saw that patches [1] and [2] cause issue on stable version (at least for > 5.4). As you said issue can be seen with above device tree and check in > /proc/iomem than gpu_reserved region is taken by the kernel as "System RAM". > > On v5.10 stream there are no issues seen taking patches [1]&[2] and the > reason is linked to patches [3]&[4] which have been introduced in v5.10.0. > Reverting them give me the same behavior than on stable version. Thanks for confirming. Given that the patches were not really fixes, I think reverting is still the best option. I've sent reverts to -stable for 5.4 and prior: https://lore.kernel.org/stable/20210512122853.3243417-1-qperret@google.com/ Cheers, Quentin _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [v5.4 stable] arm: stm32: Regression observed on "no-map" reserved memory region 2021-05-12 12:34 ` Quentin Perret @ 2021-05-12 12:44 ` Alexandre TORGUE 0 siblings, 0 replies; 15+ messages in thread From: Alexandre TORGUE @ 2021-05-12 12:44 UTC (permalink / raw) To: Quentin Perret Cc: Florian Fainelli, Ard Biesheuvel, Rob Herring, Greg Kroah-Hartman, Sasha Levin, stable, Arnd Bergmann, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, linux-kernel, Nicolas Boichat, Stephen Boyd, KarimAllah Ahmed, Android Kernel Team, Architecture Mailman List, Frank Rowand, linux-arm-kernel On 5/12/21 2:34 PM, Quentin Perret wrote: > On Wednesday 12 May 2021 at 12:55:53 (+0200), Alexandre TORGUE wrote: >> We saw that patches [1] and [2] cause issue on stable version (at least for >> 5.4). As you said issue can be seen with above device tree and check in >> /proc/iomem than gpu_reserved region is taken by the kernel as "System RAM". >> >> On v5.10 stream there are no issues seen taking patches [1]&[2] and the >> reason is linked to patches [3]&[4] which have been introduced in v5.10.0. >> Reverting them give me the same behavior than on stable version. > > Thanks for confirming. Given that the patches were not really fixes, I > think reverting is still the best option. I've sent reverts to -stable > for 5.4 and prior: > > https://lore.kernel.org/stable/20210512122853.3243417-1-qperret@google.com/ > Thanks Quentin. alex > Cheers, > Quentin > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [v5.4 stable] arm: stm32: Regression observed on "no-map" reserved memory region 2021-04-20 16:10 ` Ard Biesheuvel 2021-04-20 16:33 ` Florian Fainelli @ 2021-04-20 21:05 ` Rob Herring 1 sibling, 0 replies; 15+ messages in thread From: Rob Herring @ 2021-04-20 21:05 UTC (permalink / raw) To: Ard Biesheuvel Cc: Alexandre TORGUE, Quentin Perret, Greg Kroah-Hartman, Sasha Levin, stable, Arnd Bergmann, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, linux-kernel, Nicolas Boichat, Stephen Boyd, Florian Fainelli, KarimAllah Ahmed, Android Kernel Team, Architecture Mailman List, Frank Rowand, linux-arm-kernel On Tue, Apr 20, 2021 at 11:10 AM Ard Biesheuvel <ardb@kernel.org> wrote: > > On Tue, 20 Apr 2021 at 17:54, Rob Herring <robh+dt@kernel.org> wrote: > > > > On Tue, Apr 20, 2021 at 10:12 AM Alexandre TORGUE > > <alexandre.torgue@foss.st.com> wrote: > > > > > > > > > > > > On 4/20/21 4:45 PM, Rob Herring wrote: > > > > On Tue, Apr 20, 2021 at 9:03 AM Alexandre TORGUE > > > > <alexandre.torgue@foss.st.com> wrote: > > > >> > > > >> Hi, > > > > > > > > Greg or Sasha won't know what to do with this. Not sure who follows > > > > the stable list either. Quentin sent the patch, but is not the author. > > > > Given the patch in question is about consistency between EFI memory > > > > map boot and DT memory map boot, copying EFI knowledgeable folks would > > > > help (Ard B for starters). > > > > > > Ok thanks for the tips. I add Ard in the loop. > > > > Sigh. If it was only Ard I was suggesting I would have done that > > myself. Now everyone on the patch in question and relevant lists are > > Cc'ed. > > > > Thanks for the cc. > > > > > > > Ard, let me know if other people have to be directly added or if I have > > > to resend to another mailing list. > > > > > > thanks > > > alex > > > > > > > > > > >> > > > >> Since v5.4.102 I observe a regression on stm32mp1 platform: "no-map" > > > >> reserved-memory regions are no more "reserved" and make part of the > > > >> kernel System RAM. This causes allocation failure for devices which try > > > >> to take a reserved-memory region. > > > >> > > > >> It has been introduced by the following path: > > > >> > > > >> "fdt: Properly handle "no-map" field in the memory region > > > >> [ Upstream commit 86588296acbfb1591e92ba60221e95677ecadb43 ]" > > > >> which replace memblock_remove by memblock_mark_nomap in no-map case. > > > >> > > Why was this backported? It doesn't look like a bugfix to me. Probably because of commit 8a5a75e5e9e5 ("of/fdt: Make sure no-map does not remove already reserved regions") which was in the same series. 'Properly handle' implies before it was 'improperly handled', so sounds like a fix. Rob _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2021-05-12 12:45 UTC | newest] Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <4a4734d6-49df-677b-71d3-b926c44d89a9@foss.st.com> [not found] ` <CAL_JsqKGG8E9Y53+az+5qAOOGiZRAA-aD-1tKB-hcOp+m3CJYw@mail.gmail.com> [not found] ` <001f8550-b625-17d2-85a6-98a483557c70@foss.st.com> 2021-04-20 15:54 ` [v5.4 stable] arm: stm32: Regression observed on "no-map" reserved memory region Rob Herring 2021-04-20 16:10 ` Ard Biesheuvel 2021-04-20 16:33 ` Florian Fainelli 2021-04-21 8:31 ` Quentin Perret 2021-04-21 8:45 ` Quentin Perret 2021-04-21 14:33 ` Florian Fainelli 2021-04-21 15:17 ` Florian Fainelli 2021-04-22 13:03 ` Quentin Perret 2021-04-22 12:59 ` Quentin Perret 2021-05-07 15:15 ` Alexandre TORGUE 2021-05-10 10:09 ` Quentin Perret 2021-05-12 10:55 ` Alexandre TORGUE 2021-05-12 12:34 ` Quentin Perret 2021-05-12 12:44 ` Alexandre TORGUE 2021-04-20 21:05 ` Rob Herring
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).