mirror of
https://github.com/xddxdd/nix-cachyos-kernel.git
synced 2026-07-03 19:18:07 +02:00
Add experimental AutoFDO support (Fix #23)
This commit is contained in:
parent
359d765c4d
commit
857785a803
@ -48,6 +48,14 @@ lib.makeOverridable (
|
|||||||
acpiCall ? false,
|
acpiCall ? false,
|
||||||
handheld ? false,
|
handheld ? false,
|
||||||
|
|
||||||
|
# AutoFDO settings
|
||||||
|
# AutoFDO hasn't been fully tested. Please report issue if you encounter any.
|
||||||
|
#
|
||||||
|
# false - Disable AutoFDO
|
||||||
|
# true - Enable AutoFDO for profiling performance patterns only
|
||||||
|
# ./path/to/autofdo/profile: Enable AutoFDO with specified profile
|
||||||
|
autofdo ? false,
|
||||||
|
|
||||||
# Build as much components as possible as kernel modules, including disabled ones.
|
# Build as much components as possible as kernel modules, including disabled ones.
|
||||||
# This can enable unexpected modules, such as nova_core.
|
# This can enable unexpected modules, such as nova_core.
|
||||||
# https://github.com/xddxdd/nix-cachyos-kernel/issues/13
|
# https://github.com/xddxdd/nix-cachyos-kernel/issues/13
|
||||||
@ -59,6 +67,10 @@ lib.makeOverridable (
|
|||||||
# Additional args are passed to buildLinux.
|
# Additional args are passed to buildLinux.
|
||||||
...
|
...
|
||||||
}@args:
|
}@args:
|
||||||
|
|
||||||
|
# AutoFDO requires Clang compiler
|
||||||
|
assert autofdo != false -> lto != "none";
|
||||||
|
|
||||||
let
|
let
|
||||||
helpers = callPackage ../helpers.nix { };
|
helpers = callPackage ../helpers.nix { };
|
||||||
inherit (helpers) stdenvLLVM ltoMakeflags;
|
inherit (helpers) stdenvLLVM ltoMakeflags;
|
||||||
@ -129,6 +141,9 @@ lib.makeOverridable (
|
|||||||
// (lib.optionalAttrs bbr3 cachySettings.bbr3)
|
// (lib.optionalAttrs bbr3 cachySettings.bbr3)
|
||||||
// (lib.optionalAttrs (hugepage != null) cachySettings.hugepage."${hugepage}")
|
// (lib.optionalAttrs (hugepage != null) cachySettings.hugepage."${hugepage}")
|
||||||
// (lib.optionalAttrs (processorOpt != null) cachySettings.processorOpt.${processorOpt})
|
// (lib.optionalAttrs (processorOpt != null) cachySettings.processorOpt.${processorOpt})
|
||||||
|
// (lib.optionalAttrs (autofdo != false) {
|
||||||
|
AUTOFDO_CLANG = lib.kernel.yes;
|
||||||
|
})
|
||||||
))
|
))
|
||||||
|
|
||||||
# Apply user custom settings
|
# Apply user custom settings
|
||||||
@ -155,7 +170,12 @@ lib.makeOverridable (
|
|||||||
# Select stdenv/stdenvLLVM based on requested compiler
|
# Select stdenv/stdenvLLVM based on requested compiler
|
||||||
(args.stdenv or (if lto == "none" then stdenv else stdenvLLVM));
|
(args.stdenv or (if lto == "none" then stdenv else stdenvLLVM));
|
||||||
|
|
||||||
extraMakeFlags = (lib.optionals (lto != "none") ltoMakeflags) ++ (args.extraMakeFlags or [ ]);
|
extraMakeFlags =
|
||||||
|
(lib.optionals (lto != "none") ltoMakeflags)
|
||||||
|
++ lib.optionals (builtins.isPath autofdo) [
|
||||||
|
"CLANG_AUTOFDO_PROFILE=${autofdo}"
|
||||||
|
]
|
||||||
|
++ (args.extraMakeFlags or [ ]);
|
||||||
|
|
||||||
defconfig = args.defconfig or "cachyos_defconfig";
|
defconfig = args.defconfig or "cachyos_defconfig";
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user