List Info

Thread: crash version 4.0-3.22 is available




crash version 4.0-3.22 is available
country flaguser name
United States
2007-04-10 10:35:35
- In kernel version 2.6.20 a "__bug_table" section
has been added
  to the kernel for x86 and x86_64, which contains the
encoding for
  the filename and line number information associated with
each
  instance of a kernel BUG().  Prior to that, x86 and x86_64
kernels
  may have contained the filename/line-number encoding in
the bytes
  following the BUG()'s "ud2a" instruction.  When
disassembled, the
  output would display a series of nonsensical instructions,
or perhaps
  one or more "(bad)" instruction lines, before
eventually getting
  back in sync with the actual instruction stream.  Whether
the
  encoded bytes were included depends upon the kernel
version,
  whether CONFIG_DEBUG_BUGVERBOSE was configured, or whether
an
  "#if 1" surrounding the BUG() definition was
manually changed.
  This version of crash determines whether the encoded bytes
exist,
  and if so, the embedded gdb disassembler has been modified
to
  skip over those bytes, resulting in correct
"dis" command output.
  If necessary, a "dis -b" option has been added
to override the
  pre-calculated encoded byte count value.  (andersonredhat.com)

- Fix for the x86 backtrace code to also recognize the
encoded
  filename and line number information potentially
following
  "ud2a" instructions generated by kernel BUG()
calls.  In order
  to determine the framesize of a function, the backtrace
code
  does its own text disassembly to count instances of push,
pop,
  and stack register increments/decrements.  Without this
patch,
  the framesize calculation may either be too small or too
large,
  depending upon the contents of the encoded data following
the
  BUG()'s ud2a instruction.  Therefore, it is possible that
one or
  more bogus frames are selected and displayed, and/or one
or more
  legitimate frames are skipped over.  For example, when it
affected
  the framesize calculation of schedule(), backtraces of all
non-active
  tasks ending up in schedule() would be invalid.  Here's an
example in
  which the schedule() framesize was miscalulated:

    PID: 1292   TASK: ed78a000  CPU: 0   COMMAND:
"setroubleshootd"
     #0 [c07fdba8] schedule at c05f370e
     #1 [c07fdcb4] __journal_file_buffer at ee05126d
     #2 [c07fdcd8] __journal_file_buffer at ee05126d
     #3 [c07fdd08] ext3_mark_iloc_dirty at ee08837d
     #4 [c07fdd38] journal_dirty_metadata at ee052a13
     #5 [c07fdd80] __find_get_block at c0463f59
     #6 [c07fddac] __find_get_block at c0463f59
     #7 [c07fddf0] find_get_page at c0444294
     #8 [c07fddfc] filemap_nopage at c0446cf5
     #9 [c07fde6c] find_extend_vma at c0454132
    #10 [c07fde7c] get_futex_key at c042f9f6
    #11 [c07fde94] futex_wake at c042fe2a
    #12 [c07fdeb8] do_futex at c0430a19
    #13 [c07fdfac] sys_poll at c047254b
    #14 [c07fdfb8] system_call at c0404cf8
        EAX: ffffffda  EBX: 09f3da18  ECX: 00000002  EDX:
00000064
        DS:  007b      ESI: 00000064  ES:  007b      EDI:
00342ff4
        SS:  007b      ESP: bfe76d04  EBP: bfe76d18
        CS:  0073      EIP: 0094a402  ERR: 000000a8  EFLAGS:
00200246

  With the fix, it looks like this:

    PID: 1292   TASK: ed78a000  CPU: 0   COMMAND:
"setroubleshootd"
     #0 [c07fdba8] schedule at c05f370e
     #1 [c07fdc0c] schedule_timeout at c05f3e7c
     #2 [c07fdc30] do_sys_poll at c047243e
     #3 [c07fdfac] sys_poll at c047254b
     #4 [c07fdfb8] system_call at c0404cf8
        EAX: ffffffda  EBX: 09f3da18  ECX: 00000002  EDX:
00000064
        DS:  007b      ESI: 00000064  ES:  007b      EDI:
00342ff4
        SS:  007b      ESP: bfe76d04  EBP: bfe76d18
        CS:  0073      EIP: 0094a402  ERR: 000000a8  EFLAGS:
00200246

  In the example above, the schedule() framesize was
miscalculated
  because the post-ud2a text contained the filename pointer
address
  c060fe0b, and the "60" was decoded as a
"pusha" instruction; that
  occurred twice, each time incrementing the framesize by 32
bytes.
  (andersonredhat.com)

- Added preparations for an upcoming version update to
kdump's
  associated makedumpfile utility, which will return an
error if a
  read attempt of a page that has been explicitly excluded
is made.
  Until now, a zero-filled page was returned.  To maintain
the
  current behavior of returning a zero-filled page when
accessing
  an excluded page, three options are available:
   1) use the "--zero_excluded" crash command line
option.
   2) during runtime, enter "set zero_excluded
on".
   3) enter "set zero_excluded on" in your
.crashrc file.
  (andersonredhat.com, oomichimxs.nes.nec.co.jp,
bob.montgomeryhp.com)

- Implemented "help -n" debug output function for
compressed diskdump
  and compressed kdump dumpfiles.  As is done for the other
dumpfile
  formats, the core file's header information along with any
other
  run-time dumpfile data is displayed.  (andersonredhat.com)

- If the page-exclusion "dump_level" of a
compressed diskdump, a
  compressed kdump, or an ELF diskdump dumpfile exists and
can be
  determined, its value and bitmask translation will be
displayed as
  part of the "help -n" dumpfile debug output. 
Also, has been done
  with partial ELF diskdumps, if a compressed diskdump or
compressed
  kdump can be confirmed as a partial dump, the
"[PARTIAL DUMP]"
  indicator will follow the dumpfile name during
initialization and by
  the "sys" command.  (andersonredhat.com, oomichimxs.nes.nec.co.jp,
  indou.takaojp.fujitsu.com, akiyama.nobuyukjp.fujitsu.com)

- Support for xendumps of fully-virtualized x86_64
relocatable
  kernels.  Without the patch, the physical base address was
not
  being determined, and the session would fail during
initialization
  with the error message: " crash: vmlinux and core do
not match!"
  (andersonredhat.com)

- Fix for 4.0-3.21 "BOOKE" ppc.c patch, which
failed to compile.
  (antipovru.mvista.com)

Download from: http://people.redha
t.com/anderson


--
Crash-utility mailing list
Crash-utilityredhat.com
https://www.redhat.com/mailman/listinfo/crash-utility

[1]

about | contact  Other archives ( Real Estate discussion Medical topics )