Jim Keniston wrote:
> 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
> > <jmorris@xxxxxxxxxxxxxxxx>
> Yes, this makes sense. At the kerror.c level, just return -EDEADLK if
> 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
> 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
I implemented the above change. Now, an event logged from an interrupt
handler when nobody's listening to our socket (e.g., during boot) is
paraphrased to printk. Here are the updated patches: