Subject: Re: easy ways to crash your NetBSD system
To: None <jmarin@teeri.jmp.fi>
From: David Mazieres <dm@amsterdam.lcs.mit.edu>
List: current-users
Date: 04/07/1996 08:33:00
> From: Jukka Marin <jmarin@teeri.jmp.fi>
> Date: Wed, 3 Apr 1996 22:51:11 +0300 (EET DST)
> X-Mailer: ELM [version 2.4 PL25]
> Content-Type: text
> Sender: owner-current-users@NetBSD.ORG
> Precedence: list
> X-Loop: current-users@NetBSD.ORG
>
> Two easy ways to crash a NetBSD system - is it only my system or...?
>
> 1. main(void) { while(1) fork(); }
>
> 2. use dd to copy data from a raw disk partition to /dev/null and set
> the block size to a big value (like 8 megs).
2a. Put a lot of RAM in your machine (like >= 64 Megs), and you will
get these ptdi panics periodically even if you have increased
NKPDE and don't make huge reads from raw devices.
3. Blast 8K UDP packets at a NetBSD machine over a local ethernet.
You will run out of mbufs, and so m_reclaim() will drain the
protocol queues. If you were traversing the ipq or in ip_freef()
when the network interrupt arrives, the fragment may be freed
underneath you resulting in a page fault when you return to
ipintr().
Doesn't mean I'm not a NetBSD fan--I just thought I'd add mine while
we were making a list.
David
P.S. If you are desperate about 3 as I was, you can simply change the
mbuf code not to call m_reclaim when M_DONTWAIT is requested. In at
least some cases you can get lower IP packet loss this way. I'm not
advocating this as the proper fix, though.