Repository navigation
fix(kernel-profile): pin MT6878 race pair to CPUs 4/5, resolve Transsion device names, add Infinix Note 60 (X6879) - #427
Open
drybrine wants to merge 4 commits into
Conversation
The shared default (recommended_cpus 0/1) lands both race threads on the little cluster: MT6878 reports cpuinfo_max_freq 2000000 for CPUs 0-3 and 2600000 for CPUs 4-7, so 4/5 is the only same-class pair. Set the per-release default to the big-core pair, matching the 6.1.134 precedent. Also correct the SoC in the phys-mapping comment (MT6878, measured on the X6879).
Infinix/TECNO/itel expose no market-name property: every ro.product.*.marketname is empty and ro.tr_build.sw_market holds a region code, not a retail name. The generic fallback therefore rendered 'INFINIX Infinix X6879' on the device card. Map the model code (X6879 -> Infinix Note 60) instead.
Same release as the Infinix GT 30 Pro (X6873): verified on an X6879.
Comment on lines
+28
to
+29
| main = 4 | ||
| consumer = 5 |
ProfileExporter passed CpuPairView(0, 1) into ProfileMerger, which installed it as execution.selected_cpus. ProfileResolver.nativeValue() prefers selected_cpus for execution.recommended_cpus.*, so every prebuilt .bin shipped 0/1 and --load-prebuilt-profile ignored the profile's own recommendation. The MT6878 profile added in this PR therefore still put both race threads on the little cluster. Make the merge pair optional: a null pair means "no explicit selection", so recommended_cpus stays authoritative and any selected_cpus that survived the merge is dropped. The app always passes a pair, so runtime behaviour is unchanged; only the exporter passes null. ExporterAgreementTest now loads the app side with the pair each profile recommends (declared recommended_cpus, else the execution-tuning default) and asserts the MT6878 export decodes to 4/5. Verified: :profile-core:test green; exportKernelProfiles emits 4/5 for 6.1.157-android14-11-ga8b0b542991e-ab15601211 and 6.1.134-android14-11-maybe-dirty and 0/1 for the other 63 profiles (previously all 65 were 0/1).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Device-support follow-up for the Infinix Note 60 (X6879), which runs the already-supported
6.1.157-android14-11-ga8b0b542991e-ab15601211kernel (shared with the GT 30 Pro X6873).1.
fix(kernel-profile): pin the race pair to CPUs 4/5The profile carried no
executionblock, so it inherited the shared defaultrecommended_cpus { main = 0, consumer = 1 }fromexecution-tuning.conf. On MT6878 that is the little cluster:cpuinfo_max_freqreports 2000000 for CPUs 0-3 (Cortex-A55) and 2600000 for CPUs 4-7 (Cortex-A76), so 4/5 is the only same-class pair. This matches the existing6.1.134-android14-11-maybe-dirtyprecedent.Worth noting for review: the in-app CPU picker already resolves to 4/5 on this topology, because
buildCpuPairs()sorts clusters by descending max frequency. So this changes the native default (--load-prebuilt-profile, and any profile carrying noselected_cpus) rather than the normal in-app run path.Also corrects the SoC name in the phys-mapping comment (MT6788 -> MT6878).
2.
fix(app): resolve Transsion retail names from the model coderesolveDeviceName()had no Infinix/TECNO/itel case, and Transsion devices expose no market-name property — everyro.product.*.marketnameis empty andro.tr_build.sw_marketholds a region code (op), not a retail name. The generic fallback therefore renderedINFINIX Infinix X6879on the device card. Adds a model-code map (X6879 -> Infinix Note 60).3.
docs(kernel-profiles): add Infinix Note 60 (X6879)Verification
:app:assembleDebugwith NDK 30 — builds clean.boot.img: primitive present (remove_waiter@0x1018844still usescurrent), and the derived geometry matches the built-in profile on all 16 offsets.native exited code=0andKernelSU ready, with no kernel Oops inpstore/console-ramoops.Caveat
Those two clean runs are not a reliability measurement — the known
KERNEL-PANIC-01race flakiness is untouched by this PR.