Ignore:
Timestamp:
2014-10-27T15:10:14Z (10 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
aef669b
Parents:
ec443d5
Message:

Let the fast MMU traps use exc_dispatch() in their slow-path.

In order to get proper exception accounting, the MMU related traps need
to go through the code in exc_dispatch(). To make this possible, we pass
the DTLB Tag Access register in istate_t in order to make way for the
trap type argument, which needs to be passed as the first argument to
exc_dispatch().

As a collateral change, this commit modifies the istate_t structure to
match the SPARC V9 ABI stack frame layout. It gives us a richer istate_t
with more information in it and also simplifies calculation of stack
offsets inside of preemptible_handler.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/sparc64/src/trap/interrupt.c

    rec443d5 rd70ebffe  
    3737#include <arch/trap/interrupt.h>
    3838#include <arch/trap/exception.h>
     39#include <arch/trap/mmu.h>
    3940#include <arch/sparc64.h>
    4041#include <interrupt.h>
     
    120121            interrupt);
    121122#endif
    122        
     123
     124        exc_register(TT_FAST_INSTRUCTION_ACCESS_MMU_MISS,
     125            "fast_instruction_access_mmu_miss", true,
     126            fast_instruction_access_mmu_miss);
     127        exc_register(TT_FAST_DATA_ACCESS_MMU_MISS,
     128            "fast_data_access_mmu_miss", true,
     129            fast_data_access_mmu_miss);
     130        exc_register(TT_FAST_DATA_ACCESS_PROTECTION,
     131            "fast_data_access_protection", true,
     132            fast_data_access_protection);       
    123133}
    124134
Note: See TracChangeset for help on using the changeset viewer.