Android low memory handler driver kills processes when there's still free RAM/swap

Bug #1206891 reported by Alex Smith on 2013-07-31
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)

Bug Description

When I'm doing something memory intensive such as compiling a large project I find that I start getting processes killed (mainly Chrome), despite there still being a large amount of swap free. At first I thought this was being done by the normal Linux oom-killer, but it's actually the Android low memory handler driver which is built into the default Ubuntu kernel configuration. Example of the messages I get in syslog when a process is killed:

Jul 31 11:04:34 asmith-linux kernel: [84686.869462] select 8851 (chrome), adj 300, size 18339, to kill
Jul 31 11:04:34 asmith-linux kernel: [84686.869479] send sigkill to 8851 (chrome), adj 300, size 18339

When this happens, although main memory is close to full, my swap is barely utilised at all - I have an 8GB swap partition, but I've yet to see more than around 1GB of it get used.

Kernel version: Ubuntu 3.8.0-27.40-generic
ApportVersion: 2.9.2-0ubuntu8.1
Architecture: amd64
 /dev/snd/controlC0: asmith 2189 F.... pulseaudio
CRDA: Error: command ['iw', 'reg', 'get'] failed with exit code 1: nl80211 not found.
 Error: command ['sh', '-c', 'dmesg | comm -13 --nocheck-order /var/log/dmesg -'] failed with exit code 1: comm: /var/log/dmesg: Permission denied
 dmesg: write failed: Broken pipe
DistroRelease: Ubuntu 13.04
InstallationDate: Installed on 2013-07-22 (8 days ago)
InstallationMedia: Ubuntu 13.04 "Raring Ringtail" - Release amd64 (20130424)
MachineType: HP ProLiant ML110 G7
MarkForUpload: True
NonfreeKernelModules: nvidia
Package: linux (not installed)
 PATH=(custom, no user)

ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-3.8.0-27-generic root=/dev/mapper/vg_m110image-lv_root ro quiet splash
ProcVersionSignature: Ubuntu 3.8.0-27.40-generic

Tags: raring
Uname: Linux 3.8.0-27-generic x86_64
UpgradeStatus: No upgrade log present (probably fresh install)

WifiSyslog: 02/01/2012
dmi.bios.vendor: HP
dmi.bios.version: J01
dmi.chassis.type: 7
dmi.chassis.vendor: HP
dmi.modalias: dmi:bvnHP:bvrJ01:bd02/01/2012:svnHP:pnProLiantML110G7:pvr:cvnHP:ct7:cvr: ProLiant ML110 G7
dmi.sys.vendor: HP

Alex Smith (aejsmith) on 2013-07-31
description: updated

This bug is missing log files that will aid in diagnosing the problem. From a terminal window please run:

apport-collect 1206891

and then change the status of the bug to 'Confirmed'.

If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: New → Incomplete

apport information

tags: added: apport-collected raring
description: updated

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

apport information

Changed in linux (Ubuntu):
status: Incomplete → Confirmed
tags: added: needs-upstream-testing regression-potential
Joseph Salisbury (jsalisbury) wrote :

Would it be possible for you to test the latest upstream kernel? Refer to . Please test the latest v3.11 kernel[0].

If this bug is fixed in the mainline kernel, please add the following tag 'kernel-fixed-upstream'.

If the mainline kernel does not fix this bug, please add the tag: 'kernel-bug-exists-upstream'.

If you are unable to test the mainline kernel, for example it will not boot, please add the tag: 'kernel-unable-to-test-upstream'.
Once testing of the upstream kernel is complete, please mark this bug as "Confirmed".

Thanks in advance.


Changed in linux (Ubuntu):
importance: Undecided → Medium
status: Confirmed → Incomplete
Alex Smith (aejsmith) wrote :

The issue is that CONFIG_ANDROID_LOW_MEMORY_KILLER is enabled. I'm not sure why this is on in the Ubuntu default kernel configuration as it implements Android-specific behaviour. I installed the latest upstream kernel package and the kernel config still has the low memory killer enabled, so the same issue exists there too.

Changed in linux (Ubuntu):
status: Incomplete → Confirmed
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers