Skip to content

The clock estimate reports −184515 ppm drift and ±36.77 ms after a settled burst #106

Description

@liversedge

The measurement

From make test-device against a live PinPointStudio, 27 August:

DEVICE-RUN agreement=± 36.77 ms  drift=-184515 ppm, filtered

−184515 ppm is −18%. A real crystal is tens of ppm; hundreds would be a broken part. And ±36.77 ms of offset uncertainty after a settled burst is two orders of magnitude looser than the sub-millisecond figure B3 showed on 26 August.

Why it matters beyond the display

Almost certainly the same fault that put a t0 47 seconds in the future earlier the same day. A relation carries an offset and a rate; converting an instant applies the rate across the interval from the relation's epoch. Between two machines whose boot origins are 6752 s apart, a wrong rate term becomes tens of seconds of error — while the agreement between the clocks is genuinely fine, which is why sync could honestly report 0.0 ms at the same moment.

⚠ So the two numbers were never contradictory. One describes how well the clocks agree now; the other governs extrapolation, and nothing warns that they are different questions.

What is already worked around

The ring is no longer indexed through the host's clock — DetectAndMint keeps the Candidate's own instant, which needs no conversion. That fixed the missing clips. This issue is the estimate itself, which still feeds REQ-SYNC-4's residual and anything else that converts.

To find out

  • whether skew_ppm is this wrong on the wire or only in ClockAgreement's reading of it
  • whether the burst converged at all, or whether 0.0 ms and ±36.77 ms are two views of an unconverged estimator
  • sync_residual cannot be trusted until this is understood — a residual is a difference between two clocks, and one of them is currently claiming to run 18% slow

Recorded in the shared learnings document; a candidate finding for libppcp.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    layer: corePackages/Core — platform-neutral logic

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions