From 407d40d84474b9e5e95d5301fd3ed3628e9256bd Mon Sep 17 00:00:00 2001 From: Sai Harshini Nimmala Date: Sat, 8 Oct 2022 20:03:49 -0700 Subject: [PATCH 1/4] ANDROID: sched: gki: add padding to some structs to support WALT Qualcomm's load tracking algorithm WALT needs to carry data in the task_group structure. Hence, add padding to it. This commit partially reverts commit ffaeda21f898(Revert "ANDROID: sched: gki: add padding to some structs to support WALT"), to effectively bring back a part of the original change. Bug: 200103201 Change-Id: I728d905d59f03d76dadf007e8f38c6532bd60b91 Signed-off-by: Sai Harshini Nimmala --- kernel/sched/sched.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index 5ce98da1ae32..f684c34df071 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -435,6 +435,8 @@ struct task_group { struct uclamp_se uclamp[UCLAMP_CNT]; /* Latency-sensitive flag used for a task group */ unsigned int latency_sensitive; + + ANDROID_VENDOR_DATA_ARRAY(1, 4); #endif }; From 8460be7967553d50f7691d1a61b632348ffab3de Mon Sep 17 00:00:00 2001 From: Stephen Dickey Date: Wed, 17 Aug 2022 17:03:59 -0700 Subject: [PATCH 2/4] ANDROID: kernel/sched: rebuild_sched_domains export Vendor module needs to rebuild sched domains at boot, in the event that cpufreq initializes the energy model too late. Bug: 242898038 Change-Id: Ifaf1223366ac81c3f3c382dd0f61110fce9c1b20 Signed-off-by: Stephen Dickey --- kernel/cgroup/cpuset.c | 1 + 1 file changed, 1 insertion(+) diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c index c5ee5fbc3565..22051d1e1adf 100644 --- a/kernel/cgroup/cpuset.c +++ b/kernel/cgroup/cpuset.c @@ -1113,6 +1113,7 @@ void rebuild_sched_domains(void) percpu_up_write(&cpuset_rwsem); cpus_read_unlock(); } +EXPORT_SYMBOL_GPL(rebuild_sched_domains); static int update_cpus_allowed(struct cpuset *cs, struct task_struct *p, const struct cpumask *new_mask) From 6fb5892e590cb6508f6904b613620aa46cd58cb6 Mon Sep 17 00:00:00 2001 From: Vamsi Krishna Lanka Date: Thu, 21 Oct 2021 14:30:17 -0700 Subject: [PATCH 3/4] ANDROID: arch_topology: Add android_rvh_update_thermal_stats Add trace hook so modules can track thermal changes to process vendor value adds. Bug: 203763121 Change-Id: I5c54b313d3c92c0514f18b07797dd20c9c6f5161 Signed-off-by: Shaleen Agrawal Signed-off-by: Vamsi Krishna Lanka Signed-off-by: Sai Harshini Nimmala --- drivers/base/arch_topology.c | 5 ++++- include/trace/hooks/sched.h | 4 ++++ kernel/sched/vendor_hooks.c | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/base/arch_topology.c b/drivers/base/arch_topology.c index 133105574181..33bbcecb13f7 100644 --- a/drivers/base/arch_topology.c +++ b/drivers/base/arch_topology.c @@ -205,8 +205,11 @@ void topology_update_thermal_pressure(const struct cpumask *cpus, trace_thermal_pressure_update(cpu, th_pressure); - for_each_cpu(cpu, cpus) + for_each_cpu(cpu, cpus) { WRITE_ONCE(per_cpu(thermal_pressure, cpu), th_pressure); + trace_android_rvh_update_thermal_stats(cpu); + } + } EXPORT_SYMBOL_GPL(topology_update_thermal_pressure); diff --git a/include/trace/hooks/sched.h b/include/trace/hooks/sched.h index 1740aa523753..a0b7a80a0817 100644 --- a/include/trace/hooks/sched.h +++ b/include/trace/hooks/sched.h @@ -317,6 +317,10 @@ DECLARE_HOOK(android_vh_update_topology_flags_workfn, TP_PROTO(void *unused), TP_ARGS(unused)); +DECLARE_RESTRICTED_HOOK(android_rvh_update_thermal_stats, + TP_PROTO(int cpu), + TP_ARGS(cpu), 1); + /* macro versions of hooks are no longer required */ #endif /* _TRACE_HOOK_SCHED_H */ diff --git a/kernel/sched/vendor_hooks.c b/kernel/sched/vendor_hooks.c index 267228311736..643c7c81c54a 100644 --- a/kernel/sched/vendor_hooks.c +++ b/kernel/sched/vendor_hooks.c @@ -81,3 +81,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_ttwu_cond); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_schedule_bug); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_sched_exec); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_update_topology_flags_workfn); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_update_thermal_stats); From e32903b9a63bb558df8b803b076619c53c16baad Mon Sep 17 00:00:00 2001 From: John Moon Date: Fri, 9 Sep 2022 11:39:53 -0700 Subject: [PATCH 4/4] ANDROID: bazel: add GKI consolidate Bazel build Adds //common:kernel_aarch64_consolidate Bazel build target. Bug: 255878221 Change-Id: I76b44a2764d461d6267ff217e8914298fe560544 Signed-off-by: John Moon --- BUILD.bazel | 4 ++ build.config.gki_consolidate.aarch64 | 1 + consolidate.bzl | 62 ++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 consolidate.bzl diff --git a/BUILD.bazel b/BUILD.bazel index ea0f1c18692b..1f0f3b8691a9 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -234,3 +234,7 @@ define_db845c( "sound/soc/qcom/snd-soc-sm8250.ko", ], ) + +load(":consolidate.bzl", "define_consolidate") + +define_consolidate() diff --git a/build.config.gki_consolidate.aarch64 b/build.config.gki_consolidate.aarch64 index 3a4b71507f6d..7c835ad18cbd 100644 --- a/build.config.gki_consolidate.aarch64 +++ b/build.config.gki_consolidate.aarch64 @@ -1,3 +1,4 @@ +KERNEL_DIR=common DEFCONFIG=consolidate_defconfig FRAGMENT_CONFIG=${KERNEL_DIR}/arch/arm64/configs/consolidate.fragment PRE_DEFCONFIG_CMDS="KCONFIG_CONFIG=${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/${DEFCONFIG} ${ROOT_DIR}/${KERNEL_DIR}/scripts/kconfig/merge_config.sh -m -r ${ROOT_DIR}/${KERNEL_DIR}/arch/arm64/configs/gki_defconfig ${ROOT_DIR}/${FRAGMENT_CONFIG}" diff --git a/consolidate.bzl b/consolidate.bzl new file mode 100644 index 000000000000..0925ee41ba9e --- /dev/null +++ b/consolidate.bzl @@ -0,0 +1,62 @@ +load( + "//build/kernel/kleaf:kernel.bzl", + "kernel_build", + "kernel_build_config", + "kernel_images", + "kernel_modules_install", +) +load("//build/kernel/kleaf:constants.bzl", "aarch64_outs") + +rule_base = "kernel_aarch64_consolidate" + +def _gen_config_without_source_lines(build_config, target): + rule_name = "{}.{}".format(target, build_config) + out_file_name = rule_name + ".generated" + native.genrule( + name = rule_name, + srcs = [build_config], + outs = [out_file_name], + cmd_bash = "sed -e '/^\\. /d' $(location {}) > $@".format(build_config), + ) + + return ":" + rule_name + +def define_consolidate(): + kernel_build_config( + name = rule_base + "_build_config", + srcs = [ + # do not sort + "build.config.constants", + _gen_config_without_source_lines("build.config.common", rule_base), + "build.config.aarch64", + "build.config.gki_consolidate.aarch64", + _gen_config_without_source_lines("build.config.gki.aarch64", rule_base), + ], + ) + + kernel_build( + name = rule_base, + outs = aarch64_outs, + implicit_outs = [ + "scripts/sign-file", + "certs/signing_key.pem", + "certs/signing_key.x509", + ], + module_implicit_outs = [ + "drivers/block/zram/zram.ko", + "mm/zsmalloc.ko", + ], + build_config = rule_base + "_build_config", + ) + + kernel_modules_install( + name = "{}_modules_install".format(rule_base), + kernel_build = ":{}".format(rule_base), + ) + + kernel_images( + name = "{}_images".format(rule_base), + kernel_build = ":{}".format(rule_base), + build_system_dlkm = True, + kernel_modules_install = ":{}_modules_install".format(rule_base), + )