From 6fab18a7eb6ff45f9c2a0e4d13f989ab2f10e6bb Mon Sep 17 00:00:00 2001 From: Hridya Valsaraju Date: Tue, 21 May 2019 15:16:14 -0700 Subject: [PATCH] Print a warning when sum of sizes of logical partitions an OEM-set limit BOARD_SUPER_PARTITION_WARN_LIMIT can be set by OEMs to print a warning when the sum of sizes of logical partitions exceed the same. It is set to 95% of BOARD_SUPER_PARTITION_SIZE by default. Bug: 133329143 Test: mmm -j32 Change-Id: I7d3bedd970a92be60991898e436f63d914359301 --- core/Makefile | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/core/Makefile b/core/Makefile index 603ad109b7..495aad1003 100644 --- a/core/Makefile +++ b/core/Makefile @@ -3425,6 +3425,10 @@ define super-slot-suffix $(if $(filter true,$(AB_OTA_UPDATER)),$(if $(filter true,$(PRODUCT_RETROFIT_DYNAMIC_PARTITIONS)),,_a)) endef +ifndef BOARD_SUPER_PARTITION_WARN_LIMIT +BOARD_SUPER_PARTITION_WARN_LIMIT := $$(($(BOARD_SUPER_PARTITION_SIZE) * 95 / 100)) +endif + droid_targets: check-all-partition-sizes .PHONY: check-all-partition-sizes check-all-partition-sizes-nodeps @@ -3455,6 +3459,8 @@ endif # $(1): human-readable max size string # $(2): max size expression # $(3): list of partition names +# $(4): human-readable warn size string +# $(5): warn size expression define check-sum-of-partition-sizes partition_size_list="$$(for i in $(call read-size-of-partitions,$(3)); do \ echo $(call round-partition-size,$${i}); \ @@ -3465,6 +3471,11 @@ define check-sum-of-partition-sizes echo $${sum_sizes_expr} '==' $$(( $${sum_sizes_expr} )) '>' "$(2)" '==' $$(( $(2) )); \ exit 1; \ else \ + if [[ ! -z "$(5)" ]] && [ $$(( $${sum_sizes_expr} )) -gt $$(( $(5) )) ]; then \ + echo "!!!! WARNING !!!! The sum of sizes of [$(strip $(3))] is larger than $(strip $(4)):"; \ + echo $${sum_sizes_expr} '==' $$(( $${sum_sizes_expr} )) '>' "$(5)" '==' $$(( $(5) )); \ + echo "Super partition is" $$(( $$(( $$(( $${sum_sizes_expr} )) * 100)) / $$(( $(2) )) )) "percent occupied!"; \ + fi; \ echo "The sum of sizes of [$(strip $(3))] is within $(strip $(1)):"; \ echo $${sum_sizes_expr} '==' $$(( $${sum_sizes_expr} )) '<=' "$(2)" '==' $$(( $(2) )); \ fi; @@ -3474,7 +3485,10 @@ define check-all-partition-sizes-target # Check sum(all partitions) <= super partition (/ 2 for A/B devices launched with dynamic partitions) $(if $(BOARD_SUPER_PARTITION_SIZE),$(if $(BOARD_SUPER_PARTITION_PARTITION_LIST), \ $(call check-sum-of-partition-sizes,BOARD_SUPER_PARTITION_SIZE$(if $(call super-slot-suffix), / 2), \ - $(BOARD_SUPER_PARTITION_SIZE)$(if $(call super-slot-suffix), / 2),$(BOARD_SUPER_PARTITION_PARTITION_LIST)))) + $(BOARD_SUPER_PARTITION_SIZE)$(if $(call super-slot-suffix), / 2),$(BOARD_SUPER_PARTITION_PARTITION_LIST), \ + BOARD_SUPER_PARTITION_WARN_LIMIT$(if $(call super-slot-suffix), / 2), \ + $(BOARD_SUPER_PARTITION_WARN_LIMIT)$(if $(call super-slot-suffix), / 2)) \ + )) # For each group, check sum(partitions in group) <= group size $(foreach group,$(call to-upper,$(BOARD_SUPER_PARTITION_GROUPS)), \