From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net (shards.monkeyblade.net [198.137.202.13]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id A2C81B6F7C for ; Tue, 12 Jul 2011 22:14:23 +1000 (EST) Date: Tue, 12 Jul 2011 05:13:16 -0700 (PDT) Message-Id: <20110712.051316.1963034055315982365.davem@davemloft.net> To: ronny.meeus@gmail.com Subject: Re: softirqs are invoked while bottom halves are masked From: David Miller In-Reply-To: <20110712.050817.1253941735409335652.davem@davemloft.net> References: <1310465411.3314.6.camel@edumazet-HP-Compaq-6005-Pro-SFF-PC> <20110712.050817.1253941735409335652.davem@davemloft.net> Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Cc: linuxppc-dev@ozlabs.org, afleming@freescale.com, patrickdepinguin+linuxppc@gmail.com, eric.dumazet@gmail.com, netdev@vger.kernel.org List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: David Miller Date: Tue, 12 Jul 2011 05:08:17 -0700 (PDT) > From: Ronny Meeus > Date: Tue, 12 Jul 2011 14:03:04 +0200 > >> but we still see the issue "BUG: sleeping function called from invalid context": >> >> [ 91.015989] BUG: sleeping function called from invalid context at >> include/linux/skbuff.h:786 >> [ 91.117096] in_atomic(): 1, irqs_disabled(): 0, pid: 1865, name: NMTX_T1842 >> [ 91.200461] Call Trace: >> [ 91.229672] [ec58bbd0] [c000789c] show_stack+0x78/0x18c (unreliable) >> [ 91.305791] [ec58bc10] [c0022900] __might_sleep+0x100/0x118 >> [ 91.372524] [ec58bc20] [c029f8d8] dpa_tx+0x128/0x758 > > Because this dpa driver's transmit method is doing something else that > is not allowed in software interrupt context. > > You must remove all things that might sleep in this driver's > ->ndo_start_xmit method, and I do mean everything. Also this whole HW QOS feature bit facility is beyond bogus. What if the user enables a qdisc that the hardware can't handle, or a configuration of a hw supported qdisc that the hardware can't support? What if I have packet classification and packet actions enabled in the packet scheduler? These changes are terrible, and we really need you guys to sort out your problems with these changes yoursleves because your wounds are entirely self-inflicted and totally not our problem.