Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Kernel CI] Refactor config.sh & Fix for New Graysky Compiler Patch #102

Merged
merged 4 commits into from
Dec 16, 2024

Conversation

Locietta
Copy link
Owner

Xanmod 6.12 picks the updated Graysky compiler patch, which uses CONFIG_X86_64_VERSION and CONFIG_X86_64_VERSION=<level> to specify the x86_64 psABI level. This requires a workaround to handle properly. Given the increased complexity of the CI logic, I've consolidated everything into config.sh instead of spreading it across build.yml and build-lts.yml. This should make maintenance more straightforward.

I've noticed that make savedefconfig on newer kernel version will remove more config, which causes some configs dropped on LTS (i.e. some configs can be inferred on 6.12 but not 6.6). Sharing a single defconfig between LTS and MAIN kernels is error-prone, so I’ve opted to split them.

I’ve also moved the kernel source download logic into config.sh. Given that the script now handles more than just config, I’ve renamed it to setup.sh for clarity.

Will fix the broken release after this merges. (The failed assets are not actual x64v3/x64v2 build anyway, so I didn’t bother reuploading them.)

mistakenly remove it
@Locietta
Copy link
Owner Author

Locietta commented Dec 16, 2024

softprops/action-gh-release broken? 🤔

EDIT: see softprops/action-gh-release#556

@Locietta Locietta marked this pull request as ready for review December 16, 2024 15:05
@Locietta Locietta merged commit 23d992b into main Dec 16, 2024
8 checks passed
@Locietta Locietta deleted the config-arch branch December 19, 2024 12:50
Locietta added a commit that referenced this pull request Dec 19, 2024
#102 remove IS_LTS env in *.yml, but not change build.sh accordingly, which makes build.sh always selects to non-ccache branch.

Add option parser like that in setup.sh and modify *.yml, which should fix ccache.

Also remove old SMT detection code. `nproc` itself already respects SMT. Like with 8C,16T processor, `nproc` will return 16.

`nproc --all` basically is same as `nproc` but it will ignore cgroup limitation forced by containers like docker, and also on motherboards supporting hotplug cpus it will return max possible cpu slots instead of the number of installed count. So yeah, sometimes `nproc --all` returns a bigger number than `nproc`, but those "extra" cpus aren't actually available for use. So let's just use `nproc`.

But use 2*nproc might still make sense if compilation is actually IO-bounded. I tested nproc vs 2*nproc on my private repo's action. It seems like no noticable difference though. Maybe we should revisit the thread count decision someday later.

(cherry picked from commit f05d3d5c422738ad90237753b9bd60396ded6238)
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