Skip to content

pmdomain: apple: build floor sampling without CPU_FREQ - #1594

Merged
DjDeveloperr merged 3 commits into
integration/aurorafrom
fix/pmp-idle-accounting-without-cpufreq-20261111
Nov 12, 2026
Merged

DjDeveloperr merged 3 commits into
integration/aurorafrom
fix/pmp-idle-accounting-without-cpufreq-20261111

Conversation

@DjDeveloperr

@DjDeveloperr DjDeveloperr commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

Current integration ff723016f5d8872e53a31537ed734d4a7fa670ae. Normally merged original 62390169 with main 608f76fd after #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 62390169 input 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 with CONFIG_CPU_FREQ. This is the failure in job130784983892, before KUnit execution.

Use the wrapper’s exact io_busy=0 specialization: get_cpu_idle_time_us(cpu, NULL), followed by get_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.

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 DjDeveloperr left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 DjDeveloperr left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@DjDeveloperr
DjDeveloperr merged commit 8333109 into integration/aurora Nov 12, 2026
4 checks passed
DjDeveloperr added a commit that referenced this pull request Nov 12, 2026
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant