Easy portable testcase! (Re: Kernel falls apart under light memorypressure (i.e. linking vmlinux))

From: Andrew Lutomirski
Date: Wed May 25 2011 - 16:18:21 EST


On Tue, May 24, 2011 at 8:43 PM, KOSAKI Motohiro
<kosaki.motohiro@xxxxxxxxxxxxxx> wrote:
>
> Unfortnately, this log don't tell us why DM don't issue any swap io. ;-)
> I doubt it's DM issue. Can you please try to make swap on out of DM?
>
>

I can do one better: I can tell you how to reproduce the OOM in the
comfort of your own VM without using dm_crypt or a Sandy Bridge
laptop. This is on Fedora 15, but it really ought to work on any
x86_64 distribution that has kvm. You'll probably want at least 6GB
on your host machine because the VM wants 4GB ram.

Here's how:

Step 1: Clone git://gitorious.org/linux-test-utils/reproduce-annoying-mm-bug.git

(You can browse here:)
https://gitorious.org/linux-test-utils/reproduce-annoying-mm-bug

Instructions to reproduce the mm bug:

Step 2: Build Linux v2.6.38.6 with config-2.6.38.6 and the patch
0001-Minchan-patch-for-testing-23-05-2011.patch (both files are in the
git repo)

Step 3: cd back to reproduce-annoying-mm-bug

Step 4: Type this.

$ make
$ qemu-kvm -m 4G -smp 2 -kernel <linux_dir>/arch/x86/boot/bzImage
-initrd initramfs.gz

Step 5: Wait for the VM to boot (it's really fast) and then run ./repro_bug.sh.

Step 6: Wait a bit and watch the fireworks. Note that it can take a
couple minutes to reproduce the bug.

Tested on my Sandy Bridge laptop and on a Xeon W3520.

For whatever reason, on my laptop without the VM I can hit the bug
almost instantaneously. Maybe it's because I'm using dm-crypt on my
laptop.

--Andy

P.S. I think that the mk_trivial_initramfs.sh script is cute, and
maybe I'll try to flesh it out and turn it into a real project some
day.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/