Repository navigation
pmdomain: apple: build floor sampling without CPU_FREQ - #1594
DjDeveloperr merged 3 commits into
Conversation
Specialize the existing io_busy=0 helper into its ordered scheduler counter calls, preserving accounting and wall-clock semantics. Cover CPU_FREQ-disabled compilation in the existing sampler fixture. Assisted-by: LLM
The SEP KUnit kernel also compiles the PMP report driver. Keep that configuration in coverage when its sampler changes. Assisted-by: LLM
DjDeveloperr
left a comment
There was a problem hiding this comment.
Codex (GPT-6.1 Sol), reviewing on @DjDeveloperr’s behalf.
Actual current-head validation has completed for the minimal-config fix: arm64 QEMU KUnit job 130822362768 built successfully and ran all 262 tests, with 262 passed. The separate arm64 Rust build (130822363027) and Host tests (130822398759) also passed. This closes the specific get_cpu_idle_time undeclared compilation failure seen on #973; it is actual kernel/QEMU execution, beyond the extracted accounting/config fixtures.
The remaining red source job 130822363188 is the independent existing SEP rate-limit failure: the same two sbio.rs verify dev_info! calls at lines 2671/3048, already fixed by #1590. No retry or test weakening is appropriate. Keep that logging fix separate and integrate it once qualified; this PR remains awaiting that dependency and final green validation. These results do not fix or clear #973’s retained-epoch ENOSPC hardware blocker.
Integrate main after #1590 fixed the unrelated source check failure. Preserve the reviewed minimal-config idle-accounting fix, all accounting controls and the workflow path selecting actual KUnit execution. The three-file feature diff is unchanged; original parents and source remain in history. Request fresh validation of the current combined candidate. Assisted-by: LLM
DjDeveloperr
left a comment
There was a problem hiding this comment.
Codex (GPT-6.1 Sol), reviewing on @DjDeveloperr’s behalf.
#1590 passed all four actual checks and merged as608f76fd. Normally integrated that current main into this branch asff723016 (parents62390169/608f76fd). The real three-way merge was clean; all added/removed lines in the three-file feature diff are identical to the reviewed original. The sampler accounting, config/refcount regression controls and workflow path selecting real KUnit remain unchanged, with all other main changes preserved. Expected old-head checks guarded a no-force publication; exact head/tree/source readback follows.
The prior head’s actual262/262 arm64 QEMU result, Host pass and Rust build remain scoped to those inputs. The inherited SEP source failure now has its separate fix in this combined tree. Wait for fresh current-head checks before merge; no unchanged retry or local full build was used. #973’s functional hardware hold remains entirely separate.
Integrate main after #1590's SEP rate-limited logging and #1594's CPU_FREQ-independent idle accounting fix landed. Preserve the native26 feature diff, including the reviewed pre-exposure backing admission, saturating accounting and queue ownership tests. All added/removed lines of the 61-file feature diff remain unchanged by the clean merge. Keep all main host registrations/controls plus all fourteen native26 entries, without duplicates; preserve the executable runner and FAIL detection. The native PMP hooks coexist with the exact current-main J613 floor sampler. Original branch ancestry and authorship stay intact. Fresh combined-tree CI remains required. This does not resolve the empty-at-boot activation failure, prove its cause, clear the hardware hold or authorize any new physical trial. Assisted-by: LLM
Current integration
ff723016f5d8872e53a31537ed734d4a7fa670ae. Normally merged original62390169with main608f76fdafter #1590 landed the unrelated SEP logging fix. All added/removed lines of this PR’s three-file sampler, regression and workflow diff are unchanged; current main is preserved elsewhere. No force push, test weakening or repeated local build was used.Actual validation on the prior
62390169input passed Host tests, arm64 Rust compilation and all 262 arm64 QEMU KUnit tests. Its only red source check was the logging issue now fixed in main. Fresh CI on this integrated head is required before merge; those older passes are not a new-head result. This fix does not clear #973’s separate display hardware hold.The minimal arm64 SEP KUnit configuration cannot compile the J613 floor sampler:
get_cpu_idle_time()is declared only withCONFIG_CPU_FREQ. This is the failure in job130784983892, before KUnit execution.Use the wrapper’s exact
io_busy=0specialization:get_cpu_idle_time_us(cpu, NULL), followed byget_cpu_iowait_time_us(cpu, &wall). Both scheduler APIs are declared, defined and exported independently of CPUFreq. This preserves call order, wall-pointer ownership, idle+iowait arithmetic and unsigned sentinel behavior. No Kconfig selection, policy/default, power-state or hotplug/reference-lifetime behavior changes.The existing sampler fixture was extended before the production change. It reproduces the original missing-declaration failure with CPUFreq disabled and passes with the original helper enabled. After the fix, both configurations pass the six governor groups and sampling/removal/hotplug checks, eight accounting vectors against the exact original helper, and three compiled runtime negative controls. These are GCC/UBSan host fixtures; actual remote KUnit remains required. No local kernel build or hardware operation was performed.
The separate SEP logging source failure is already addressed by #1590 and is not duplicated here. This PR does not address #973’s retained-backing hardware blocker.
Codex (GPT-6.1 Sol), on @DjDeveloperr’s behalf.
The SEP workflow path filter now includes
drivers/pmdomain/apple/pmp-report.c, so its real minimal-config arm64 KUnit build runs for this fix and future sampler changes. All existing jobs, permissions, toolchains and test steps are unchanged.