• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

dangernoodle-io / TaipanMiner / 26537435963
90%

Build:
DEFAULT BRANCH: main
Ran 27 May 2026 08:40PM UTC
Jobs 3
Files 102
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

27 May 2026 08:40PM UTC coverage: 90.151%. Remained the same
26537435963

push

github

web-flow
perf(mining): cache-isolate hot-loop data to protect against layout shifts (#435)

The per-nonce inner loop in mine_nonce_range reads hw_ctx->midstate_hw[]
and block2_words[] (via pointer to block2[]) on every iteration. Both
addresses depend on mining_task's stack base, which the FreeRTOS
allocator places relative to cumulative BSS/heap state. Each new feature
that adds BSS shifts the stack base, putting these hot reads on different
D-cache lines that compete with the new feature's static data.

This caused the +112 ns/nonce regression bisected to TM #413 (per-pool
stats + block-found detection) on tdongle-s3 — see TA-392 for the full
diagnostic trail. Without protection, every future feature addition will
keep eating ~1-3% off mining throughput.

fix: make block2 in mine_nonce_range and hw_ctx in mining_task `static
__attribute__((aligned(32)))`. Aligned to ESP32-S3's cache line size (32B)
so they occupy their own cache lines with no false sharing, and pinned
to fixed BSS addresses immune to stack-base shifts.

verified on tdongle-s3 .78: 297,894 H/s → 307,770 H/s steady (+3.3%
recovery, matching v0.23.0 baseline of 309,650). Per-Tier-2 inner-loop
timing drops from 3520 ms to 3408 ms per 1M nonces.

scope:
- mine_nonce_range's `block2[64]` (stack-local → static cache-aligned)
- mining_task's `hw_backend_ctx_t hw_ctx` (stack-local → static cache-aligned)
- both functions only run on the single mining task; static storage is
  semantically equivalent to a stack local that outlives the function

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>

2549 of 3217 branches covered (79.24%)

Branch coverage included in aggregate %.

5158 of 5332 relevant lines covered (96.74%)

154876.83 hits per line

Jobs
ID Job ID Ran Files Coverage
1 e2e - 26537435963.1 27 May 2026 08:42PM UTC 55
56.56
GitHub Action Run
2 native - 26537435963.2 27 May 2026 08:40PM UTC 29
90.48
GitHub Action Run
3 webui - 26537435963.3 27 May 2026 08:41PM UTC 73
91.16
GitHub Action Run
Source Files on build 26537435963
  • Tree
  • List 102
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #26537435963
  • 6c4a72f2 on github
  • Prev Build on main (#26491871100)
  • Next Build on main (#26543051943)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc