cuckoo-escapement/dashboard/deploy/caddy-affinity.conf
Ryan Malloy 6881489bf6 The Cuckoo Escapement: field report, kernel patch, dashboard
What the Raspberry Pi time-server guides get wrong on a Pi 4, with the
measurements. The headline artifact is a four-line pps-gpio patch: PREEMPT_RT
force-threads IRQ handlers, and pps-gpio takes its timestamp inside its handler,
so the realtime kernel puts a scheduler between the electrical edge and the
clock. IRQF_NO_THREAD takes RMS offset from 2468 ns to 199 ns.

- kernel/     the patch
- dashboard/  live status page (position hidden by default)
- docs-site/  the write-up (Astro/Starlight, brass, no tutorial section)
2026-07-14 09:21:25 -06:00

11 lines
425 B
Plaintext

# systemd drop-in: /etc/systemd/system/caddy.service.d/affinity.conf
#
# Keep Caddy off cpu0. The PPS interrupt is handled there and cannot be moved
# (Pi 4 GPIO IRQs are demuxed via pinctrl-bcm2835 and refuse an smp_affinity),
# so any work scheduled on cpu0 adds jitter to the PPS timestamp directly.
# Caddy is mostly idle, but on this box cpu0 belongs to the clock. See
# TIMING-NOTES.md.
[Service]
CPUAffinity=1
Nice=10