[ECOS] Disabling interrupts when locking the scheduler

Erik Christiansen erik@dd.nec.com.au
Fri Jun 3 08:48:00 GMT 2005


The possibility of disabling interrupts when locking the scheduler seems
built into the calling sequence:

Cyg_Scheduler::lock()            <-- Generates no code, anywhere. *1
   inc_sched_lock()
      HAL_SMP_SCHEDLOCK_INC
         HAL_DISABLE_INTERRUPTS  <-- Disables interrupts, if invoked.

While ref/kernel-interrupts.html confirms that interrupts are normally not
disabled, for improved interrupt latency, the code is there, if I can just
figure out how to turn it on. It's not conditionals, but seems to be
inheritance which causes Cyg_Scheduler::lock() to be excluded.

Has anyone tried this before?

(I'd prefer to enable the latent code, rather than just poke a
HAL_DISABLE_INTERRUPTS in front of Cyg_Scheduler::lock() in 66
places, and repeat for enabling.)

*1) No timeslicing, CYGSEM_HAL_USE_ROM_MONITOR == 1.

Erik



-- 
 _,-_|\    Erik Christiansen                    Phone: +61 3 9264 3416
/      \   Research & Development Division        Fax: +61 3 9264 3438
\_,-.__/   Voice Products Department
      v    NEC Business Solutions Pty. Ltd.     www.necbs.com.au

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss



More information about the Ecos-discuss mailing list