lkml.org 
[lkml]   [2009]   [Oct]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH v11 4/5] core: Add kernel message dumper to call on oopses and panics
    From
    Date
    On Mon, 2009-10-26 at 12:53 +0100, ext Simon Kagstrom wrote:
    > On Mon, 26 Oct 2009 12:36:33 +0200
    > "Shargorodsky Atal (EXT-Teleca/Helsinki)" <ext-atal.shargorodsky@nokia.com> wrote:
    >
    > > > > I can think of a couple of way to figure it out in the module
    > > > > itself, but I could not think of any clean way to do it.
    > > >
    > > > This is correct, and the mtdoops driver has some provisions to handle
    > > > this. First, there is a parameter to the module to specify whether
    > > > oopses should be dumped at all - I added this for the particular case
    > > > that someone has panic_on_oops set.
    > >
    > > It takes care of most of the situations, but panic_on_oops
    > > can be changed any time, even after the module is loaded.
    >
    > Yes, but this parameter is settable at runtime as well by writing
    > to /sys/module/mtdoops/parameters/dump_oops.
    >
    > > > Second, it does not dump oopses directly anyway, but puts it in a work
    > > > queue. That way, if panic_on_oops is set, it will store the panic but
    > > > the oops (called from the workqueue) will not get written anyway.
    > > >
    > >
    > > AFAIK, mtdoops does not put oopses in a work queue. And if by any chance
    > > it does, then I think it's wrong and might lead to missed oopses, as
    > > the oops might be because of the work queues themselves, or it might
    > > look to the kernel like some non-fatal fault, but actually it's a
    > > sign of a much more catastrophic failure - IOMMU device garbaging
    > > memory, for instance.
    >
    > I was referring to my patches to it, sorry. It's in the patch "[PATCH v7 5/5]:
    > mtdoops: refactor as a kmsg_dumper" (as well as the parameter to dump
    > oopses at all).
    >
    > There are other situations which will make dumping problematic as well,
    > e.g., crashes in the mtd code, so there are certainly some cases which
    > will be difficult to catch. But in the panic_on_oops case or
    > oops-in-interrupt, the oops won't be missed and won't be outputted
    > twice for mtdoops.
    >
    >
    > Anyway, I understand your problem and agree that it would be good to
    > fix. Moving up crash_kexec() and the notifiers will at least fix your
    > second issue. For the double-output-of-oopses, I don't see a good way
    > to fix it unless relying on the module to correct it like above.
    >

    How about adding KMSG_DUMP_LAST_OOPS_BEFORE_PANIC or something to the
    kmsg_dump_reason enum, and making the kmsg_dump look like
    kmsg_dump(panic_on_oops ? KMSG_DUMP_LAST_OOPS_BEFORE_PANIC : KMSG_DUMP_OOPS);
    in oops_exit. Then let the dumpers decide what they want to do about it.
    Just a thought.

    And since you have no objections about moving notifiers up, it looks
    like the second issue will be resolved, I believe Artem
    will take care of it. :)

    Thanks a lot,
    Atal.

    > // Simon



    \
     
     \ /
      Last update: 2009-10-26 16:21    [W:0.030 / U:31.600 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site