Changeset e3038b4 in mainline for kernel/arch/ia64/src/interrupt.c


Ignore:
Timestamp:
2010-06-28T22:45:51Z (15 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
49eb681
Parents:
05e3cb8 (diff), e4a4b44 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge unified panic architecture (Phase 1).

Note that this is still work in progress as there are the following sharp edges:

  • imprecise detection of read/write accesses on some architectures
  • missing or imperfect capability to print stack traces on some architectures
  • istate_t on some architectures may contain too little valuable information
  • basically all trap frames need to be reorganized to look like a normal stack frame on the stack trace so that there are no missing frames
  • panic_common() could print more information about the current context such as the task name, thread name, ASID etc.
  • functions that call panic_*() should be protected against inlining to avoid missing or confusing stack frames in the stack trace
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia64/src/interrupt.c

    r05e3cb8 re3038b4  
    133133}
    134134
    135 static void dump_interrupted_context(istate_t *istate)
    136 {
    137         putchar('\n');
    138         printf("Interrupted context dump:\n");
     135void istate_decode(istate_t *istate)
     136{
    139137        printf("ar.bsp=%p\tar.bspstore=%p\n", istate->ar_bsp,
    140138            istate->ar_bspstore);
     
    183181       
    184182        fault_if_from_uspace(istate, "General Exception (%s).", desc);
    185        
    186         dump_interrupted_context(istate);
    187         panic("General Exception (%s).", desc);
     183        panic_badtrap(istate, vector, "General Exception (%s).", desc);
    188184}
    189185
     
    195191        fault_if_from_uspace(istate, "Interruption: %#hx (%s).",
    196192            (uint16_t) vector, vector_to_string(vector));
    197         dump_interrupted_context(istate);
    198         panic("Interruption: %#hx (%s).", (uint16_t) vector,
    199             vector_to_string(vector));
     193        panic_badtrap(istate, vector, "Interruption: %#hx (%s).",
     194            (uint16_t) vector, vector_to_string(vector));
    200195#endif
    201196}
     
    226221        fault_if_from_uspace(istate, "Interruption: %#hx (%s).",
    227222            (uint16_t) vector, vector_to_string(vector));
    228         dump_interrupted_context(istate);
    229         panic("Interruption: %#hx (%s).", (uint16_t) vector,
    230             vector_to_string(vector));
     223        panic_badtrap(istate, vector, "Interruption: %#hx (%s).",
     224            (uint16_t) vector, vector_to_string(vector));
    231225}
    232226
Note: See TracChangeset for help on using the changeset viewer.