summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandroid-build-team Robot2018-05-17 02:22:36 -0500
committerandroid-build-team Robot2018-05-17 02:22:36 -0500
commitf7cb192aed26cab55ce2fa7b4c4a0ae953c70793 (patch)
treef2b3b194b27f18a7d8438029b09b79e12b145cd3
parent7c365bcc92616b3b672d47205c10ef9b33c7f0fd (diff)
parent7905b1e16286653679b7ff9b595f3ed7de5e182f (diff)
downloadplatform-system-core-f7cb192aed26cab55ce2fa7b4c4a0ae953c70793.tar.gz
platform-system-core-f7cb192aed26cab55ce2fa7b4c4a0ae953c70793.tar.xz
platform-system-core-f7cb192aed26cab55ce2fa7b4c4a0ae953c70793.zip
Snap for 4787078 from 7905b1e16286653679b7ff9b595f3ed7de5e182f to pi-release
Change-Id: Id0a5125ffd734a0b158ab867f8ffd9c0e0ae930a
-rw-r--r--lmkd/lmkd.c16
-rw-r--r--rootdir/Android.mk70
2 files changed, 54 insertions, 32 deletions
diff --git a/lmkd/lmkd.c b/lmkd/lmkd.c
index 20937cd77..76344b98a 100644
--- a/lmkd/lmkd.c
+++ b/lmkd/lmkd.c
@@ -1026,9 +1026,7 @@ static int find_and_kill_processes(enum vmpressure_level level,
1026 int pages_freed = 0; 1026 int pages_freed = 0;
1027 1027
1028#ifdef LMKD_LOG_STATS 1028#ifdef LMKD_LOG_STATS
1029 if (enable_stats_log) { 1029 bool lmk_state_change_start = false;
1030 stats_write_lmk_state_changed(log_ctx, LMK_STATE_CHANGED, LMK_STATE_CHANGE_START);
1031 }
1032#endif 1030#endif
1033 1031
1034 for (i = OOM_SCORE_ADJ_MAX; i >= min_score_adj; i--) { 1032 for (i = OOM_SCORE_ADJ_MAX; i >= min_score_adj; i--) {
@@ -1043,11 +1041,19 @@ static int find_and_kill_processes(enum vmpressure_level level,
1043 1041
1044 killed_size = kill_one_process(procp, min_score_adj, level); 1042 killed_size = kill_one_process(procp, min_score_adj, level);
1045 if (killed_size >= 0) { 1043 if (killed_size >= 0) {
1044#ifdef LMKD_LOG_STATS
1045 if (enable_stats_log && !lmk_state_change_start) {
1046 lmk_state_change_start = true;
1047 stats_write_lmk_state_changed(log_ctx, LMK_STATE_CHANGED,
1048 LMK_STATE_CHANGE_START);
1049 }
1050#endif
1051
1046 pages_freed += killed_size; 1052 pages_freed += killed_size;
1047 if (pages_freed >= pages_to_free) { 1053 if (pages_freed >= pages_to_free) {
1048 1054
1049#ifdef LMKD_LOG_STATS 1055#ifdef LMKD_LOG_STATS
1050 if (enable_stats_log) { 1056 if (enable_stats_log && lmk_state_change_start) {
1051 stats_write_lmk_state_changed(log_ctx, LMK_STATE_CHANGED, 1057 stats_write_lmk_state_changed(log_ctx, LMK_STATE_CHANGED,
1052 LMK_STATE_CHANGE_STOP); 1058 LMK_STATE_CHANGE_STOP);
1053 } 1059 }
@@ -1059,7 +1065,7 @@ static int find_and_kill_processes(enum vmpressure_level level,
1059 } 1065 }
1060 1066
1061#ifdef LMKD_LOG_STATS 1067#ifdef LMKD_LOG_STATS
1062 if (enable_stats_log) { 1068 if (enable_stats_log && lmk_state_change_start) {
1063 stats_write_lmk_state_changed(log_ctx, LMK_STATE_CHANGED, LMK_STATE_CHANGE_STOP); 1069 stats_write_lmk_state_changed(log_ctx, LMK_STATE_CHANGED, LMK_STATE_CHANGE_STOP);
1064 } 1070 }
1065#endif 1071#endif
diff --git a/rootdir/Android.mk b/rootdir/Android.mk
index f488ed5a4..3c9e5f3c5 100644
--- a/rootdir/Android.mk
+++ b/rootdir/Android.mk
@@ -147,13 +147,10 @@ $(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/init.environ.rc.in $(bcp_dep)
147bcp_md5 := 147bcp_md5 :=
148bcp_dep := 148bcp_dep :=
149 149
150# If BOARD_VNDK_VERSION is defined, append PLATFORM_VNDK_VERSION to base name. 150# Append PLATFORM_VNDK_VERSION to base name.
151define append_vndk_version 151define append_vndk_version
152$(strip \ 152$(strip \
153 $(if $(BOARD_VNDK_VERSION), \ 153 $(basename $(1)).$(PLATFORM_VNDK_VERSION)$(suffix $(1)) \
154 $(basename $(1)).$(PLATFORM_VNDK_VERSION)$(suffix $(1)), \
155 $(1) \
156 ) \
157) 154)
158endef 155endef
159 156
@@ -215,31 +212,46 @@ sanitizer_runtime_libraries :=
215vndk_version_suffix := 212vndk_version_suffix :=
216endef # update_and_install_ld_config 213endef # update_and_install_ld_config
217 214
215
216#######################################
217# ld.config.txt selection variables
218#
219_enforce_vndk_at_runtime := false
220ifdef BOARD_VNDK_VERSION
221 ifneq ($(BOARD_VNDK_RUNTIME_DISABLE),true)
222 _enforce_vndk_at_runtime := true
223 endif
224endif
225
226_enforce_vndk_lite_at_runtime := false
227ifeq ($(_enforce_vndk_at_runtime),false)
228 ifeq ($(PRODUCT_TREBLE_LINKER_NAMESPACES)|$(SANITIZE_TARGET),true|)
229 _enforce_vndk_lite_at_runtime := true
230 endif
231endif
232
218####################################### 233#######################################
219# ld.config.txt 234# ld.config.txt
220# 235#
221# For VNDK enforced devices that have defined BOARD_VNDK_VERSION, use 236# For VNDK enforced devices that have defined BOARD_VNDK_VERSION, use
222# "ld.config.txt" as a source file. This configuration includes strict VNDK 237# "ld.config.txt" as a source file. This configuration includes strict VNDK
223# run-time restrictions for vendor process. 238# run-time restrictions for vendor process.
239#
224# Other treblized devices, that have not defined BOARD_VNDK_VERSION or that 240# Other treblized devices, that have not defined BOARD_VNDK_VERSION or that
225# have set BOARD_VNDK_RUNTIME_DISABLE to true, use "ld.config.vndk_lite.txt" 241# have set BOARD_VNDK_RUNTIME_DISABLE to true, use "ld.config.vndk_lite.txt"
226# as a source file. This configuration does not have strict VNDK run-time 242# as a source file. This configuration does not have strict VNDK run-time
227# restrictions. 243# restrictions.
244#
228# If the device is not treblized, use "ld.config.legacy.txt" for legacy 245# If the device is not treblized, use "ld.config.legacy.txt" for legacy
229# namespace configuration. 246# namespace configuration.
247#
230include $(CLEAR_VARS) 248include $(CLEAR_VARS)
231LOCAL_MODULE := ld.config.txt 249LOCAL_MODULE := ld.config.txt
232LOCAL_MODULE_CLASS := ETC 250LOCAL_MODULE_CLASS := ETC
233LOCAL_MODULE_PATH := $(TARGET_OUT_ETC) 251LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)
234 252
235_enforce_vndk_at_runtime := false
236ifdef BOARD_VNDK_VERSION
237ifneq ($(BOARD_VNDK_RUNTIME_DISABLE),true)
238 _enforce_vndk_at_runtime := true
239endif
240endif
241
242ifeq ($(_enforce_vndk_at_runtime),true) 253ifeq ($(_enforce_vndk_at_runtime),true)
254
243# for VNDK enforced devices 255# for VNDK enforced devices
244LOCAL_MODULE_STEM := $(call append_vndk_version,$(LOCAL_MODULE)) 256LOCAL_MODULE_STEM := $(call append_vndk_version,$(LOCAL_MODULE))
245include $(BUILD_SYSTEM)/base_rules.mk 257include $(BUILD_SYSTEM)/base_rules.mk
@@ -248,37 +260,36 @@ $(eval $(call update_and_install_ld_config,\
248 $(LOCAL_BUILT_MODULE),\ 260 $(LOCAL_BUILT_MODULE),\
249 $(PLATFORM_VNDK_VERSION))) 261 $(PLATFORM_VNDK_VERSION)))
250 262
251else ifeq ($(PRODUCT_TREBLE_LINKER_NAMESPACES)|$(SANITIZE_TARGET),true|) 263else ifeq ($(_enforce_vndk_lite_at_runtime),true)
252# for treblized but VNDK non-enforced devices 264
253LOCAL_MODULE_STEM := $(call append_vndk_version,$(LOCAL_MODULE)) 265# for treblized but VNDK lightly enforced devices
266LOCAL_MODULE_STEM := ld.config.vndk_lite.txt
254include $(BUILD_SYSTEM)/base_rules.mk 267include $(BUILD_SYSTEM)/base_rules.mk
255$(eval $(call update_and_install_ld_config,\ 268$(eval $(call update_and_install_ld_config,\
256 $(LOCAL_PATH)/etc/ld.config.vndk_lite.txt,\ 269 $(LOCAL_PATH)/etc/ld.config.vndk_lite.txt,\
257 $(LOCAL_BUILT_MODULE),\ 270 $(LOCAL_BUILT_MODULE),\
258 $(if $(BOARD_VNDK_VERSION),$(PLATFORM_VNDK_VERSION)),\ 271 $(PLATFORM_VNDK_VERSION),\
259 true)) 272 true))
260 273
261else 274else
275
262# for legacy non-treblized devices 276# for legacy non-treblized devices
263LOCAL_SRC_FILES := etc/ld.config.legacy.txt
264LOCAL_MODULE_STEM := $(LOCAL_MODULE) 277LOCAL_MODULE_STEM := $(LOCAL_MODULE)
278LOCAL_SRC_FILES := etc/ld.config.legacy.txt
265include $(BUILD_PREBUILT) 279include $(BUILD_PREBUILT)
266 280
267endif # if _enforce_vndk_at_runtime is true 281endif # ifeq ($(_enforce_vndk_at_runtime),true)
268 282
269_enforce_vndk_at_runtime :=
270 283
271####################################### 284#######################################
272# ld.config.noenforce.txt 285# ld.config.vndk_lite.txt
273# 286#
274# This file is a temporary configuration file only for GSI. Originally GSI has 287# This module is only for GSI.
275# BOARD_VNDK_VERSION defined and has strict VNDK enforcing rule based on 288#
276# "ld.config.txt". However for the devices, that have not defined 289ifeq ($(_enforce_vndk_lite_at_runtime),false)
277# BOARD_VNDK_VERSION, GSI provides this configuration file which is based on 290
278# "ld.config.vndk_lite.txt".
279# Do not install this file for the devices other than GSI.
280include $(CLEAR_VARS) 291include $(CLEAR_VARS)
281LOCAL_MODULE := ld.config.noenforce.txt 292LOCAL_MODULE := ld.config.vndk_lite.txt
282LOCAL_MODULE_CLASS := ETC 293LOCAL_MODULE_CLASS := ETC
283LOCAL_MODULE_PATH := $(TARGET_OUT_ETC) 294LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)
284LOCAL_MODULE_STEM := $(LOCAL_MODULE) 295LOCAL_MODULE_STEM := $(LOCAL_MODULE)
@@ -289,6 +300,11 @@ $(eval $(call update_and_install_ld_config,\
289 $(PLATFORM_VNDK_VERSION),\ 300 $(PLATFORM_VNDK_VERSION),\
290 true)) 301 true))
291 302
303endif # ifeq ($(_enforce_vndk_lite_at_runtime),false)
304
305_enforce_vndk_at_runtime :=
306_enforce_vndk_lite_at_runtime :=
307
292####################################### 308#######################################
293# llndk.libraries.txt 309# llndk.libraries.txt
294include $(CLEAR_VARS) 310include $(CLEAR_VARS)