Ignore:
Timestamp:
Feb 12, 2019, 1:15:47 PM (6 years ago)
Author:
alain
Message:

1) Fix a bug in KSH : after the "load" command,

the [ksh] prompt is now printed after completion
of the loaded application.

2) Fix a bug in vmm_handle_cow() : the copy-on-write

use now a hal_remote_memcpy() to replicate the page content.


File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/hal/tsar_mips32/core/hal_exception.c

    r611 r619  
    219219uint32_t cycle = (uint32_t)hal_get_cycles();
    220220if( DEBUG_HAL_EXCEPTIONS < cycle )
    221 printk("\n[%s] thread[%x,%x] on core [%x,%x] enter / is_ins %d / %s / vaddr %x / cycle %d\n",
     221printk("\n[%s] thread[%x,%x] on core [%x,%x] enter\n is_ins %d / %s / vaddr %x / cycle %d\n",
    222222__FUNCTION__, process->pid, this->trdid, local_cxy, this->core->lid,
    223223is_ins, hal_mmu_exception_str(excp_code), bad_vaddr, cycle);
     
    242242cycle = (uint32_t)hal_get_cycles();
    243243if( DEBUG_HAL_EXCEPTIONS < cycle )
    244 printk("\n[%s] thread[%x,%x] on core [%x,%x] exit / page-fault handled for vaddr = %x\n",
     244printk("\n[%s] thread[%x,%x] on core [%x,%x] exit\n page-fault handled for vaddr = %x\n",
    245245__FUNCTION__, process->pid, this->trdid, local_cxy, this->core->lid, bad_vaddr );
    246246#endif
     
    342342
    343343//////////////////////////////////////////////////////////////////////////////////////////
    344 // This static function prints on the kernel terminal the saved context (core registers)
     344// This function prints on the kernel terminal the saved context (core registers)
    345345// and the thread state of a faulty thread.
    346346//////////////////////////////////////////////////////////////////////////////////////////
    347347// @ this     : pointer on faulty thread descriptor.
    348 // @ uzone    : pointer on register array.
    349348// @ error    : EXCP_USER_ERROR or EXCP_KERNEL_PANIC
    350349//////////////////////////////////////////////////////////////////////////////////////////
    351350static void hal_exception_dump( thread_t * this,
    352                                 reg_t    * uzone,
    353351                                error_t    error )
    354352{
    355353    core_t    * core    = this->core;
    356354    process_t * process = this->process;
     355    reg_t     * uzone   = this->uzone_current;
    357356
    358357    // get pointers on TXT0 chdev
     
    399398        uzone[UZ_S0], uzone[UZ_S1], uzone[UZ_S2], uzone[UZ_S3], uzone[UZ_S4] );
    400399 
    401     nolock_printk("s5_21   %X  s6_22   %X  s7_23  %X  s8_24  %X  ra_25  %X\n",
     400    nolock_printk("s5_21   %X  s6_22   %X  s7_23  %X  t8_24  %X  t9_25  %X\n",
    402401        uzone[UZ_S5], uzone[UZ_S6], uzone[UZ_S7], uzone[UZ_T8], uzone[UZ_T9] );
    403402
     
    508507        if( error == EXCP_USER_ERROR )          //  user error => kill user process
    509508        {
    510         hal_exception_dump( this , uzone , error );
     509        hal_exception_dump( this , error );
    511510
    512511        sys_exit( EXIT_FAILURE );
     
    514513    else if( error == EXCP_KERNEL_PANIC )   // kernel error => kernel panic
    515514    {
    516         hal_exception_dump( this , uzone , error );
     515        hal_exception_dump( this , error );
    517516
    518517        hal_core_sleep();
Note: See TracChangeset for help on using the changeset viewer.