416. Seventy-eight percent of every call

2026-09-04 - directed, while the Agc probes are out for hardware

What was found

Went looking for work independent of the console and asked the obvious question - what is PPSA25872 doing with 11.5 million calls at 3% standing? - and the answer turned out to be the largest single fact in the project's own work list.

      CALLS  SHARE  MODULES  IMPORT
   11272991  78.3%        1  libkernel_sync_on_address::0xbd04891e6902ce1d

Seventy-eight percent of every guest call this project has ever recorded, across 65 runs, goes to one function - in one title, on one address, and it has no name.

worklist had been reporting this all along. Nobody had read the top line.

What was measured

Answering it with success makes things worse, which is the useful half:

placeholder answering 0
calls 11,583,204 19,999,997 (budget exhausted)
imports 129 78

So no return value fixes it. The same shape as D556's shader wall: the mechanism has to be modelled, not answered - a wait that returns without waiting is a busy loop by construction.

Not implemented, because libkernel_sync_on_address is the futex family and wait and wake need opposite behaviours. Getting it backwards would not be a slow emulator, it would be a guest whose synchronisation is inverted, and with one caller and one address the run would look plausible either way.

orbistoun-cli names is running against the title - it proves a name by hash, so a hit is proof and a miss costs only the sweep. Seven hand-tried candidates missed.

Neither repository knows this library exists. The NID appears nowhere in obSCEne, no hardware report mentions sync_on_address, and orbistoun declares no such module. A family both projects overlooked accounts for more guest calls than everything else combined.

And a correction to this morning's D564

D564 stated as a new rule that "a function whose answer is arithmetic cannot be left unimplemented safely". That rule already existed and was already wired. Returns::Count carries it word for word, Returns::stub_value answers zero for it, and the service consults that on every unimplemented call.

The Ult sizers answered the placeholder for a duller reason: they had no knowledge entry at all, so there was no returns to consult.

That makes the finding larger, not smaller. The safety net only covers functions somebody has written down - and across every trace on this machine, 172 distinct functions are called and unimplemented while 97 of them carry no returns classification.

Classifying them from their names is not the fix, and the data says so: of the four whose names look size-shaped, sceAgcDcbSetIndexSize is a setter and sceKernelAprResolveFilepathsToIdsAndFileSizes returns a status. Half the name-shaped signal is wrong, which is exactly D356's argument against classifying prose.

The habit worth keeping

Two corrections to my own decisions in one day - D559's Class A, and now D564 - both found by reading what this repository already contained rather than by anything new arriving. The pattern is identical each time: a conclusion written from a reading, when the file that settles it was one grep away.