2008-01-11 Joel Sherrill <joel.sherrill@oarcorp.com>

* configure.ac, irq/irq.c, startup/bspclean.c, startup/bspstart.c: Add
	ALLOW_IRQ_NESTING option. The MPC5200 has a settle time after
	acknowledging the IRQs and currently the BSP does not account for
	that. After acknowledging an interrupt, it currently gets a second
	spurious IRQ a significant percentage of the time. Rename to
	BENCHMARK_IRQ_PROCESSING and get it working again. Under one test
	load, not nesting interrupts resulted in a 50% reduction in the
	number of IRQs and an ~30% reduction in time spent in IRQs.
This commit is contained in:
Joel Sherrill
2008-01-11 18:25:35 +00:00
parent 49cf70f1d0
commit eabd9f06e7
5 changed files with 53 additions and 9 deletions

View File

@@ -65,12 +65,12 @@
/* conditions. */
/* The mmu is unused at this time. */
/* */
/* COPYRIGHT (c) 1989-2007.
/* COPYRIGHT (c) 1989-2007. */
/* On-Line Applications Research Corporation (OAR). */
/* */
/* The license and distribution terms for this file may be */
/* found in found in the file LICENSE in this distribution or at */
/* http://www.rtems.com/license/LICENSE. */
/* http://www.rtems.com/license/LICENSE. */
/* */
/*---------------------------------------------------------------------*/
/* */
@@ -301,13 +301,17 @@ void bsp_start(void)
* not malloc'ed. It is just "pulled from the air".
*/
Configuration.work_space_start = (void *)&_WorkspaceBase;
#ifdef SHOW_MORE_INIT_SETTINGS
printk( "workspace=%p\n", Configuration.work_space_start );
printk( "workspace size=%d\n", Configuration.work_space_size );
#endif
/*
* Initalize RTEMS IRQ system
*/
BSP_rtems_irq_mng_init(0);
#if defined(TIME_IRQs)
#if (BENCHMARK_IRQ_PROCESSING == 1)
{
void BSP_initialize_IRQ_Timing(void);
BSP_initialize_IRQ_Timing();