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

iovisor / ubpf / 21450218157
78%

Build:
DEFAULT BRANCH: main
Ran 28 Jan 2026 06:17PM UTC
Jobs 6
Files 130
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

28 Jan 2026 06:15PM UTC coverage: 78.048% (+0.2%) from 77.896%
21450218157

push

github

web-flow
Add ARM64 JIT atomic instruction support (#727)

* Add ARM64 JIT atomic instruction support with LDXR/STXR

Co-authored-by: Alan-Jowett <20480683+Alan-Jowett@users.noreply.github.com>

* Fix atomic operation logic to properly handle all ALU operations

Co-authored-by: Alan-Jowett <20480683+Alan-Jowett@users.noreply.github.com>

* Fix atomic operation bugs: register corruption, CMPXCHG logic, FETCH semantics

Co-authored-by: Alan-Jowett <20480683+Alan-Jowett@users.noreply.github.com>

* Fix register aliasing and negative offset handling in atomic operations

Co-authored-by: Alan-Jowett <20480683+Alan-Jowett@users.noreply.github.com>

* fix: ARM64 atomic operation register aliasing for FETCH operations

Two issues fixed:

1. Register aliasing between op_result_reg and status_reg for FETCH:
   - For FETCH ops, op_result_reg was R25 which conflicts with status_reg
   - STXR writes status to status_reg, clobbering the computed result
   - Fix: For FETCH ops only, use R8 (caller-saved, not used elsewhere)
   - Non-FETCH retains original behavior (R25) which works correctly
     since the store happens before the status clobber

2. Undefined behavior when negating INT16_MIN:
   - (int16_t)-offset is UB when offset == INT16_MIN
   - Fix: Use int32_t for abs_offset and cast before negation

* fix: ARM64 atomic op_result_reg aliasing with status_reg

The previous code used R25 for op_result_reg when temp_reg was R24,
but R25 is also used as status_reg for STXR. This caused the STXR
instruction to have the same register for both the value to store
and the status output, which is undefined behavior on ARM64.

Fixed by always using R8 (caller-saved, unused in this context)
for the operation result register.

* test: enable lock tests on arm64/macos

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Alan-Jowett <20480683+Alan-Jowett@users.noreply.github.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>

128 of 140 new or added lines in 1 file covered. (91.43%)

6 existing lines in 2 files now uncovered.

6332 of 8113 relevant lines covered (78.05%)

551568.38 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
12
93.06
-0.84% vm/ubpf_jit_arm64.c

Uncovered Existing Lines

Lines Coverage ∆ File
3
78.29
-1.71% ubpf_plugin/ubpf_plugin.cc
3
93.06
-0.84% vm/ubpf_jit_arm64.c
Jobs
ID Job ID Ran Files Coverage
1 run-RelWithDebInfo-ubuntu-latest-x86_64 - 21450218157.1 28 Jan 2026 06:32PM UTC 68
74.01
GitHub Action Run
2 run-Debug-ubuntu-latest-x86_64 - 21450218157.2 28 Jan 2026 06:17PM UTC 68
74.03
GitHub Action Run
3 run-Debug-macos-latest-x86_64 - 21450218157.3 28 Jan 2026 06:23PM UTC 84
75.21
GitHub Action Run
4 run-RelWithDebInfo-macos-latest-x86_64 - 21450218157.4 28 Jan 2026 06:18PM UTC 84
75.08
GitHub Action Run
5 run-RelWithDebInfo-ubuntu-24.04-arm-arm64 - 21450218157.5 28 Jan 2026 06:30PM UTC 69
58.2
GitHub Action Run
6 run-Debug-ubuntu-24.04-arm-arm64 - 21450218157.6 28 Jan 2026 06:18PM UTC 69
58.19
GitHub Action Run
Source Files on build 21450218157
  • Tree
  • List 130
  • Changed 2
  • Source Changed 1
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #21450218157
  • 459f6c8c on github
  • Prev Build on main (#21448610189)
  • Next Build on main (#21450261727)
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