Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S266260AbTGECMt (ORCPT ); Fri, 4 Jul 2003 22:12:49 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S266261AbTGECMt (ORCPT ); Fri, 4 Jul 2003 22:12:49 -0400 Received: from air-2.osdl.org ([65.172.181.6]:64145 "EHLO mail.osdl.org") by vger.kernel.org with ESMTP id S266260AbTGECMs (ORCPT ); Fri, 4 Jul 2003 22:12:48 -0400 Date: Fri, 4 Jul 2003 19:28:06 -0700 From: Andrew Morton To: Roger Luethi Cc: linux-kernel@vger.kernel.org, Bartlomiej Zolnierkiewicz Subject: Re: [2.5.74] bad: scheduling while atomic! Message-Id: <20030704192806.76f07845.akpm@osdl.org> In-Reply-To: <20030704153407.GA3540@k3.hellgate.ch> References: <20030704153407.GA3540@k3.hellgate.ch> X-Mailer: Sylpheed version 0.9.0pre1 (GTK+ 1.2.10; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1650 Lines: 39 Roger Luethi wrote: > > I haven't had the time to investigate this, so I don't have much > information to share beyond the trace below. I think I have seen this at > least with 2.5.73, too. The system looks okay, then, usually hours later > (if at all, it's a rare event), something triggers a flood of those call > traces (many of them per second). > > The syslog seems to suggest it might be related to IDE DMA: > > Jul 4 17:17:28 [kernel] hda: dma_timer_expiry: dma status == 0x61 > Jul 4 17:17:44 [kernel] hda: timeout waiting for DMA > Jul 4 17:17:44 [kernel] [] default_idle+0x0/0x40 > Jul 4 17:17:44 [kernel] bad: scheduling while atomic! > > Compiler is gcc 3.2.3. > > bad: scheduling while atomic! > Call Trace: > [] default_idle+0x0/0x40 > [] schedule+0x500/0x510 > [] poll_idle+0x23/0x40 > [] apm_cpu_idle+0xa3/0x140 > [] apm_cpu_idle+0x0/0x140 > [] default_idle+0x0/0x40 > [] cpu_idle+0x38/0x40 > [] rest_init+0x0/0x30 > [] start_kernel+0x138/0x140 > [] unknown_bootoption+0x0/0x100 Possibly the IDE error handler has a locking imbalance. It returned from the interrupt handler without having unlocked a lock which it should have unlocked, and that left the currently-running process (the idle task in this case) with an incorrect preempt count. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/