diff --git a/JOURNAL.md b/JOURNAL.md index 4733b14..b18a591 100644 --- a/JOURNAL.md +++ b/JOURNAL.md @@ -1040,3 +1040,28 @@ Let's see if we can reproduce it again in the same position. Let's make it automatic, so we only need to boot and confirm that it hangs. Just in case we can make it not hang by a miracle. + + +With blocks of up to 64K we hang in the ~50 M region. + + iter=2042 nblocks=1577 allocated=50458K (A) + iter=2043 nblocks=1578 allocated=50489K (A) + iter=2044 nblocks=1579 allocated=50550K (A) + iter=2045 nblocks=1580 allocated=50605K (A) + +With blocks of maxsize=512K it also hangs around ~57M. + + memtool v1.0.0 maxsize=512K + iter=0 nblocks=1 allocated=88K (A) + iter=1 nblocks=2 allocated=464K (A) + ... + iter=275 nblocks=218 allocated=56674K (A) + iter=276 nblocks=219 allocated=56787K (A) + iter=277 nblocks=220 allocated=57252K (A) + iter=278 nblocks=221 allocated=57493K (A) + iter=279 nblocks=222 allocated=57581K (A) + iter=280 nblocks=221 allocated=57416K (D) + iter=281 nblocks=222 allocated=57521K (A) + +Maybe there is a problem in the memory segment? Can we reduce it to 1 GiB only +and see if it has any effect? diff --git a/ox-plic.dts b/ox-plic.dts index f66ce9a..3bc0e47 100644 --- a/ox-plic.dts +++ b/ox-plic.dts @@ -70,14 +70,14 @@ * * [0x0_6000_0000, 0x0_7000_0000) -> DMA pool (256 MiB) * [0x0_7000_0000, 0x0_8000_0000) -> DMA pool (256 MiB) - * [0x0_8000_0000, 0x0_fff0_0000) -> RAM memory (2047 MiB) - * [0x0_fff0_0000, 0x1_0000_0000) -> Empty (1 MiB) + * [0x0_8000_0000, 0x0_fff0_0000) -> RAM memory (1024 MiB) + * [0x0_fff0_0000, 0x1_0000_0000) -> Empty (1024 MiB) * [0x1_0000_0000, 0x1_c000_0000) -> PMEM (3072 MiB) * [0x1_c000_0000, 0x2_8000_0000) -> Empty (3072 MiB) */ memory@80000000 { device_type = "memory"; - reg = <0x0 0x80000000 0x0 0x7ff00000>; + reg = <0x0 0x80000000 0x0 0x40000000>; }; reserved-memory { #address-cells = <2>; /* Starting address and size */