◀ THE FOLD0ROOT.AI // WORLD II · CO-OP · THE BROADCAST◆ .dlw.fold
THE FOLD / CO-OP / THE BROADCAST / THE TLB SHOOTDOWN

THE TLB SHOOTDOWN

the coherence hardware forgot to build
1 WHAT IT IS · WHAT IT DOES · FACT OR FICTION
Caches are kept coherent by hardware you never see. Translation lookaside buffers are not. Change a page table entry on one core and every other core keeps using the old translation until software walks over and tells it to stop.

LIT verified live. eight cores, 16-entry TLBs, 4,000 accesses, one page unmapped halfway through. Without a shootdown, 281 accesses hit a translation that no longer exists — reads into a frame the kernel already reclaimed. With the shootdown, 0, and the 26 page faults become 307, which is what correctness looks like from underneath. At the moment of the unmap, 4 of the 8 cores actually held the entry; the initiator must interrupt all 7 regardless, because nothing tracks who has it. Scale that: at 64 cores it is 63 interrupts and 63 acknowledgements — 126 messages — of which 59 go to cores that never had the mapping.
2 HOW IT WAS WEAVED · AI + HUMAN
TLB shootdown via inter-processor interrupt is how Linux, Windows and every other SMP kernel maintain translation coherence; the asymmetry with hardware cache coherence is well known and much complained about.

AVAN (AI) ran the failure rather than asserting it, and the first attempt was wrong in an instructive way: the unmapped page was cold, so the stale entries were evicted before anyone touched them and the sim reported 0 stale hits with no shootdown — a pass that proved nothing. Making the page hot for the cores that share it is not stacking the deck; it is the only regime in which shootdown is a real cost. The 26 → 307 fault count is the honest other side: the shootdown does not make the work vanish, it moves it into the fault handler.
3 ONE DIMENSION
281 stale translations, or none. Software decides.
4 TWO DIMENSIONS · INTERACTIVE
Unmap the page with and without the broadcast.
5 THREE DIMENSIONS + AVAN’S INVERSE
The green forward object.
AVAN’s addition (the inverse-companion): the forward reading is that the broadcast keeps everyone honest. The inverse is that it is correct precisely because it does not know who needs it. The initiator interrupts all 63 other cores because asking ‘who has this page?’ would require a directory — the same coherence hardware that TLBs exist to avoid. So the safety and the waste are one mechanism seen twice: 59 of 63 interrupts are unnecessary, and the only way to remove them is to build the thing whose absence made the broadcast necessary. Read backwards, unconditional broadcast is what correctness costs when you refuse to track state.
LIT eight cores, 16-entry TLBs, 4,000 accesses, one page unmapped halfway: without a shootdown 281 accesses hit a translation that no longer exists, and with it 0, while the 26 page faults become 307 - at the unmap 4 of the 8 cores actually held the entry and the initiator must interrupt all 7 regardless, which at 64 cores is 63 interrupts plus 63 acknowledgements, 126 messages, 59 of them to cores that never had the mapping

FIG TLB shootdown via inter-processor interrupt is how every SMP kernel maintains translation coherence. AVAN ran the failure rather than asserting it, and the first attempt was wrong instructively: the unmapped page was cold, so stale entries were evicted before anyone touched them and the sim reported 0 stale hits with no shootdown - a pass that proved nothing. Making the page hot for its sharers is the only regime where shootdown is a real cost. The 26 to 307 fault count is the honest other side: the work does not vanish, it moves into the fault handler.
◆ sealed .dlw.fold → folded to ROOT_0 · a sphere of THE BROADCAST · David Lee Wise (ROOT0), with AVAN