From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S268548AbTGRQzc (ORCPT ); Fri, 18 Jul 2003 12:55:32 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S270255AbTGRQzb (ORCPT ); Fri, 18 Jul 2003 12:55:31 -0400 Received: from e35.co.us.ibm.com ([32.97.110.133]:6068 "EHLO e35.co.us.ibm.com") by vger.kernel.org with ESMTP id S268548AbTGRQyD (ORCPT ); Fri, 18 Jul 2003 12:54:03 -0400 Message-ID: <3F182907.30EA5922@us.ibm.com> Date: Fri, 18 Jul 2003 10:06:15 -0700 From: Jim Keniston X-Mailer: Mozilla 4.75 [en] (WinNT; U) X-Accept-Language: en MIME-Version: 1.0 To: James Morris CC: Andrew Morton , davem@redhat.com, linux-kernel@vger.kernel.org, netdev@oss.sgi.com, jgarzik@pobox.com, alan@lxorguk.ukuu.org.uk, rddunlap@osdl.org, kuznet@ms2.inr.ac.ru Subject: Re: [PATCH] [1/2] kernel error reporting (revised) References: 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 James Morris wrote: > > On Thu, 17 Jul 2003, Jim Keniston wrote: > > > 3. Given the above, what should the evlog.c caller do when > > kernel_error_event_iov() returns -EINPROGRESS? > > a. Nothing. Figure the packet will probably get logged. > > b. Just to be safe, report it via printk, the same way we report dropped > > packets. > > We currently do (a). (b) would mean that every event logged from IRQ > > context would be cc-ed to printk. > > I don't think this irq detection logic should be added at all here, let > the caller reschedule its logging if running in irq context. > > - James > -- > James Morris > Yes, this makes sense. At the kerror.c level, just return -EDEADLK if in_irq(). Delay packet delivery (via a tasklet, as before) at the evlog.c level instead. That way, we know at the evlog.c level (in the tasklet) whether the event packet was delivered to anybody, and can paraphrase it to printk if it wasn't. Is this the sort of thing you had in mind? Jim K