summaryrefslogtreecommitdiff
path: root/kernel_definitions.mk
diff options
context:
space:
mode:
authorRaghavendra Rao Ananta <rananta@codeaurora.org>2020-07-28 15:19:41 -0700
committerRaghavendra Rao Ananta <rananta@codeaurora.org>2020-07-29 16:11:40 -0700
commit163986e4fecf15bd25e06303aab0abb310cb2b3c (patch)
tree04e2d7fc859c6d45c83ae5bfa62d716b8c88b234 /kernel_definitions.mk
parent7ec3b3cccea2a1df638ffbda2293db0fac572f4c (diff)
kernel_definitions: Build the QGKI and GKI kernels in parallel
For $(PLATFORM)-qgki_defconfig, currently we build GKI and QGKI kernels in a serial manner. To improve the build time, build the kernels in parallel. For this, remove the 'make' target dependencies between the two kernel builds and make sure that the defconfigs for both the kernels are generated in sequence. Change-Id: I55a12a5bc0de3c4eca9ba773a5cf20e2b104a0ee Signed-off-by: Raghavendra Rao Ananta <rananta@codeaurora.org>
Diffstat (limited to 'kernel_definitions.mk')
-rw-r--r--kernel_definitions.mk28
1 files changed, 7 insertions, 21 deletions
diff --git a/kernel_definitions.mk b/kernel_definitions.mk
index be2cdf0..cc710c3 100644
--- a/kernel_definitions.mk
+++ b/kernel_definitions.mk
@@ -122,7 +122,9 @@ ifeq ($(GKI_KERNEL),1)
GKI_PLATFORM_NAME := $(shell echo $(KERNEL_DEFCONFIG) | sed -r "s/(-gki_defconfig|-qgki_defconfig|-qgki-consolidate_defconfig|-qgki-debug_defconfig)$///")
GKI_PLATFORM_NAME := $(shell echo $(GKI_PLATFORM_NAME) | sed "s/vendor\///g")
TARGET_USES_UNCOMPRESSED_KERNEL := $(shell grep "CONFIG_BUILD_ARM64_UNCOMPRESSED_KERNEL=y" $(TARGET_KERNEL_SOURCE)/arch/arm64/configs/vendor/$(GKI_PLATFORM_NAME)_GKI.config)
-KERNEL_GENERATE_DEFCONFIG := $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_DEFCONFIG)
+
+# Generate the defconfig file from the fragments
+_x := $(shell ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(real_cc) KERN_OUT=$(KERNEL_OUT) $(TARGET_KERNEL_MAKE_ENV) MAKE_PATH=$(MAKE_PATH) $(TARGET_KERNEL_SOURCE)/scripts/gki/generate_defconfig.sh $(KERNEL_DEFCONFIG))
else
TARGET_USES_UNCOMPRESSED_KERNEL := $(shell grep "CONFIG_BUILD_ARM64_UNCOMPRESSED_KERNEL=y" $(TARGET_KERNEL_SOURCE)/arch/arm64/configs/$(KERNEL_DEFCONFIG))
endif
@@ -172,6 +174,9 @@ ifeq ($(GKI_KERNEL),1)
BOARD_KERNEL_MODULE_DIRS := $(GKI_TARGET_MODULES_DIR)
BOARD_KERNEL-GKI_BOOTIMAGE_PARTITION_SIZE := 0x06000000
+
+ # Generate the GKI defconfig
+ _x := $(shell ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(real_cc) KERN_OUT=$(KERNEL_OUT) $(TARGET_KERNEL_MAKE_ENV) MAKE_PATH=$(MAKE_PATH) $(TARGET_KERNEL_SOURCE)/scripts/gki/generate_defconfig.sh $(GKI_KERNEL_DEFCONFIG))
endif
endif
@@ -221,19 +226,6 @@ MAKE_PATH := $(SOURCE_ROOT)/prebuilts/build-tools/linux-x86/bin/
# Helper functions
-ifeq ($(GKI_KERNEL),1)
-# Generate the defconfig file from fragments
-# $(1): The defconfig to generate. For example, vendor/lahaina-qgki_defconfig
-define generate-defconfig
- set -x; \
- ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(KERNEL_CROSS_COMPILE) $(real_cc) KERN_OUT=$(KERNEL_OUT) $(TARGET_KERNEL_MAKE_ENV) MAKE_PATH=$(MAKE_PATH) $(TARGET_KERNEL_SOURCE)/scripts/gki/generate_defconfig.sh $(1); \
- set +x
-endef
-else
-define generate-defconfig
-endef
-endif
-
# Build the kernel
# $(1): KERNEL_DEFCONFIG to build for
# $(2): KERNEL_OUT directory
@@ -266,7 +258,6 @@ endef
# Android Kernel make rules
$(KERNEL_HEADERS_INSTALL): $(KERNEL_OUT) $(DTC) $(UFDT_APPLY_OVERLAY)
- $(call generate-defconfig,$(KERNEL_DEFCONFIG)); \
$(call build-kernel,$(KERNEL_DEFCONFIG),$(KERNEL_OUT),$(KERNEL_MODULES_OUT),$(KERNEL_HEADERS_INSTALL),1,$(TARGET_PREBUILT_INT_KERNEL))
$(KERNEL_OUT):
@@ -278,15 +269,10 @@ $(KERNEL_USR): $(KERNEL_HEADERS_INSTALL)
$(TARGET_PREBUILT_KERNEL): $(KERNEL_OUT) $(DTC) $(KERNEL_USR)
echo "Building the requested kernel.."; \
- $(call generate-defconfig,$(KERNEL_DEFCONFIG)); \
$(call build-kernel,$(KERNEL_DEFCONFIG),$(KERNEL_OUT),$(KERNEL_MODULES_OUT),$(KERNEL_HEADERS_INSTALL),0,$(TARGET_PREBUILT_INT_KERNEL))
-# Make GKI_TARGET_PREBUILT_KERNEL dependent on TARGET_PREBUILT_KERNEL just so
-# that the builds are serialzed. This is just to avoid hogging CPU resoruces
-# and to avoid any potential race-conditions.
-$(GKI_TARGET_PREBUILT_KERNEL): $(DTC) $(TARGET_PREBUILT_KERNEL)
+$(GKI_TARGET_PREBUILT_KERNEL): $(DTC)
echo "Building GKI kernel.."; \
- $(call generate-defconfig,$(GKI_KERNEL_DEFCONFIG)); \
$(call build-kernel,$(GKI_KERNEL_DEFCONFIG),$(GKI_KERNEL_OUT),$(GKI_KERNEL_MODULES_OUT),$(GKI_KERNEL_HEADERS_INSTALL),0,$(GKI_TARGET_PREBUILT_INT_KERNEL))
$(INSTALLED_KERNEL_TARGET): $(TARGET_PREBUILT_KERNEL) $(GKI_TARGET_PREBUILT_KERNEL)