Re: linux memory DOS

Andrea Arcangeli (andrea@suse.de)
Thu, 2 Sep 1999 13:25:57 +0200 (CEST)


On Thu, 2 Sep 1999, Nikolay N. Igotti wrote:

>I think this is very nasty DOS, which can appear even in real life (
>i.e. as result of working usual userspace programs, not this "exploit").

All 2.2.x kernels have also a potential deadlock condition in the
swapin-code. It spotted it down some month ago. You can trigger it only
going OOM (causing GFP to fail).

At first I fixed it in the page-fault generic code, but Linus suggested me
to do the right thing and to fix it in the core of the page-fault handler
code (as he did in 2.3.x). This change broken the handle_mm_fault
interface and so all archs will need to be updated (i386 and Alpha are
just updated with only my patch applyed). BTW, Alpha was not sending the
SIGBUS accessing a shared mapping beyond the end of the file (I fixed such
bug too in the patch).

Also in i386 now the kernel send a SIGTERM and not a SIGKILL if a process
running in iopl() > 0 goes OOM (so X won't be able to screw-up your
display anymore only by going OOM).

With this patch applyed you can still forbid the admin to alloc the memory
to run `kill`, but at least the machine won't deadlock.

ftp://ftp.suse.com/pub/people/andrea/kernel-patches/my-2.2.12/oom-2.2.11-H

But before to try again I suggest you to apply also this performance
patch and you'll get at least some more performance while the hard-disk
trashes ;).

ftp://ftp.suse.com/pub/people/andrea/kernel-patches/my-2.2.12/trashing-mem-2.2.10-A

Andrea

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/