summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2014-03-04 13:02:18 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2014-03-06 09:43:59 +0100
commit825cb1f1963df792957c552251df9f69453b8014 (patch)
tree5ac582e61bde01ee2041e63634f53508da78095d
parenttmtests/tm26: Fix deadlock for SMP configurations (diff)
downloadrtems-825cb1f1963df792957c552251df9f69453b8014.tar.bz2
score: Delete _Thread_Dispatch_set_disable_level()
This function was only used in some tests and can be replaced with other functions.
-rw-r--r--cpukit/score/include/rtems/score/threaddispatch.h20
-rw-r--r--cpukit/score/src/threaddispatchdisablelevel.c40
-rw-r--r--testsuites/rhealstone/rhilatency/ilatency.c1
-rw-r--r--testsuites/tmtests/tm26/task1.c4
-rw-r--r--testsuites/tmtests/tm27/task1.c10
5 files changed, 5 insertions, 70 deletions
diff --git a/cpukit/score/include/rtems/score/threaddispatch.h b/cpukit/score/include/rtems/score/threaddispatch.h
index cf9b801af8..54786eb62b 100644
--- a/cpukit/score/include/rtems/score/threaddispatch.h
+++ b/cpukit/score/include/rtems/score/threaddispatch.h
@@ -121,14 +121,6 @@ RTEMS_INLINE_ROUTINE void _Thread_Dispatch_initialization( void )
void _Giant_Drop( uint32_t self_cpu );
/**
- * @brief Sets thread dispatch level to the value passed in.
- *
- * This routine sets thread dispatch level to the
- * value passed in.
- */
- uint32_t _Thread_Dispatch_set_disable_level(uint32_t value);
-
- /**
* @brief Increments the thread dispatch level.
*
* This rountine increments the thread dispatch level
@@ -143,18 +135,6 @@ RTEMS_INLINE_ROUTINE void _Thread_Dispatch_initialization( void )
uint32_t _Thread_Dispatch_decrement_disable_level(void);
#else /* RTEMS_SMP */
/**
- * @brief Set thread dispatch disable level.
- *
- * This routine sets thread dispatch level to the
- * value passed in.
- */
- RTEMS_INLINE_ROUTINE uint32_t _Thread_Dispatch_set_disable_level(uint32_t value)
- {
- _Thread_Dispatch_disable_level = value;
- return value;
- }
-
- /**
* @brief Increase thread dispatch disable level.
*
* This rountine increments the thread dispatch level
diff --git a/cpukit/score/src/threaddispatchdisablelevel.c b/cpukit/score/src/threaddispatchdisablelevel.c
index ec5ac813d5..b6eb49f48a 100644
--- a/cpukit/score/src/threaddispatchdisablelevel.c
+++ b/cpukit/score/src/threaddispatchdisablelevel.c
@@ -118,46 +118,6 @@ uint32_t _Thread_Dispatch_decrement_disable_level( void )
return disable_level;
}
-
-/*
- * Note this method is taking a heavy handed approach to
- * setting the dispatch level. This may be optimized at a
- * later timee, but it must be in such a way that the nesting
- * level is decremented by the same number as the dispatch level.
- * This approach is safest until we are sure the nested spinlock
- * is successfully working with smp isr source code.
- */
-
-uint32_t _Thread_Dispatch_set_disable_level(uint32_t value)
-{
- ISR_Level isr_level;
- uint32_t disable_level;
-
- _ISR_Disable_without_giant( isr_level );
- disable_level = _Thread_Dispatch_disable_level;
- _ISR_Enable_without_giant( isr_level );
-
- /*
- * If we need the dispatch level to go higher
- * call increment method the desired number of times.
- */
-
- while ( value > disable_level ) {
- disable_level = _Thread_Dispatch_increment_disable_level();
- }
-
- /*
- * If we need the dispatch level to go lower
- * call increment method the desired number of times.
- */
-
- while ( value < disable_level ) {
- disable_level = _Thread_Dispatch_decrement_disable_level();
- }
-
- return value;
-}
-
void _Giant_Acquire( void )
{
ISR_Level isr_level;
diff --git a/testsuites/rhealstone/rhilatency/ilatency.c b/testsuites/rhealstone/rhilatency/ilatency.c
index 57b26e20fa..b7f5a1a83d 100644
--- a/testsuites/rhealstone/rhilatency/ilatency.c
+++ b/testsuites/rhealstone/rhilatency/ilatency.c
@@ -93,7 +93,6 @@ rtems_task Task_1(
{
Install_tm27_vector( Isr_handler ) ;
Interrupt_nest = 0;
- _Thread_Dispatch_set_disable_level( 0 );
/* Benchmark code */
benchmark_timer_initialize();
diff --git a/testsuites/tmtests/tm26/task1.c b/testsuites/tmtests/tm26/task1.c
index 416e5f7ef7..37761a498e 100644
--- a/testsuites/tmtests/tm26/task1.c
+++ b/testsuites/tmtests/tm26/task1.c
@@ -584,7 +584,9 @@ void complete_test( void )
set_thread_heir( _Thread_Get_executing() );
set_thread_dispatch_necessary( false );
- _Thread_Dispatch_set_disable_level( 0 );
+ for (index = 0; index < 2 * OPERATION_COUNT; ++index) {
+ _Thread_Unnest_dispatch();
+ }
/*
* Now dump all the times
diff --git a/testsuites/tmtests/tm27/task1.c b/testsuites/tmtests/tm27/task1.c
index bf04d19c59..ecf01cb38f 100644
--- a/testsuites/tmtests/tm27/task1.c
+++ b/testsuites/tmtests/tm27/task1.c
@@ -112,8 +112,6 @@ rtems_task Task_1(
Interrupt_nest = 0;
- _Thread_Dispatch_set_disable_level( 0 );
-
Interrupt_occurred = 0;
benchmark_timer_initialize();
@@ -145,7 +143,7 @@ rtems_task Task_1(
* No preempt .. nested
*/
- _Thread_Dispatch_set_disable_level( 1 );
+ _Thread_Disable_dispatch();
Interrupt_nest = 1;
@@ -159,7 +157,7 @@ rtems_task Task_1(
#endif
Interrupt_return_time = benchmark_timer_read();
- _Thread_Dispatch_set_disable_level( 0 );
+ _Thread_Unnest_dispatch();
put_time(
"rtems interrupt: entry overhead returns to nested interrupt",
@@ -181,8 +179,6 @@ rtems_task Task_1(
* Does a preempt .. not nested
*/
- _Thread_Dispatch_set_disable_level( 0 );
-
#if defined(RTEMS_SMP)
_ISR_Disable_without_giant(level);
#endif
@@ -253,8 +249,6 @@ rtems_task Task_2(
* Switch back to the other task to exit the test.
*/
- _Thread_Dispatch_set_disable_level( 0 );
-
#if defined(RTEMS_SMP)
rtems_interrupt_disable(level);
#endif