Repository navigation
feat(libkernel): report no write throttling in sceKernelWriteThrottlingStatus - #1095
Merged
Merged
Conversation
|
Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.
|
This was referenced Oct 7, 2026
This was referenced Oct 7, 2026
…ngStatus The host has no SSD write budget, so the status reports the largest budget in its first qword and zeroes the rest.
Collaborator
|
Checked: build + full ctest on this head (390/390) and on the rebase (419/419); It conflicted with main in |
adriadam10
force-pushed
the
feat/libkernel-write-throttling
branch
from
October 8, 2026 06:43
53c8e67 to
329c825
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds
sceKernelWriteThrottlingStatus(uint64_t status[4]). The PS5 limits how much a title may write to the SSD; this call reports the current state. The host has no such budget, so the call always reports that writing is not throttled:status[0](a write allowance in 64 KiB units) =UINT32_MAXstatus[1..3]= 0The signature and the unit of
status[0]come from PPSA17221 (Minecraft). Its only caller (eboot VA0xb7338b0) works as follows:0x8F00000,0x11F00001,0x25700001and0x4AF00001to pick one of five tiers.0x4B000001bytes instead. That takes the same top tier asUINT32_MAX.TechnicalDebt (Functional) records what remains unknown: whether the value is a remaining budget or a rate on hardware, and what the other three qwords mean.
The function sits next to
sceKernelFsyncinFile/src/Stdio.cpp.guest_filesystemchecks the written values.Title
PPSA17221 (Minecraft) needs #716 to load the modules in its app root, so every run below is current
main+ #716 + the PRs of this set (#1088, #1090–#1096), plus local changes outside it: dialog, NpAuth and TextToSpeech2 stubs that open PRs cover (#560, #925, #301) and a GPU end-of-pipe change that is not submitted. With all of them the title loads a world. The line below is from a run with only this PR left out, Windows 11, WinLibs GCC, normal user session.Without it startup stops at load:
YFC3dBBipj8issceKernelWriteThrottlingStatus.Tested
Debian 13 (WSL2), GCC 14.2.0, Release: full
ctest390/390 passed (GPU tests skipped: no Vulkan device in WSL), includingguest_filesystem.Windows 11, WinLibs GCC: PPSA17221 with this PR and the rest of the set loads a world (runs described above). Not tested with Windows
ctest.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed in TechnicalDebt.mdfiles or images added to the repository (attach them to this PR)