Policy-extendable LMK filter framework for embedded systemKunhoon Baik (firstname.lastname@example.org)
The background application management by low memory killer (LMK) is one of the outstanding features in linux-based mobile platforms such as Android or Tizen. However, LMK has been debated in the Linux community because victim selection is not the role of Linux kernel and a flexible way to apply new policies has been required. For the userspace LMK, several developers have tried implementing a userspace LMK like the ulmkd (userspace low memory killer daemon). However, not much work has been done for applying new polices.
In this paper, we present a policy-extendable LMK filter framework similar to the out-of-memory killer filter discussed at the 2013 LSF/MM Summit. The framework was integrated into the native LMK. When the LMK is triggered, each LMK filter module manages processes in background like packet filters in the network stack. While the native LMK keeps background applications based on a specific policy, the framework can enhance background application management policy. To show effectiveness of the customized LMK, we also present a LMK filter module. The module keeps the applications which could be used in the near future. The module predicts application to be used next from the latest used application based on a Markov model. In addition, we describe several benefits of the enhanced policies like managing undesirable power-consuming background applications and memory-leaking background applications. We implemented the framework and the module on Galaxy S4 and Odroid-XU using the Linux 3.4.5 kernel and acquired a preliminary result. The result shows that the number of killed applications was reduced by 14%. Although we implemented it in the kernel, it can be implemented as userspace daemon by using ulmkd. We expect that the presented policy-extendable LMK filter framework and LMK filter will improve users' experience.