[Crash-utility] Question for LKCD maintainers

Dave Anderson anderson at redhat.com
Fri Nov 16 14:30:12 UTC 2007


Long after I stopped tinkering with the LKCD code in crash,
changes were contributed to support physical memory zones
in the LKCD dumpfile format.  Specifically there is this
piece of save_offset() in lkcd_common.c:

         /* find the zone */
         for (ii=0; ii < lkcd->num_zones; ii++) {
                 if (lkcd->zones[ii].start == zone) {
                         if (lkcd->zones[ii].pages[page].offset != 0) {
                            if (lkcd->zones[ii].pages[page].offset != off) {
                                 error(INFO, "conflicting page: zone %lld, "
                                         "page %lld: %lld, %lld != %lld\n",
                                         (unsigned long long)zone,
                                         (unsigned long long)page,
                                         (unsigned long long)paddr,
                                         (unsigned long long)off,
                                         (unsigned long long) \
                                             lkcd->zones[ii].pages[page].offset);
                                 abort();
                            }
                            ret = 0;
                         } else {
                            lkcd->zones[ii].pages[page].offset = off;
                            ret = 1;
                         }
                         break;
                 }
         }

The call to abort() above kills the crash session, which is both
annoying and unnecessary.

I am seeing it in a customer dumpfile, who have their own dumping scheme
that is based upon LKCD version 7.  I understand that this may be a
problem with their LKCD port, but nonetheless, it's the only place in
the crash utility that doesn't recover gracefully from dumpfile access
errors.

Anyway, I would like to either:

  1. change the error(INFO...) to error(FATAL...) so that run-time
     commands encountering this error will just fail, and the session
     will return to the crash> prompt, or
  2. return 0, so that a "seek error" can be subsequently displayed
     by the readmem() command.

Number 2 is preferable, because it yields more clues as to where the
readmem() came from, but since I don't know much about the LKCD
physical memory zones stuff, is there any reason that shouldn't
be done?

Thanks,
   Dave





More information about the Crash-utility mailing list