Skip to content

Releases: Prohect/ProcGovernor

v3 rewrite: config v3 and physical-core thread pools

Choose a tag to compare

@Prohect Prohect released this 23 Aug 18:57

ProcGovernor v3

The v3 rewrite: a physical-core thread-pool engine and a new config format.

Highlights

  • Config v3 DSL (@version = 3): keyed, order-free, optional fields; @entry, @keep, @streak hysteresis defaults; repeatable prime+={...} and ideal+={...} pools. Adding a key is never a breaking change.
  • Portable CPU expressions: pcores, ecores, and all built-ins derived from hybrid P/E-core topology detection, so configs work across CPUs and HyperThreading on/off.
  • v3 engine (engine3): physical-core allocation, tier-1 membership debounce, deal-ring placement with sticky pins, per-pool hysteresis, cross-pool core ledger, and group-aware ideal-processor hints.
  • Migration tool: -migrate converts v2 configs to v3 (positional fields -> keyed, ?N tracking -> track=N, @ cpuset -> reset_ideal, *a*b chaining -> repeated pools).
  • CLI: new -topology and -validate modes; pg_worker diagnostic binary.
  • Docs: all module docs refreshed for the v3 engine (en-US, ASCII-only, link-resolved).

Compatibility

The v2 engine is unchanged and still runs legacy configs unchanged. v2 configs are routed automatically; use -migrate to move to v3.

v2.0.0 - Job Object Affinity

Choose a tag to compare

@Prohect Prohect released this 23 Jul 12:59

Breaking Changes

  • Config rule syntax now includes a required job_affinity field (3rd field) between priority and affinity. Add 0 to skip: name:priority:0:affinity:...
  • See migration guide in README

New Features

  • Kernel-enforced CPU affinity via Windows Job Objects (new job_affinity field) — prevents processes and children from running on excluded CPUs
  • New job_object.rs module with JobObjectManager for caching named job objects
  • New apply_job_object_affinity() in apply.rs
  • Config hot-reload updates job object affinity mask on alias redefinition

Improvements

  • Refactored main.rs to use proc_governor library crate (new lib.rs)
  • Non-grade loops now properly set alive status for scheduler tracking
  • Bug fix: reset_alive() scheduling fix for non-grade loops

Docs

  • Full documentation for all new types and functions in docs/en-US/ and docs/zh-CN/
  • Updated README with v1.x → v2.0 migration guide

1.0.6

Choose a tag to compare

@Prohect Prohect released this 30 May 15:49

rename the project

1.0.5

Choose a tag to compare

@Prohect Prohect released this 17 Apr 18:04

1.0.4

Choose a tag to compare

@Prohect Prohect released this 17 Apr 07:43

1.0.3

Choose a tag to compare

@Prohect Prohect released this 16 Apr 08:29

1.0.2

Choose a tag to compare

@Prohect Prohect released this 16 Apr 08:02

1.0.1

Choose a tag to compare

@Prohect Prohect released this 16 Apr 07:15

1.0.0

Choose a tag to compare

@Prohect Prohect released this 15 Apr 17:45

event driven refact.
stack memory collection instace acceleration.
lazy load of get_threads
Full Changelog: 0.14.3...1.0.0

0.6.4

Choose a tag to compare

@Prohect Prohect released this 06 Oct 02:02