param.json: ask the kernel for 1 GiB of flexible memory

sce_sys/param.json now carries kernel.flexibleMemorySize = 1073741824,
the most the kernel accepts. Without it the title has 448 MiB of flexible
memory; the extra 576 MiB comes out of direct memory. I want the room for
heavier cores and content, though no core measured today ran short.
The updater installs sce_sys/param.json, so the next release brings it.

Proven on the PS5 Pro (firmware 10.01) with the installed release, build
716a3c05, four runs (evidence/flexible-memory-1g). The 1 GiB runs used
this commit's param.json bytes, put back and read back after each run:
- klog FMEM size 0x1c000000 -> 0x40000000, DMEM size 0x300000000 ->
  0x2dc000000.
- Dolphin, a GameCube game: 359,424 -> 949,248 KiB of flexible memory
  free, flat all run; MARK frames 2266 / 2303 at 70 s.
- The PS2 core, a PS2 game: 402,432 -> 992,256 KiB free; MARK frames
  4606 / 4606 at 80 s, worst frame 20.6 / 19.4 ms.
- Every run stopped by its pad script, rarch_main returned 0.

Not yet run on the base PS5 (13.40), which was unreachable. tools/lint.sh's
param.json checks pass; the script still fails, before and after, on a
clang-tidy entry for tests/display_modes_ps5_test.cpp.
This commit is contained in:
Mihawk committed 2026-10-05 13:46:35 -04:00
1 parent 5eb7e0f2e6
commit edf4188122
3 files changed
+98

No files matched your search

+73
View File
@@ -0,0 +1,73 @@
{
"step": "flexible-memory-1g",
"recorded": "2026-10-05T16:15:59Z",
"console_run": "PS5 Pro, firmware 10.01, 2026-10-05: four runs of the installed release, PPSA99169",
"revision": "release build 716a3c05 on the console; sce_sys/param.json of e4a2e49 plus the kernel block",
"command": "python3 klog/flexible-memory-1g-20261005/ab.py gc|ps2 base|1g (a scratch driver: idle check, test files, param.json swap and restore, launch, klog, trace)",
"raw_capture": "klog/flexible-memory-1g-20261005/summary.txt",
"raw_lines": 61,
"raw_bytes": 5288,
"lines": [
"==> klog/flexible-memory-1g-20261005/ab.py <game> base|1g: the installed release (build 716a3c05), launched by the control payload with args.txt -L <core> <content>, ps5vk-profile.txt and a pad script (MARK every 10 s from 20 s, STOP at 92 s); 1g puts kernel.flexibleMemorySize = 1073741824 into /app0/sce_sys/param.json for the run, then restores the original and reads it back",
"gc-base: a GameCube game (dolphin_libretro), param.json as committed (no kernel key)",
"gc-base: klog FMEM size 0x1c000000 DMEM size 0x300000000; ended by itself at 101 s; param.json restored True",
"gc-base: memory: event=startup result=0 request=0 known=1 pool=12884901888 free=12845056000 largest=12845056000 ranges=1 flexible=419430400 cpu_heap=33554432 gpu=0 gpu_known=1",
"gc-base: memory: flexible_free=359424 KiB",
"gc-base: memory: platform exec=2/235MiB shm=1/64MiB views=23 ranges=1/14336MiB committed=0MiB",
"gc-base: input: pad script MARK at 20.003 s: frames=768 worst_ms=1404.9 over_40ms=14",
"gc-base: input: pad script MARK at 30.001 s: frames=1067 worst_ms=53.0 over_40ms=16",
"gc-base: input: pad script MARK at 40.009 s: frames=1367 worst_ms=35.1 over_40ms=16",
"gc-base: input: pad script MARK at 50.019 s: frames=1667 worst_ms=36.3 over_40ms=16",
"gc-base: input: pad script MARK at 60.010 s: frames=1967 worst_ms=50.0 over_40ms=17",
"gc-base: input: pad script MARK at 70.003 s: frames=2266 worst_ms=50.0 over_40ms=18",
"gc-base: input: pad script MARK at 80.013 s: frames=2566 worst_ms=43.7 over_40ms=19",
"gc-base: input: pad script STOP at 92.01 s",
"gc-base: rarch_main returned = 0",
"gc-base: native quit: frontend status = 0",
"gc-1g: a GameCube game (dolphin_libretro), param.json with kernel.flexibleMemorySize 1073741824",
"gc-1g: klog FMEM size 0x40000000 DMEM size 0x2dc000000; ended by itself at 101 s; param.json restored True",
"gc-1g: memory: event=startup result=0 request=0 known=1 pool=12280922112 free=12241076224 largest=12241076224 ranges=1 flexible=1023410176 cpu_heap=33554432 gpu=0 gpu_known=1",
"gc-1g: memory: flexible_free=949248 KiB",
"gc-1g: memory: platform exec=2/235MiB shm=1/64MiB views=23 ranges=1/14336MiB committed=0MiB",
"gc-1g: input: pad script MARK at 20.003 s: frames=805 worst_ms=1349.4 over_40ms=6",
"gc-1g: input: pad script MARK at 30.011 s: frames=1105 worst_ms=49.9 over_40ms=7",
"gc-1g: input: pad script MARK at 40.019 s: frames=1405 worst_ms=35.2 over_40ms=7",
"gc-1g: input: pad script MARK at 50.010 s: frames=1705 worst_ms=36.3 over_40ms=7",
"gc-1g: input: pad script MARK at 60.004 s: frames=2004 worst_ms=49.8 over_40ms=8",
"gc-1g: input: pad script MARK at 70.000 s: frames=2303 worst_ms=50.1 over_40ms=9",
"gc-1g: input: pad script MARK at 80.007 s: frames=2603 worst_ms=43.6 over_40ms=10",
"gc-1g: input: pad script STOP at 92.00 s",
"gc-1g: rarch_main returned = 0",
"gc-1g: native quit: frontend status = 0",
"ps2-base: a PS2 game (pcsx2_libretro), param.json as committed (no kernel key)",
"ps2-base: klog FMEM size 0x1c000000 DMEM size 0x300000000; ended by itself at 101 s; param.json restored True",
"ps2-base: memory: event=startup result=0 request=0 known=1 pool=12884901888 free=12845056000 largest=12845056000 ranges=1 flexible=419430400 cpu_heap=33554432 gpu=0 gpu_known=1",
"ps2-base: memory: flexible_free=402432 KiB",
"ps2-base: memory: platform exec=2/365MiB shm=2/324MiB views=12008 ranges=2/4112MiB committed=0MiB",
"ps2-base: input: pad script MARK at 20.006 s: frames=1009 worst_ms=21.0 over_40ms=0",
"ps2-base: input: pad script MARK at 30.016 s: frames=1609 worst_ms=19.7 over_40ms=0",
"ps2-base: input: pad script MARK at 40.009 s: frames=2208 worst_ms=20.0 over_40ms=0",
"ps2-base: input: pad script MARK at 50.002 s: frames=2807 worst_ms=19.7 over_40ms=0",
"ps2-base: input: pad script MARK at 60.012 s: frames=3407 worst_ms=19.9 over_40ms=0",
"ps2-base: input: pad script MARK at 70.006 s: frames=4006 worst_ms=20.4 over_40ms=0",
"ps2-base: input: pad script MARK at 80.016 s: frames=4606 worst_ms=20.6 over_40ms=0",
"ps2-base: input: pad script STOP at 92.01 s",
"ps2-base: rarch_main returned = 0",
"ps2-base: native quit: frontend status = 0",
"ps2-1g: a PS2 game (pcsx2_libretro), param.json with kernel.flexibleMemorySize 1073741824",
"ps2-1g: klog FMEM size 0x40000000 DMEM size 0x2dc000000; ended by itself at 98 s; param.json restored True",
"ps2-1g: memory: event=startup result=0 request=0 known=1 pool=12280922112 free=12241076224 largest=12241076224 ranges=1 flexible=1023410176 cpu_heap=33554432 gpu=0 gpu_known=1",
"ps2-1g: memory: flexible_free=992256 KiB",
"ps2-1g: memory: platform exec=2/365MiB shm=2/324MiB views=12008 ranges=2/4112MiB committed=0MiB",
"ps2-1g: input: pad script MARK at 20.015 s: frames=1010 worst_ms=21.0 over_40ms=0",
"ps2-1g: input: pad script MARK at 30.008 s: frames=1609 worst_ms=20.8 over_40ms=0",
"ps2-1g: input: pad script MARK at 40.002 s: frames=2208 worst_ms=20.1 over_40ms=0",
"ps2-1g: input: pad script MARK at 50.012 s: frames=2808 worst_ms=19.8 over_40ms=0",
"ps2-1g: input: pad script MARK at 60.005 s: frames=3407 worst_ms=20.1 over_40ms=0",
"ps2-1g: input: pad script MARK at 70.015 s: frames=4007 worst_ms=20.1 over_40ms=0",
"ps2-1g: input: pad script MARK at 80.008 s: frames=4606 worst_ms=19.4 over_40ms=0",
"ps2-1g: input: pad script STOP at 92.00 s",
"ps2-1g: rarch_main returned = 0",
"ps2-1g: native quit: frontend status = 0"
]
}
@@ -0,0 +1,22 @@
{
"step": "flexible-memory-1g",
"note": "kernel.flexibleMemorySize = 1 GiB in param.json: the kernel gives the title 1 GiB of flexible memory (FMEM 0x40000000) and 576 MiB less direct memory (DMEM 0x2dc000000); Dolphin and the PS2 core keep their frame counts and end cleanly, with 2.6x and 2.5x the flexible memory free.",
"must_contain": [
"gc-1g: klog FMEM size 0x40000000 DMEM size 0x2dc000000",
"ps2-1g: klog FMEM size 0x40000000 DMEM size 0x2dc000000",
"gc-base: klog FMEM size 0x1c000000 DMEM size 0x300000000",
"gc-1g: memory: flexible_free=949248 KiB",
"gc-base: memory: flexible_free=359424 KiB",
"ps2-1g: memory: flexible_free=992256 KiB",
"ps2-base: memory: flexible_free=402432 KiB",
"gc-1g: input: pad script MARK at 80.007 s: frames=2603",
"ps2-1g: input: pad script MARK at 80.008 s: frames=4606 worst_ms=19.4 over_40ms=0",
"ps2-1g: rarch_main returned = 0",
"gc-1g: rarch_main returned = 0",
"param.json restored True"
],
"must_not_contain": [
"param.json restored False"
],
"human_check": "The 1g runs report FMEM 0x40000000 and about 2.6x the flexible memory free of the base runs, with the same MARK frame counts and a clean rarch_main return."
}
+3
View File
@@ -19,6 +19,9 @@
}
]
},
"kernel": {
"flexibleMemorySize": 1073741824
},
"localizedParameters": {
"defaultLanguage": "en-US",
"en-US": {