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