Repository navigation
docs(libkernel): name what the emulators do for the size and flags of sceKernelVirtualQuery - #13995
Conversation
… sceKernelVirtualQuery Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
MarcZX10
left a comment
There was a problem hiding this comment.
Reviewed — looks good
The new debt entry clearly separates AnyPS5's current behavior from emulator references and labels console semantics as unmeasured.
What I ran
Reviewed head f5a60e25c16a4e5872ca5dd8045f4800a036c43d against base 73f4f7e06e4f210a8c6570e335fd654dc0a86134; no build or merge-preview was run. The change only adds one documentation line.
git diff --check 73f4f7e06e4f210a8c6570e335fd654dc0a86134...f5a60e25c16a4e5872ca5dd8045f4800a036c43d
python3 tools/check_conventions.py --base 73f4f7e06e4f210a8c6570e335fd654dc0a86134 --head f5a60e25c16a4e5872ca5dd8045f4800a036c43dResults
| Check | Result |
|---|---|
| Diff check | Passed. |
| Conventions and PR template | Passed. |
| Hosted eligibility, intake, and labels | Passed. |
| Build/tests | Not applicable to the documentation-only change; not run. |
Unedited diff-check output
Unedited conventions output
All conventions checks passed.
Sources
- AnyPS5
sceKernelVirtualQuerybehavior and the new debt entry at the reviewed head - KytyPS5 validation of
info_sizeandflags - fpPS4 exact-size validation and
EFAULT - shadPS4 forwards
flagsbut notinfoSizeto its query method
Not verified
No console behavior was measured; the PR explicitly marks it as unknown. No build or tests were run because the PR changes documentation only.
MarcZX10
left a comment
There was a problem hiding this comment.
Reviewed — evidence clarification requested
The host behavior and KytyPS5 comparison are supported, but the precise fpPS4 EFAULT claim is not established by the pinned source cited in the entry, so I am withholding approval pending clarification.
What I ran
Reviewed head f5a60e25c16a4e5872ca5dd8045f4800a036c43d against base 73f4f7e06e4f210a8c6570e335fd654dc0a86134. The individual merge preview against current main 474030e58424fefdb65e5df9f3820810fbb4553c was clean. Environment: Linux x86_64, Python 3.11.2, Git 2.39.5; no compiler was used.
python3 tools/pr_precheck.py --repo boykopovar/AnyPS5 --pr 13995
git diff --check 73f4f7e06e4f210a8c6570e335fd654dc0a86134...f5a60e25c16a4e5872ca5dd8045f4800a036c43d
python3 tools/pr_stack_check.py 13995 --repo boykopovar/AnyPS5I inspected the changed debt entry, the current sceKernelVirtualQuery implementation, and the KytyPS5, shadPS4, and fpPS4 code at the commits named in the PR.
Results
| Check | Result |
|---|---|
| Diff whitespace | Passed |
| Repository conventions and PR template | Passed |
Individual merge preview against current main |
Clean |
| Hosted conventions, eligibility, intake, labels | Passed |
| Hosted build/test jobs | Skipped by CI for this documentation-only change |
| Test-quality helper | Could not execute because it was absent from the isolated PR snapshot; not applicable to this change |
Unedited check output
Diff check exited 0 with no output.
Conventions:
All conventions checks passed.
Merge preview:
- PR #13995: **clean** against current base; head `f5a60e25c16a4e5872ca5dd8045f4800a036c43d`; changed paths: none reported
No declared PR dependencies were found in the target PR chain.
The test-quality helper could not be found in the isolated snapshot:
/usr/bin/python3: can't open file '/tmp/anyps5-pr-precheck/boykopovar-AnyPS5-pr-13995-f5a60e25c16a/head-f5a60e25c16a-24490ba4/tools/pr_test_quality.py': [Errno 2] No such file or directory
Hosted checks: conventions, eligibility, intake, and labels passed; Linux, Windows, relinker, relinker-asan, register-context, and write-watch were skipped.
Findings
Blocking
None established.
Non-blocking
The pinned fpPS4 implementation delegates to _sys_virtual_query and maps the result with px2sce; the cited file does not show that an info_size mismatch returns EFAULT. Please link the source that establishes that result or narrow the sentence to say the exact mismatch behavior is not verified.
I also could not reproduce the “39 of the 53 local titles” count from tracked files in this checkout.
Sources
- Current AnyPS5 implementation at base 73f4f7e06e4f210a8c6570e335fd654dc0a86134
- KytyPS5 at 5e837a9beac82c031868eaad9348d6a48245fb99
- shadPS4 wrapper at 0614ce324be092791b758d79f93d9f1ca5b10a81 and its memory query implementation
- fpPS4 wrapper at 04cefd43e6fddd1ab033e7980cd356d14c964905
Not verified
No build, test, or console run was applicable or performed. The local-title count was not independently reproduced, and the exact fpPS4 size-mismatch result remains unverified from the cited code.
To get this to a good state
Clarify the fpPS4 EFAULT source or revise that claim; I will reassess the updated head before approving.
|
Some comparisons could not be completed because a pull request conflicts with the base branch. Review these shared files manually before concluding that there is no overlap.
|
…ize and drop the title count Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Thanks for checking both points. fpPS4: the Title count: the 39 came from the import tables of a set of 53 local titles that is not in the repository, so a reader cannot check it. I removed that sentence from the entry and from the description rather than keep a number nobody else can reproduce. AI-assisted (Claude Code). |
What
Adds one entry to the libkernel technical debt:
sceKernelVirtualQueryaccepts aninfo_sizelarger than the 72-byte record, writes only the record and reads only bit 0 offlags, and this was not measured on a console. KytyPS5 fails aninfo_sizeother than the record size and flags other than 0 and 1 withEINVAL, fpPS4 returnsEFAULTfrom_sys_virtual_queryfor aninfo_sizeother than the record size, and shadPS4 checks neither. The entry does not say which behaviour is right and no code or test changes.Tested
Documentation only.
tools/check_conventions.py --base upstream/mainpasses. Based onmain73f4f7e06e; the follow-up headb857d94cbemerges withmain474030e584without a conflict (checked 2026-10-31 17:13 UTC). I read oursceKernelVirtualQueryinExport.cppand the three emulators at the commits named in the entry (KytyPS5 5e837a9beac82c031868eaad9348d6a48245fb99, shadPS4 0614ce324be092791b758d79f93d9f1ca5b10a81, fpPS4 04cefd43e6fddd1ab033e7980cd356d14c964905). Not run: a build or a test, because nothing but the debt file changes.Overlap
Checked on 2026-10-31 against
main73f4f7e06e4f210a8c6570e335fd654dc0a86134(1589 open pull requests, listed at 11:58 UTC; the merge checks ran from 13:50 UTC to 13:59 UTC). I took the changed files of each fromgit diff --name-onlyagainst its merge base (one ref, #13454, could not be fetched; the GitHub file list shows it does not changedocs/dev/debt/libkernel.md). 101 of them change that file.git merge-treeof this head with each of the 101 and with #13866: 42 conflict, and every one of the 42 also conflicts withmainon its own, so none conflicts because of this entry. I placed the line three entries after thesceKernelVirtualQueryentry because directly after or before it, it conflicted with #11625 and #13896, which each change a nearby line. Checked once more on 2026-10-31 at 14:37 UTC againstmain73f4f7e06e: of the 71 pull requests opened since 11:55 UTC, three change that file (#13950, #13953, #13964) and none of them conflicts with this entry.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository (attach them to this PR)AI-assisted (Claude Code).
🤖 Generated with Claude Code