ax-task 0.8.2

OS-independent IRQ-safe SMP task scheduling core
Documentation
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.8.2]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.8.1...ax-task-v0.8.2 - 2026-09-13

### Fixed

- *(ax-task)* inspect offline timer state under one base lock ([#2385]https://github.com/rcore-os/tgoskits/pull/2385)

## [0.8.1]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.8.0...ax-task-v0.8.1 - 2026-09-12

### Fixed

- *(ax-task)* allow per-CPU timer wakes during CPU deactivation ([#2382]https://github.com/rcore-os/tgoskits/pull/2382)

## [0.8.0]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.7.1...ax-task-v0.8.0 - 2026-09-11

### Fixed

- *(ax-task)* drain idle scheduler work before offline probes ([#2377]https://github.com/rcore-os/tgoskits/pull/2377)

### Other

- *(ax-task)* unify thread lifecycle and PREEMPT_RT lock semantics ([#2357]https://github.com/rcore-os/tgoskits/pull/2357)

## [0.7.1]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.7.0...ax-task-v0.7.1 - 2026-09-09

### Fixed

- *(arceos)* exercise real std and repair queued task affinity ([#2332]https://github.com/rcore-os/tgoskits/pull/2332)

## [0.7.0]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.6.11...ax-task-v0.7.0 - 2026-09-09

### Added

- *(trait-ffi)* [**breaking**] maintain and extend static interfaces with syn 3 ([#2300]https://github.com/rcore-os/tgoskits/pull/2300)

### Fixed

- *(release)* restore release-plz dependency updates ([#2329]https://github.com/rcore-os/tgoskits/pull/2329)

### Other

- *(ax-task)* [**breaking**] organize scheduler namespaces and unify runtime APIs ([#2313]https://github.com/rcore-os/tgoskits/pull/2313)
- *(ax-task)* rebuild scheduler and runtime ownership ([#1775]https://github.com/rcore-os/tgoskits/pull/1775)

## [0.6.11]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.6.10...ax-task-v0.6.11 - 2026-08-27

### Added

- *(ax-fs-ng)* add shared block cache between block and filesystem layers ([#2171]https://github.com/rcore-os/tgoskits/pull/2171)

### Other

- *(runtime)* make IRQ and multitasking mandatory ([#2188]https://github.com/rcore-os/tgoskits/pull/2188)
- *(axvm)* unify host timer ownership ([#2190]https://github.com/rcore-os/tgoskits/pull/2190)

## [0.6.10]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.6.9...ax-task-v0.6.10 - 2026-08-25

### Other

- *(test)* consolidate Starry and ArceOS test suites ([#2173]https://github.com/rcore-os/tgoskits/pull/2173)

## [0.6.9]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.6.8...ax-task-v0.6.9 - 2026-08-25

### Fixed

- *(runtime)* prevent QEMU timer and exec stalls ([#2130]https://github.com/rcore-os/tgoskits/pull/2130)

### Other

- *(axvm)* unify virtual device registration ([#2138]https://github.com/rcore-os/tgoskits/pull/2138)

## [0.6.8]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.6.7...ax-task-v0.6.8 - 2026-08-20

### Fixed

- *(axtask)* preserve scheduler-frame ownership across switches ([#2101]https://github.com/rcore-os/tgoskits/pull/2101)
- *(starry-kernel)* unify PID namespace identity ownership ([#2023]https://github.com/rcore-os/tgoskits/pull/2023)

### Other

- *(axtest)* standardize Cargo and QEMU test flow ([#2088]https://github.com/rcore-os/tgoskits/pull/2088)
- *(cpu-local)* define scheduler-neutral execution context boundary ([#2080]https://github.com/rcore-os/tgoskits/pull/2080)
- *(errors)* introduce domain-owned error boundaries ([#2024]https://github.com/rcore-os/tgoskits/pull/2024)
- *(sync)* move lock implementation into ax-task ([#1962]https://github.com/rcore-os/tgoskits/pull/1962)
- *(sync)* unify lock primitives in ax-sync ([#1956]https://github.com/rcore-os/tgoskits/pull/1956)

## [0.6.7]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.6.6...ax-task-v0.6.7 - 2026-08-09

### Fixed

- *(ax-task)* preserve concurrent signal wakeups ([#1857]https://github.com/rcore-os/tgoskits/pull/1857)

### Other

- *(ax-ipi)* establish typed IPI publication transport ([#1916]https://github.com/rcore-os/tgoskits/pull/1916)
- *(repo)* unify workspace dependencies ([#1860]https://github.com/rcore-os/tgoskits/pull/1860)
- *(axvm)* unify guest devices and AArch64 timer ownership ([#1717]https://github.com/rcore-os/tgoskits/pull/1717)

## [0.6.6]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.6.5...ax-task-v0.6.6 - 2026-08-03

### Added

- *(cpufreq)* RK3588 ondemand CPU DVFS with voltage calibration ([#1657]https://github.com/rcore-os/tgoskits/pull/1657)

### Fixed

- *(ax-task)* initialize tasks before scheduling ([#1783]https://github.com/rcore-os/tgoskits/pull/1783)

### Other

- *(block)* adopt IRQ-driven multi-queue runtime ([#1768]https://github.com/rcore-os/tgoskits/pull/1768)
- enhance axtest coverage for various starry-kernel contracts ([#1674]https://github.com/rcore-os/tgoskits/pull/1674)

## [0.6.5]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.6.4...ax-task-v0.6.5 - 2026-07-23

### Other

- *(ax-runtime)* centralize UART scheduling ([#1675]https://github.com/rcore-os/tgoskits/pull/1675)
- *(cpu-local)* extract per-CPU register ownership ([#1662]https://github.com/rcore-os/tgoskits/pull/1662)

### Changed

- *(host-test)* initialize and bind CPU zero's dynamic CPU-local area before scheduler startup.

## [0.6.4]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.6.3...ax-task-v0.6.4 - 2026-07-10

### Other

- updated the following local packages: ax-hal, ax-hal, ax-alloc, ax-ipi, ax-mm

## [0.6.3]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.6.2...ax-task-v0.6.3 - 2026-07-08

### Other

- updated the following local packages: ax-hal, ax-hal, ax-alloc, ax-ipi, ax-mm

## [0.6.2]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.6.1...ax-task-v0.6.2 - 2026-07-08

### Other

- updated the following local packages: ax-alloc, ax-hal, ax-hal, ax-ipi, ax-mm

## [0.6.1]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.6.0...ax-task-v0.6.1 - 2026-07-08

### Fixed

- *(axtask)* defer cross-core wake instead of spinning on remote on_cpu ([#1495]https://github.com/rcore-os/tgoskits/pull/1495)

## [0.6.0]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.5.24...ax-task-v0.6.0 - 2026-07-07

### Fixed

- *(ax-task)* avoid RR front insertion on wakeup ([#1532]https://github.com/rcore-os/tgoskits/pull/1532)

### Other

- Remove `ax-feat` crate and redistribute features across runtime, API, and user library layers ([#1513]https://github.com/rcore-os/tgoskits/pull/1513)
- Dev might sleep enhance ([#1480]https://github.com/rcore-os/tgoskits/pull/1480)
- remove static platform and axconfig generation, make dynamic platform the only path ([#1478]https://github.com/rcore-os/tgoskits/pull/1478)

## [0.5.24]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.5.23...ax-task-v0.5.24 - 2026-07-02

### Added

- *(irq-framework)* use domain-scoped irq ids
- *(kspin)* add lockdep-aware spin rwlock ([#1397]https://github.com/rcore-os/tgoskits/pull/1397)

### Fixed

- *(ci)* prevent Starry qemu hangs in IRQ paths ([#1431]https://github.com/rcore-os/tgoskits/pull/1431)
- *(ax-task)* harden SMP wake and migration rescheduling ([#1426]https://github.com/rcore-os/tgoskits/pull/1426)
- *(irq)* separate IRQ domains from trap vectors ([#1346]https://github.com/rcore-os/tgoskits/pull/1346)

### Other

- *(irq-framework)* require boxed IRQ callbacks ([#1452]https://github.com/rcore-os/tgoskits/pull/1452)
- *(platforms)* remove LoongArch static platform ([#1428]https://github.com/rcore-os/tgoskits/pull/1428)
- *(build)* generate build.rs Rust sources with quote ([#1422]https://github.com/rcore-os/tgoskits/pull/1422)
- Revert "fix(irq): separate IRQ domains from trap vectors ([#1346]https://github.com/rcore-os/tgoskits/pull/1346)" ([#1424]https://github.com/rcore-os/tgoskits/pull/1424)

## [0.5.23]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.5.22...ax-task-v0.5.23 - 2026-06-27

### Fixed

- *(ax-task)* clear delivered remote reschedule requests ([#1381]https://github.com/rcore-os/tgoskits/pull/1381)

### Other

- *(platform)* remove ax-config from dynamic runtime path ([#1387]https://github.com/rcore-os/tgoskits/pull/1387)
- *(serial)* align IRQ model with dev ([#1265]https://github.com/rcore-os/tgoskits/pull/1265)

## [0.5.22]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.5.21...ax-task-v0.5.22 - 2026-06-23

### Other

- updated the following local packages: ax-hal, ax-hal, ax-lockdep, ax-kspin, ax-alloc, axpoll, ax-ipi, ax-mm

## [0.5.21]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.5.20...ax-task-v0.5.21 - 2026-06-22

### Added

- *(poll)* add irq-safe deferred notifications ([#1278]https://github.com/rcore-os/tgoskits/pull/1278)

### Fixed

- *(ax-task)* prioritize ready poll_io before interrupt ([#1337]https://github.com/rcore-os/tgoskits/pull/1337)

### Other

- *(ax-runtime)* adapt submit-poll fs block irq registration ([#1228]https://github.com/rcore-os/tgoskits/pull/1228)

## [0.5.20]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.5.19...ax-task-v0.5.20 - 2026-06-12

### Fixed

- *(starry)* reprogram timer for short deadlines ([#1250]https://github.com/rcore-os/tgoskits/pull/1250)
- *(axtask)* improve might_sleep diagnostics and coverage ([#1235]https://github.com/rcore-os/tgoskits/pull/1235)
- *(axtask)* use monotonic deadlines for sleeps ([#1240]https://github.com/rcore-os/tgoskits/pull/1240)
- *(axruntime)* ensure aarch64 SMP IPI readiness before app init ([#1196]https://github.com/rcore-os/tgoskits/pull/1196)

## [0.5.19]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.5.18...ax-task-v0.5.19 - 2026-06-11

### Fixed

- fix typos in code and comments across the codebase ([#1206]https://github.com/rcore-os/tgoskits/pull/1206)

## [0.5.18]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.5.17...ax-task-v0.5.18 - 2026-06-09

### Added

- *(std)* unify std-aware ArceOS builds ([#1080]https://github.com/rcore-os/tgoskits/pull/1080)
- *(starry-kernel)* eBPF kernel runtime (tracepoint / kprobe / perf) ([#886]https://github.com/rcore-os/tgoskits/pull/886)

## [0.5.17]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.5.16...ax-task-v0.5.17 - 2026-06-03

### Added

- *(axtask)* prefer current CPU in select_run_queue for cache affinity ([#1012]https://github.com/rcore-os/tgoskits/pull/1012)
- *(irq)* introduce shared IRQ framework ([#1065]https://github.com/rcore-os/tgoskits/pull/1065)
- *(axtask)* replace PREV_TASK Weak<AxTask> with raw pointer ([#996]https://github.com/rcore-os/tgoskits/pull/996)
- *(axtask)* add task stack guard page support ([#811]https://github.com/rcore-os/tgoskits/pull/811)

### Fixed

- *(axtask)* kick remote CPUs on SMP wakeups ([#926]https://github.com/rcore-os/tgoskits/pull/926)
- *(ax-task)* preempt on async wake, guard wait queue against double-enqueue ([#912]https://github.com/rcore-os/tgoskits/pull/912)
- *(signal)* add wake_task after signal delivery and dumpable/no_new_privs fields ([#797]https://github.com/rcore-os/tgoskits/pull/797)

### Other

- *(sched)* add sched-family test suite and fix kernel scheduler sys… ([#986]https://github.com/rcore-os/tgoskits/pull/986)
- *(deps)* update spin 0.10→0.12, ostool 0.19→0.21 ([#978]https://github.com/rcore-os/tgoskits/pull/978)
- Revert "fix(ax-task): preempt on async wake, guard wait queue against double-…" ([#939]https://github.com/rcore-os/tgoskits/pull/939)

## [0.5.16]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.5.15...ax-task-v0.5.16 - 2026-05-22

### Fixed

- *(ax-task)* migrate tasks after affinity updates ([#825]https://github.com/rcore-os/tgoskits/pull/825)

## [0.5.15]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.5.14...ax-task-v0.5.15 - 2026-05-19

### Fixed

- *(starry)* weston bringup fixes + IRQ wakers + AF_UNIX cmsg byte marks ([#509]https://github.com/rcore-os/tgoskits/pull/509)
- *(unix-stream,poll_io)* non-blocking accept, peer EOF, waker registration ([#697]https://github.com/rcore-os/tgoskits/pull/697)

## [0.5.14]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.5.13...ax-task-v0.5.14 - 2026-05-15

### Other

- updated the following local packages: ax-cpumask, ax-kspin, axpoll, ax-sched, ax-timer-list, ax-config, ax-hal, ax-hal

## [0.5.12]https://github.com/rcore-os/tgoskits/compare/ax-task-v0.5.11...ax-task-v0.5.12 - 2026-04-27

### Added

- *(ax-sync)* add mutex lockdep and fix Starry atomic-context violations ([#271]https://github.com/rcore-os/tgoskits/pull/271)

### Fixed

- *(axtask)* register interrupt waker before flag swap ([#316]https://github.com/rcore-os/tgoskits/pull/316)