Title: Virtual Memory
1DMEL (Dependable Memory management system for
Embedded Linux)
Lineo Solutions, Inc.
It is becoming necessary for embedded Linux
systems which support non-genuine software (e.g.
3rd party software, Download software, etc). Such
unpredictable software may consume so much
resource in total. It possibly causes a situation
in worse instable on the system. DMEL provides
methods of managing processes, which look hard to
predict resource consumption, in a group. DMEL
also provides methods of reserving memory
consumption of the group. This demo is an example
of implementation of DMEL. It shows that the
total memory consumption of three processes
continue to keep below the Warning level by the
DMELs effect, whose method consists of page
cache reclaiming and sending a signal.
When the system lacks in memory resources, Linux
kernel reclaims page caches, and further runs OOM
killer after the reclaiming of the page
cache. Introducing account and control method for
memory consumption of the registered processes,
DMEL prevents OOM killer from killing important
processes.
Process Group management by CABI framework.
DMEL accounts memory at the following two
cases a) when a page frame is allocated to the
VM area. b) when a page cache is allocated. If
the accounting value exceeds the threshold, DMEL
uses the methods to reduce memory consumption.
(See the figure below)
Demonstration
1. A Group of the processes managed by DMEL
(three in this demo) consumes physical memory
independently. 2. DMEL detects that the total
memory consumption has exceeds the Warning
level. 3. If detected, (Method-1) DMEL reclaims
page caches. (Method-2) DMEL sends a signal
to the management process. The management
process instructs the processes in the group to
release the memory. The management
process is defined and implemented in this
demo. Repeat from 1 to 3.
VM area access
Using DMEL results, user applications can start
processing to suppress memory consumption.
Virtual Memory
DMEL
page_fault
AFTER
BEFORE
Memory accounting
Important process
a) alloc_pages() b) page_cache_alloc()
Exceeds Warning level / Blocking level?
Release memory
A group of processes
yes
Over!
try_to_free_pages() wakeup kswapd
- Methods in Warning level
- - page cache reclaiming
- - send signal
- select wakeup(Driver API)
- Method in Blocking level
- - memory blocking
Total consumption is detected
OOM killer
Blocking level
Warning level
memory consumption
Renesas MS7780SE03(SH-4A)
- The patch is available in http//www.lineo.co.jp
/downloads/downloads.html. - The latest patch
will be available in http//sourceforge.net/projec
ts/cabi/.
(CABI Project _at_ sourceforge)