Conversation
1db3ec9 to
8793d95
Compare
|
If we are to build another variant of the kernel that is expected to move forward in lock-step with the standard one, what's our plan for how to keep them from diverging? (FYI, for a previous project we managed to build multiple variants of the kernel without needing to duplicate the spec, loose source files, and full config file. It entailed having multiple kernel .spec files that lived in the same directory, but which primarily just set a few macros and |
I considered using entangled specs check; however it only ensures our versions are aligned and won't actually check if the specs or configs are aligned. Upon reflection, that may be enough to make sure we are at least checking we need to update these files. I have made the change :)
I think having a uniform base spec could be useful! It would require changing our current kernel.spec which might make more sense for a separate PR? As for the defconfigs, we have historically not used these as we provide an explict config so that we know exactly what is being built instead of only seeing the final config after the build since defconfigs allow the kernel to change kernel configs under the hood. If having an explicit config is no longer a requirement we can definitely reduce the overhead using defconfigs! I considered keeping kernel-64k in the |
It sounds like that's a good reason for Regarding Agreed that we could use some of the existing checks we have to catch some divergence, but better than low-fidelity checks to verify alignment, it would be great to see if we can guarantee alignment through how we construct the specs. |
No downside, just preference. Today, kernels which produce their own vmlinuz are put in their own SPEC folder. For 3.0 that includes
So typically what you are describing is done through
100%, having it built into the way the spec is built would be ideal |
|
To one of your earlier points, I do think it's reasonable to handle this all in separate changes.
Patches aren't the only way to merge content. Particularly given that the order of lines in a kconfig file shouldn't really make a difference (right?), couldn't we do a simple concatenation of a "base"
Yes, and I'm challenging that 🙂 For what it's worth, I'm happy to chat offline; we have some proof points from one other project that this can be feasible, but I don't understand whether there are custom (post-?)build steps we perform for the kernel that would throw a wrench in the works of that approach. |
f03bada to
98e87e7
Compare
The kernel ships "bpftool" and "python3-perf". Therefore, give kernel-64k unique names to not overwrite them.
98e87e7 to
01f1957
Compare
01f1957 to
fa9da3b
Compare
rlmenge
left a comment
There was a problem hiding this comment.
Rebased and added patch.
Confirmed builds: https://dev.azure.com/mariner-org/mariner/_build/results?buildId=686970&view=results
Co-authored-by: Christopher Co <35273088+christopherco@users.noreply.github.com>
kernel-64k is a new aarch64 kernel which has 64k page sizes. kernel-64k contains a config_aarch64 which differs from the kernel in that it sets CONFIG_ARM64_64K_PAGES. This offering is to help with HPC scenarios. The kernel package will still be offered and will retain the default 4k page size. Co-authored-by: Christopher Co <35273088+christopherco@users.noreply.github.com>
kernel-64k is a new aarch64 kernel which has 64k page sizes. kernel-64k contains a config_aarch64 which differs from the kernel in that it sets CONFIG_ARM64_64K_PAGES. This offering is to help with HPC scenarios. The kernel package will still be offered and will retain the default 4k page size. Co-authored-by: Christopher Co <35273088+christopherco@users.noreply.github.com>
kernel-64k is a new aarch64 kernel which has 64k page sizes. kernel-64k contains a config_aarch64 which differs from the kernel in that it sets CONFIG_ARM64_64K_PAGES. This offering is to help with HPC scenarios. The kernel package will still be offered and will retain the default 4k page size. Co-authored-by: Christopher Co <35273088+christopherco@users.noreply.github.com>

Merge Checklist
All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)
*-staticsubpackages, etc.) have had theirReleasetag incremented../cgmanifest.json,./toolkit/scripts/toolchain/cgmanifest.json,.github/workflows/cgmanifest.json)./LICENSES-AND-NOTICES/SPECS/data/licenses.json,./LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md,./LICENSES-AND-NOTICES/SPECS/LICENSE-EXCEPTIONS.PHOTON)*.signatures.jsonfilessudo make go-tidy-allandsudo make go-test-coveragepassSummary
Note: when reviewing this PR it may be easier to look at the individual commits to see what differences are present with the generic kernel.
kernel-64kis a new aarch64 kernel which has 64k page sizes.kernel-64kcontains a config_aarch64 which differs from the kernel in that it setsCONFIG_ARM64_64K_PAGES(Kconfig). This offering is to help with HPC scenarios.The
kernelpackage will still be offered and will retain the default 4k page size.Associated PRs:
https://dev.azure.com/mariner-org/mariner/_git/CBL-Mariner-Pipelines/pullrequest/21015
https://dev.azure.com/mariner-org/mariner/_git/CBL-Mariner-Pipelines/pullrequest/21017
Change Log
Does this affect the toolchain?
NO
Associated issues
Build Test Methodology
Test Methodology
Azure VM
Baremetal
