Received: with ECARTIS (v1.0.0; list netdev); Mon, 26 Jul 2004 14:47:23 -0700 (PDT) Received: from posti6.jyu.fi (posti6.jyu.fi [130.234.4.43]) by oss.sgi.com (8.13.0/8.13.0) with ESMTP id i6QLlGmh021156 for ; Mon, 26 Jul 2004 14:47:17 -0700 Received: from silmu.st.jyu.fi (IDENT:wLVgyOkS5QakeubTnm/ZeupN7jEfVK7W@silmu.st.jyu.fi [130.234.4.64]) by posti6.jyu.fi (8.12.8/8.12.8/antispam) with ESMTP id i6QLktob004858; Tue, 27 Jul 2004 00:46:55 +0300 Date: Tue, 27 Jul 2004 00:46:54 +0300 (EEST) From: Pasi Sjoholm X-X-Sender: ptsjohol@silmu.st.jyu.fi To: Robert Olsson cc: Francois Romieu , H?ctor Mart?n , Linux-Kernel , , , , Subject: Re: ksoftirqd uses 99% CPU triggered by network traffic (maybe RLT-8139 related) In-Reply-To: <16645.13126.52445.630789@robur.slu.se> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=iso-8859-1 Content-Transfer-Encoding: 8BIT X-Virus-Scanned: by amavisd-milter (http://www.amavis.org/) at posti6.jyu.fi; Tue, 27 Jul 2004 00:46:56 +0300 X-archive-position: 7173 X-ecartis-version: Ecartis v1.0.0 Sender: netdev-bounce@oss.sgi.com Errors-to: netdev-bounce@oss.sgi.com X-original-sender: ptsjohol@cc.jyu.fi Precedence: bulk X-list: netdev Content-Length: 1960 Lines: 53 On Mon, 26 Jul 2004, Robert Olsson wrote: > Pasi Sjoholm writes: > > Pid: 2, comm: ksoftirqd/0 > > EIP: 0060:[] CPU: 0 > > EIP is at rtl8139_poll+0xb4/0x100 [8139too] > > EFLAGS: 00000247 Not tainted (2.6.7-mm7) > > EAX: ffffe000 EBX: 00000040 ECX: df4824f8 EDX: c0441978 > > ESI: df482400 EDI: e0868000 EBP: dff85f80 DS: 007b ES: 007b > > CR0: 8005003b CR2: b7c5a000 CR3: 1fafd000 CR4: 000006d0 > > [] ksoftirqd+0x0/0xc0 > > [] net_rx_action+0x6a/0x110 > > [] __do_softirq+0xa9/0xb0 > > [] do_softirq+0x27/0x30 > > [] ksoftirqd+0x68/0xc0 > > [] kthread+0xa5/0xb0 > > [] kthread+0x0/0xb0 > > [] kernel_thread_helper+0x5/0x14 > > -- > > I'm not a kernel expert but it would seem that ksoftirqd is in some sort a > > loop because I didn't get any "printk("%s wakes ksoftirqd\n", > > current->comm);"-lines. > Hello! Hur är läget Robert?-) > This looks very much like the problem we see when doing route DoS testing > with Alexey. Hmm, at least it sounds like same problem and in both situations network interface is kept busy. > In summary: High softirq loads can totally kill userland. The reason is that > do_softirq() is run from many places hard interrupts, local_bh_enable etc > and bypasses the ksoftirqd protection. It just been discussed at OLS with > Andrea and Dipankar and others. Current RCU suffers from this problem as well. Ok, this explanation makes sense and my point of view I think this is quite critical problem if you can "crash" linux kernel just sending enough packets to network interface for an example. > I've experimented some code to defer softirq's to ksoftirqd after a time as > well as deferring all softirq's to ksoftirqd. Andrea had some ideas as well > as Ingo. I would be more than glad to help you in testing if you want to publish some patches. -- Pasi Sjöholm