D566 - The biggest item in the work list has no name, and no return value fixes it
Status: measured Date: 2026-09-04
The number
orbistoun-cli worklist ranks every import across every
run this machine has recorded. The top entry is not close:
CALLS SHARE MODULES IMPORT
11272991 78.3% 1 libkernel_sync_on_address::0xbd04891e6902ce1d
733170 5.0% 9 libkernel_fs::sceKernelWrite
Seventy-eight percent of every guest call this project has ever recorded - 11,272,991 of 14,379,710 across 65 runs - goes to one function, in one title, and it has no name.
It is also 97% of PPSA25872's entire run: 11.27M of 11.58M calls,
which is why that title records a standing of 3%.
What the guest is doing
Calling it on one address -
0x740000754a38, in its own heap - eleven million times,
receiving the placeholder each time. That is a hard spin on something
that never resolves.
The library name is the strongest evidence available:
libkernel_sync_on_address is the futex family, so this is a
wait, a wake, or a timed variant of one.
No return value fixes it, and that is measured
The obvious experiment is to answer success.
ORBISTOUN_RETURN=0xbd04891e6902ce1d:0x0 makes it
worse:
| placeholder | answering 0 | |
|---|---|---|
| calls | 11,583,204 | 19,999,997 (budget exhausted) |
| imports | 129 | 78 |
So the guest does not proceed on success; it spins harder and reaches
less of the interface. The same shape as sceAgcCreateShader
(D556): the mechanism has to be modelled, not answered.
A wait that returns without waiting is a busy loop by construction, and
no constant makes it not one.
Why it is not implemented here and now
Wait and wake need opposite behaviours, and nothing establishes which this is. Implementing the wrong one is not a slow emulator, it is a guest whose synchronisation is inverted - and with one caller and one address, the run would look plausible either way.
Naming it is the whole of the blocker.
orbistoun-cli names proves a name by hash rather than
guessing it, so a hit is proof and a miss costs only the sweep.
It was run, and it missed:
module strings: 29,689 candidates, 0 named
published names: 3,018 tried, 0 named
generated names: 3,794,810,244 candidates across 11 patterns, 0 named
Seven hand-tried candidates missed first -
sceKernelWaitOnAddress,
sceKernelWakeOnAddress,
sceKernelWaitOnAddressWithTimeout and four variants.
Per the command's own contract, a miss proves only that the name was not among those tried. Three and a half billion candidates is a strong miss all the same: the vocabulary does not generate this family, and extending it blindly is not a plan.
(The run's warning that a total miss on published names "is a strong sign --suffix-hex is wrong" does not apply - 129 other imports in the same module resolve, so the suffix is right and the heuristic is firing on a module whose unnamed remainder is simply vendor-specific.)
What neither repository knows
0xbd04891e6902ce1d appears nowhere in
obSCEne, and no hardware report mentions
sync_on_address at all. orbistoun declares no such library
either. This is a family both projects have entirely overlooked, and it
accounts for more guest calls than everything else combined.
That makes it a clean ask: census
libkernel_sync_on_address. Its surface is small, a
name is proved by hash rather than believed, and one name retires the
largest single item in the work list.
What this does not establish
That it is a wait rather than a wake. The library name says the family and the call pattern - one address, one caller, eleven million times - reads like a wait, which is inference from behaviour and not a measurement.
Nor that naming it is sufficient. A named wait still needs a model in which something can change the address and wake it; naming only makes it possible to build the right one.